geonetwork-ui 2.10.0-dev.b5836aad7 → 2.10.0-dev.bf2e85a24

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 (158) hide show
  1. package/fesm2022/geonetwork-ui.mjs +2285 -6919
  2. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  3. package/index.d.ts +248 -173
  4. package/index.d.ts.map +1 -1
  5. package/material-styles.css +483 -0
  6. package/package.json +25 -35
  7. package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +9 -0
  8. package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +2 -0
  9. package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -0
  10. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+ongules.ts +7 -0
  11. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.reuse+roilaye.ts +1 -0
  12. package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +1 -0
  13. package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -0
  14. package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -0
  15. package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +2 -0
  16. package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +1 -0
  17. package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +1 -0
  18. package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +2 -0
  19. package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +1 -0
  20. package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +8 -0
  21. package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +48 -7
  22. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.converter.ts +1 -0
  23. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +5 -4
  24. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  25. package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
  26. package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +7 -0
  27. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +8 -0
  28. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +8 -0
  29. package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +11 -0
  30. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +33 -0
  31. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +33 -0
  32. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +8 -4
  33. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +2 -2
  34. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +72 -38
  35. package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -1
  36. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -1
  37. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +1 -1
  38. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +48 -2
  39. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +13 -5
  40. package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +2 -1
  41. package/src/libs/common/domain/src/lib/model/user/group.model.ts +8 -0
  42. package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
  43. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  44. package/src/libs/common/fixtures/src/lib/records.fixtures.ts +56 -0
  45. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +5 -2
  46. package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +10 -1
  47. package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +26 -20
  48. package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +15 -2
  49. package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +0 -2
  50. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.css +0 -0
  51. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.html +67 -0
  52. package/src/libs/feature/editor/src/lib/components/contact-details/contact-details-form.component.ts +39 -0
  53. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +18 -3
  54. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +33 -40
  55. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +5 -5
  56. package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +2 -1
  57. package/src/libs/feature/editor/src/lib/components/record-form/form-field/field-focus.directive.ts +41 -0
  58. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +32 -34
  59. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +13 -13
  60. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +18 -4
  61. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +8 -7
  62. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -6
  63. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +1 -1
  64. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.css +0 -0
  65. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.html +5 -0
  66. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-single-link-resource/form-field-online-single-link-resource.component.ts +89 -0
  67. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +12 -5
  68. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +4 -4
  69. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +7 -0
  70. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-topics/form-field-topics.component.ts +2 -2
  71. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.html +6 -2
  72. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +3 -1
  73. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.css +3 -0
  74. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +21 -16
  75. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +14 -0
  76. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  77. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.css +35 -0
  78. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +18 -5
  79. package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +118 -5
  80. package/src/libs/feature/editor/src/lib/expressions.ts +380 -8
  81. package/src/libs/feature/editor/src/lib/fields.config.ts +310 -336
  82. package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +6 -3
  83. package/src/libs/feature/editor/src/lib/services/editor.service.ts +9 -13
  84. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +33 -0
  85. package/src/libs/feature/notify-reuse/src/index.ts +1 -0
  86. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.css +0 -0
  87. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.html +1 -0
  88. package/src/libs/feature/notify-reuse/src/lib/notify-reuse-form/notify-reuse-form.component.ts +21 -0
  89. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +9 -1
  90. package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +10 -5
  91. package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +2 -2
  92. package/src/libs/ui/dataviz/src/index.ts +0 -1
  93. package/src/libs/ui/elements/src/index.ts +2 -0
  94. package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.html +88 -0
  95. package/src/libs/ui/elements/src/lib/contact-details/contact-details.component.ts +45 -0
  96. package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.html +41 -0
  97. package/src/libs/ui/elements/src/lib/contact-pill/contact-pill.component.ts +70 -0
  98. package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.html +2 -1
  99. package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.ts +2 -2
  100. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +13 -0
  101. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +13 -3
  102. package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +43 -6
  103. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -1
  104. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +0 -1
  105. package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +2 -2
  106. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -5
  107. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +0 -4
  108. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +39 -68
  109. package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +59 -11
  110. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +4 -5
  111. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +4 -0
  112. package/src/libs/ui/inputs/src/lib/button/button.component.ts +8 -0
  113. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +2 -2
  114. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
  115. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +3 -3
  116. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +2 -2
  117. package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +2 -1
  118. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +5 -5
  119. package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +9 -1
  120. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -1
  121. package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +3 -8
  122. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +7 -7
  123. package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.ts +14 -1
  124. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +2 -1
  125. package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts +15 -64
  126. package/src/libs/ui/map/src/lib/map-utils.ts +48 -0
  127. package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.ts +1 -1
  128. package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +0 -1
  129. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +12 -8
  130. package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +3 -1
  131. package/src/libs/ui/search/src/lib/results-table/results-table.component.html +1 -0
  132. package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +7 -1
  133. package/src/libs/util/app-config/src/lib/app-config.ts +70 -9
  134. package/src/libs/util/app-config/src/lib/model.ts +7 -0
  135. package/src/libs/util/app-config/src/lib/parse-utils.ts +50 -1
  136. package/src/libs/util/data-fetcher/src/lib/readers/base-file.ts +1 -2
  137. package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +6 -3
  138. package/src/libs/util/i18n/src/index.ts +0 -1
  139. package/src/libs/util/i18n/src/lib/i18n.constants.ts +17 -11
  140. package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +2 -2
  141. package/src/libs/util/i18n/src/lib/i18n.providers.ts +14 -17
  142. package/src/libs/util/i18n/src/lib/test.translate.loader.ts +48 -0
  143. package/src/libs/util/shared/src/lib/links/link-utils.ts +23 -1
  144. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +33 -18
  145. package/src/libs/util/shared/src/lib/services/date.service.ts +3 -3
  146. package/src/libs/util/shared/src/lib/utils/geojson.ts +58 -1
  147. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  148. package/src/libs/util/shared/src/lib/utils/user-display.ts +32 -0
  149. package/style.css +0 -1
  150. package/tailwind.base.css +19 -2
  151. package/translations/de.json +81 -48
  152. package/translations/en.json +86 -53
  153. package/translations/es.json +55 -22
  154. package/translations/fr.json +83 -50
  155. package/translations/it.json +81 -48
  156. package/translations/nl.json +54 -21
  157. package/translations/pt.json +55 -22
  158. package/translations/sk.json +55 -22
package/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import * as geojson from 'geojson';
2
- import { Geometry, Feature, FeatureCollection } from 'geojson';
2
+ import { Geometry, Feature, Polygon, FeatureCollection } from 'geojson';
3
3
  import { XmlElement, XmlDocument, XmlComment, XmlProcessingInstruction, XmlDeclaration, XmlDocumentType, XmlCdata, XmlText } from '@rgrove/parse-xml';
4
4
  export { XmlDocument, XmlElement } from '@rgrove/parse-xml';
5
5
  import * as i0 from '@angular/core';
6
- import { InjectionToken, Provider, OnInit, AfterViewInit, OnDestroy, OnChanges, ElementRef, EventEmitter, SimpleChanges, TemplateRef, Type, ViewContainerRef, AfterViewChecked, QueryList, Injector, ModuleWithProviders, EnvironmentProviders } from '@angular/core';
6
+ import { InjectionToken, Provider, OnInit, AfterViewInit, OnDestroy, OnChanges, ElementRef, EventEmitter, SimpleChanges, TemplateRef, Type, ViewContainerRef, AfterViewChecked, QueryList, Injector, Signal, ModuleWithProviders, EnvironmentProviders } from '@angular/core';
7
7
  import * as rxjs from 'rxjs';
8
8
  import { Observable, Subject, BehaviorSubject, Subscription, ReplaySubject } from 'rxjs';
9
9
  import { Store, NamedNode } from 'rdflib';
10
10
  import { ContentType } from 'rdflib/lib/types';
11
11
  import { HttpParameterCodec, HttpClient, HttpHeaders, HttpResponse, HttpEvent, HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
12
- import { TranslateService, TranslateModuleConfig, TranslateLoader, TranslateCompiler } from '@ngx-translate/core';
12
+ import { TranslateService, TranslateModuleConfig } from '@ngx-translate/core';
13
13
  import * as _geospatial_sdk_core from '@geospatial-sdk/core';
14
- import { MapContext, MapContextLayer, Extent, SourceLoadErrorEvent } from '@geospatial-sdk/core';
14
+ import { MapContext, MapContextLayer, Extent, SourceLoadErrorEvent, MapContextLayerGeojson } from '@geospatial-sdk/core';
15
15
  import * as _ngrx_store from '@ngrx/store';
16
16
  import { Action } from '@ngrx/store';
17
17
  import { Style } from 'ol/style.js';
@@ -32,7 +32,7 @@ import * as i2 from '@ngrx/router-store';
32
32
  import * as _angular_router from '@angular/router';
33
33
  import { Router, QueryParamsHandling, Routes } from '@angular/router';
34
34
  import Collection from 'ol/Collection.js';
35
- import { Interaction, DragPan, MouseWheelZoom } from 'ol/interaction.js';
35
+ import { DragPan, MouseWheelZoom, Interaction } from 'ol/interaction.js';
36
36
  import MapBrowserEvent from 'ol/MapBrowserEvent.js';
37
37
  import * as chart_js from 'chart.js';
38
38
  import { Chart, ChartType, ChartData, ChartOptions } from 'chart.js';
@@ -46,7 +46,6 @@ import { CdkDragDrop } from '@angular/cdk/drag-drop';
46
46
  import { Locale } from 'date-fns/locale';
47
47
  import { ViewportScroller } from '@angular/common';
48
48
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
49
- import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
50
49
 
51
50
  type LanguageCode = string;
52
51
  type FieldTranslation = Record<LanguageCode, string>;
@@ -100,7 +99,7 @@ interface Individual {
100
99
 
101
100
  type KeywordType = 'place' | 'temporal' | 'theme' | 'other';
102
101
  interface ThesaurusModel {
103
- id: string;
102
+ id?: string;
104
103
  name?: string;
105
104
  url?: URL;
106
105
  thesaurusKey?: string;
@@ -136,12 +135,9 @@ interface Keyword {
136
135
  type: KeywordType;
137
136
  thesaurus?: ThesaurusModel;
138
137
  bbox?: [number, number, number, number];
138
+ hierarchyPath?: string[];
139
139
  translations?: KeywordTranslations;
140
140
  }
141
- interface INSPIRE_topic {
142
- value: string;
143
- label: string;
144
- }
145
141
  interface ResourceIdentifier$1 {
146
142
  code: string;
147
143
  codeSpace?: string;
@@ -229,10 +225,19 @@ interface DatasetTemporalExtent {
229
225
  start: Date;
230
226
  end?: Date;
231
227
  }
228
+ /**
229
+ * Represents a source dataset referenced from a lineage entry.
230
+ */
231
+ interface SourceRecord {
232
+ uuid?: string;
233
+ title?: string;
234
+ href?: string;
235
+ }
232
236
  interface DatasetRecord extends BaseRecord {
233
237
  kind: 'dataset';
234
238
  status: RecordStatus;
235
239
  lineage: string;
240
+ sourceRecords: Array<SourceRecord>;
236
241
  onlineResources: Array<DatasetOnlineResource>;
237
242
  spatialExtents: Array<DatasetSpatialExtent>;
238
243
  temporalExtents: Array<DatasetTemporalExtent>;
@@ -256,6 +261,7 @@ interface ServiceRecord extends BaseRecord {
256
261
  interface ReuseRecord extends BaseRecord {
257
262
  kind: 'reuse';
258
263
  lineage: string;
264
+ sourceRecords: Array<SourceRecord>;
259
265
  onlineResources: Array<DatasetOnlineResource>;
260
266
  reuseType: ReuseType;
261
267
  spatialExtents: Array<DatasetSpatialExtent>;
@@ -427,6 +433,7 @@ type ThesaurusName = string;
427
433
  interface Thesaurus {
428
434
  id?: string;
429
435
  title?: string;
436
+ multilingualTitle?: MultilingualField;
430
437
  theme?: string;
431
438
  link?: string;
432
439
  keywords: MultilingualField[];
@@ -687,7 +694,17 @@ declare const getAsUrl: (field: any, location?: string) => URL;
687
694
  declare const mapLogo: (source: SourceWithUnknownProps) => URL;
688
695
  declare const mapOrganization: (sourceContact: SourceWithUnknownProps, lang3: string) => Organization;
689
696
  declare const mapContact: (sourceContact: SourceWithUnknownProps, lang3: string) => Individual;
690
- declare const mapKeywords: (thesauri: Thesaurus[], language: string) => any[];
697
+ interface KeywordTree {
698
+ default?: string[];
699
+ }
700
+ /**
701
+ * Resolves a keyword's ancestor path within its thesaurus tree, or null for a
702
+ * root-level keyword (no ancestors to show). Tree entries are `^`-joined label
703
+ * paths (default language); they aren't index-aligned with the keywords, so we
704
+ * match on the last segment (not by position/URI), shortest path on poly-hierarchy.
705
+ */
706
+ declare const getKeywordHierarchyPath: (keywordDefaultLabel: string, tree?: KeywordTree | null) => string[] | null;
707
+ declare const mapKeywords: (thesauri: Record<string, Thesaurus>, language: string, source?: SourceWithUnknownProps) => any[];
691
708
 
692
709
  type ESResponseSource = SourceWithUnknownProps;
693
710
  type EsFieldMapperFn = (output: Partial<CatalogRecord>, source: ESResponseSource) => Partial<CatalogRecord>;
@@ -1076,6 +1093,8 @@ declare abstract class RecordsRepositoryInterface {
1076
1093
  }
1077
1094
 
1078
1095
  type RecordAsXml = string;
1096
+ declare const DISABLE_DRAFT: InjectionToken<boolean>;
1097
+ declare const DEFAULT_RECORD_CONVERTER: InjectionToken<BaseConverter<string>>;
1079
1098
  declare class Gn4Repository implements RecordsRepositoryInterface {
1080
1099
  private httpClient;
1081
1100
  private gn4SearchApi;
@@ -1085,6 +1104,8 @@ declare class Gn4Repository implements RecordsRepositoryInterface {
1085
1104
  private platformService;
1086
1105
  private gn4LanguagesApi;
1087
1106
  private settingsService;
1107
+ private disableDraft;
1108
+ private defaultConverter;
1088
1109
  _draftsChanged: Subject<void>;
1089
1110
  draftsChanged$: Observable<void>;
1090
1111
  search({ filters, fields, offset, limit, sort, filterIds, filterGeometry, }: SearchParams): Observable<SearchResults>;
@@ -1744,6 +1765,15 @@ interface UserModel {
1744
1765
  profileIcon?: string;
1745
1766
  }
1746
1767
 
1768
+ interface GroupModel {
1769
+ groupId: number;
1770
+ groupName: string;
1771
+ isMember: boolean;
1772
+ canEdit: boolean;
1773
+ canApprove: boolean;
1774
+ canAdministrate: boolean;
1775
+ }
1776
+
1747
1777
  interface RecordAttachment {
1748
1778
  url: URL;
1749
1779
  fileName: string;
@@ -1763,6 +1793,7 @@ declare abstract class PlatformServiceInterface {
1763
1793
  abstract getMe(): Observable<UserModel>;
1764
1794
  abstract isAnonymous(): Observable<boolean>;
1765
1795
  abstract getUsers(): Observable<UserModel[]>;
1796
+ abstract getUserPermissionsByGroup(): Observable<GroupModel[]>;
1766
1797
  abstract getUsersByOrganization(organisation: Organization): Observable<UserModel[]>;
1767
1798
  abstract getOrganizations(): Observable<Organization[]>;
1768
1799
  abstract translateKey(key: string): Observable<string>;
@@ -1913,6 +1944,7 @@ declare class SelectionService {
1913
1944
 
1914
1945
  interface Gn4ProvideOptions {
1915
1946
  disableAuth?: boolean;
1947
+ disableDraft?: boolean;
1916
1948
  }
1917
1949
  declare function provideGn4(provideOptions?: Gn4ProvideOptions): Provider[];
1918
1950
 
@@ -1920,6 +1952,7 @@ declare const DISABLE_AUTH: InjectionToken<boolean>;
1920
1952
  declare class Gn4PlatformService implements PlatformServiceInterface {
1921
1953
  private meApi;
1922
1954
  private usersApi;
1955
+ private groupsApi;
1923
1956
  private mapper;
1924
1957
  private toolsApiService;
1925
1958
  private registriesApiService;
@@ -1951,6 +1984,7 @@ declare class Gn4PlatformService implements PlatformServiceInterface {
1951
1984
  getOrganizations(): Observable<Organization[]>;
1952
1985
  getUsersByOrganization(organisation: Organization): Observable<UserModel[]>;
1953
1986
  getUsers(): Observable<UserModel[]>;
1987
+ getUserPermissionsByGroup(): Observable<GroupModel[]>;
1954
1988
  translateKey(key: string): Observable<string>;
1955
1989
  private allThesaurus$;
1956
1990
  searchKeywords(query: string, keywordTypes: KeywordType[]): Observable<Keyword[]>;
@@ -2115,6 +2149,20 @@ declare function createFuzzyFilter(pattern: string): FuzzyFilter;
2115
2149
  declare function getGeometryFromGeoJSON(data: FeatureCollection | Feature | Geometry): Geometry | null;
2116
2150
  type BoundingBox = [number, number, number, number];
2117
2151
  declare function getGeometryBoundingBox(geometry: Geometry): BoundingBox;
2152
+ /**
2153
+ * Builds the closed GeoJSON Polygon matching the given bounding box.
2154
+ */
2155
+ declare function bboxToPolygon(bbox: BoundingBox): Polygon;
2156
+ /**
2157
+ * Returns the geometry carried by a spatial extent, falling back to the polygon
2158
+ * derived from its bounding box. Returns null when the extent has neither.
2159
+ */
2160
+ declare function spatialExtentToGeometry(extent: DatasetSpatialExtent): Geometry | null;
2161
+ /**
2162
+ * Converts a list of dataset spatial extents into a GeoJSON FeatureCollection,
2163
+ * e.g. to be used as the data source of a map layer.
2164
+ */
2165
+ declare function spatialExtentsToFeatureCollection(extents: DatasetSpatialExtent[]): FeatureCollection;
2118
2166
 
2119
2167
  declare function downsizeImage(blob: Blob, maxWidth: number, maxHeight: number): Promise<Blob>;
2120
2168
  declare function downgradeImage(blob: Blob, maxSizeBytes: number): Promise<Blob>;
@@ -2162,6 +2210,10 @@ declare function getTemporalRangeUnion(ranges: {
2162
2210
  */
2163
2211
  declare function removeSearchParams(url: string, searchParams: string[]): string;
2164
2212
 
2213
+ declare function getIndividualDisplayName(individual: Individual): string;
2214
+ declare function getAddressLines(address: string | undefined): string[];
2215
+ declare function toIndividual(user: UserModel): Individual;
2216
+
2165
2217
  declare const FORMATS: {
2166
2218
  readonly csv: {
2167
2219
  readonly extensions: readonly ["csv"];
@@ -2339,8 +2391,12 @@ declare class ImageFallbackDirective {
2339
2391
  declare const GEONETWORK_UI_VERSION: string;
2340
2392
  declare const GEONETWORK_UI_TAG_NAME: string;
2341
2393
 
2394
+ type TValidatorEntry = {
2395
+ validator: (metadata: Partial<CatalogRecord>) => boolean;
2396
+ alias?: string;
2397
+ };
2342
2398
  type TValidatorMapper = {
2343
- [key: string]: (metadata: Partial<CatalogRecord>) => boolean;
2399
+ [key: string]: TValidatorEntry;
2344
2400
  };
2345
2401
  declare const ValidatorMapper: TValidatorMapper;
2346
2402
  type ValidatorMapperKeys = keyof typeof ValidatorMapper & string;
@@ -2348,6 +2404,7 @@ declare function getAllKeysValidator(): string[];
2348
2404
  declare function getQualityValidators(record: Partial<CatalogRecord>, propsToValidate: ValidatorMapperKeys[]): {
2349
2405
  name: string;
2350
2406
  validator: () => boolean;
2407
+ alias: string;
2351
2408
  }[];
2352
2409
 
2353
2410
  declare function updateLanguages<T extends CatalogRecord>(record: T, defaultLanguage: LanguageCode, otherLanguages: LanguageCode[]): T;
@@ -2365,6 +2422,15 @@ declare class GnUiHumanizeDateDirective implements OnInit {
2365
2422
 
2366
2423
  declare class MapUtilsService {
2367
2424
  getRecordExtent(record: Partial<CatalogRecord>): BoundingBox;
2425
+ /**
2426
+ * Builds a non-interactive overlay layer drawing the spatial extent(s)
2427
+ * declared in the record's metadata (bounding boxes and/or geometries).
2428
+ * Returns null when the record has no usable spatial extent.
2429
+ *
2430
+ * This is purely for display and is independent from the map's initial view,
2431
+ * which is derived separately (see {@link getRecordExtent}).
2432
+ */
2433
+ getRecordExtentLayer(record: Partial<CatalogRecord>): MapContextLayer | null;
2368
2434
  static ɵfac: i0.ɵɵFactoryDeclaration<MapUtilsService, never>;
2369
2435
  static ɵprov: i0.ɵɵInjectableDeclaration<MapUtilsService>;
2370
2436
  }
@@ -2697,7 +2763,7 @@ declare class BadgeComponent {
2697
2763
 
2698
2764
  declare class ButtonComponent {
2699
2765
  private btnClass;
2700
- set type(value: 'primary' | 'secondary' | 'default' | 'outline' | 'light' | 'gray' | 'black');
2766
+ set type(value: 'primary' | 'secondary' | 'default' | 'outline' | 'light' | 'gray' | 'gray-light' | 'black' | 'primary-light');
2701
2767
  disabled: boolean;
2702
2768
  extraClass: string;
2703
2769
  buttonClick: EventEmitter<Event>;
@@ -2808,7 +2874,7 @@ declare class DropdownMultiselectComponent {
2808
2874
  overlayPositions: ConnectedPosition[];
2809
2875
  scrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy;
2810
2876
  overlayOpen: boolean;
2811
- overlayWidth: string;
2877
+ overlayMinWidth: string;
2812
2878
  overlayMaxHeight: string;
2813
2879
  id: string;
2814
2880
  get hasSelectedChoices(): boolean;
@@ -3023,7 +3089,7 @@ declare class UrlInputComponent implements OnChanges {
3023
3089
  inputValue: string;
3024
3090
  ngOnChanges(changes: SimpleChanges): void;
3025
3091
  handleInput(event: Event): void;
3026
- handleUpload(element: HTMLInputElement): void;
3092
+ handleUpload(element: HTMLInputElement, event: Event): void;
3027
3093
  isValidUrl(url: string): boolean;
3028
3094
  static ɵfac: i0.ɵɵFactoryDeclaration<UrlInputComponent, never>;
3029
3095
  static ɵcmp: i0.ɵɵComponentDeclaration<UrlInputComponent, "gn-ui-url-input", never, { "value": { "alias": "value"; "required": false; }; "extraClass": { "alias": "extraClass"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showValidateButton": { "alias": "showValidateButton"; "required": false; }; "resetUrlOnChange": { "alias": "resetUrlOnChange"; "required": false; }; }, { "valueChange": "valueChange"; "uploadClick": "uploadClick"; }, never, ["*"], true, never>;
@@ -3132,6 +3198,22 @@ declare class ResultsTableComponent {
3132
3198
  static ɵcmp: i0.ɵɵComponentDeclaration<ResultsTableComponent, "gn-ui-results-table", never, { "records": { "alias": "records"; "required": false; }; "selectedRecordsIdentifiers": { "alias": "selectedRecordsIdentifiers"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "hasDraft": { "alias": "hasDraft"; "required": false; }; "canDuplicate": { "alias": "canDuplicate"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; "isDraftPage": { "alias": "isDraftPage"; "required": false; }; "isDuplicating": { "alias": "isDuplicating"; "required": false; }; }, { "sortByChange": "sortByChange"; "recordClick": "recordClick"; "duplicateRecord": "duplicateRecord"; "deleteRecord": "deleteRecord"; "rollbackDraft": "rollbackDraft"; "recordsSelectedChange": "recordsSelectedChange"; }, never, never, true, never>;
3133
3199
  }
3134
3200
 
3201
+ type AggregationTypes = 'count' | 'sum' | 'min' | 'max' | 'average';
3202
+ declare const CHART_TYPE_VALUES: readonly ["bar", "bar-horizontal", "line", "line-interpolated", "scatter", "pie"];
3203
+ type InputChartType = (typeof CHART_TYPE_VALUES)[number];
3204
+ interface DatavizChartConfigModel {
3205
+ xProperty: string;
3206
+ yProperty: string;
3207
+ aggregation: AggregationTypes;
3208
+ chartType: InputChartType;
3209
+ }
3210
+ interface DatavizConfigModel {
3211
+ view: string;
3212
+ source: DatasetOnlineResource;
3213
+ chartConfig?: DatavizChartConfigModel;
3214
+ styleTMSIndex?: number;
3215
+ }
3216
+
3135
3217
  type ActionMenuPage = 'mainMenu' | 'deleteMenu' | 'rollbackMenu';
3136
3218
  declare class ActionMenuComponent {
3137
3219
  dialog: MatDialog;
@@ -3140,6 +3222,7 @@ declare class ActionMenuComponent {
3140
3222
  isDuplicating: boolean;
3141
3223
  canDelete: boolean;
3142
3224
  page: 'draft' | 'main' | 'record';
3225
+ recordKind: RecordKind;
3143
3226
  duplicate: EventEmitter<void>;
3144
3227
  delete: EventEmitter<void>;
3145
3228
  closeActionMenu: EventEmitter<void>;
@@ -3150,7 +3233,7 @@ declare class ActionMenuComponent {
3150
3233
  displayMainMenu(): void;
3151
3234
  displayDeleteMenu(): void;
3152
3235
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionMenuComponent, never>;
3153
- static ɵcmp: i0.ɵɵComponentDeclaration<ActionMenuComponent, "gn-ui-action-menu", never, { "canDuplicate": { "alias": "canDuplicate"; "required": false; }; "isDuplicating": { "alias": "isDuplicating"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "page": { "alias": "page"; "required": false; }; }, { "duplicate": "duplicate"; "delete": "delete"; "closeActionMenu": "closeActionMenu"; "rollback": "rollback"; "switch": "switch"; }, never, never, true, never>;
3236
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionMenuComponent, "gn-ui-action-menu", never, { "canDuplicate": { "alias": "canDuplicate"; "required": false; }; "isDuplicating": { "alias": "isDuplicating"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "page": { "alias": "page"; "required": false; }; "recordKind": { "alias": "recordKind"; "required": false; }; }, { "duplicate": "duplicate"; "delete": "delete"; "closeActionMenu": "closeActionMenu"; "rollback": "rollback"; "switch": "switch"; }, never, never, true, never>;
3154
3237
  }
3155
3238
 
3156
3239
  declare class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
@@ -3893,7 +3976,7 @@ declare class InteractiveTableComponent {
3893
3976
  get gridStyle(): {
3894
3977
  'grid-template-columns': string;
3895
3978
  };
3896
- getItemTitle(item: CatalogRecord): "" | "editor.record.lock.resourceType" | "editor.record.lock.harvested" | "editor.record.lock.owner";
3979
+ getItemTitle(item: CatalogRecord): "" | "editor.record.lock.harvested" | "editor.record.lock.owner";
3897
3980
  handleRowClick(item: unknown): void;
3898
3981
  static ɵfac: i0.ɵɵFactoryDeclaration<InteractiveTableComponent, never>;
3899
3982
  static ɵcmp: i0.ɵɵComponentDeclaration<InteractiveTableComponent, "gn-ui-interactive-table", never, { "items": { "alias": "items"; "required": false; }; "canEditItem": { "alias": "canEditItem"; "required": false; }; "isDraftPage": { "alias": "isDraftPage"; "required": false; }; }, { "itemClick": "itemClick"; }, ["columns"], never, true, never>;
@@ -4136,11 +4219,16 @@ declare class ImageInputComponent {
4136
4219
  }
4137
4220
 
4138
4221
  declare class ImageOverlayPreviewComponent {
4139
- imageUrl: string;
4140
- isPlaceholderShown: EventEmitter<boolean>;
4141
- openLightbox(src: string): void;
4222
+ imageUrl: i0.InputSignal<string>;
4223
+ isPlaceholderShown: i0.OutputEmitterRef<boolean>;
4224
+ private imageTemplate;
4225
+ private overlay;
4226
+ private viewContainerRef;
4227
+ private overlayRef;
4228
+ openLightbox(): void;
4229
+ closeLightbox(): void;
4142
4230
  static ɵfac: i0.ɵɵFactoryDeclaration<ImageOverlayPreviewComponent, never>;
4143
- static ɵcmp: i0.ɵɵComponentDeclaration<ImageOverlayPreviewComponent, "gn-ui-image-overlay-preview", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; }, { "isPlaceholderShown": "isPlaceholderShown"; }, never, never, true, never>;
4231
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImageOverlayPreviewComponent, "gn-ui-image-overlay-preview", never, { "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; }, { "isPlaceholderShown": "isPlaceholderShown"; }, never, never, true, never>;
4144
4232
  }
4145
4233
 
4146
4234
  declare class KindBadgeComponent {
@@ -4217,6 +4305,7 @@ declare class MetadataDoiComponent {
4217
4305
 
4218
4306
  declare class MetadataInfoComponent {
4219
4307
  private dateService;
4308
+ private translateService;
4220
4309
  metadata: Partial<CatalogRecord>;
4221
4310
  incomplete: boolean;
4222
4311
  keyword: EventEmitter<Keyword>;
@@ -4233,10 +4322,14 @@ declare class MetadataInfoComponent {
4233
4322
  start: string;
4234
4323
  end: string;
4235
4324
  };
4236
- get shownOrganization(): Organization;
4237
- get resourceContact(): Individual;
4238
4325
  fieldReady(propName: string): boolean;
4326
+ get contactGroups(): {
4327
+ role: Role;
4328
+ roleLabel: string;
4329
+ contacts: Individual[];
4330
+ }[];
4239
4331
  onKeywordClick(keyword: Keyword): void;
4332
+ keywordTooltipSegments(keyword: Keyword): string[];
4240
4333
  static ɵfac: i0.ɵɵFactoryDeclaration<MetadataInfoComponent, never>;
4241
4334
  static ɵcmp: i0.ɵɵComponentDeclaration<MetadataInfoComponent, "gn-ui-metadata-info", never, { "metadata": { "alias": "metadata"; "required": false; }; "incomplete": { "alias": "incomplete"; "required": false; }; }, { "keyword": "keyword"; }, never, never, true, never>;
4242
4335
  }
@@ -4270,6 +4363,29 @@ declare class MetadataQualityComponent implements OnChanges {
4270
4363
  static ɵcmp: i0.ɵɵComponentDeclaration<MetadataQualityComponent, "gn-ui-metadata-quality", never, { "metadata": { "alias": "metadata"; "required": false; }; "smaller": { "alias": "smaller"; "required": false; }; "metadataQualityDisplay": { "alias": "metadataQualityDisplay"; "required": false; }; "popoverDisplay": { "alias": "popoverDisplay"; "required": false; }; "propsToValidate": { "alias": "propsToValidate"; "required": false; }; "forceComputeScore": { "alias": "forceComputeScore"; "required": false; }; }, {}, never, never, true, never>;
4271
4364
  }
4272
4365
 
4366
+ declare class ContactPillComponent {
4367
+ contact: Individual;
4368
+ private host;
4369
+ overlayOpen: boolean;
4370
+ overlayWidth: number;
4371
+ overlayOffsetX: number;
4372
+ overlayPositions: ConnectedPosition[];
4373
+ get displayName(): string;
4374
+ toggleOverlay(): void;
4375
+ closeOverlay(): void;
4376
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContactPillComponent, never>;
4377
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContactPillComponent, "gn-ui-contact-pill", never, { "contact": { "alias": "contact"; "required": false; }; }, {}, never, never, true, never>;
4378
+ }
4379
+
4380
+ declare class ContactDetailsComponent {
4381
+ contact: Individual;
4382
+ get organization(): Organization;
4383
+ get displayName(): string;
4384
+ get addressLines(): string[];
4385
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContactDetailsComponent, never>;
4386
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContactDetailsComponent, "gn-ui-contact-details", never, { "contact": { "alias": "contact"; "required": false; }; }, {}, never, never, true, never>;
4387
+ }
4388
+
4273
4389
  declare class NotificationComponent {
4274
4390
  type: 'info' | 'warning' | 'error' | 'success';
4275
4391
  title: string;
@@ -4379,7 +4495,6 @@ type CardSize = 'L' | 'M' | 'S' | 'XS';
4379
4495
  declare class InternalLinkCardComponent implements OnInit {
4380
4496
  protected elementRef: ElementRef<any>;
4381
4497
  record: CatalogRecord;
4382
- linkTarget: string;
4383
4498
  linkHref: string;
4384
4499
  metadataQualityDisplay: boolean;
4385
4500
  favoriteTemplate: TemplateRef<{
@@ -4396,7 +4511,7 @@ declare class InternalLinkCardComponent implements OnInit {
4396
4511
  get shouldShowThumbnail(): boolean;
4397
4512
  get displayContactIconOnly(): boolean;
4398
4513
  static ɵfac: i0.ɵɵFactoryDeclaration<InternalLinkCardComponent, never>;
4399
- static ɵcmp: i0.ɵɵComponentDeclaration<InternalLinkCardComponent, "gn-ui-internal-link-card", never, { "record": { "alias": "record"; "required": false; }; "linkTarget": { "alias": "linkTarget"; "required": false; }; "linkHref": { "alias": "linkHref"; "required": false; }; "metadataQualityDisplay": { "alias": "metadataQualityDisplay"; "required": false; }; "favoriteTemplate": { "alias": "favoriteTemplate"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "mdSelect": "mdSelect"; }, never, never, true, never>;
4514
+ static ɵcmp: i0.ɵɵComponentDeclaration<InternalLinkCardComponent, "gn-ui-internal-link-card", never, { "record": { "alias": "record"; "required": false; }; "linkHref": { "alias": "linkHref"; "required": false; }; "metadataQualityDisplay": { "alias": "metadataQualityDisplay"; "required": false; }; "favoriteTemplate": { "alias": "favoriteTemplate"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "mdSelect": "mdSelect"; }, never, never, true, never>;
4400
4515
  }
4401
4516
 
4402
4517
  declare class ServiceCapabilitiesComponent implements OnInit {
@@ -4710,22 +4825,6 @@ declare class FeatureRecordModule {
4710
4825
  static ɵinj: i0.ɵɵInjectorDeclaration<FeatureRecordModule>;
4711
4826
  }
4712
4827
 
4713
- type AggregationTypes = 'count' | 'sum' | 'min' | 'max' | 'average';
4714
- declare const CHART_TYPE_VALUES: readonly ["bar", "bar-horizontal", "line", "line-interpolated", "scatter", "pie"];
4715
- type InputChartType = (typeof CHART_TYPE_VALUES)[number];
4716
- interface DatavizChartConfigModel {
4717
- xProperty: string;
4718
- yProperty: string;
4719
- aggregation: AggregationTypes;
4720
- chartType: InputChartType;
4721
- }
4722
- interface DatavizConfigModel {
4723
- view: string;
4724
- source: DatasetOnlineResource;
4725
- chartConfig?: DatavizChartConfigModel;
4726
- styleTMSIndex?: number;
4727
- }
4728
-
4729
4828
  type DataItem = Feature;
4730
4829
  declare class FetchError {
4731
4830
  type: 'http' | 'forbidden' | 'network' | 'parse' | 'unsupportedType' | 'unknown';
@@ -4897,7 +4996,7 @@ declare class ChartViewComponent {
4897
4996
  set link(value: DatasetOnlineResource);
4898
4997
  private currentLink$;
4899
4998
  set aggregation(value: FieldAggregation[0]);
4900
- aggregation$: BehaviorSubject<"average" | "count" | "max" | "min" | "sum">;
4999
+ aggregation$: BehaviorSubject<"count" | "sum" | "min" | "max" | "average">;
4901
5000
  set xProperty(value: string);
4902
5001
  xProperty$: BehaviorSubject<string>;
4903
5002
  set yProperty(value: string);
@@ -4906,7 +5005,7 @@ declare class ChartViewComponent {
4906
5005
  chartType$: BehaviorSubject<"line" | "bar" | "bar-horizontal" | "line-interpolated" | "scatter" | "pie">;
4907
5006
  set userChartConfig(config: DatavizChartConfigModel);
4908
5007
  chartConfig$: Observable<{
4909
- aggregation: "average" | "count" | "max" | "min" | "sum";
5008
+ aggregation: "count" | "sum" | "min" | "max" | "average";
4910
5009
  xProperty: string;
4911
5010
  yProperty: string;
4912
5011
  chartType: "line" | "bar" | "bar-horizontal" | "line-interpolated" | "scatter" | "pie";
@@ -5011,15 +5110,6 @@ declare class DataTableComponent implements OnInit, AfterViewInit, OnChanges {
5011
5110
  static ɵcmp: i0.ɵɵComponentDeclaration<DataTableComponent, "gn-ui-data-table", never, { "featureAttributes": { "alias": "featureAttributes"; "required": false; }; "dataset": { "alias": "dataset"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; }, { "selected": "selected"; }, never, never, true, never>;
5012
5111
  }
5013
5112
 
5014
- declare const tableItemsFixture: {
5015
- items: DataItem[];
5016
- properties: PropertyInfo[];
5017
- };
5018
- declare const someHabTableItemFixture: {
5019
- items: DataItem[];
5020
- properties: PropertyInfo[];
5021
- };
5022
-
5023
5113
  declare class FigureComponent {
5024
5114
  icon: string;
5025
5115
  title: string;
@@ -5118,16 +5208,34 @@ declare class MapLegendComponent implements OnChanges {
5118
5208
  static ɵcmp: i0.ɵɵComponentDeclaration<MapLegendComponent, "gn-ui-map-legend", never, { "context": { "alias": "context"; "required": false; }; }, { "legendStatusChange": "legendStatusChange"; }, never, never, true, never>;
5119
5209
  }
5120
5210
 
5211
+ type SpatialExtentLayerStyle = NonNullable<MapContextLayerGeojson['style']>;
5212
+ /**
5213
+ * Default style for a spatial-extent layer: a solid black outline over a
5214
+ * translucent grey fill.
5215
+ */
5216
+ declare const DEFAULT_SPATIAL_EXTENT_STYLE: SpatialExtentLayerStyle;
5217
+ /**
5218
+ * Builds a GeoJSON map layer drawing the given spatial extents: each extent is
5219
+ * rendered from its own geometry or, when only a bounding box is available,
5220
+ * from a polygon derived from that box.
5221
+ *
5222
+ * @returns the layer, or `null` when none of the extents can be represented.
5223
+ */
5224
+ declare function createSpatialExtentLayer(extents: DatasetSpatialExtent[], overrides?: {
5225
+ label?: string;
5226
+ clickable?: boolean;
5227
+ style?: SpatialExtentLayerStyle;
5228
+ }): MapContextLayer | null;
5121
5229
  declare function prioritizePageScroll(interactions: Collection<Interaction>): void;
5122
5230
  declare function dragPanCondition(this: DragPan, event: MapBrowserEvent<PointerEvent>): boolean;
5123
5231
  declare function mouseWheelZoomCondition(this: MouseWheelZoom, event: MapBrowserEvent<WheelEvent>): boolean;
5124
5232
 
5125
5233
  declare class SpatialExtentComponent {
5234
+ private _cdr;
5126
5235
  set spatialExtents(value: DatasetSpatialExtent[]);
5127
5236
  spatialExtents$: BehaviorSubject<DatasetSpatialExtent[]>;
5128
5237
  mapContext$: Observable<MapContext>;
5129
5238
  error: string;
5130
- bboxCoordsToGeometry(bbox: [number, number, number, number]): Geometry;
5131
5239
  static ɵfac: i0.ɵɵFactoryDeclaration<SpatialExtentComponent, never>;
5132
5240
  static ɵcmp: i0.ɵɵComponentDeclaration<SpatialExtentComponent, "gn-ui-spatial-extent", never, { "spatialExtents": { "alias": "spatialExtents"; "required": false; }; }, {}, never, never, true, never>;
5133
5241
  }
@@ -5738,7 +5846,8 @@ interface FormFieldConfig {
5738
5846
  }
5739
5847
  type OnlineLinkResourceSpecifier = `onlineResourceType:link`;
5740
5848
  type DatasetDistributionsSpecifier = `onlineResourceType:!link`;
5741
- type FieldModelSpecifier = OnlineLinkResourceSpecifier | DatasetDistributionsSpecifier;
5849
+ type EditableContactDetailsSpecifier = `contact:editableDetails`;
5850
+ type FieldModelSpecifier = OnlineLinkResourceSpecifier | DatasetDistributionsSpecifier | EditableContactDetailsSpecifier;
5742
5851
  type FormFieldComponentName = 'form-field-constraints-shortcuts' | 'form-field-spatial-toggle';
5743
5852
  interface EditorFieldIdentification {
5744
5853
  model?: CatalogRecordKeys;
@@ -5748,20 +5857,20 @@ interface EditorFieldIdentification {
5748
5857
  interface EditorField extends EditorFieldIdentification {
5749
5858
  formFieldConfig: FormFieldConfig;
5750
5859
  gridColumnSpan?: number;
5751
- hidden?: boolean;
5860
+ hidden?: boolean | EditorFieldExpression;
5752
5861
  onSaveProcess?: EditorFieldExpression;
5753
5862
  }
5754
5863
  interface EditorSection {
5755
5864
  labelKey?: string;
5756
5865
  descriptionKey?: string;
5757
- hidden: boolean;
5866
+ hidden?: boolean | EditorFieldExpression;
5758
5867
  fields: EditorField[];
5759
5868
  }
5760
5869
  interface EditorFieldPage {
5761
5870
  labelKey?: string;
5762
5871
  sections: EditorSection[];
5763
5872
  }
5764
- interface EditorConfig {
5873
+ interface EditorConfig$1 {
5765
5874
  pages: EditorFieldPage[];
5766
5875
  }
5767
5876
 
@@ -5796,7 +5905,11 @@ declare const updateRecordLanguages: _ngrx_store.ActionCreator<"[Editor] Update
5796
5905
  otherLanguages: LanguageCode[];
5797
5906
  } & _ngrx_store.Action<"[Editor] Update record languages">>;
5798
5907
  declare const markRecordAsChanged: _ngrx_store.ActionCreator<"[Editor] Mark record as changed", () => _ngrx_store.Action<"[Editor] Mark record as changed">>;
5799
- declare const saveRecord: _ngrx_store.ActionCreator<"[Editor] Save record", () => _ngrx_store.Action<"[Editor] Save record">>;
5908
+ declare const saveRecord: _ngrx_store.ActionCreator<"[Editor] Save record", (props: {
5909
+ publish: boolean;
5910
+ }) => {
5911
+ publish: boolean;
5912
+ } & _ngrx_store.Action<"[Editor] Save record">>;
5800
5913
  declare const saveRecordSuccess: _ngrx_store.ActionCreator<"[Editor] Save record success", () => _ngrx_store.Action<"[Editor] Save record success">>;
5801
5914
  declare const saveRecordFailure: _ngrx_store.ActionCreator<"[Editor] Save record failure", (props: {
5802
5915
  error: SaveRecordError;
@@ -5806,9 +5919,9 @@ declare const saveRecordFailure: _ngrx_store.ActionCreator<"[Editor] Save record
5806
5919
  declare const draftSaveSuccess: _ngrx_store.ActionCreator<"[Editor] Draft save success", () => _ngrx_store.Action<"[Editor] Draft save success">>;
5807
5920
  declare const undoRecordDraft: _ngrx_store.ActionCreator<"[Editor] Undo record draft", () => _ngrx_store.Action<"[Editor] Undo record draft">>;
5808
5921
  declare const setEditorConfiguration: _ngrx_store.ActionCreator<"[Editor] Set editor configuration", (props: {
5809
- configuration: EditorConfig;
5922
+ configuration: EditorConfig$1;
5810
5923
  }) => {
5811
- configuration: EditorConfig;
5924
+ configuration: EditorConfig$1;
5812
5925
  } & _ngrx_store.Action<"[Editor] Set editor configuration">>;
5813
5926
  declare const setCurrentPage: _ngrx_store.ActionCreator<"[Editor] Set current page", (props: {
5814
5927
  page: number;
@@ -5848,6 +5961,11 @@ declare const canEditRecord: _ngrx_store.ActionCreator<"[Editor] User can edit r
5848
5961
  }) => {
5849
5962
  canEditRecord: boolean;
5850
5963
  } & _ngrx_store.Action<"[Editor] User can edit record">>;
5964
+ declare const setFocusedField: _ngrx_store.ActionCreator<"[Editor] Set focused field", (props: {
5965
+ model: CatalogRecordKeys;
5966
+ }) => {
5967
+ model: CatalogRecordKeys;
5968
+ } & _ngrx_store.Action<"[Editor] Set focused field">>;
5851
5969
 
5852
5970
  declare class EditorFacade {
5853
5971
  private readonly store;
@@ -5861,20 +5979,23 @@ declare class EditorFacade {
5861
5979
  currentSections$: rxjs.Observable<geonetwork_ui.EditorSectionWithValues[]>;
5862
5980
  draftSaveSuccess$: rxjs.Observable<_ngrx_store.Action<"[Editor] Draft save success">>;
5863
5981
  currentPage$: rxjs.Observable<number>;
5864
- editorConfig$: rxjs.Observable<EditorConfig>;
5982
+ editorConfig$: rxjs.Observable<EditorConfig$1>;
5865
5983
  hasRecordChanged$: rxjs.Observable<{
5866
5984
  user: string;
5867
5985
  date: Date;
5868
5986
  }>;
5869
5987
  isPublished$: rxjs.Observable<boolean>;
5870
5988
  canEditRecord$: rxjs.Observable<boolean>;
5989
+ focusedField$: rxjs.Observable<CatalogRecordKeys>;
5871
5990
  openRecord(record: CatalogRecord, recordSource: string): void;
5872
5991
  saveRecord(): void;
5992
+ saveAndPublishRecord(): void;
5873
5993
  undoRecordDraft(): void;
5874
5994
  updateRecordField(field: string, value: unknown): void;
5875
5995
  updateRecordLanguages(defaultLanguage: LanguageCode, otherLanguages: LanguageCode[]): void;
5876
- setConfiguration(configuration: EditorConfig): void;
5996
+ setConfiguration(configuration: EditorConfig$1): void;
5877
5997
  setCurrentPage(page: number): void;
5998
+ setFocusedField(model: CatalogRecordKeys): void;
5878
5999
  setFieldVisibility(field: EditorFieldIdentification, visible: boolean): void;
5879
6000
  checkHasRecordChanged(record: CatalogRecord): void;
5880
6001
  isPublished(isPublished: boolean): void;
@@ -5898,7 +6019,7 @@ interface EditorState {
5898
6019
  saving: boolean;
5899
6020
  saveError: SaveRecordError | null;
5900
6021
  changedSinceSave: boolean;
5901
- editorConfig: EditorConfig;
6022
+ editorConfig: EditorConfig$1;
5902
6023
  currentPage: number;
5903
6024
  hasRecordChanged: {
5904
6025
  user: string;
@@ -5919,7 +6040,7 @@ declare const selectRecordSource: _ngrx_store.MemoizedSelector<object, string, (
5919
6040
  declare const selectRecordSaving: _ngrx_store.MemoizedSelector<object, boolean, (s1: EditorState) => boolean>;
5920
6041
  declare const selectRecordSaveError: _ngrx_store.MemoizedSelector<object, Error, (s1: EditorState) => Error>;
5921
6042
  declare const selectRecordChangedSinceSave: _ngrx_store.MemoizedSelector<object, boolean, (s1: EditorState) => boolean>;
5922
- declare const selectEditorConfig: _ngrx_store.MemoizedSelector<object, EditorConfig, (s1: EditorState) => EditorConfig>;
6043
+ declare const selectEditorConfig: _ngrx_store.MemoizedSelector<object, EditorConfig$1, (s1: EditorState) => EditorConfig$1>;
5923
6044
  declare const selectCurrentPage: _ngrx_store.MemoizedSelector<object, number, (s1: EditorState) => number>;
5924
6045
  declare const selectRecordSections: _ngrx_store.MemoizedSelector<object, EditorSectionWithValues[], (s1: EditorState) => EditorSectionWithValues[]>;
5925
6046
  declare const selectHasRecordChanged: _ngrx_store.MemoizedSelector<object, {
@@ -5957,18 +6078,20 @@ declare class ImportRecordComponent {
5957
6078
  static ɵcmp: i0.ɵɵComponentDeclaration<ImportRecordComponent, "gn-ui-import-record", never, {}, { "closeImportMenu": "closeImportMenu"; }, never, never, true, never>;
5958
6079
  }
5959
6080
 
5960
- declare class MetadataQualityPanelComponent implements OnChanges {
6081
+ declare class MetadataQualityPanelComponent {
6082
+ facade: EditorFacade;
5961
6083
  propsToValidate: ValidatorMapperKeys[];
5962
- propertiesByPage: {
6084
+ propertiesByPage$: rxjs.Observable<{
5963
6085
  label: string;
5964
6086
  value: boolean;
5965
- }[][];
5966
- editorConfig: EditorConfig;
5967
- record: CatalogRecord;
5968
- ngOnChanges(): void;
5969
- getExtraClass(checked: boolean): string;
6087
+ model: CatalogRecordKeys;
6088
+ }[][]>;
6089
+ onCriterionClick(property: {
6090
+ value: boolean;
6091
+ model: CatalogRecordKeys;
6092
+ }): void;
5970
6093
  static ɵfac: i0.ɵɵFactoryDeclaration<MetadataQualityPanelComponent, never>;
5971
- static ɵcmp: i0.ɵɵComponentDeclaration<MetadataQualityPanelComponent, "gn-ui-metadata-quality-panel", never, { "editorConfig": { "alias": "editorConfig"; "required": false; }; "record": { "alias": "record"; "required": false; }; }, {}, never, never, true, never>;
6094
+ static ɵcmp: i0.ɵɵComponentDeclaration<MetadataQualityPanelComponent, "gn-ui-metadata-quality-panel", never, {}, {}, never, never, true, never>;
5972
6095
  }
5973
6096
 
5974
6097
  declare class MultilingualPanelComponent implements OnDestroy {
@@ -6013,6 +6136,14 @@ declare class MultilingualPanelComponent implements OnDestroy {
6013
6136
  static ɵcmp: i0.ɵɵComponentDeclaration<MultilingualPanelComponent, "gn-ui-multilingual-panel", never, { "record": { "alias": "record"; "required": false; }; }, {}, never, never, true, never>;
6014
6137
  }
6015
6138
 
6139
+ declare class FieldFocusDirective {
6140
+ gnUiFieldFocusGlowClass: string;
6141
+ private el;
6142
+ focusField(focusInnerTarget?: boolean): void;
6143
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldFocusDirective, never>;
6144
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FieldFocusDirective, "[gnUiFieldFocus]", ["fieldFocus"], { "gnUiFieldFocusGlowClass": { "alias": "gnUiFieldFocusGlowClass"; "required": false; }; }, {}, never, never, true, never>;
6145
+ }
6146
+
6016
6147
  declare class FormFieldKeywordsComponent {
6017
6148
  private editorFacade;
6018
6149
  value: Keyword[];
@@ -6134,6 +6265,7 @@ declare class FormFieldSpatialExtentComponent {
6134
6265
 
6135
6266
  declare class FormFieldComponent {
6136
6267
  uniqueIdentifier: string;
6268
+ recordKind: RecordKind;
6137
6269
  model: CatalogRecordKeys;
6138
6270
  modelSpecifier: FieldModelSpecifier;
6139
6271
  componentName: FormFieldComponentName;
@@ -6142,6 +6274,7 @@ declare class FormFieldComponent {
6142
6274
  valueChange: EventEmitter<unknown>;
6143
6275
  titleInput: ElementRef;
6144
6276
  isOpenData: boolean;
6277
+ fieldFocus: FieldFocusDirective;
6145
6278
  toggleIsOpenData(event: boolean): void;
6146
6279
  focusTitleInput(): void;
6147
6280
  get withoutWrapper(): boolean;
@@ -6158,7 +6291,7 @@ declare class FormFieldComponent {
6158
6291
  get valueAsResourceIdentifierCode(): string;
6159
6292
  handleResourceIdentifierChange(code: string): void;
6160
6293
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
6161
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "gn-ui-form-field", never, { "uniqueIdentifier": { "alias": "uniqueIdentifier"; "required": false; }; "model": { "alias": "model"; "required": false; }; "modelSpecifier": { "alias": "modelSpecifier"; "required": false; }; "componentName": { "alias": "componentName"; "required": false; }; "config": { "alias": "config"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
6294
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "gn-ui-form-field", never, { "uniqueIdentifier": { "alias": "uniqueIdentifier"; "required": false; }; "recordKind": { "alias": "recordKind"; "required": false; }; "model": { "alias": "model"; "required": false; }; "modelSpecifier": { "alias": "modelSpecifier"; "required": false; }; "componentName": { "alias": "componentName"; "required": false; }; "config": { "alias": "config"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, [{ directive: typeof FieldFocusDirective; inputs: {}; outputs: {}; }]>;
6162
6295
  }
6163
6296
 
6164
6297
  declare const NOT_APPLICABLE_CONSTRAINT: Constraint;
@@ -6182,12 +6315,28 @@ declare class FormFieldTopicsComponent {
6182
6315
  static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldTopicsComponent, "gn-ui-form-field-topics", never, { "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
6183
6316
  }
6184
6317
 
6185
- declare class RecordFormComponent {
6318
+ declare class RecordFormComponent implements OnInit, OnDestroy {
6186
6319
  facade: EditorFacade;
6320
+ notifications: NotificationsService;
6321
+ subscription: Subscription;
6187
6322
  recordUniqueIdentifier$: rxjs.Observable<string>;
6323
+ recordKind$: rxjs.Observable<"dataset" | "service" | "reuse">;
6324
+ focusFieldWithPage$: rxjs.Observable<readonly [CatalogRecordKeys, number, number]>;
6325
+ formFields: Signal<readonly FormFieldComponent[]>;
6326
+ sectionFocusDirectives: Signal<readonly FieldFocusDirective[]>;
6327
+ focusField(model: CatalogRecordKeys, sectionIndex: number): void;
6328
+ ngOnInit(): void;
6329
+ ngOnDestroy(): void;
6188
6330
  handleFieldValueChange(model: CatalogRecordKeys, newValue: EditorFieldValue): void;
6189
6331
  fieldTracker(index: number, field: EditorFieldWithValue): CatalogRecordKeys;
6190
6332
  sectionTracker(index: number, section: EditorSectionWithValues): string;
6333
+ getFieldLocation(model: CatalogRecordKeys): Promise<{
6334
+ page: number;
6335
+ section: number;
6336
+ } | null>;
6337
+ private recordSignal;
6338
+ private expressionCache;
6339
+ evaluateExpression(expressionOrValue: string | EditorFieldValue): Signal<EditorFieldValue>;
6191
6340
  static ɵfac: i0.ɵɵFactoryDeclaration<RecordFormComponent, never>;
6192
6341
  static ɵcmp: i0.ɵɵComponentDeclaration<RecordFormComponent, "gn-ui-record-form", never, {}, {}, never, never, true, never>;
6193
6342
  }
@@ -6267,79 +6416,23 @@ declare class FeatureEditorModule {
6267
6416
  static ɵinj: i0.ɵɵInjectorDeclaration<FeatureEditorModule>;
6268
6417
  }
6269
6418
 
6419
+ interface ISOTopic {
6420
+ value: string;
6421
+ label: string;
6422
+ }
6423
+ declare const DEFAULT_CONFIGURATION: EditorConfig$1;
6270
6424
  /**
6271
- * This file contains the configuration of the fields that will be displayed in the editor.
6272
- * To add a new field, you need to create a new EditorField object in the fields part of this file.
6273
- * Then add it to the corresponding section in the sections part of this file.
6274
- * Finally, add the section to the corresponding page in the pages part of this file.
6275
- */
6276
- /************************************************************
6277
- *************** FIELDS *****************
6278
- ************************************************************
6279
- */
6280
- declare const RECORD_UNIQUE_IDENTIFIER_FIELD: EditorField;
6281
- declare const CONSTRAINTS_SHORTCUTS: EditorField;
6282
- declare const LEGAL_CONSTRAINTS_FIELD: EditorField;
6283
- declare const SECURITY_CONSTRAINTS_FIELD: EditorField;
6284
- declare const OTHER_CONSTRAINTS_FIELD: EditorField;
6285
- declare const RECORD_LICENSE_FIELD: EditorField;
6286
- declare const RECORD_KEYWORDS_FIELD: EditorField;
6287
- declare const RECORD_TOPICS_FIELD: EditorField;
6288
- declare const RECORD_RESOURCE_CREATED_FIELD: EditorField;
6289
- declare const RESOURCE_IDENTIFIER_FIELD: EditorField;
6290
- declare const RECORD_RESOURCE_UPDATED_FIELD: EditorField;
6291
- declare const RECORD_UPDATED_FIELD: EditorField;
6292
- declare const RECORD_UPDATE_FREQUENCY_FIELD: EditorField;
6293
- declare const RECORD_TEMPORAL_EXTENTS_FIELD: EditorField;
6294
- declare const RECORD_TITLE_FIELD: EditorField;
6295
- declare const RECORD_ABSTRACT_FIELD: EditorField;
6296
- declare const CONTACTS_FOR_RESOURCE_FIELD: EditorField;
6297
- declare const CONTACTS: EditorField;
6298
- declare const RECORD_GRAPHICAL_OVERVIEW_FIELD: EditorField;
6299
- declare const RECORD_SPATIAL_TOGGLE_FIELD: EditorField;
6300
- declare const RECORD_SPATIAL_EXTENTS_FIELD: EditorField;
6301
- declare const RECORD_ONLINE_RESOURCES: EditorField;
6302
- declare const RECORD_ONLINE_LINK_RESOURCES: EditorField;
6303
- /************************************************************
6304
- *************** SECTIONS *****************
6305
- ************************************************************
6306
- */
6307
- declare const TITLE_SECTION: EditorSection;
6308
- declare const ABOUT_SECTION: EditorSection;
6309
- declare const GEOGRAPHICAL_COVERAGE_SECTION: EditorSection;
6310
- declare const ASSOCIATED_RESOURCES_SECTION: EditorSection;
6311
- declare const ANNEXES_SECTION: EditorSection;
6312
- declare const CLASSIFICATION_SECTION: EditorSection;
6313
- declare const TOPICS_SECTION: EditorSection;
6314
- declare const USE_AND_ACCESS_CONDITIONS_SECTION: EditorSection;
6315
- declare const DATA_MANAGERS_SECTION: EditorSection;
6316
- declare const METADATA_POINT_OF_CONTACT_SECTION: EditorSection;
6317
- /************************************************************
6318
- *************** PAGES *****************
6319
- ************************************************************
6320
- */
6321
- declare const DEFAULT_CONFIGURATION: EditorConfig;
6322
- /************************************************************
6323
- *************** LICENSES **************
6324
- ************************************************************
6425
+ * OTHER SETTINGS
6325
6426
  */
6326
6427
  declare const AVAILABLE_LICENSES: string[];
6327
6428
  declare const OPEN_DATA_LICENSE = "etalab";
6328
6429
  declare const MAX_UPLOAD_SIZE_MB = 10;
6329
- /************************************************************
6330
- *************** SPATIAL SCOPE ************
6331
- ************************************************************
6332
- */
6333
6430
  declare const SPATIAL_SCOPES: Keyword[];
6334
- /************************************************************
6335
- *************** INSPIRE TOPICS **************
6336
- ************************************************************
6337
- */
6338
- declare const INSPIRE_TOPICS: INSPIRE_topic[];
6431
+ declare const ISO_TOPICS: ISOTopic[];
6339
6432
 
6340
6433
  declare class EditorService {
6341
6434
  private recordsRepository;
6342
- saveRecord(record: CatalogRecord, recordSource: string, fieldsConfig: EditorConfig): Observable<[CatalogRecord, string]>;
6435
+ saveRecord(record: CatalogRecord, recordSource: string, fieldsConfig: EditorConfig$1, publish: boolean): Observable<[CatalogRecord, string]>;
6343
6436
  saveRecordAsDraft(record: CatalogRecord, recordSource: string): Observable<void>;
6344
6437
  undoRecordDraft(record: CatalogRecord): Observable<[CatalogRecord, string, boolean]>;
6345
6438
  hasRecordChangedSinceDraft(localRecord: CatalogRecord): Observable<{
@@ -6534,7 +6627,7 @@ declare class PopoverComponent implements AfterViewInit, OnChanges, OnDestroy {
6534
6627
  private renderer;
6535
6628
  popoverContent: ElementRef;
6536
6629
  content: string | TemplateRef<any>;
6537
- theme: 'light' | 'light-border' | 'translucent' | 'material' | '';
6630
+ theme: 'light' | 'light-border' | 'translucent' | 'material' | 'dark' | '';
6538
6631
  private tippyInstance;
6539
6632
  private view;
6540
6633
  private getContent;
@@ -6579,17 +6672,8 @@ declare class SpinningLoaderComponent {
6579
6672
 
6580
6673
  declare function provideI18n(config?: TranslateModuleConfig, useLocalStorage?: boolean): EnvironmentProviders;
6581
6674
 
6582
- /**
6583
- * This loader will rely on JSON files in the app assets
6584
- * Implements a fallback on default lang if translated labels are empty
6585
- */
6586
- declare class FileTranslateLoader extends TranslateHttpLoader {
6587
- getTranslation(lang: string): rxjs.Observable<{}>;
6588
- }
6589
-
6590
6675
  declare const DEFAULT_LANG = "en";
6591
6676
  declare const LANGUAGE_STORAGE_KEY = "geonetwork-ui-language";
6592
- declare function HttpLoaderFactory(http: HttpClient): FileTranslateLoader;
6593
6677
  declare const TRANSLATE_DEFAULT_CONFIG: TranslateModuleConfig;
6594
6678
  /**
6595
6679
  * This config will print translation keys in the UI directly; used to identify which keys are used
@@ -6603,8 +6687,12 @@ declare class I18nInterceptor implements HttpInterceptor {
6603
6687
  static ɵprov: i0.ɵɵInjectableDeclaration<I18nInterceptor>;
6604
6688
  }
6605
6689
 
6606
- declare class EmbeddedTranslateLoader implements TranslateLoader {
6607
- getTranslation(lang: string): Observable<Record<string, string>>;
6690
+ /**
6691
+ * This loader will rely on JSON files in the app assets
6692
+ * Implements a fallback on default lang if translated labels are empty
6693
+ */
6694
+ declare class FileTranslateLoader extends TranslateHttpLoader {
6695
+ getTranslation(lang: string): rxjs.Observable<{}>;
6608
6696
  }
6609
6697
 
6610
6698
  declare function dropEmptyTranslations(translations: any): {};
@@ -6755,6 +6843,11 @@ interface SearchPreset {
6755
6843
  interface MetadataQualityConfig {
6756
6844
  ENABLED: boolean;
6757
6845
  }
6846
+ type NewRecordStandard = 'iso19139' | 'iso19115-3';
6847
+ interface EditorConfig {
6848
+ NEW_RECORD_DEFAULT_LANGUAGE?: string;
6849
+ NEW_RECORD_STANDARD?: NewRecordStandard;
6850
+ }
6758
6851
  type CustomTranslations = {
6759
6852
  [translationKey: string]: string;
6760
6853
  };
@@ -6774,35 +6867,17 @@ interface SearchConfig {
6774
6867
  FILTER_GEOMETRY?: Geometry;
6775
6868
  }
6776
6869
 
6777
- /**
6778
- * This loader extends the default one based on JSON files but also loads custom translations
6779
- * defined in the app configuration
6780
- * Implements a fallback on default lang if translated labels are empty
6781
- */
6782
- declare class FileWithOverridesTranslateLoader extends FileTranslateLoader {
6783
- getTranslation(lang: string): rxjs.Observable<{}>;
6784
- }
6785
-
6786
6870
  declare function getGlobalConfig(): GlobalConfig;
6787
6871
  declare function getThemeConfig(): ThemeConfig;
6788
6872
  declare function getOptionalMapConfig(): MapConfig | null;
6789
6873
  declare function getOptionalSearchConfig(): SearchConfig | null;
6874
+ declare function getOptionalEditorConfig(): EditorConfig | null;
6790
6875
  declare function getMetadataQualityConfig(): MetadataQualityConfig;
6791
6876
  declare function getCustomTranslations(langCode: string): CustomTranslations;
6792
6877
  declare function loadAppConfig(configUrl?: string): Promise<void>;
6793
6878
  declare function isConfigLoaded(): boolean;
6794
6879
  declare function _reset(): void;
6795
- declare const TRANSLATE_WITH_OVERRIDES_CONFIG: {
6796
- compiler: {
6797
- provide: typeof TranslateCompiler;
6798
- useClass: typeof TranslateMessageFormatCompiler;
6799
- };
6800
- loader: {
6801
- provide: typeof TranslateLoader;
6802
- useFactory: (http: HttpClient) => FileWithOverridesTranslateLoader;
6803
- deps: (typeof HttpClient)[];
6804
- };
6805
- };
6880
+ declare const TRANSLATE_WITH_OVERRIDES_CONFIG: TranslateModuleConfig;
6806
6881
 
6807
6882
  declare const okAppConfigFixture: () => string;
6808
6883
  declare const appConfigWithTranslationFixture: () => string;
@@ -6815,6 +6890,6 @@ declare const unrecognizedKeysConfigFixture: () => string;
6815
6890
 
6816
6891
  declare function getMapContextLayerFromConfig(config: LayerConfig): MapContextLayer;
6817
6892
 
6818
- export { ABOUT_SECTION, ADD_RESULTS, ADD_SEARCH, ANNEXES_SECTION, ASSOCIATED_RESOURCES_SECTION, AVAILABLE_LICENSES, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CHART_TYPE_VALUES, CLASSIFICATION_SECTION, CLEAR_ERROR, CLEAR_RESULTS, CONSTRAINTS_SHORTCUTS, CONTACTS, CONTACTS_FOR_RESOURCE_FIELD, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DATA_MANAGERS_SECTION, DEFAULT_CONFIGURATION, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DISABLE_AUTH, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangeInputsComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalLinkCardComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetItemComponent, FacetListComponent, FacetsContainerComponent, FavoriteStarComponent, FavoritesService, FeatureCatalogListComponent, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldTopicsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEOGRAPHICAL_COVERAGE_SECTION, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GnUiHumanizeDateDirective, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, INSPIRE_TOPICS, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LEGAL_CONSTRAINTS_FIELD, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, MAX_UPLOAD_SIZE_MB, METADATA_LANGUAGE, METADATA_POINT_OF_CONTACT_SECTION, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions_d as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataDoiComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, OPEN_DATA_LICENSE, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OTHER_CONSTRAINTS_FIELD, OnlineResourceCardComponent, OnlineServiceResourceInputComponent, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OrganizationsServiceInterface, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PlatformServiceInterface, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_ABSTRACT_FIELD, RECORD_DATASET_URL_TOKEN, RECORD_GRAPHICAL_OVERVIEW_FIELD, RECORD_KEYWORDS_FIELD, RECORD_LICENSE_FIELD, RECORD_ONLINE_LINK_RESOURCES, RECORD_ONLINE_RESOURCES, RECORD_RESOURCE_CREATED_FIELD, RECORD_RESOURCE_UPDATED_FIELD, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_URL_TOKEN, RECORD_SPATIAL_EXTENTS_FIELD, RECORD_SPATIAL_TOGGLE_FIELD, RECORD_TEMPORAL_EXTENTS_FIELD, RECORD_TITLE_FIELD, RECORD_TOPICS_FIELD, RECORD_UNIQUE_IDENTIFIER_FIELD, RECORD_UPDATED_FIELD, RECORD_UPDATE_FREQUENCY_FIELD, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESOURCE_IDENTIFIER_FIELD, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordStatusValues, RecordsMetricsComponent, RecordsRepositoryInterface, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, ReusePresentationForms, RoleLabels, RoleValues, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SECURITY_CONSTRAINTS_FIELD, SETTINGS_URL, 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, SPATIAL_SCOPES, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortByEnum, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StacItemsResultGridComponent, StacViewComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TITLE_SECTION, TOPICS_SECTION, TRANSLATE_DEBUG_CONFIG, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, USE_AND_ACCESS_CONDITIONS_SECTION, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getAllKeysValidator, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryBoundingBox, getGeometryFromGeoJSON, getGlobalConfig, getIsMobile, getJsonDataItemsProxy, getLayers, getLinkId, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReusePresentationForm, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, handleScrollOnNavigation, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, organizationsServiceFactory, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setEditorConfiguration, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, toLang2, toLang3, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateFrequencyCodeValues, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
6819
- export type { Aggregation, AggregationBuckets, AggregationCounts, AggregationParams, AggregationResult, AggregationSort, AggregationTypes, Aggregations, AggregationsParams, AggregationsResults, AggregationsTypes, AutocompleteItem, BaseRecord, BoundingBox, Bucket, CatalogRecord, CatalogRecordKeys, CatalogSource, Choice$1 as Choice, ConfirmationDialogData, Constraint, ConstraintTranslations, CreateStyleOptions, CustomTranslations, CustomTranslationsAllLanguages, DataItem, DatasetDownloadDistribution, DatasetFeatureAttribute, DatasetFeatureAttributeValue, DatasetFeatureCatalog, DatasetFeatureType, DatasetOnlineResource, DatasetRecord, DatasetServiceDistribution, DatasetSpatialExtent, DatasetTemporalExtent, DatavizChartConfigModel, DatavizConfigModel, DateRange, DropdownChoice, EditorFieldWithValue, EditorPartialState, EditorSectionWithValues, EditorState, EsQueryFieldsPriorityType, EsRequestAggTerm, EsRequestAggTermPatch, EsRequestSource, EsResourceType, EsResourceTypeValues, EsSearchParams, EsSearchResponse, EsTemplateType, EsTemplateValues, FacetPath, FacetSelectEvent, Field, FieldAggregation, FieldAvailableValue, FieldFilter$1 as FieldFilter, FieldFilterByExpression, FieldFilterByRange, FieldFilterByValues, FieldFilters, FieldName$1 as FieldName, FieldSort$1 as FieldSort, FieldTranslation, FieldType, FieldValue, FieldValues, FileFormat, FilterAggregationParams, FilterQuery, FiltersAggregationParams, FiltersAggregationResult, FiltersBucket, FormatProduit, FormatSortieProduit, GlobalConfig, Gn4Record, Gn4RecordRelated, Gn4SearchResults, GpfApiDlTermBucket, GraphicOverview, HasPath, HistogramAggregationParams, HistogramAggregationResult, HistogramBucket, INSPIRE_topic, Individual, InputChartType, Iso3Langs, Keyword, KeywordApiResponse, KeywordTranslations, Label, LanguageCode, LanguageCode2, LanguageCode3, LanguageCodeFactory, LanguageCodeLike, LayerConfig, Link, ListChoice, ListUrl, MapConfig, MapPartialState, MapState, MetadataContact, MetadataObject, MetadataQualityConfig, MetadataQualityItem, ModalDialogData, ModelBlock, ModelItem, ModelTranslations, NestedAggregationResult, OnlineLinkResource, OnlineResource, OnlineResourceTranslations, OnlineResourceType, Organization, OrganizationTranslations, OrganizationsStrategy, Paginable, PropertyInfo, QueryRange, QueryString, RecordAsXml, RecordAttachment, RecordKind, RecordMetric, RecordStatus, RecordTranslations, RequestFields, ResourceIdentifier$1 as ResourceIdentifier, ResultsLayoutConfigModel, ResultsListShowMoreStrategy, ReuseRecord, ReuseType, Role, RouterConfigModel, SaveRecordError, SearchActions, SearchConfig, SearchError, SearchFilters, SearchParams, SearchPreset, SearchResults, SearchRouteParams, SearchServiceI, SearchState, SearchStateParams, SearchStateSearch, ServiceEndpoint, ServiceOnlineResource, ServiceProtocol, ServiceRecord, SortByField, SortOrder, SortParams, SourceWithUnknownProps, SpatialExtentTranslations, SpatialRepresentationType, StacFilterState, StyleByGeometryType, SupportedType, SwitchToggleOption, TableItemId, TableItemModel, TermBucket, TermsAggregationParams, TermsAggregationResult, ThemeConfig, Thesaurus, ThesaurusApiResponse, UpdateFrequency, UpdateFrequencyCode, UpdateFrequencyCustom, UploadEvent, UserFeedback, UserFeedbackViewModel, ValidatorMapperKeys };
6893
+ export { ADD_RESULTS, ADD_SEARCH, AVAILABLE_LICENSES, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CHART_TYPE_VALUES, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContactDetailsComponent, ContactPillComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_CONFIGURATION, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RECORD_CONVERTER, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_SPATIAL_EXTENT_STYLE, DISABLE_AUTH, DISABLE_DRAFT, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangeInputsComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalLinkCardComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetItemComponent, FacetListComponent, FacetsContainerComponent, FavoriteStarComponent, FavoritesService, FeatureCatalogListComponent, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldFocusDirective, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldTopicsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GnUiHumanizeDateDirective, GpfApiDlComponent, GravatarService, I18nInterceptor, ISO_TOPICS, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, MAX_UPLOAD_SIZE_MB, METADATA_LANGUAGE, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions_d as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataDoiComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, OPEN_DATA_LICENSE, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OnlineResourceCardComponent, OnlineServiceResourceInputComponent, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OrganizationsServiceInterface, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PlatformServiceInterface, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_DATASET_URL_TOKEN, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_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_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordStatusValues, RecordsMetricsComponent, RecordsRepositoryInterface, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, ReusePresentationForms, RoleLabels, RoleValues, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, 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, SPATIAL_SCOPES, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortByEnum, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StacItemsResultGridComponent, StacViewComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEBUG_CONFIG, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, bboxToPolygon, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, createSpatialExtentLayer, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getAddressLines, getAllKeysValidator, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryBoundingBox, getGeometryFromGeoJSON, getGlobalConfig, getIndividualDisplayName, getIsMobile, getJsonDataItemsProxy, getKeywordHierarchyPath, getLayers, getLinkId, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalEditorConfig, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReusePresentationForm, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, handleScrollOnNavigation, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, organizationsServiceFactory, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setEditorConfiguration, setFieldVisibility, setFocusedField, setSelectedFeatures, setTextContent, sortByFromString, sortByToString, sortByToStrings, spatialExtentToGeometry, spatialExtentsToFeatureCollection, stripHtml, stripNamespace, toDate, toIndividual, toLang2, toLang3, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateFrequencyCodeValues, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
6894
+ export type { Aggregation, AggregationBuckets, AggregationCounts, AggregationParams, AggregationResult, AggregationSort, AggregationTypes, Aggregations, AggregationsParams, AggregationsResults, AggregationsTypes, AutocompleteItem, BaseRecord, BoundingBox, Bucket, CatalogRecord, CatalogRecordKeys, CatalogSource, Choice$1 as Choice, ConfirmationDialogData, Constraint, ConstraintTranslations, CreateStyleOptions, CustomTranslations, CustomTranslationsAllLanguages, DataItem, DatasetDownloadDistribution, DatasetFeatureAttribute, DatasetFeatureAttributeValue, DatasetFeatureCatalog, DatasetFeatureType, DatasetOnlineResource, DatasetRecord, DatasetServiceDistribution, DatasetSpatialExtent, DatasetTemporalExtent, DatavizChartConfigModel, DatavizConfigModel, DateRange, DropdownChoice, EditorConfig, EditorFieldWithValue, EditorPartialState, EditorSectionWithValues, EditorState, EsQueryFieldsPriorityType, EsRequestAggTerm, EsRequestAggTermPatch, EsRequestSource, EsResourceType, EsResourceTypeValues, EsSearchParams, EsSearchResponse, EsTemplateType, EsTemplateValues, FacetPath, FacetSelectEvent, Field, FieldAggregation, FieldAvailableValue, FieldFilter$1 as FieldFilter, FieldFilterByExpression, FieldFilterByRange, FieldFilterByValues, FieldFilters, FieldName$1 as FieldName, FieldSort$1 as FieldSort, FieldTranslation, FieldType, FieldValue, FieldValues, FileFormat, FilterAggregationParams, FilterQuery, FiltersAggregationParams, FiltersAggregationResult, FiltersBucket, FormatProduit, FormatSortieProduit, GlobalConfig, Gn4Record, Gn4RecordRelated, Gn4SearchResults, GpfApiDlTermBucket, GraphicOverview, HasPath, HistogramAggregationParams, HistogramAggregationResult, HistogramBucket, ISOTopic, Individual, InputChartType, Iso3Langs, Keyword, KeywordApiResponse, KeywordTranslations, KeywordTree, Label, LanguageCode, LanguageCode2, LanguageCode3, LanguageCodeFactory, LanguageCodeLike, LayerConfig, Link, ListChoice, ListUrl, MapConfig, MapPartialState, MapState, MetadataContact, MetadataObject, MetadataQualityConfig, MetadataQualityItem, ModalDialogData, ModelBlock, ModelItem, ModelTranslations, NestedAggregationResult, NewRecordStandard, OnlineLinkResource, OnlineResource, OnlineResourceTranslations, OnlineResourceType, Organization, OrganizationTranslations, OrganizationsStrategy, Paginable, PropertyInfo, QueryRange, QueryString, RecordAsXml, RecordAttachment, RecordKind, RecordMetric, RecordStatus, RecordTranslations, RequestFields, ResourceIdentifier$1 as ResourceIdentifier, ResultsLayoutConfigModel, ResultsListShowMoreStrategy, ReuseRecord, ReuseType, Role, RouterConfigModel, SaveRecordError, SearchActions, SearchConfig, SearchError, SearchFilters, SearchParams, SearchPreset, SearchResults, SearchRouteParams, SearchServiceI, SearchState, SearchStateParams, SearchStateSearch, ServiceEndpoint, ServiceOnlineResource, ServiceProtocol, ServiceRecord, SortByField, SortOrder, SortParams, SourceRecord, SourceWithUnknownProps, SpatialExtentLayerStyle, SpatialExtentTranslations, SpatialRepresentationType, StacFilterState, StyleByGeometryType, SupportedType, SwitchToggleOption, TableItemId, TableItemModel, TermBucket, TermsAggregationParams, TermsAggregationResult, ThemeConfig, Thesaurus, ThesaurusApiResponse, UpdateFrequency, UpdateFrequencyCode, UpdateFrequencyCustom, UploadEvent, UserFeedback, UserFeedbackViewModel, ValidatorMapperKeys };
6820
6895
  //# sourceMappingURL=index.d.ts.map