geonetwork-ui 2.7.0-dev.7a5d403cf → 2.7.0-dev.7cec835f7

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 (61) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  8. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  9. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  10. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +9 -10
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  12. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  13. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  16. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  17. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  18. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  19. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  20. package/fesm2022/geonetwork-ui.mjs +96 -497
  21. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  22. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  23. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  24. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  25. package/libs/api/repository/src/index.d.ts +1 -1
  26. package/libs/api/repository/src/index.d.ts.map +1 -1
  27. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  28. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  29. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  30. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  31. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  32. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  33. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  34. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  37. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  38. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  39. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  40. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  41. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  42. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  43. package/src/libs/api/repository/src/index.ts +1 -1
  44. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  45. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  46. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  47. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  48. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  49. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
  50. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  51. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  52. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  53. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  54. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  55. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  56. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  57. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  58. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  59. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  60. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  61. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -926,21 +926,33 @@ function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
926
926
  : null;
927
927
  }
928
928
 
929
+ /**
930
+ * Taken from https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
931
+ * Note: some languages have multiple 3-char codes, like 'fre' and 'fra'; in that case, the one to be used
932
+ * in priority is the one defined last
933
+ */
929
934
  const LANG_3_TO_2_MAPPER = {
930
935
  eng: 'en',
936
+ nld: 'nl', // duplicate for "dut"
931
937
  dut: 'nl',
938
+ fra: 'fr', // duplicate for "fre"
932
939
  fre: 'fr',
940
+ deu: 'de', // duplicate for "ger"
933
941
  ger: 'de',
934
942
  kor: 'ko',
935
943
  spa: 'es',
944
+ ces: 'cs', // duplicate for "cze"
936
945
  cze: 'cs',
937
946
  cat: 'ca',
938
947
  fin: 'fi',
948
+ isl: 'is', // duplicate for "ice"
939
949
  ice: 'is',
940
950
  ita: 'it',
941
951
  por: 'pt',
942
952
  rus: 'ru',
953
+ zho: 'zh', // duplicate for "chi"
943
954
  chi: 'zh',
955
+ slk: 'sk', // duplicate for "slo"
944
956
  slo: 'sk',
945
957
  roh: 'rm',
946
958
  ara: 'ar',
@@ -951,8 +963,10 @@ const LANG_3_TO_2_MAPPER = {
951
963
  tur: 'tr',
952
964
  arm: 'hy',
953
965
  aze: 'az',
966
+ kat: 'ka', // duplicate for "geo"
954
967
  geo: 'ka',
955
968
  ukr: 'uk',
969
+ cym: 'cy', // duplicate for "wel"
956
970
  wel: 'cy',
957
971
  };
958
972
  const LANGUAGE_NAMES = {
@@ -987,15 +1001,42 @@ const LANGUAGE_NAMES = {
987
1001
  const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce((mapperObject, langEntry) => {
988
1002
  return { ...mapperObject, [langEntry[1]]: langEntry[0] };
989
1003
  }, {});
990
- function getLang3FromLang2(lang2) {
991
- return LANG_2_TO_3_MAPPER[lang2] ?? lang2;
992
- }
993
- function getLang2FromLang3(lang3) {
994
- return LANG_3_TO_2_MAPPER[lang3] ?? lang3;
1004
+ /**
1005
+ * Converts a language code in any format to the ISO 639-2 format (3 characters)
1006
+ * Returns the given string if the corresponding language code could not be recognized
1007
+ */
1008
+ function toLang3(lang) {
1009
+ if (!lang) {
1010
+ // also handle falsy values just in case
1011
+ return lang;
1012
+ }
1013
+ if (lang.length === 3) {
1014
+ return LANG_2_TO_3_MAPPER[LANG_3_TO_2_MAPPER[lang.toLowerCase()]] ?? lang;
1015
+ }
1016
+ const lang2 = lang.toLowerCase().substring(0, 2);
1017
+ return LANG_2_TO_3_MAPPER[lang2] ?? lang;
995
1018
  }
996
- function getLocalizedIndexKey(lang2) {
997
- const lang3 = getLang3FromLang2(lang2);
998
- return lang3 ? `lang${lang3}` : null;
1019
+ /**
1020
+ * Converts a language code in any format to the ISO 639-1 format (2 characters)
1021
+ * Returns the given string if the corresponding language code could not be recognized
1022
+ */
1023
+ function toLang2(lang) {
1024
+ if (!lang) {
1025
+ // also handle falsy values just in case
1026
+ return lang;
1027
+ }
1028
+ if (lang.length === 3) {
1029
+ return LANG_3_TO_2_MAPPER[lang.toLowerCase()] ?? lang;
1030
+ }
1031
+ const lang2 = lang.toLowerCase().substring(0, 2);
1032
+ if (lang2 in LANG_2_TO_3_MAPPER) {
1033
+ return lang2;
1034
+ }
1035
+ if (lang.match(/[a-z]{2}_[A-Z]{2}/)) {
1036
+ // remove locale code even if the language code is not known
1037
+ return lang2;
1038
+ }
1039
+ return lang;
999
1040
  }
1000
1041
  marker('language.en');
1001
1042
  marker('language.nl');
@@ -1530,10 +1571,10 @@ function readSpatialExtents$1(rootEl) {
1530
1571
  }
1531
1572
  function readOtherLanguages$1(rootEl) {
1532
1573
  const defaultLanguage = readDefaultLanguage$2(rootEl);
1533
- return pipe(findChildrenElement('gmd:locale', false), mapArray(pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => getLang2FromLang3(lang?.toLowerCase()) ?? lang))), map((languages) => languages.filter((lang) => lang !== null)), map((languages) => (languages.length ? languages : [defaultLanguage])))(rootEl);
1574
+ return pipe(findChildrenElement('gmd:locale', false), mapArray(pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => toLang2(lang?.toLowerCase()) ?? lang))), map((languages) => languages.filter((lang) => lang !== null)), map((languages) => (languages.length ? languages : [defaultLanguage])))(rootEl);
1534
1575
  }
1535
1576
  function readDefaultLanguage$2(rootEl) {
1536
- return pipe(findChildElement('gmd:language', false), findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? getLang2FromLang3(lang.toLowerCase()) : null)))(rootEl);
1577
+ return pipe(findChildElement('gmd:language', false), findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? toLang2(lang.toLowerCase()) : null)))(rootEl);
1537
1578
  }
1538
1579
  function readResourceIdentifier(rootEl) {
1539
1580
  return pipe(findIdentification(), findNestedElement('gmd:citation', 'gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
@@ -2033,12 +2074,12 @@ function writeLanguages(record, rootEl) {
2033
2074
  if (!record.otherLanguages?.length) {
2034
2075
  return;
2035
2076
  }
2036
- const createLanguageEl = (lang) => pipe(createNestedElement('gmd:locale', 'gmd:PT_Locale'), writeAttribute('id', lang.toUpperCase()), createNestedChild('gmd:languageCode', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', getLang3FromLang2(lang) ?? lang));
2077
+ const createLanguageEl = (lang) => pipe(createNestedElement('gmd:locale', 'gmd:PT_Locale'), writeAttribute('id', lang.toUpperCase()), createNestedChild('gmd:languageCode', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', toLang3(lang) ?? lang));
2037
2078
  // add new languages (only if other than default one)
2038
2079
  appendChildren(createLanguageEl(record.defaultLanguage), ...record.otherLanguages.map(createLanguageEl))(rootEl);
2039
2080
  }
2040
2081
  function writeDefaultLanguage$1(record, rootEl) {
2041
- const lang3 = getLang3FromLang2(record.defaultLanguage.toLowerCase());
2082
+ const lang3 = toLang3(record.defaultLanguage.toLowerCase());
2042
2083
  return pipe(findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3))(rootEl);
2043
2084
  }
2044
2085
  function writeResourceIdentifier(record, rootEl) {
@@ -2478,7 +2519,7 @@ function readOnlineResources$1(rootEl) {
2478
2519
  return pipe(findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'), mapArray(getOnlineResources), flattenArray())(rootEl);
2479
2520
  }
2480
2521
  function readLocaleElement() {
2481
- return pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => getLang2FromLang3(lang?.toLowerCase()) ?? lang));
2522
+ return pipe(findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => toLang2(lang?.toLowerCase()) ?? lang));
2482
2523
  }
2483
2524
  function readDefaultLanguage$1(rootEl) {
2484
2525
  return pipe(findChildElement('mdb:defaultLocale', false), readLocaleElement())(rootEl);
@@ -2617,7 +2658,7 @@ function writeOnlineResources(record, rootEl) {
2617
2658
  });
2618
2659
  }
2619
2660
  function writeLocaleElement(language) {
2620
- const lang3 = getLang3FromLang2(language.toLowerCase()) ?? language;
2661
+ const lang3 = toLang3(language.toLowerCase()) ?? language;
2621
2662
  return pipe(findChildOrCreate('lan:PT_Locale'), writeAttribute('id', language.toUpperCase()), findNestedChildOrCreate('lan:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3));
2622
2663
  }
2623
2664
  function writeDefaultLanguage(record, rootEl) {
@@ -3122,11 +3163,8 @@ function readDefaultLanguage(dataStore, recordNode) {
3122
3163
  if (!statements.length)
3123
3164
  return null;
3124
3165
  const languageNode = statements[0].object;
3125
- let language = languageNode.value.split('/').pop().toLowerCase();
3126
- if (language.length === 3) {
3127
- language = getLang2FromLang3(language) ?? language;
3128
- }
3129
- return language.substring(0, 2);
3166
+ const language = languageNode.value.split('/').pop().toLowerCase();
3167
+ return toLang2(language) ?? language;
3130
3168
  }
3131
3169
 
3132
3170
  /**
@@ -23917,7 +23955,7 @@ class MetadataUrlService {
23917
23955
  }
23918
23956
  getUrl(uuid, apiPath = this.apiConfiguration.basePath) {
23919
23957
  const prefix = `${apiPath}/../`;
23920
- return `${prefix}${getLang3FromLang2(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23958
+ return `${prefix}${toLang3(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23921
23959
  }
23922
23960
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataUrlService, deps: [{ token: i1$1.TranslateService }, { token: Configuration }], target: i0.ɵɵFactoryTarget.Injectable }); }
23923
23961
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataUrlService, providedIn: 'root' }); }
@@ -23946,15 +23984,15 @@ class Gn4FieldMapper {
23946
23984
  qualityScore: (output, source) => this.addExtra({ qualityScore: selectField(source, 'qualityScore') }, output),
23947
23985
  resourceTitleObject: (output, source) => ({
23948
23986
  ...output,
23949
- title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.lang3), 'no title'),
23987
+ title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.getLocalizedIndexKey), 'no title'),
23950
23988
  }),
23951
23989
  resourceAbstractObject: (output, source) => ({
23952
23990
  ...output,
23953
- abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.lang3), 'no title'),
23991
+ abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.getLocalizedIndexKey), 'no title'),
23954
23992
  }),
23955
23993
  overview: (output, source) => {
23956
23994
  const firstOverview = getFirstValue(selectField(source, 'overview'));
23957
- const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.lang3);
23995
+ const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.getLocalizedIndexKey);
23958
23996
  return {
23959
23997
  ...output,
23960
23998
  overviews: [
@@ -23969,7 +24007,7 @@ class Gn4FieldMapper {
23969
24007
  ...output,
23970
24008
  topics: [
23971
24009
  ...(output.topics || []),
23972
- ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.lang3)),
24010
+ ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.getLocalizedIndexKey)),
23973
24011
  ],
23974
24012
  }),
23975
24013
  cl_status: (output, source) => ({
@@ -24006,7 +24044,7 @@ class Gn4FieldMapper {
24006
24044
  }),
24007
24045
  resourceLanguage: (output, source) => {
24008
24046
  const langList = getAsArray(selectField(source, 'resourceLanguage'));
24009
- const languages = langList.map(getLang2FromLang3);
24047
+ const languages = langList.map(toLang2);
24010
24048
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null; // set the first language as main one as fallback
24011
24049
  return {
24012
24050
  ...output,
@@ -24015,7 +24053,7 @@ class Gn4FieldMapper {
24015
24053
  },
24016
24054
  otherLanguage: (output, source) => {
24017
24055
  const langList = getAsArray(selectField(source, 'otherLanguage'));
24018
- const languages = langList.map(getLang2FromLang3);
24056
+ const languages = langList.map(toLang2);
24019
24057
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null;
24020
24058
  const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
24021
24059
  return {
@@ -24027,7 +24065,7 @@ class Gn4FieldMapper {
24027
24065
  const language = selectField(source, 'mainLanguage');
24028
24066
  return {
24029
24067
  ...output,
24030
- defaultLanguage: language ? getLang2FromLang3(language) : null,
24068
+ defaultLanguage: language ? toLang2(language) : null,
24031
24069
  };
24032
24070
  },
24033
24071
  link: (output, source) => {
@@ -24043,7 +24081,7 @@ class Gn4FieldMapper {
24043
24081
  contact: (output, source) => ({
24044
24082
  ...output,
24045
24083
  contacts: [
24046
- mapContact(getFirstValue(selectField(source, 'contact')), this.lang3),
24084
+ mapContact(getFirstValue(selectField(source, 'contact')), this.getLocalizedIndexKey),
24047
24085
  ],
24048
24086
  }),
24049
24087
  contactForResource: (output, source) => ({
@@ -24053,7 +24091,7 @@ class Gn4FieldMapper {
24053
24091
  Array.isArray(output.contactsForResource)
24054
24092
  ? output.contactsForResource
24055
24093
  : []),
24056
- ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.lang3)),
24094
+ ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.getLocalizedIndexKey)),
24057
24095
  ],
24058
24096
  }),
24059
24097
  sourceCatalogue: (output, source) => {
@@ -24063,7 +24101,7 @@ class Gn4FieldMapper {
24063
24101
  },
24064
24102
  allKeywords: (output, source) => ({
24065
24103
  ...output,
24066
- keywords: mapKeywords(selectField(source, 'allKeywords'), this.lang3),
24104
+ keywords: mapKeywords(selectField(source, 'allKeywords'), this.getLocalizedIndexKey),
24067
24105
  }),
24068
24106
  inspireTheme: (output, source) => ({
24069
24107
  ...output,
@@ -24079,7 +24117,7 @@ class Gn4FieldMapper {
24079
24117
  licenseObject: (output, source) => this.constraintField('license', output, getAsArray(selectField(source, 'licenseObject'))),
24080
24118
  lineageObject: (output, source) => ({
24081
24119
  ...output,
24082
- lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
24120
+ lineage: selectTranslatedField(source, 'lineageObject', this.getLocalizedIndexKey),
24083
24121
  }),
24084
24122
  userSavedCount: (output, source) => this.addExtra({
24085
24123
  favoriteCount: parseInt(selectField(source, 'userSavedCount')),
@@ -24153,7 +24191,7 @@ class Gn4FieldMapper {
24153
24191
  spatialExtents: [
24154
24192
  ...spatialExtents,
24155
24193
  ...geoms.map((geom, index) => {
24156
- const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.lang3);
24194
+ const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.getLocalizedIndexKey);
24157
24195
  const geometry = shapes[index] ?? geom;
24158
24196
  return {
24159
24197
  ...(description !== null ? { description } : null),
@@ -24197,7 +24235,7 @@ class Gn4FieldMapper {
24197
24235
  }
24198
24236
  const outputArray = outputField in output ? output[outputField] : [];
24199
24237
  outputArray.push(...constraintArray.map((item) => {
24200
- const text = selectTranslatedValue(item, this.lang3);
24238
+ const text = selectTranslatedValue(item, this.getLocalizedIndexKey);
24201
24239
  const url = getAsUrl(selectField(item, 'link'));
24202
24240
  return {
24203
24241
  text,
@@ -24211,9 +24249,9 @@ class Gn4FieldMapper {
24211
24249
  return result;
24212
24250
  };
24213
24251
  this.mapLink = (sourceLink) => {
24214
- const url = getAsUrl(selectFallback(selectTranslatedField(sourceLink, 'urlObject', this.lang3), selectField(sourceLink, 'url')));
24215
- const name = selectFallback(selectTranslatedField(sourceLink, 'nameObject', this.lang3), selectField(sourceLink, 'name'));
24216
- const description = selectFallback(selectTranslatedField(sourceLink, 'descriptionObject', this.lang3), selectField(sourceLink, 'description'));
24252
+ const url = getAsUrl(selectFallback(selectTranslatedField(sourceLink, 'urlObject', this.getLocalizedIndexKey), selectField(sourceLink, 'url')));
24253
+ const name = selectFallback(selectTranslatedField(sourceLink, 'nameObject', this.getLocalizedIndexKey), selectField(sourceLink, 'name'));
24254
+ const description = selectFallback(selectTranslatedField(sourceLink, 'descriptionObject', this.getLocalizedIndexKey), selectField(sourceLink, 'description'));
24217
24255
  const descriptionLink = selectField(sourceLink, 'descriptionObject');
24218
24256
  const accessRestricted = descriptionLink &&
24219
24257
  'link' in descriptionLink &&
@@ -24269,8 +24307,8 @@ class Gn4FieldMapper {
24269
24307
  extras: { ...(output.extras || {}), ...value },
24270
24308
  });
24271
24309
  }
24272
- get lang3() {
24273
- return getLocalizedIndexKey(this.translateService.currentLang);
24310
+ get getLocalizedIndexKey() {
24311
+ return `lang${toLang3(this.translateService.currentLang)}`;
24274
24312
  }
24275
24313
  getMappingFn(fieldName) {
24276
24314
  return fieldName in this.fields ? this.fields[fieldName] : this.genericField;
@@ -25330,7 +25368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25330
25368
  }] } });
25331
25369
 
25332
25370
  var name = "geonetwork-ui";
25333
- var version = "2.7.0-dev.7a5d403cf";
25371
+ var version = "2.7.0-dev.7cec835f7";
25334
25372
  var engines = {
25335
25373
  node: ">=20"
25336
25374
  };
@@ -25533,11 +25571,9 @@ function updateLanguages(record, defaultLanguage, otherLanguages) {
25533
25571
 
25534
25572
  class ElasticsearchService {
25535
25573
  // we're using getters in case the defined languages change over time
25536
- get lang3() {
25537
- return getLang3FromLang2(this.translateService.currentLang);
25538
- }
25539
25574
  get metadataLang() {
25540
- return this.injector.get(METADATA_LANGUAGE, null);
25575
+ const mdLangValue = this.injector.get(METADATA_LANGUAGE, null);
25576
+ return typeof mdLangValue === 'function' ? mdLangValue() : mdLangValue;
25541
25577
  }
25542
25578
  constructor(translateService, injector) {
25543
25579
  this.translateService = translateService;
@@ -25690,9 +25726,10 @@ class ElasticsearchService {
25690
25726
  }
25691
25727
  getQueryLang() {
25692
25728
  if (this.metadataLang) {
25693
- return this.isCurrentSearchLang()
25694
- ? `lang${this.lang3}`
25695
- : `lang${this.metadataLang}`;
25729
+ const lang3 = toLang3(this.isCurrentSearchLang()
25730
+ ? this.translateService.currentLang
25731
+ : this.metadataLang);
25732
+ return `lang${lang3}`;
25696
25733
  }
25697
25734
  else
25698
25735
  return '*';
@@ -26359,7 +26396,7 @@ class Gn4Repository {
26359
26396
  return this.gn4LanguagesApi
26360
26397
  .getApplicationLanguages()
26361
26398
  .pipe(map$1((languages) => languages
26362
- .map((lang) => getLang2FromLang3(lang.id))
26399
+ .map((lang) => toLang2(lang.id))
26363
26400
  .filter((code) => !!code)));
26364
26401
  }
26365
26402
  getRecordAsXml(uniqueIdentifier) {
@@ -26440,7 +26477,7 @@ class OrganizationsFromMetadataService {
26440
26477
  }), shareReplay$1());
26441
26478
  }
26442
26479
  get langIndex() {
26443
- return getLocalizedIndexKey(this.translateService.currentLang);
26480
+ return `lang${toLang3(this.translateService.currentLang)}`;
26444
26481
  }
26445
26482
  equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
26446
26483
  if (!str1 || !str2)
@@ -26595,7 +26632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26595
26632
  const IMAGE_URL = '/geonetwork/images/harvesting/';
26596
26633
  class OrganizationsFromGroupsService {
26597
26634
  get lang3() {
26598
- return getLang3FromLang2(this.translateService.currentLang);
26635
+ return toLang3(this.translateService.currentLang);
26599
26636
  }
26600
26637
  constructor(esService, searchApiService, groupsApiService, translateService) {
26601
26638
  this.esService = esService;
@@ -26704,14 +26741,14 @@ class AuthService {
26704
26741
  }
26705
26742
  return baseUrl
26706
26743
  .replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
26707
- .replace('${lang2}', this.translateService.currentLang)
26708
- .replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26744
+ .replace('${lang2}', toLang2(this.translateService.currentLang))
26745
+ .replace('${lang3}', toLang3(this.translateService.currentLang));
26709
26746
  }
26710
26747
  get logoutUrl() {
26711
26748
  return this.baseLogoutUrl;
26712
26749
  }
26713
26750
  get settingsUrl() {
26714
- return this.baseSettingsUrl.replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26751
+ return this.baseSettingsUrl.replace('${lang3}', toLang3(this.translateService.currentLang));
26715
26752
  }
26716
26753
  constructor(baseLoginUrlToken, baseLogoutUrlToken, baseSettingsUrlToken, translateService, location) {
26717
26754
  this.baseLoginUrlToken = baseLoginUrlToken;
@@ -26986,7 +27023,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26986
27023
  const minApiVersion = '4.2.2';
26987
27024
  class Gn4PlatformService {
26988
27025
  get lang3() {
26989
- return getLang3FromLang2(this.translateService.currentLang);
27026
+ return toLang3(this.translateService.currentLang);
26990
27027
  }
26991
27028
  constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
26992
27029
  this.siteApiService = siteApiService;
@@ -27755,445 +27792,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
27755
27792
  }]
27756
27793
  }] });
27757
27794
 
27758
- const LANGUAGE_CODES_ISO_3 = [
27759
- 'aar',
27760
- 'abk',
27761
- 'ace',
27762
- 'ach',
27763
- 'ada',
27764
- 'afa',
27765
- 'afh',
27766
- 'afr',
27767
- 'aka',
27768
- 'akk',
27769
- 'ale',
27770
- 'alg',
27771
- 'amh',
27772
- 'ang',
27773
- 'apa',
27774
- 'ara',
27775
- 'arc',
27776
- 'arn',
27777
- 'arp',
27778
- 'art',
27779
- 'arw',
27780
- 'asm',
27781
- 'ath',
27782
- 'aus',
27783
- 'ava',
27784
- 'ave',
27785
- 'awa',
27786
- 'aym',
27787
- 'aze',
27788
- 'bad',
27789
- 'bai',
27790
- 'bak',
27791
- 'bal',
27792
- 'bam',
27793
- 'ban',
27794
- 'bas',
27795
- 'bat',
27796
- 'bej',
27797
- 'bel',
27798
- 'bem',
27799
- 'ben',
27800
- 'ber',
27801
- 'bho',
27802
- 'bih',
27803
- 'bik',
27804
- 'bin',
27805
- 'bis',
27806
- 'bla',
27807
- 'bnt',
27808
- 'tib',
27809
- 'bos',
27810
- 'bra',
27811
- 'bre',
27812
- 'btk',
27813
- 'bua',
27814
- 'bug',
27815
- 'bul',
27816
- 'cad',
27817
- 'cai',
27818
- 'car',
27819
- 'cat',
27820
- 'cau',
27821
- 'ceb',
27822
- 'cel',
27823
- 'cze',
27824
- 'cha',
27825
- 'chb',
27826
- 'che',
27827
- 'chg',
27828
- 'chk',
27829
- 'chm',
27830
- 'chn',
27831
- 'cho',
27832
- 'chp',
27833
- 'chr',
27834
- 'chu',
27835
- 'chv',
27836
- 'chy',
27837
- 'cmc',
27838
- 'cop',
27839
- 'cor',
27840
- 'cos',
27841
- 'cpe',
27842
- 'cpf',
27843
- 'cpp',
27844
- 'cre',
27845
- 'crp',
27846
- 'cus',
27847
- 'wel',
27848
- 'dak',
27849
- 'dan',
27850
- 'day',
27851
- 'del',
27852
- 'den',
27853
- 'ger',
27854
- 'dgr',
27855
- 'din',
27856
- 'div',
27857
- 'doi',
27858
- 'dra',
27859
- 'dua',
27860
- 'dum',
27861
- 'dyu',
27862
- 'dzo',
27863
- 'efi',
27864
- 'egy',
27865
- 'eka',
27866
- 'gre',
27867
- 'elx',
27868
- 'eng',
27869
- 'enm',
27870
- 'epo',
27871
- 'est',
27872
- 'baq',
27873
- 'ewe',
27874
- 'ewo',
27875
- 'fan',
27876
- 'fao',
27877
- 'per',
27878
- 'fat',
27879
- 'fij',
27880
- 'fin',
27881
- 'fiu',
27882
- 'fon',
27883
- 'fre',
27884
- 'frm',
27885
- 'fro',
27886
- 'fry',
27887
- 'ful',
27888
- 'fur',
27889
- 'gaa',
27890
- 'gay',
27891
- 'gba',
27892
- 'gem',
27893
- 'gez',
27894
- 'gil',
27895
- 'gla',
27896
- 'gle',
27897
- 'glg',
27898
- 'glv',
27899
- 'gmh',
27900
- 'goh',
27901
- 'gon',
27902
- 'gor',
27903
- 'got',
27904
- 'grb',
27905
- 'grc',
27906
- 'grn',
27907
- 'guj',
27908
- 'gwi',
27909
- 'hai',
27910
- 'hau',
27911
- 'haw',
27912
- 'heb',
27913
- 'her',
27914
- 'hil',
27915
- 'him',
27916
- 'hin',
27917
- 'hit',
27918
- 'hmn',
27919
- 'hmo',
27920
- 'scr',
27921
- 'hun',
27922
- 'hup',
27923
- 'arm',
27924
- 'iba',
27925
- 'ibo',
27926
- 'ijo',
27927
- 'iku',
27928
- 'ile',
27929
- 'ilo',
27930
- 'ina',
27931
- 'inc',
27932
- 'ind',
27933
- 'ine',
27934
- 'ipk',
27935
- 'ira',
27936
- 'iro',
27937
- 'ice',
27938
- 'ita',
27939
- 'jav',
27940
- 'jpn',
27941
- 'jpr',
27942
- 'jrb',
27943
- 'kaa',
27944
- 'kab',
27945
- 'kac',
27946
- 'kal',
27947
- 'kam',
27948
- 'kan',
27949
- 'kar',
27950
- 'kas',
27951
- 'geo',
27952
- 'kau',
27953
- 'kaw',
27954
- 'kaz',
27955
- 'kha',
27956
- 'khi',
27957
- 'khm',
27958
- 'kho',
27959
- 'kik',
27960
- 'kin',
27961
- 'kir',
27962
- 'kmb',
27963
- 'kok',
27964
- 'kom',
27965
- 'kon',
27966
- 'kor',
27967
- 'kos',
27968
- 'kpe',
27969
- 'kro',
27970
- 'kru',
27971
- 'kua',
27972
- 'kum',
27973
- 'kur',
27974
- 'kut',
27975
- 'lad',
27976
- 'lah',
27977
- 'lam',
27978
- 'lao',
27979
- 'lat',
27980
- 'lav',
27981
- 'lez',
27982
- 'lin',
27983
- 'lit',
27984
- 'lol',
27985
- 'loz',
27986
- 'ltz',
27987
- 'lua',
27988
- 'lub',
27989
- 'lug',
27990
- 'lui',
27991
- 'lun',
27992
- 'luo',
27993
- 'lus',
27994
- 'mad',
27995
- 'mag',
27996
- 'mah',
27997
- 'mai',
27998
- 'mak',
27999
- 'mal',
28000
- 'man',
28001
- 'map',
28002
- 'mar',
28003
- 'mas',
28004
- 'mdr',
28005
- 'men',
28006
- 'mga',
28007
- 'mic',
28008
- 'min',
28009
- 'mis',
28010
- 'mac',
28011
- 'mkh',
28012
- 'mlg',
28013
- 'mlt',
28014
- 'mnc',
28015
- 'mni',
28016
- 'mno',
28017
- 'moh',
28018
- 'mol',
28019
- 'mon',
28020
- 'mos',
28021
- 'mao',
28022
- 'may',
28023
- 'mul',
28024
- 'mun',
28025
- 'mus',
28026
- 'mwr',
28027
- 'bur',
28028
- 'myn',
28029
- 'nah',
28030
- 'nai',
28031
- 'nau',
28032
- 'nav',
28033
- 'nbl',
28034
- 'nde',
28035
- 'ndo',
28036
- 'nep',
28037
- 'new',
28038
- 'nia',
28039
- 'nic',
28040
- 'niu',
28041
- 'dut',
28042
- 'nno',
28043
- 'nob',
28044
- 'non',
28045
- 'nor',
28046
- 'nso',
28047
- 'nub',
28048
- 'nya',
28049
- 'nym',
28050
- 'nyn',
28051
- 'nyo',
28052
- 'nzi',
28053
- 'oci',
28054
- 'oji',
28055
- 'ori',
28056
- 'orm',
28057
- 'osa',
28058
- 'oss',
28059
- 'ota',
28060
- 'oto',
28061
- 'paa',
28062
- 'pag',
28063
- 'pal',
28064
- 'pam',
28065
- 'pan',
28066
- 'pap',
28067
- 'pau',
28068
- 'peo',
28069
- 'phi',
28070
- 'phn',
28071
- 'pli',
28072
- 'pol',
28073
- 'pon',
28074
- 'por',
28075
- 'pra',
28076
- 'pro',
28077
- 'pus',
28078
- 'que',
28079
- 'raj',
28080
- 'rap',
28081
- 'rar',
28082
- 'roa',
28083
- 'roh',
28084
- 'rom',
28085
- 'rum',
28086
- 'run',
28087
- 'rus',
28088
- 'sad',
28089
- 'sag',
28090
- 'sah',
28091
- 'sai',
28092
- 'sal',
28093
- 'sam',
28094
- 'san',
28095
- 'sas',
28096
- 'sat',
28097
- 'sco',
28098
- 'sel',
28099
- 'sem',
28100
- 'sga',
28101
- 'sgn',
28102
- 'shn',
28103
- 'sid',
28104
- 'sin',
28105
- 'sio',
28106
- 'sit',
28107
- 'sla',
28108
- 'slo',
28109
- 'slv',
28110
- 'sme',
28111
- 'smi',
28112
- 'smo',
28113
- 'sna',
28114
- 'snd',
28115
- 'snk',
28116
- 'sog',
28117
- 'som',
28118
- 'son',
28119
- 'sot',
28120
- 'spa',
28121
- 'alb',
28122
- 'srd',
28123
- 'scc',
28124
- 'srr',
28125
- 'ssa',
28126
- 'ssw',
28127
- 'suk',
28128
- 'sun',
28129
- 'sus',
28130
- 'sux',
28131
- 'swa',
28132
- 'swe',
28133
- 'syr',
28134
- 'tah',
28135
- 'tai',
28136
- 'tam',
28137
- 'tat',
28138
- 'tel',
28139
- 'tem',
28140
- 'ter',
28141
- 'tet',
28142
- 'tgk',
28143
- 'tgl',
28144
- 'tha',
28145
- 'tig',
28146
- 'tir',
28147
- 'tiv',
28148
- 'tkl',
28149
- 'tli',
28150
- 'tmh',
28151
- 'tog',
28152
- 'ton',
28153
- 'tpi',
28154
- 'tsi',
28155
- 'tsn',
28156
- 'tso',
28157
- 'tuk',
28158
- 'tum',
28159
- 'tur',
28160
- 'tut',
28161
- 'tvl',
28162
- 'twi',
28163
- 'tyv',
28164
- 'uga',
28165
- 'uig',
28166
- 'ukr',
28167
- 'umb',
28168
- 'und',
28169
- 'urd',
28170
- 'uzb',
28171
- 'vai',
28172
- 'ven',
28173
- 'vie',
28174
- 'vol',
28175
- 'vot',
28176
- 'wak',
28177
- 'wal',
28178
- 'war',
28179
- 'was',
28180
- 'wen',
28181
- 'wol',
28182
- 'xho',
28183
- 'yao',
28184
- 'yap',
28185
- 'yid',
28186
- 'yor',
28187
- 'ypk',
28188
- 'zap',
28189
- 'zen',
28190
- 'zha',
28191
- 'chi',
28192
- 'znd',
28193
- 'zul',
28194
- 'zun',
28195
- ];
28196
-
28197
27795
  const flatten = (base, obj, keepLevel = false) => Object.keys(obj).reduce((prev, curr) => {
28198
27796
  const path = base ? `${base}.${curr}` : curr;
28199
27797
  const val = obj[curr];
@@ -28275,8 +27873,9 @@ function parseMultiConfigSection(fullConfigObj, sectionName, mandatoryKeys, opti
28275
27873
  return result;
28276
27874
  }
28277
27875
  function checkMetadataLanguage(parsedConfigSection, outWarnings) {
28278
- if (LANGUAGE_CODES_ISO_3.indexOf(parsedConfigSection.metadata_language.toLowerCase()) === -1) {
28279
- outWarnings.push(`In the [global] section: metadata_language = "${parsedConfigSection.metadata_language}" is not in ISO 639-2/B format`);
27876
+ const lang2 = toLang2(parsedConfigSection.metadata_language.toLowerCase());
27877
+ if (lang2?.length !== 2) {
27878
+ outWarnings.push(`In the [global] section: metadata_language = "${parsedConfigSection.metadata_language}" is not a recognized ISO 639 language code`);
28280
27879
  }
28281
27880
  return parsedConfigSection;
28282
27881
  }
@@ -28623,7 +28222,7 @@ const wrongLanguageCodeConfigFixture = () => `
28623
28222
  [global]
28624
28223
  geonetwork4_api_url = "/geonetwork/srv/api"
28625
28224
  proxy_path = "/proxy/?url="
28626
- metadata_language = "fra"
28225
+ metadata_language = "abc"
28627
28226
 
28628
28227
  [map]
28629
28228
 
@@ -40078,7 +39677,7 @@ class SourcesService {
40078
39677
  this.sources$ = this.sourcesApiService.getSubPortals1().pipe(shareReplay$1());
40079
39678
  }
40080
39679
  getSourceLabel(uuid) {
40081
- return this.sources$.pipe(map$1((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map$1((source) => source.label[getLang3FromLang2(this.translateService.currentLang)]));
39680
+ return this.sources$.pipe(map$1((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map$1((source) => source.label[toLang3(this.translateService.currentLang)]));
40082
39681
  }
40083
39682
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, deps: [{ token: SourcesApiService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
40084
39683
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, providedIn: 'root' }); }
@@ -44715,5 +44314,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
44715
44314
  * Generated bundle index. Do not edit.
44716
44315
  */
44717
44316
 
44718
- export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, 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, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogListComponent, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldInspireThemeComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, 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, METADATA_LANGUAGE, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, 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, RecordsMetricsComponent, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, 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, 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, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, 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, FacetsModule$1 as UiFacetsModule, UiSearchModule, 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, getLang2FromLang3, getLang3FromLang2, getLayers, getLinkId, getLinkLabel, getLinkPriority, getLocalizedIndexKey, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, 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, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as 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, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
44317
+ export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, 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, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogListComponent, FeatureCatalogModule, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldInspireThemeComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, 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, METADATA_LANGUAGE, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, 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, RecordsMetricsComponent, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, 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, 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, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, 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, FacetsModule$1 as UiFacetsModule, UiSearchModule, 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, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, 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, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as 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, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, toLang2, toLang3, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
44719
44318
  //# sourceMappingURL=geonetwork-ui.mjs.map