geonetwork-ui 2.4.0-dev.78565730 → 2.4.0-dev.8118addf

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 (65) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
  3. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
  5. package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +6 -1
  6. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  7. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -4
  8. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
  9. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
  10. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
  11. package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
  12. package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
  13. package/esm2022/translations/de.json +1 -1
  14. package/esm2022/translations/en.json +1 -1
  15. package/esm2022/translations/fr.json +1 -1
  16. package/esm2022/translations/it.json +1 -1
  17. package/fesm2022/geonetwork-ui.mjs +165 -24
  18. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  19. package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
  20. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
  21. package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
  22. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
  23. package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
  24. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
  25. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  26. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
  27. package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
  28. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
  29. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  30. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  31. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
  32. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
  33. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  34. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
  35. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
  36. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  37. package/libs/ui/widgets/src/index.d.ts +1 -0
  38. package/libs/ui/widgets/src/index.d.ts.map +1 -1
  39. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
  40. package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
  41. package/package.json +1 -1
  42. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
  43. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
  44. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
  45. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
  46. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
  47. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
  48. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
  49. package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
  50. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
  51. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +2 -3
  52. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
  53. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
  54. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
  55. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
  56. package/src/libs/ui/widgets/src/index.ts +1 -0
  57. package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
  58. package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
  59. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
  60. package/tailwind.base.css +2 -1
  61. package/translations/de.json +1 -1
  62. package/translations/en.json +1 -1
  63. package/translations/fr.json +1 -1
  64. package/translations/it.json +1 -1
  65. package/translations/sk.json +1 -1
@@ -1,7 +1,10 @@
1
1
  import { parseXml, XmlDocument, XmlElement, XmlText } from '@rgrove/parse-xml';
2
+ import GML32 from 'ol/format/GML32';
3
+ import GeoJSON from 'ol/format/GeoJSON';
4
+ import { parse as parse$1 } from 'ol/xml';
2
5
  import format from 'date-fns/format';
3
6
  import * as i0 from '@angular/core';
4
- import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, TemplateRef, Host, Pipe, inject } from '@angular/core';
7
+ import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, TemplateRef, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, Host, Pipe, inject } from '@angular/core';
5
8
  import * as i1 from '@angular/common/http';
6
9
  import { HttpHeaders, HttpParams, HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } from '@angular/common/http';
7
10
  import * as i1$1 from '@ngx-translate/core';
@@ -23,7 +26,6 @@ import 'ol/Feature';
23
26
  import { Circle, Fill, Stroke, Style as Style$1 } from 'ol/style';
24
27
  import Style, { createDefaultStyle } from 'ol/style/Style';
25
28
  import { extend, isEmpty } from 'ol/extent';
26
- import GeoJSON from 'ol/format/GeoJSON';
27
29
  import { transformExtent, fromLonLat } from 'ol/proj';
28
30
  import ImageWMS from 'ol/source/ImageWMS';
29
31
  import TileWMS from 'ol/source/TileWMS';
@@ -60,6 +62,7 @@ import * as i5 from 'ngx-chips';
60
62
  import { TagInputModule } from 'ngx-chips';
61
63
  import * as i1$4 from '@angular/material/progress-spinner';
62
64
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
65
+ import tippy from 'tippy.js';
63
66
  import * as i3 from '@angular/material/core';
64
67
  import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
65
68
  import * as i1$5 from '@angular/material/checkbox';
@@ -85,7 +88,6 @@ import * as i2$5 from '@angular/material/menu';
85
88
  import { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
86
89
  import * as i1$8 from '@ngrx/effects';
87
90
  import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
88
- import tippy from 'tippy.js';
89
91
  import { valid as valid$1 } from 'geojson-validation';
90
92
  import { Polygon } from 'ol/geom';
91
93
  import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/geocoding';
@@ -271,6 +273,9 @@ function allChildrenElement(element) {
271
273
  ...element.children.filter((el) => el instanceof XmlElement),
272
274
  ];
273
275
  }
276
+ function firstChildElement(element) {
277
+ return allChildrenElement(element)[0] ?? null;
278
+ }
274
279
  /**
275
280
  * Will return all matching elements nested according to the given
276
281
  * names (similar to a path), starting form the input element;
@@ -429,10 +434,12 @@ function getTreeRoot(element) {
429
434
  }
430
435
  // stays on the parent element
431
436
  // if the given elements are part of a subtree, will add the root of subtree
437
+ // will filter out falsy elements
432
438
  function appendChildren(...childrenFns) {
433
439
  return (element) => {
434
440
  if (!element)
435
441
  return null;
442
+ childrenFns = childrenFns.filter((fn) => fn);
436
443
  element.children.push(...childrenFns.map((fn) => fn()).map(getTreeRoot));
437
444
  element.children.forEach((el) => (el.parent = element));
438
445
  return element;
@@ -561,6 +568,33 @@ function matchMimeType(format) {
561
568
  return format || null;
562
569
  }
563
570
 
571
+ function readGeometry(el) {
572
+ const xmlDoc = createDocument(el);
573
+ xmlDoc.root.attributes['xmlns'] = 'http://www.opengis.net/gml/3.2';
574
+ const gmlString = xmlToString(xmlDoc);
575
+ const doc = parse$1(gmlString);
576
+ // we need an intermediate node to be able to parse the GML
577
+ const node = document.createElement('pre');
578
+ node.appendChild(doc.documentElement);
579
+ const gml32Format = new GML32();
580
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
581
+ // @ts-ignore
582
+ const geometry = gml32Format.readGeometryFromNode(node);
583
+ const geojsonFormat = new GeoJSON();
584
+ return geojsonFormat.writeGeometryObject(geometry);
585
+ }
586
+ function writeGeometry(geometryObject) {
587
+ const geojsonFormat = new GeoJSON();
588
+ const geometry = geojsonFormat.readGeometry(geometryObject);
589
+ const gml32Format = new GML32();
590
+ const node = gml32Format.writeGeometryNode(geometry);
591
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
592
+ // @ts-ignore
593
+ const element = node.firstElementChild;
594
+ const gmlString = new XMLSerializer().serializeToString(element);
595
+ return getRootElement(parseXmlString(gmlString));
596
+ }
597
+
564
598
  /**
565
599
  * Parts are [firstName, lastName]
566
600
  * Second part will be null if no separation could be done
@@ -729,6 +763,9 @@ function extractCharacterString() {
729
763
  function extractDateTime() {
730
764
  return pipe(fallback(findChildElement('gco:DateTime', false), findChildElement('gco:Date', false)), readText(), map((dateStr) => (dateStr ? new Date(dateStr) : null)));
731
765
  }
766
+ function extractDecimal() {
767
+ return pipe(findChildElement('gco:Decimal', false), readText(), map((numberStr) => (numberStr ? Number(numberStr) : null)));
768
+ }
732
769
  function extractUrl() {
733
770
  const getUrl = pipe(findChildElement('gmd:URL', false), readText());
734
771
  const getCharacterString = pipe(findChildElement('gco:CharacterString', false), readText());
@@ -1086,6 +1123,30 @@ function readTemporalExtents(rootEl) {
1086
1123
  }
1087
1124
  }))(rootEl);
1088
1125
  }
1126
+ function readSpatialExtents(rootEl) {
1127
+ const extractGeometry = (rootEl) => {
1128
+ if (!rootEl)
1129
+ return null;
1130
+ return pipe(findChildElement('gmd:polygon', false), firstChildElement, map((el) => readGeometry(el)))(rootEl);
1131
+ };
1132
+ const extractBBox = (rootEl) => {
1133
+ if (!rootEl)
1134
+ return null;
1135
+ return pipe(combine(pipe(findChildElement('gmd:westBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:southBoundLatitude'), extractDecimal()), pipe(findChildElement('gmd:eastBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:northBoundLatitude'), extractDecimal())))(rootEl);
1136
+ };
1137
+ const extractDescription = (rootEl) => {
1138
+ if (!rootEl)
1139
+ return null;
1140
+ return pipe(findNestedElement('gmd:geographicIdentifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
1141
+ };
1142
+ return pipe(findIdentification(), findNestedElements('gmd:extent', 'gmd:EX_Extent', 'gmd:geographicElement'), mapArray(combine(pipe(findChildElement('gmd:EX_BoundingPolygon'), extractGeometry), pipe(findChildElement('gmd:EX_GeographicBoundingBox'), extractBBox), pipe(findChildElement('gmd:EX_GeographicDescription'), extractDescription))), mapArray(([geometry, bbox, description]) => {
1143
+ return {
1144
+ ...(geometry && { geometry }),
1145
+ ...(bbox && { bbox }),
1146
+ ...(description && { description }),
1147
+ };
1148
+ }))(rootEl);
1149
+ }
1089
1150
 
1090
1151
  function writeCharacterString(text) {
1091
1152
  return tap(pipe(findChildOrCreate('gco:CharacterString'), setTextContent(text)));
@@ -1102,6 +1163,9 @@ function writeDateTime(date) {
1102
1163
  function writeDate(date) {
1103
1164
  return tap(pipe(findChildOrCreate('gco:Date'), setTextContent(format(date, 'yyyy-MM-dd'))));
1104
1165
  }
1166
+ function writeDecimal(decimal) {
1167
+ return tap(pipe(findChildOrCreate('gco:Decimal'), setTextContent(decimal.toString())));
1168
+ }
1105
1169
  function getProgressCode(status) {
1106
1170
  switch (status) {
1107
1171
  case 'completed':
@@ -1495,6 +1559,24 @@ function writeTemporalExtents(record, rootEl) {
1495
1559
  ? setTextContent(format(extent.start, 'yyyy-MM-dd'))
1496
1560
  : addAttribute('indeterminatePosition', 'unknown'))))))))))(rootEl);
1497
1561
  }
1562
+ function writeSpatialExtents(record, rootEl) {
1563
+ const appendBoundingPolygon = (geometry) => {
1564
+ if (!geometry)
1565
+ return null;
1566
+ return pipe(createElement('gmd:EX_BoundingPolygon'), appendChildren(pipe(createElement('gmd:polygon'), appendChildren(() => writeGeometry(geometry)))));
1567
+ };
1568
+ const appendGeographicBoundingBox = (bbox) => {
1569
+ if (!bbox)
1570
+ return null;
1571
+ return pipe(createElement('gmd:EX_GeographicBoundingBox'), appendChildren(pipe(createElement('gmd:westBoundLongitude'), writeDecimal(bbox[0])), pipe(createElement('gmd:eastBoundLongitude'), writeDecimal(bbox[2])), pipe(createElement('gmd:southBoundLatitude'), writeDecimal(bbox[1])), pipe(createElement('gmd:northBoundLatitude'), writeDecimal(bbox[3]))));
1572
+ };
1573
+ const appendGeographicDescription = (description) => {
1574
+ if (!description)
1575
+ return null;
1576
+ return pipe(createElement('gmd:EX_GeographicDescription'), createChild('gmd:geographicIdentifier'), createChild('gmd:MD_Identifier'), createChild('gmd:code'), writeCharacterString(description));
1577
+ };
1578
+ pipe(findOrCreateIdentification(), findNestedChildOrCreate('gmd:extent', 'gmd:EX_Extent'), removeChildrenByName('gmd:geographicElement'), appendChildren(...record.spatialExtents.map((extent) => pipe(createElement('gmd:geographicElement'), appendChildren(appendBoundingPolygon(extent.geometry), appendGeographicBoundingBox(extent.bbox), appendGeographicDescription(extent.description))))))(rootEl);
1579
+ }
1498
1580
 
1499
1581
  class Iso19139Converter extends BaseConverter {
1500
1582
  constructor() {
@@ -1527,8 +1609,8 @@ class Iso19139Converter extends BaseConverter {
1527
1609
  distributions: readDistributions$1,
1528
1610
  onlineResources: readOnlineResources,
1529
1611
  temporalExtents: readTemporalExtents,
1612
+ spatialExtents: readSpatialExtents,
1530
1613
  // TODO
1531
- spatialExtents: () => [],
1532
1614
  extras: () => undefined,
1533
1615
  landingPage: () => undefined,
1534
1616
  languages: () => [],
@@ -1561,8 +1643,8 @@ class Iso19139Converter extends BaseConverter {
1561
1643
  distributions: writeDistributions$1,
1562
1644
  onlineResources: writeOnlineResources,
1563
1645
  temporalExtents: writeTemporalExtents,
1646
+ spatialExtents: () => writeSpatialExtents,
1564
1647
  // TODO
1565
- spatialExtents: () => undefined,
1566
1648
  extras: () => undefined,
1567
1649
  landingPage: () => undefined,
1568
1650
  languages: () => undefined,
@@ -17744,7 +17826,7 @@ var de = {
17744
17826
  "search.filters.resourceType": "Ressourcentyp",
17745
17827
  "search.filters.standard": "Standard",
17746
17828
  "search.filters.title": "Ergebnisse filtern",
17747
- "search.filters.topic": "Thema",
17829
+ "search.filters.topic": "Themen",
17748
17830
  "search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
17749
17831
  "search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Datensätze im Bereich des Katalogs zuerst angezeigt. Datensätze außerhalb dieses Bereichs werden nicht angezeigt.",
17750
17832
  "share.tab.permalink": "Teilen",
@@ -18209,7 +18291,7 @@ var en = {
18209
18291
  "search.filters.resourceType": "Resource type",
18210
18292
  "search.filters.standard": "Standard",
18211
18293
  "search.filters.title": "Filter your results",
18212
- "search.filters.topic": "Topic",
18294
+ "search.filters.topic": "Topics",
18213
18295
  "search.filters.useSpatialFilter": "Show records in the area of interest first",
18214
18296
  "search.filters.useSpatialFilterHelp": "When this is enabled, records situated in the catalog's area of interest are shown first; records outside of this area will not show up.",
18215
18297
  "share.tab.permalink": "Share",
@@ -19139,7 +19221,7 @@ var fr = {
19139
19221
  "search.filters.resourceType": "Type de ressource",
19140
19222
  "search.filters.standard": "Standard",
19141
19223
  "search.filters.title": "Affiner votre recherche",
19142
- "search.filters.topic": "Thème",
19224
+ "search.filters.topic": "Thèmes",
19143
19225
  "search.filters.useSpatialFilter": "Mettre en avant les résultats sur la zone d'intérêt",
19144
19226
  "search.filters.useSpatialFilterHelp": "Si cette option est activée, les fiches portant sur la zone d'intérêt du catalogue seront montrées en premier; les fiches en dehors de cette zone n'apparaîtront pas dans les résultats.",
19145
19227
  "share.tab.permalink": "Partager",
@@ -19604,7 +19686,7 @@ var it = {
19604
19686
  "search.filters.resourceType": "Tipo di risorsa",
19605
19687
  "search.filters.standard": "Standard",
19606
19688
  "search.filters.title": "Affina la sua ricerca",
19607
- "search.filters.topic": "Argomento",
19689
+ "search.filters.topic": "Argomenti",
19608
19690
  "search.filters.useSpatialFilter": "Evidenzia i risultati nell'area di interesse",
19609
19691
  "search.filters.useSpatialFilterHelp": "Se attivata, le schede relative all'area di interesse del catalogo saranno mostrate per prime; le schede al di fuori di questa area non appariranno nei risultati.",
19610
19692
  "share.tab.permalink": "Condividere",
@@ -23320,10 +23402,9 @@ class MapUtilsService {
23320
23402
  if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
23321
23403
  return null;
23322
23404
  }
23323
- // transform an array of geojson geometries into a bbox
23405
+ // extend all the spatial extents bbox into an including bbox
23324
23406
  const totalExtent = record.spatialExtents.reduce((prev, curr) => {
23325
- const geom = GEOJSON.readGeometry(curr.geometry);
23326
- return extend(prev, geom.getExtent());
23407
+ return extend(prev, curr.bbox);
23327
23408
  }, [Infinity, Infinity, -Infinity, -Infinity]);
23328
23409
  return transformExtent(totalExtent, 'EPSG:4326', 'EPSG:3857');
23329
23410
  }
@@ -24909,6 +24990,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
24909
24990
  }]
24910
24991
  }] });
24911
24992
 
24993
+ class PopoverComponent {
24994
+ constructor(viewContainerRef, renderer) {
24995
+ this.viewContainerRef = viewContainerRef;
24996
+ this.renderer = renderer;
24997
+ }
24998
+ getContent() {
24999
+ if (this.content instanceof TemplateRef) {
25000
+ if (this.view) {
25001
+ this.view.destroy();
25002
+ }
25003
+ this.view = this.viewContainerRef.createEmbeddedView(this.content);
25004
+ this.view.detectChanges();
25005
+ const wrapper = this.renderer.createElement('div'); // Create a wrapper div
25006
+ this.view.rootNodes.forEach((node) => {
25007
+ this.renderer.appendChild(wrapper, node); // Append each root node to the wrapper
25008
+ });
25009
+ return wrapper;
25010
+ }
25011
+ return this.content;
25012
+ }
25013
+ ngAfterViewInit() {
25014
+ this.tippyInstance = tippy(this.popoverContent.nativeElement, {
25015
+ content: this.getContent(),
25016
+ allowHTML: true,
25017
+ theme: this.theme,
25018
+ });
25019
+ }
25020
+ ngOnChanges(changes) {
25021
+ if (changes['theme']) {
25022
+ this.theme = changes['theme'].currentValue;
25023
+ if (this.tippyInstance) {
25024
+ this.tippyInstance.setProps({ theme: this.theme });
25025
+ }
25026
+ }
25027
+ if (changes['content']) {
25028
+ this.content = changes['content'].currentValue;
25029
+ if (this.tippyInstance) {
25030
+ this.tippyInstance.setContent(this.getContent());
25031
+ }
25032
+ }
25033
+ }
25034
+ ngOnDestroy() {
25035
+ if (this.tippyInstance) {
25036
+ this.tippyInstance.destroy();
25037
+ }
25038
+ if (this.view) {
25039
+ this.view.destroy();
25040
+ }
25041
+ }
25042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
25043
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, isStandalone: true, selector: "gn-ui-popover", inputs: { content: "content", theme: "theme" }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
25044
+ }
25045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
25046
+ type: Component,
25047
+ args: [{ selector: 'gn-ui-popover', standalone: true, imports: [CommonModule], template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n" }]
25048
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; }, propDecorators: { popoverContent: [{
25049
+ type: ViewChild,
25050
+ args: ['popoverContent', { static: false }]
25051
+ }], content: [{
25052
+ type: Input
25053
+ }], theme: [{
25054
+ type: Input
25055
+ }] } });
25056
+
24912
25057
  class PopupAlertComponent {
24913
25058
  constructor(changeDetector) {
24914
25059
  this.changeDetector = changeDetector;
@@ -27023,11 +27168,11 @@ class MetadataQualityItemComponent {
27023
27168
  return `record.metadata.quality.${this.name}.${this.value ? 'success' : 'failed'}`;
27024
27169
  }
27025
27170
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27026
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27027
27172
  }
27028
27173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, decorators: [{
27029
27174
  type: Component,
27030
- args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
27175
+ args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
27031
27176
  }], propDecorators: { name: [{
27032
27177
  type: Input
27033
27178
  }], value: [{
@@ -27038,7 +27183,6 @@ class MetadataQualityComponent {
27038
27183
  constructor() {
27039
27184
  this.smaller = false;
27040
27185
  this.items = [];
27041
- this.isMenuShown = false;
27042
27186
  }
27043
27187
  get qualityScore() {
27044
27188
  const qualityScore = this.metadata?.extras?.qualityScore;
@@ -27049,12 +27193,6 @@ class MetadataQualityComponent {
27049
27193
  get calculatedQualityScore() {
27050
27194
  return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
27051
27195
  }
27052
- showMenu() {
27053
- this.isMenuShown = true;
27054
- }
27055
- hideMenu() {
27056
- this.isMenuShown = false;
27057
- }
27058
27196
  add(name, value) {
27059
27197
  if (this.metadataQualityDisplay?.[name] !== false) {
27060
27198
  this.items.push({ name, value });
@@ -27078,11 +27216,11 @@ class MetadataQualityComponent {
27078
27216
  }
27079
27217
  }
27080
27218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27081
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"mb-6 metadata-quality\"\n (mouseenter)=\"showMenu()\"\n (mouseleave)=\"hideMenu()\"\n>\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n (focus)=\"showMenu()\"\n (blur)=\"hideMenu()\"\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n <div\n class=\"absolute z-10 bg-white border border-black border-opacity-35 rounded-lg shadow-lg p-5 whitespace-nowrap\"\n [class]=\"isMenuShown ? 'block' : 'hidden'\"\n >\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</div>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27082
27220
  }
27083
27221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, decorators: [{
27084
27222
  type: Component,
27085
- args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"mb-6 metadata-quality\"\n (mouseenter)=\"showMenu()\"\n (mouseleave)=\"hideMenu()\"\n>\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n (focus)=\"showMenu()\"\n (blur)=\"hideMenu()\"\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n <div\n class=\"absolute z-10 bg-white border border-black border-opacity-35 rounded-lg shadow-lg p-5 whitespace-nowrap\"\n [class]=\"isMenuShown ? 'block' : 'hidden'\"\n >\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</div>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
27223
+ args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
27086
27224
  }], propDecorators: { metadata: [{
27087
27225
  type: Input
27088
27226
  }], smaller: [{
@@ -28680,6 +28818,7 @@ class UiElementsModule {
28680
28818
  UiInputsModule,
28681
28819
  FormsModule,
28682
28820
  NgOptimizedImage,
28821
+ PopoverComponent,
28683
28822
  MarkdownParserComponent,
28684
28823
  ThumbnailComponent,
28685
28824
  TimeSincePipe,
@@ -28714,6 +28853,7 @@ class UiElementsModule {
28714
28853
  RouterModule,
28715
28854
  UiInputsModule,
28716
28855
  FormsModule,
28856
+ PopoverComponent,
28717
28857
  ThumbnailComponent,
28718
28858
  BadgeComponent,
28719
28859
  MaxLinesComponent] }); }
@@ -28733,6 +28873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28733
28873
  UiInputsModule,
28734
28874
  FormsModule,
28735
28875
  NgOptimizedImage,
28876
+ PopoverComponent,
28736
28877
  MarkdownParserComponent,
28737
28878
  ThumbnailComponent,
28738
28879
  TimeSincePipe,
@@ -36191,5 +36332,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
36191
36332
  * Generated bundle index. Do not edit.
36192
36333
  */
36193
36334
 
36194
- export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
36335
+ export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
36195
36336
  //# sourceMappingURL=geonetwork-ui.mjs.map