geonetwork-ui 2.7.0-dev.b8a597a99 → 2.7.0-dev.bded1f490

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 (105) 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/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
  17. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +79 -0
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  21. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -1
  22. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +2 -2
  23. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  24. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  25. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  26. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +4 -3
  27. package/esm2022/translations/de.json +22 -0
  28. package/esm2022/translations/en.json +22 -0
  29. package/esm2022/translations/es.json +22 -0
  30. package/esm2022/translations/fr.json +22 -0
  31. package/esm2022/translations/it.json +22 -0
  32. package/esm2022/translations/nl.json +22 -0
  33. package/esm2022/translations/pt.json +22 -0
  34. package/esm2022/translations/sk.json +22 -0
  35. package/fesm2022/geonetwork-ui.mjs +427 -502
  36. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  37. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  38. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  39. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  40. package/libs/api/repository/src/index.d.ts +1 -1
  41. package/libs/api/repository/src/index.d.ts.map +1 -1
  42. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  43. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  44. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  45. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  46. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -0
  47. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  48. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  49. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +28 -0
  50. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
  51. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  52. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  53. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  54. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  55. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  56. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  57. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  58. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  59. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  60. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  63. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  64. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  65. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  66. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  67. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  68. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  69. package/src/libs/api/repository/src/index.ts +1 -1
  70. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  71. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  72. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  73. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  74. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  75. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
  76. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  77. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +5 -0
  78. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  79. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  80. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +20 -0
  81. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +85 -0
  82. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  83. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  84. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  85. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -1
  86. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +1 -1
  87. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  88. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  89. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  90. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +5 -2
  91. package/translations/de.json +22 -0
  92. package/translations/en.json +22 -0
  93. package/translations/es.json +22 -0
  94. package/translations/fr.json +22 -0
  95. package/translations/it.json +22 -0
  96. package/translations/nl.json +22 -0
  97. package/translations/pt.json +22 -0
  98. package/translations/sk.json +22 -0
  99. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  100. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  101. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  102. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  103. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  104. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  105. 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
  /**
@@ -18890,6 +18928,26 @@ var de = {
18890
18928
  "editor.record.form.field.topics": "Kategorien",
18891
18929
  "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
18892
18930
  "editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
18931
+ "editor.record.form.inspire.biota": "",
18932
+ "editor.record.form.inspire.boundaries": "",
18933
+ "editor.record.form.inspire.climatology": "",
18934
+ "editor.record.form.inspire.economy": "",
18935
+ "editor.record.form.inspire.elevation": "",
18936
+ "editor.record.form.inspire.environnement": "",
18937
+ "editor.record.form.inspire.farming": "",
18938
+ "editor.record.form.inspire.geoscientific": "",
18939
+ "editor.record.form.inspire.health": "",
18940
+ "editor.record.form.inspire.imagery": "",
18941
+ "editor.record.form.inspire.intelligence": "",
18942
+ "editor.record.form.inspire.location": "",
18943
+ "editor.record.form.inspire.oceans": "",
18944
+ "editor.record.form.inspire.placeholder": "",
18945
+ "editor.record.form.inspire.planning": "",
18946
+ "editor.record.form.inspire.society": "",
18947
+ "editor.record.form.inspire.structure": "",
18948
+ "editor.record.form.inspire.transportation": "",
18949
+ "editor.record.form.inspire.utilities": "",
18950
+ "editor.record.form.inspire.waters": "",
18893
18951
  "editor.record.form.keywords.place.placeholder": "",
18894
18952
  "editor.record.form.keywords.place.withoutExtent": "",
18895
18953
  "editor.record.form.keywords.placeholder": "",
@@ -18925,6 +18983,8 @@ var de = {
18925
18983
  "editor.record.form.section.dataManagers.description": "",
18926
18984
  "editor.record.form.section.dataManagers.label": "",
18927
18985
  "editor.record.form.section.geographicalCoverage.label": "",
18986
+ "editor.record.form.section.inspire.description": "",
18987
+ "editor.record.form.section.inspire.label": "",
18928
18988
  "editor.record.form.section.metadataPointOfContact.description": "",
18929
18989
  "editor.record.form.section.metadataPointOfContact.label": "",
18930
18990
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -19518,6 +19578,26 @@ var en = {
19518
19578
  "editor.record.form.field.topics": "Categories",
19519
19579
  "editor.record.form.field.uniqueIdentifier": "Unique identifier",
19520
19580
  "editor.record.form.field.updateFrequency": "Update frequency",
19581
+ "editor.record.form.inspire.biota": "Biota",
19582
+ "editor.record.form.inspire.boundaries": "Boundaries",
19583
+ "editor.record.form.inspire.climatology": "Climatology / Meteorology / Atmosphere",
19584
+ "editor.record.form.inspire.economy": "Economy",
19585
+ "editor.record.form.inspire.elevation": "Elevation",
19586
+ "editor.record.form.inspire.environnement": "Environnement",
19587
+ "editor.record.form.inspire.farming": "Farming",
19588
+ "editor.record.form.inspire.geoscientific": "Geoscientific Information",
19589
+ "editor.record.form.inspire.health": "Health",
19590
+ "editor.record.form.inspire.imagery": "Imagery / Base Maps / Earth Cover",
19591
+ "editor.record.form.inspire.intelligence": "Intelligence / Military",
19592
+ "editor.record.form.inspire.location": "Location",
19593
+ "editor.record.form.inspire.oceans": "Oceans",
19594
+ "editor.record.form.inspire.placeholder": "Select an INSPIRE theme",
19595
+ "editor.record.form.inspire.planning": "Planning / Cadastre",
19596
+ "editor.record.form.inspire.society": "Society",
19597
+ "editor.record.form.inspire.structure": "Structure",
19598
+ "editor.record.form.inspire.transportation": "Transportation",
19599
+ "editor.record.form.inspire.utilities": "Utilities / Communication",
19600
+ "editor.record.form.inspire.waters": "Inland Waters",
19521
19601
  "editor.record.form.keywords.place.placeholder": "Search for place keywords",
19522
19602
  "editor.record.form.keywords.place.withoutExtent": "This keyword is not associated with any geographical extent",
19523
19603
  "editor.record.form.keywords.placeholder": "Select a keyword",
@@ -19553,6 +19633,8 @@ var en = {
19553
19633
  "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data",
19554
19634
  "editor.record.form.section.dataManagers.label": "Data managers",
19555
19635
  "editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
19636
+ "editor.record.form.section.inspire.description": "Appropriate INSPIRE themes help users find the dataset",
19637
+ "editor.record.form.section.inspire.label": "INSPIRE themes",
19556
19638
  "editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata",
19557
19639
  "editor.record.form.section.metadataPointOfContact.label": "Metadata point of contact",
19558
19640
  "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
@@ -20146,6 +20228,26 @@ var es = {
20146
20228
  "editor.record.form.field.topics": "Categorías",
20147
20229
  "editor.record.form.field.uniqueIdentifier": "",
20148
20230
  "editor.record.form.field.updateFrequency": "",
20231
+ "editor.record.form.inspire.biota": "",
20232
+ "editor.record.form.inspire.boundaries": "",
20233
+ "editor.record.form.inspire.climatology": "",
20234
+ "editor.record.form.inspire.economy": "",
20235
+ "editor.record.form.inspire.elevation": "",
20236
+ "editor.record.form.inspire.environnement": "",
20237
+ "editor.record.form.inspire.farming": "",
20238
+ "editor.record.form.inspire.geoscientific": "",
20239
+ "editor.record.form.inspire.health": "",
20240
+ "editor.record.form.inspire.imagery": "",
20241
+ "editor.record.form.inspire.intelligence": "",
20242
+ "editor.record.form.inspire.location": "",
20243
+ "editor.record.form.inspire.oceans": "",
20244
+ "editor.record.form.inspire.placeholder": "",
20245
+ "editor.record.form.inspire.planning": "",
20246
+ "editor.record.form.inspire.society": "",
20247
+ "editor.record.form.inspire.structure": "",
20248
+ "editor.record.form.inspire.transportation": "",
20249
+ "editor.record.form.inspire.utilities": "",
20250
+ "editor.record.form.inspire.waters": "",
20149
20251
  "editor.record.form.keywords.place.placeholder": "",
20150
20252
  "editor.record.form.keywords.place.withoutExtent": "",
20151
20253
  "editor.record.form.keywords.placeholder": "",
@@ -20181,6 +20283,8 @@ var es = {
20181
20283
  "editor.record.form.section.dataManagers.description": "",
20182
20284
  "editor.record.form.section.dataManagers.label": "",
20183
20285
  "editor.record.form.section.geographicalCoverage.label": "",
20286
+ "editor.record.form.section.inspire.description": "",
20287
+ "editor.record.form.section.inspire.label": "",
20184
20288
  "editor.record.form.section.metadataPointOfContact.description": "",
20185
20289
  "editor.record.form.section.metadataPointOfContact.label": "",
20186
20290
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -20774,6 +20878,26 @@ var fr = {
20774
20878
  "editor.record.form.field.topics": "Thèmes",
20775
20879
  "editor.record.form.field.uniqueIdentifier": "Identifiant unique",
20776
20880
  "editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
20881
+ "editor.record.form.inspire.biota": "Biote",
20882
+ "editor.record.form.inspire.boundaries": "Limites",
20883
+ "editor.record.form.inspire.climatology": "Climatologie / Météorologie / Atmosphère",
20884
+ "editor.record.form.inspire.economy": "Économie",
20885
+ "editor.record.form.inspire.elevation": "Altitude",
20886
+ "editor.record.form.inspire.environnement": "Environnement",
20887
+ "editor.record.form.inspire.farming": "Agriculture",
20888
+ "editor.record.form.inspire.geoscientific": "Informations géoscientifiques",
20889
+ "editor.record.form.inspire.health": "Santé",
20890
+ "editor.record.form.inspire.imagery": "Imagerie/Cartes de base/Occupation des terres",
20891
+ "editor.record.form.inspire.intelligence": "Renseignement/Secteur militaire",
20892
+ "editor.record.form.inspire.location": "Localisation",
20893
+ "editor.record.form.inspire.oceans": "Océans",
20894
+ "editor.record.form.inspire.placeholder": "Sélectionnez un thème INSPIRE",
20895
+ "editor.record.form.inspire.planning": "Planification/Cadastre",
20896
+ "editor.record.form.inspire.society": "Société",
20897
+ "editor.record.form.inspire.structure": "Structure",
20898
+ "editor.record.form.inspire.transportation": "Transport",
20899
+ "editor.record.form.inspire.utilities": "Services d’utilité publique/Communication",
20900
+ "editor.record.form.inspire.waters": "Eaux intérieures",
20777
20901
  "editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
20778
20902
  "editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
20779
20903
  "editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
@@ -20809,6 +20933,8 @@ var fr = {
20809
20933
  "editor.record.form.section.dataManagers.description": "Cette information concerne la donnée",
20810
20934
  "editor.record.form.section.dataManagers.label": "Responsables de la donnée",
20811
20935
  "editor.record.form.section.geographicalCoverage.label": "Couverture géographique",
20936
+ "editor.record.form.section.inspire.description": "Des thèmes appropriés aident à trouver le jeu de données",
20937
+ "editor.record.form.section.inspire.label": "Thèmes INSPIRE",
20812
20938
  "editor.record.form.section.metadataPointOfContact.description": "Cette information concerne la métadonnée",
20813
20939
  "editor.record.form.section.metadataPointOfContact.label": "Point de contact de la métadonnée",
20814
20940
  "editor.record.form.section.useAndAccessConditions.label": "Conditions d'accès et d'utilisation",
@@ -21402,6 +21528,26 @@ var it = {
21402
21528
  "editor.record.form.field.topics": "",
21403
21529
  "editor.record.form.field.uniqueIdentifier": "Identificatore univoco",
21404
21530
  "editor.record.form.field.updateFrequency": "Frequenza di aggiornamento",
21531
+ "editor.record.form.inspire.biota": "",
21532
+ "editor.record.form.inspire.boundaries": "",
21533
+ "editor.record.form.inspire.climatology": "",
21534
+ "editor.record.form.inspire.economy": "",
21535
+ "editor.record.form.inspire.elevation": "",
21536
+ "editor.record.form.inspire.environnement": "",
21537
+ "editor.record.form.inspire.farming": "",
21538
+ "editor.record.form.inspire.geoscientific": "",
21539
+ "editor.record.form.inspire.health": "",
21540
+ "editor.record.form.inspire.imagery": "",
21541
+ "editor.record.form.inspire.intelligence": "",
21542
+ "editor.record.form.inspire.location": "",
21543
+ "editor.record.form.inspire.oceans": "",
21544
+ "editor.record.form.inspire.placeholder": "",
21545
+ "editor.record.form.inspire.planning": "",
21546
+ "editor.record.form.inspire.society": "",
21547
+ "editor.record.form.inspire.structure": "",
21548
+ "editor.record.form.inspire.transportation": "",
21549
+ "editor.record.form.inspire.utilities": "",
21550
+ "editor.record.form.inspire.waters": "",
21405
21551
  "editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
21406
21552
  "editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
21407
21553
  "editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
@@ -21437,6 +21583,8 @@ var it = {
21437
21583
  "editor.record.form.section.dataManagers.description": "Queste informazioni riguardano i dati",
21438
21584
  "editor.record.form.section.dataManagers.label": "Gestori dei dati",
21439
21585
  "editor.record.form.section.geographicalCoverage.label": "Copertura geografica",
21586
+ "editor.record.form.section.inspire.description": "",
21587
+ "editor.record.form.section.inspire.label": "",
21440
21588
  "editor.record.form.section.metadataPointOfContact.description": "Queste informazioni riguardano i metadati",
21441
21589
  "editor.record.form.section.metadataPointOfContact.label": "Punto di contatto dei metadati",
21442
21590
  "editor.record.form.section.useAndAccessConditions.label": "Condizioni di accesso e utilizzo",
@@ -22030,6 +22178,26 @@ var nl = {
22030
22178
  "editor.record.form.field.topics": "",
22031
22179
  "editor.record.form.field.uniqueIdentifier": "",
22032
22180
  "editor.record.form.field.updateFrequency": "",
22181
+ "editor.record.form.inspire.biota": "",
22182
+ "editor.record.form.inspire.boundaries": "",
22183
+ "editor.record.form.inspire.climatology": "",
22184
+ "editor.record.form.inspire.economy": "",
22185
+ "editor.record.form.inspire.elevation": "",
22186
+ "editor.record.form.inspire.environnement": "",
22187
+ "editor.record.form.inspire.farming": "",
22188
+ "editor.record.form.inspire.geoscientific": "",
22189
+ "editor.record.form.inspire.health": "",
22190
+ "editor.record.form.inspire.imagery": "",
22191
+ "editor.record.form.inspire.intelligence": "",
22192
+ "editor.record.form.inspire.location": "",
22193
+ "editor.record.form.inspire.oceans": "",
22194
+ "editor.record.form.inspire.placeholder": "",
22195
+ "editor.record.form.inspire.planning": "",
22196
+ "editor.record.form.inspire.society": "",
22197
+ "editor.record.form.inspire.structure": "",
22198
+ "editor.record.form.inspire.transportation": "",
22199
+ "editor.record.form.inspire.utilities": "",
22200
+ "editor.record.form.inspire.waters": "",
22033
22201
  "editor.record.form.keywords.place.placeholder": "",
22034
22202
  "editor.record.form.keywords.place.withoutExtent": "",
22035
22203
  "editor.record.form.keywords.placeholder": "",
@@ -22065,6 +22233,8 @@ var nl = {
22065
22233
  "editor.record.form.section.dataManagers.description": "",
22066
22234
  "editor.record.form.section.dataManagers.label": "",
22067
22235
  "editor.record.form.section.geographicalCoverage.label": "",
22236
+ "editor.record.form.section.inspire.description": "",
22237
+ "editor.record.form.section.inspire.label": "",
22068
22238
  "editor.record.form.section.metadataPointOfContact.description": "",
22069
22239
  "editor.record.form.section.metadataPointOfContact.label": "",
22070
22240
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -22658,6 +22828,26 @@ var pt = {
22658
22828
  "editor.record.form.field.topics": "",
22659
22829
  "editor.record.form.field.uniqueIdentifier": "",
22660
22830
  "editor.record.form.field.updateFrequency": "",
22831
+ "editor.record.form.inspire.biota": "",
22832
+ "editor.record.form.inspire.boundaries": "",
22833
+ "editor.record.form.inspire.climatology": "",
22834
+ "editor.record.form.inspire.economy": "",
22835
+ "editor.record.form.inspire.elevation": "",
22836
+ "editor.record.form.inspire.environnement": "",
22837
+ "editor.record.form.inspire.farming": "",
22838
+ "editor.record.form.inspire.geoscientific": "",
22839
+ "editor.record.form.inspire.health": "",
22840
+ "editor.record.form.inspire.imagery": "",
22841
+ "editor.record.form.inspire.intelligence": "",
22842
+ "editor.record.form.inspire.location": "",
22843
+ "editor.record.form.inspire.oceans": "",
22844
+ "editor.record.form.inspire.placeholder": "",
22845
+ "editor.record.form.inspire.planning": "",
22846
+ "editor.record.form.inspire.society": "",
22847
+ "editor.record.form.inspire.structure": "",
22848
+ "editor.record.form.inspire.transportation": "",
22849
+ "editor.record.form.inspire.utilities": "",
22850
+ "editor.record.form.inspire.waters": "",
22661
22851
  "editor.record.form.keywords.place.placeholder": "",
22662
22852
  "editor.record.form.keywords.place.withoutExtent": "",
22663
22853
  "editor.record.form.keywords.placeholder": "",
@@ -22693,6 +22883,8 @@ var pt = {
22693
22883
  "editor.record.form.section.dataManagers.description": "",
22694
22884
  "editor.record.form.section.dataManagers.label": "",
22695
22885
  "editor.record.form.section.geographicalCoverage.label": "",
22886
+ "editor.record.form.section.inspire.description": "",
22887
+ "editor.record.form.section.inspire.label": "",
22696
22888
  "editor.record.form.section.metadataPointOfContact.description": "",
22697
22889
  "editor.record.form.section.metadataPointOfContact.label": "",
22698
22890
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -23286,6 +23478,26 @@ var sk = {
23286
23478
  "editor.record.form.field.topics": "",
23287
23479
  "editor.record.form.field.uniqueIdentifier": "",
23288
23480
  "editor.record.form.field.updateFrequency": "",
23481
+ "editor.record.form.inspire.biota": "",
23482
+ "editor.record.form.inspire.boundaries": "",
23483
+ "editor.record.form.inspire.climatology": "",
23484
+ "editor.record.form.inspire.economy": "",
23485
+ "editor.record.form.inspire.elevation": "",
23486
+ "editor.record.form.inspire.environnement": "",
23487
+ "editor.record.form.inspire.farming": "",
23488
+ "editor.record.form.inspire.geoscientific": "",
23489
+ "editor.record.form.inspire.health": "",
23490
+ "editor.record.form.inspire.imagery": "",
23491
+ "editor.record.form.inspire.intelligence": "",
23492
+ "editor.record.form.inspire.location": "",
23493
+ "editor.record.form.inspire.oceans": "",
23494
+ "editor.record.form.inspire.placeholder": "",
23495
+ "editor.record.form.inspire.planning": "",
23496
+ "editor.record.form.inspire.society": "",
23497
+ "editor.record.form.inspire.structure": "",
23498
+ "editor.record.form.inspire.transportation": "",
23499
+ "editor.record.form.inspire.utilities": "",
23500
+ "editor.record.form.inspire.waters": "",
23289
23501
  "editor.record.form.keywords.place.placeholder": "",
23290
23502
  "editor.record.form.keywords.place.withoutExtent": "",
23291
23503
  "editor.record.form.keywords.placeholder": "",
@@ -23321,6 +23533,8 @@ var sk = {
23321
23533
  "editor.record.form.section.dataManagers.description": "",
23322
23534
  "editor.record.form.section.dataManagers.label": "",
23323
23535
  "editor.record.form.section.geographicalCoverage.label": "",
23536
+ "editor.record.form.section.inspire.description": "",
23537
+ "editor.record.form.section.inspire.label": "",
23324
23538
  "editor.record.form.section.metadataPointOfContact.description": "",
23325
23539
  "editor.record.form.section.metadataPointOfContact.label": "",
23326
23540
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -23741,7 +23955,7 @@ class MetadataUrlService {
23741
23955
  }
23742
23956
  getUrl(uuid, apiPath = this.apiConfiguration.basePath) {
23743
23957
  const prefix = `${apiPath}/../`;
23744
- return `${prefix}${getLang3FromLang2(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23958
+ return `${prefix}${toLang3(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23745
23959
  }
23746
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 }); }
23747
23961
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataUrlService, providedIn: 'root' }); }
@@ -23770,15 +23984,15 @@ class Gn4FieldMapper {
23770
23984
  qualityScore: (output, source) => this.addExtra({ qualityScore: selectField(source, 'qualityScore') }, output),
23771
23985
  resourceTitleObject: (output, source) => ({
23772
23986
  ...output,
23773
- title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.lang3), 'no title'),
23987
+ title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.getLocalizedIndexKey), 'no title'),
23774
23988
  }),
23775
23989
  resourceAbstractObject: (output, source) => ({
23776
23990
  ...output,
23777
- abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.lang3), 'no title'),
23991
+ abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.getLocalizedIndexKey), 'no title'),
23778
23992
  }),
23779
23993
  overview: (output, source) => {
23780
23994
  const firstOverview = getFirstValue(selectField(source, 'overview'));
23781
- const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.lang3);
23995
+ const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.getLocalizedIndexKey);
23782
23996
  return {
23783
23997
  ...output,
23784
23998
  overviews: [
@@ -23793,7 +24007,7 @@ class Gn4FieldMapper {
23793
24007
  ...output,
23794
24008
  topics: [
23795
24009
  ...(output.topics || []),
23796
- ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.lang3)),
24010
+ ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.getLocalizedIndexKey)),
23797
24011
  ],
23798
24012
  }),
23799
24013
  cl_status: (output, source) => ({
@@ -23830,7 +24044,7 @@ class Gn4FieldMapper {
23830
24044
  }),
23831
24045
  resourceLanguage: (output, source) => {
23832
24046
  const langList = getAsArray(selectField(source, 'resourceLanguage'));
23833
- const languages = langList.map(getLang2FromLang3);
24047
+ const languages = langList.map(toLang2);
23834
24048
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null; // set the first language as main one as fallback
23835
24049
  return {
23836
24050
  ...output,
@@ -23839,7 +24053,7 @@ class Gn4FieldMapper {
23839
24053
  },
23840
24054
  otherLanguage: (output, source) => {
23841
24055
  const langList = getAsArray(selectField(source, 'otherLanguage'));
23842
- const languages = langList.map(getLang2FromLang3);
24056
+ const languages = langList.map(toLang2);
23843
24057
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null;
23844
24058
  const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
23845
24059
  return {
@@ -23851,7 +24065,7 @@ class Gn4FieldMapper {
23851
24065
  const language = selectField(source, 'mainLanguage');
23852
24066
  return {
23853
24067
  ...output,
23854
- defaultLanguage: language ? getLang2FromLang3(language) : null,
24068
+ defaultLanguage: language ? toLang2(language) : null,
23855
24069
  };
23856
24070
  },
23857
24071
  link: (output, source) => {
@@ -23867,7 +24081,7 @@ class Gn4FieldMapper {
23867
24081
  contact: (output, source) => ({
23868
24082
  ...output,
23869
24083
  contacts: [
23870
- mapContact(getFirstValue(selectField(source, 'contact')), this.lang3),
24084
+ mapContact(getFirstValue(selectField(source, 'contact')), this.getLocalizedIndexKey),
23871
24085
  ],
23872
24086
  }),
23873
24087
  contactForResource: (output, source) => ({
@@ -23877,7 +24091,7 @@ class Gn4FieldMapper {
23877
24091
  Array.isArray(output.contactsForResource)
23878
24092
  ? output.contactsForResource
23879
24093
  : []),
23880
- ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.lang3)),
24094
+ ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.getLocalizedIndexKey)),
23881
24095
  ],
23882
24096
  }),
23883
24097
  sourceCatalogue: (output, source) => {
@@ -23887,7 +24101,7 @@ class Gn4FieldMapper {
23887
24101
  },
23888
24102
  allKeywords: (output, source) => ({
23889
24103
  ...output,
23890
- keywords: mapKeywords(selectField(source, 'allKeywords'), this.lang3),
24104
+ keywords: mapKeywords(selectField(source, 'allKeywords'), this.getLocalizedIndexKey),
23891
24105
  }),
23892
24106
  inspireTheme: (output, source) => ({
23893
24107
  ...output,
@@ -23903,7 +24117,7 @@ class Gn4FieldMapper {
23903
24117
  licenseObject: (output, source) => this.constraintField('license', output, getAsArray(selectField(source, 'licenseObject'))),
23904
24118
  lineageObject: (output, source) => ({
23905
24119
  ...output,
23906
- lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
24120
+ lineage: selectTranslatedField(source, 'lineageObject', this.getLocalizedIndexKey),
23907
24121
  }),
23908
24122
  userSavedCount: (output, source) => this.addExtra({
23909
24123
  favoriteCount: parseInt(selectField(source, 'userSavedCount')),
@@ -23977,7 +24191,7 @@ class Gn4FieldMapper {
23977
24191
  spatialExtents: [
23978
24192
  ...spatialExtents,
23979
24193
  ...geoms.map((geom, index) => {
23980
- const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.lang3);
24194
+ const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.getLocalizedIndexKey);
23981
24195
  const geometry = shapes[index] ?? geom;
23982
24196
  return {
23983
24197
  ...(description !== null ? { description } : null),
@@ -24021,7 +24235,7 @@ class Gn4FieldMapper {
24021
24235
  }
24022
24236
  const outputArray = outputField in output ? output[outputField] : [];
24023
24237
  outputArray.push(...constraintArray.map((item) => {
24024
- const text = selectTranslatedValue(item, this.lang3);
24238
+ const text = selectTranslatedValue(item, this.getLocalizedIndexKey);
24025
24239
  const url = getAsUrl(selectField(item, 'link'));
24026
24240
  return {
24027
24241
  text,
@@ -24035,9 +24249,9 @@ class Gn4FieldMapper {
24035
24249
  return result;
24036
24250
  };
24037
24251
  this.mapLink = (sourceLink) => {
24038
- const url = getAsUrl(selectFallback(selectTranslatedField(sourceLink, 'urlObject', this.lang3), selectField(sourceLink, 'url')));
24039
- const name = selectFallback(selectTranslatedField(sourceLink, 'nameObject', this.lang3), selectField(sourceLink, 'name'));
24040
- 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'));
24041
24255
  const descriptionLink = selectField(sourceLink, 'descriptionObject');
24042
24256
  const accessRestricted = descriptionLink &&
24043
24257
  'link' in descriptionLink &&
@@ -24093,8 +24307,8 @@ class Gn4FieldMapper {
24093
24307
  extras: { ...(output.extras || {}), ...value },
24094
24308
  });
24095
24309
  }
24096
- get lang3() {
24097
- return getLocalizedIndexKey(this.translateService.currentLang);
24310
+ get getLocalizedIndexKey() {
24311
+ return `lang${toLang3(this.translateService.currentLang)}`;
24098
24312
  }
24099
24313
  getMappingFn(fieldName) {
24100
24314
  return fieldName in this.fields ? this.fields[fieldName] : this.genericField;
@@ -25154,7 +25368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25154
25368
  }] } });
25155
25369
 
25156
25370
  var name = "geonetwork-ui";
25157
- var version = "2.7.0-dev.b8a597a99";
25371
+ var version = "2.7.0-dev.bded1f490";
25158
25372
  var engines = {
25159
25373
  node: ">=20"
25160
25374
  };
@@ -25259,8 +25473,9 @@ const ValidatorMapper = {
25259
25473
  abstract: (record) => !!record?.abstract,
25260
25474
  keywords: (record) => (record?.keywords?.length ?? 0) > 0,
25261
25475
  legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
25262
- contacts: (record) => !!record?.contacts?.[0]?.email,
25263
- updateFrequency: (record) => !!record?.updateFrequency,
25476
+ contacts: (record) => !!record?.contacts?.[0]?.email &&
25477
+ record.contacts[0].email !== 'missing@missing.com',
25478
+ updateFrequency: (record) => !!record?.updateFrequency && record.updateFrequency !== 'unknown',
25264
25479
  topics: (record) => (record?.topics?.length ?? 0) > 0,
25265
25480
  organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
25266
25481
  source: (record) => !!record?.extras?.sourcesIdentifiers,
@@ -25356,11 +25571,9 @@ function updateLanguages(record, defaultLanguage, otherLanguages) {
25356
25571
 
25357
25572
  class ElasticsearchService {
25358
25573
  // we're using getters in case the defined languages change over time
25359
- get lang3() {
25360
- return getLang3FromLang2(this.translateService.currentLang);
25361
- }
25362
25574
  get metadataLang() {
25363
- return this.injector.get(METADATA_LANGUAGE, null);
25575
+ const mdLangValue = this.injector.get(METADATA_LANGUAGE, null);
25576
+ return typeof mdLangValue === 'function' ? mdLangValue() : mdLangValue;
25364
25577
  }
25365
25578
  constructor(translateService, injector) {
25366
25579
  this.translateService = translateService;
@@ -25513,9 +25726,10 @@ class ElasticsearchService {
25513
25726
  }
25514
25727
  getQueryLang() {
25515
25728
  if (this.metadataLang) {
25516
- return this.isCurrentSearchLang()
25517
- ? `lang${this.lang3}`
25518
- : `lang${this.metadataLang}`;
25729
+ const lang3 = toLang3(this.isCurrentSearchLang()
25730
+ ? this.translateService.currentLang
25731
+ : this.metadataLang);
25732
+ return `lang${lang3}`;
25519
25733
  }
25520
25734
  else
25521
25735
  return '*';
@@ -26182,7 +26396,7 @@ class Gn4Repository {
26182
26396
  return this.gn4LanguagesApi
26183
26397
  .getApplicationLanguages()
26184
26398
  .pipe(map$1((languages) => languages
26185
- .map((lang) => getLang2FromLang3(lang.id))
26399
+ .map((lang) => toLang2(lang.id))
26186
26400
  .filter((code) => !!code)));
26187
26401
  }
26188
26402
  getRecordAsXml(uniqueIdentifier) {
@@ -26263,7 +26477,7 @@ class OrganizationsFromMetadataService {
26263
26477
  }), shareReplay$1());
26264
26478
  }
26265
26479
  get langIndex() {
26266
- return getLocalizedIndexKey(this.translateService.currentLang);
26480
+ return `lang${toLang3(this.translateService.currentLang)}`;
26267
26481
  }
26268
26482
  equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
26269
26483
  if (!str1 || !str2)
@@ -26418,7 +26632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26418
26632
  const IMAGE_URL = '/geonetwork/images/harvesting/';
26419
26633
  class OrganizationsFromGroupsService {
26420
26634
  get lang3() {
26421
- return getLang3FromLang2(this.translateService.currentLang);
26635
+ return toLang3(this.translateService.currentLang);
26422
26636
  }
26423
26637
  constructor(esService, searchApiService, groupsApiService, translateService) {
26424
26638
  this.esService = esService;
@@ -26527,14 +26741,14 @@ class AuthService {
26527
26741
  }
26528
26742
  return baseUrl
26529
26743
  .replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
26530
- .replace('${lang2}', this.translateService.currentLang)
26531
- .replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26744
+ .replace('${lang2}', toLang2(this.translateService.currentLang))
26745
+ .replace('${lang3}', toLang3(this.translateService.currentLang));
26532
26746
  }
26533
26747
  get logoutUrl() {
26534
26748
  return this.baseLogoutUrl;
26535
26749
  }
26536
26750
  get settingsUrl() {
26537
- return this.baseSettingsUrl.replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26751
+ return this.baseSettingsUrl.replace('${lang3}', toLang3(this.translateService.currentLang));
26538
26752
  }
26539
26753
  constructor(baseLoginUrlToken, baseLogoutUrlToken, baseSettingsUrlToken, translateService, location) {
26540
26754
  this.baseLoginUrlToken = baseLoginUrlToken;
@@ -26809,7 +27023,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26809
27023
  const minApiVersion = '4.2.2';
26810
27024
  class Gn4PlatformService {
26811
27025
  get lang3() {
26812
- return getLang3FromLang2(this.translateService.currentLang);
27026
+ return toLang3(this.translateService.currentLang);
26813
27027
  }
26814
27028
  constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
26815
27029
  this.siteApiService = siteApiService;
@@ -27578,445 +27792,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
27578
27792
  }]
27579
27793
  }] });
27580
27794
 
27581
- const LANGUAGE_CODES_ISO_3 = [
27582
- 'aar',
27583
- 'abk',
27584
- 'ace',
27585
- 'ach',
27586
- 'ada',
27587
- 'afa',
27588
- 'afh',
27589
- 'afr',
27590
- 'aka',
27591
- 'akk',
27592
- 'ale',
27593
- 'alg',
27594
- 'amh',
27595
- 'ang',
27596
- 'apa',
27597
- 'ara',
27598
- 'arc',
27599
- 'arn',
27600
- 'arp',
27601
- 'art',
27602
- 'arw',
27603
- 'asm',
27604
- 'ath',
27605
- 'aus',
27606
- 'ava',
27607
- 'ave',
27608
- 'awa',
27609
- 'aym',
27610
- 'aze',
27611
- 'bad',
27612
- 'bai',
27613
- 'bak',
27614
- 'bal',
27615
- 'bam',
27616
- 'ban',
27617
- 'bas',
27618
- 'bat',
27619
- 'bej',
27620
- 'bel',
27621
- 'bem',
27622
- 'ben',
27623
- 'ber',
27624
- 'bho',
27625
- 'bih',
27626
- 'bik',
27627
- 'bin',
27628
- 'bis',
27629
- 'bla',
27630
- 'bnt',
27631
- 'tib',
27632
- 'bos',
27633
- 'bra',
27634
- 'bre',
27635
- 'btk',
27636
- 'bua',
27637
- 'bug',
27638
- 'bul',
27639
- 'cad',
27640
- 'cai',
27641
- 'car',
27642
- 'cat',
27643
- 'cau',
27644
- 'ceb',
27645
- 'cel',
27646
- 'cze',
27647
- 'cha',
27648
- 'chb',
27649
- 'che',
27650
- 'chg',
27651
- 'chk',
27652
- 'chm',
27653
- 'chn',
27654
- 'cho',
27655
- 'chp',
27656
- 'chr',
27657
- 'chu',
27658
- 'chv',
27659
- 'chy',
27660
- 'cmc',
27661
- 'cop',
27662
- 'cor',
27663
- 'cos',
27664
- 'cpe',
27665
- 'cpf',
27666
- 'cpp',
27667
- 'cre',
27668
- 'crp',
27669
- 'cus',
27670
- 'wel',
27671
- 'dak',
27672
- 'dan',
27673
- 'day',
27674
- 'del',
27675
- 'den',
27676
- 'ger',
27677
- 'dgr',
27678
- 'din',
27679
- 'div',
27680
- 'doi',
27681
- 'dra',
27682
- 'dua',
27683
- 'dum',
27684
- 'dyu',
27685
- 'dzo',
27686
- 'efi',
27687
- 'egy',
27688
- 'eka',
27689
- 'gre',
27690
- 'elx',
27691
- 'eng',
27692
- 'enm',
27693
- 'epo',
27694
- 'est',
27695
- 'baq',
27696
- 'ewe',
27697
- 'ewo',
27698
- 'fan',
27699
- 'fao',
27700
- 'per',
27701
- 'fat',
27702
- 'fij',
27703
- 'fin',
27704
- 'fiu',
27705
- 'fon',
27706
- 'fre',
27707
- 'frm',
27708
- 'fro',
27709
- 'fry',
27710
- 'ful',
27711
- 'fur',
27712
- 'gaa',
27713
- 'gay',
27714
- 'gba',
27715
- 'gem',
27716
- 'gez',
27717
- 'gil',
27718
- 'gla',
27719
- 'gle',
27720
- 'glg',
27721
- 'glv',
27722
- 'gmh',
27723
- 'goh',
27724
- 'gon',
27725
- 'gor',
27726
- 'got',
27727
- 'grb',
27728
- 'grc',
27729
- 'grn',
27730
- 'guj',
27731
- 'gwi',
27732
- 'hai',
27733
- 'hau',
27734
- 'haw',
27735
- 'heb',
27736
- 'her',
27737
- 'hil',
27738
- 'him',
27739
- 'hin',
27740
- 'hit',
27741
- 'hmn',
27742
- 'hmo',
27743
- 'scr',
27744
- 'hun',
27745
- 'hup',
27746
- 'arm',
27747
- 'iba',
27748
- 'ibo',
27749
- 'ijo',
27750
- 'iku',
27751
- 'ile',
27752
- 'ilo',
27753
- 'ina',
27754
- 'inc',
27755
- 'ind',
27756
- 'ine',
27757
- 'ipk',
27758
- 'ira',
27759
- 'iro',
27760
- 'ice',
27761
- 'ita',
27762
- 'jav',
27763
- 'jpn',
27764
- 'jpr',
27765
- 'jrb',
27766
- 'kaa',
27767
- 'kab',
27768
- 'kac',
27769
- 'kal',
27770
- 'kam',
27771
- 'kan',
27772
- 'kar',
27773
- 'kas',
27774
- 'geo',
27775
- 'kau',
27776
- 'kaw',
27777
- 'kaz',
27778
- 'kha',
27779
- 'khi',
27780
- 'khm',
27781
- 'kho',
27782
- 'kik',
27783
- 'kin',
27784
- 'kir',
27785
- 'kmb',
27786
- 'kok',
27787
- 'kom',
27788
- 'kon',
27789
- 'kor',
27790
- 'kos',
27791
- 'kpe',
27792
- 'kro',
27793
- 'kru',
27794
- 'kua',
27795
- 'kum',
27796
- 'kur',
27797
- 'kut',
27798
- 'lad',
27799
- 'lah',
27800
- 'lam',
27801
- 'lao',
27802
- 'lat',
27803
- 'lav',
27804
- 'lez',
27805
- 'lin',
27806
- 'lit',
27807
- 'lol',
27808
- 'loz',
27809
- 'ltz',
27810
- 'lua',
27811
- 'lub',
27812
- 'lug',
27813
- 'lui',
27814
- 'lun',
27815
- 'luo',
27816
- 'lus',
27817
- 'mad',
27818
- 'mag',
27819
- 'mah',
27820
- 'mai',
27821
- 'mak',
27822
- 'mal',
27823
- 'man',
27824
- 'map',
27825
- 'mar',
27826
- 'mas',
27827
- 'mdr',
27828
- 'men',
27829
- 'mga',
27830
- 'mic',
27831
- 'min',
27832
- 'mis',
27833
- 'mac',
27834
- 'mkh',
27835
- 'mlg',
27836
- 'mlt',
27837
- 'mnc',
27838
- 'mni',
27839
- 'mno',
27840
- 'moh',
27841
- 'mol',
27842
- 'mon',
27843
- 'mos',
27844
- 'mao',
27845
- 'may',
27846
- 'mul',
27847
- 'mun',
27848
- 'mus',
27849
- 'mwr',
27850
- 'bur',
27851
- 'myn',
27852
- 'nah',
27853
- 'nai',
27854
- 'nau',
27855
- 'nav',
27856
- 'nbl',
27857
- 'nde',
27858
- 'ndo',
27859
- 'nep',
27860
- 'new',
27861
- 'nia',
27862
- 'nic',
27863
- 'niu',
27864
- 'dut',
27865
- 'nno',
27866
- 'nob',
27867
- 'non',
27868
- 'nor',
27869
- 'nso',
27870
- 'nub',
27871
- 'nya',
27872
- 'nym',
27873
- 'nyn',
27874
- 'nyo',
27875
- 'nzi',
27876
- 'oci',
27877
- 'oji',
27878
- 'ori',
27879
- 'orm',
27880
- 'osa',
27881
- 'oss',
27882
- 'ota',
27883
- 'oto',
27884
- 'paa',
27885
- 'pag',
27886
- 'pal',
27887
- 'pam',
27888
- 'pan',
27889
- 'pap',
27890
- 'pau',
27891
- 'peo',
27892
- 'phi',
27893
- 'phn',
27894
- 'pli',
27895
- 'pol',
27896
- 'pon',
27897
- 'por',
27898
- 'pra',
27899
- 'pro',
27900
- 'pus',
27901
- 'que',
27902
- 'raj',
27903
- 'rap',
27904
- 'rar',
27905
- 'roa',
27906
- 'roh',
27907
- 'rom',
27908
- 'rum',
27909
- 'run',
27910
- 'rus',
27911
- 'sad',
27912
- 'sag',
27913
- 'sah',
27914
- 'sai',
27915
- 'sal',
27916
- 'sam',
27917
- 'san',
27918
- 'sas',
27919
- 'sat',
27920
- 'sco',
27921
- 'sel',
27922
- 'sem',
27923
- 'sga',
27924
- 'sgn',
27925
- 'shn',
27926
- 'sid',
27927
- 'sin',
27928
- 'sio',
27929
- 'sit',
27930
- 'sla',
27931
- 'slo',
27932
- 'slv',
27933
- 'sme',
27934
- 'smi',
27935
- 'smo',
27936
- 'sna',
27937
- 'snd',
27938
- 'snk',
27939
- 'sog',
27940
- 'som',
27941
- 'son',
27942
- 'sot',
27943
- 'spa',
27944
- 'alb',
27945
- 'srd',
27946
- 'scc',
27947
- 'srr',
27948
- 'ssa',
27949
- 'ssw',
27950
- 'suk',
27951
- 'sun',
27952
- 'sus',
27953
- 'sux',
27954
- 'swa',
27955
- 'swe',
27956
- 'syr',
27957
- 'tah',
27958
- 'tai',
27959
- 'tam',
27960
- 'tat',
27961
- 'tel',
27962
- 'tem',
27963
- 'ter',
27964
- 'tet',
27965
- 'tgk',
27966
- 'tgl',
27967
- 'tha',
27968
- 'tig',
27969
- 'tir',
27970
- 'tiv',
27971
- 'tkl',
27972
- 'tli',
27973
- 'tmh',
27974
- 'tog',
27975
- 'ton',
27976
- 'tpi',
27977
- 'tsi',
27978
- 'tsn',
27979
- 'tso',
27980
- 'tuk',
27981
- 'tum',
27982
- 'tur',
27983
- 'tut',
27984
- 'tvl',
27985
- 'twi',
27986
- 'tyv',
27987
- 'uga',
27988
- 'uig',
27989
- 'ukr',
27990
- 'umb',
27991
- 'und',
27992
- 'urd',
27993
- 'uzb',
27994
- 'vai',
27995
- 'ven',
27996
- 'vie',
27997
- 'vol',
27998
- 'vot',
27999
- 'wak',
28000
- 'wal',
28001
- 'war',
28002
- 'was',
28003
- 'wen',
28004
- 'wol',
28005
- 'xho',
28006
- 'yao',
28007
- 'yap',
28008
- 'yid',
28009
- 'yor',
28010
- 'ypk',
28011
- 'zap',
28012
- 'zen',
28013
- 'zha',
28014
- 'chi',
28015
- 'znd',
28016
- 'zul',
28017
- 'zun',
28018
- ];
28019
-
28020
27795
  const flatten = (base, obj, keepLevel = false) => Object.keys(obj).reduce((prev, curr) => {
28021
27796
  const path = base ? `${base}.${curr}` : curr;
28022
27797
  const val = obj[curr];
@@ -28098,8 +27873,9 @@ function parseMultiConfigSection(fullConfigObj, sectionName, mandatoryKeys, opti
28098
27873
  return result;
28099
27874
  }
28100
27875
  function checkMetadataLanguage(parsedConfigSection, outWarnings) {
28101
- if (LANGUAGE_CODES_ISO_3.indexOf(parsedConfigSection.metadata_language.toLowerCase()) === -1) {
28102
- 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`);
28103
27879
  }
28104
27880
  return parsedConfigSection;
28105
27881
  }
@@ -28446,7 +28222,7 @@ const wrongLanguageCodeConfigFixture = () => `
28446
28222
  [global]
28447
28223
  geonetwork4_api_url = "/geonetwork/srv/api"
28448
28224
  proxy_path = "/proxy/?url="
28449
- metadata_language = "fra"
28225
+ metadata_language = "abc"
28450
28226
 
28451
28227
  [map]
28452
28228
 
@@ -39901,7 +39677,7 @@ class SourcesService {
39901
39677
  this.sources$ = this.sourcesApiService.getSubPortals1().pipe(shareReplay$1());
39902
39678
  }
39903
39679
  getSourceLabel(uuid) {
39904
- 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)]));
39905
39681
  }
39906
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 }); }
39907
39683
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, providedIn: 'root' }); }
@@ -41137,6 +40913,10 @@ const RECORD_KEYWORDS_FIELD = {
41137
40913
  model: 'keywords',
41138
40914
  formFieldConfig: {},
41139
40915
  };
40916
+ const RECORD_TOPICS_FIELD = {
40917
+ model: 'topics',
40918
+ formFieldConfig: {},
40919
+ };
41140
40920
  const RECORD_RESOURCE_CREATED_FIELD = {
41141
40921
  model: 'resourceCreated',
41142
40922
  formFieldConfig: {
@@ -41282,6 +41062,12 @@ const CLASSIFICATION_SECTION = {
41282
41062
  hidden: false,
41283
41063
  fields: [RECORD_KEYWORDS_FIELD],
41284
41064
  };
41065
+ const INSPIRE_SECTION = {
41066
+ labelKey: marker('editor.record.form.section.inspire.label'),
41067
+ descriptionKey: marker('editor.record.form.section.inspire.description'),
41068
+ hidden: false,
41069
+ fields: [RECORD_TOPICS_FIELD],
41070
+ };
41285
41071
  const USE_AND_ACCESS_CONDITIONS_SECTION = {
41286
41072
  labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
41287
41073
  hidden: false,
@@ -41316,6 +41102,7 @@ const DEFAULT_CONFIGURATION = {
41316
41102
  sections: [
41317
41103
  TITLE_SECTION,
41318
41104
  CLASSIFICATION_SECTION,
41105
+ INSPIRE_SECTION,
41319
41106
  ABOUT_SECTION,
41320
41107
  GEOGRAPHICAL_COVERAGE_SECTION,
41321
41108
  ],
@@ -41378,6 +41165,71 @@ const SPATIAL_SCOPES = [
41378
41165
  type: 'theme',
41379
41166
  },
41380
41167
  ];
41168
+ /************************************************************
41169
+ *************** INSPIRE THEMES **************
41170
+ ************************************************************
41171
+ */
41172
+ const INSPIRE_THEMES = [
41173
+ { value: 'biota', label: 'editor.record.form.inspire.biota' },
41174
+ { value: 'boundaries', label: 'editor.record.form.inspire.boundaries' },
41175
+ {
41176
+ value: 'climatologyMeteorologyAtmosphere',
41177
+ label: 'editor.record.form.inspire.climatology',
41178
+ },
41179
+ { value: 'economy', label: 'editor.record.form.inspire.economy' },
41180
+ { value: 'elevation', label: 'editor.record.form.inspire.elevation' },
41181
+ { value: 'environment', label: 'editor.record.form.inspire.environnement' },
41182
+ { value: 'farming', label: 'editor.record.form.inspire.farming' },
41183
+ {
41184
+ value: 'geoscientific information',
41185
+ label: 'editor.record.form.inspire.geoscientific',
41186
+ },
41187
+ { value: 'health', label: 'editor.record.form.inspire.health' },
41188
+ {
41189
+ value: 'imageryBaseMapsEarthCover',
41190
+ label: 'editor.record.form.inspire.imagery',
41191
+ },
41192
+ {
41193
+ value: 'intelligenceMilitary',
41194
+ label: 'editor.record.form.inspire.intelligence',
41195
+ },
41196
+ { value: 'Location', label: 'editor.record.form.inspire.location' },
41197
+ { value: 'Oceans', label: 'editor.record.form.inspire.oceans' },
41198
+ {
41199
+ value: 'planningCadastre',
41200
+ label: 'editor.record.form.inspire.planning',
41201
+ },
41202
+ { value: 'Society', label: 'editor.record.form.inspire.society' },
41203
+ { value: 'Structure', label: 'editor.record.form.inspire.structure' },
41204
+ {
41205
+ value: 'Transportation',
41206
+ label: 'editor.record.form.inspire.transportation',
41207
+ },
41208
+ {
41209
+ value: 'utilitiesCommunication',
41210
+ label: 'editor.record.form.inspire.utilities',
41211
+ },
41212
+ { value: 'inlandWaters', label: 'editor.record.form.inspire.waters' },
41213
+ ];
41214
+ marker('editor.record.form.inspire.biota');
41215
+ marker('editor.record.form.inspire.boundaries');
41216
+ marker('editor.record.form.inspire.climatology');
41217
+ marker('editor.record.form.inspire.economy');
41218
+ marker('editor.record.form.inspire.elevation');
41219
+ marker('editor.record.form.inspire.environnement');
41220
+ marker('editor.record.form.inspire.farming');
41221
+ marker('editor.record.form.inspire.geoscientific');
41222
+ marker('editor.record.form.inspire.health');
41223
+ marker('editor.record.form.inspire.imagery');
41224
+ marker('editor.record.form.inspire.intelligence');
41225
+ marker('editor.record.form.inspire.location');
41226
+ marker('editor.record.form.inspire.oceans');
41227
+ marker('editor.record.form.inspire.planning');
41228
+ marker('editor.record.form.inspire.society');
41229
+ marker('editor.record.form.inspire.structure');
41230
+ marker('editor.record.form.inspire.transportation');
41231
+ marker('editor.record.form.inspire.utilities');
41232
+ marker('editor.record.form.inspire.waters');
41381
41233
 
41382
41234
  const EDITOR_FEATURE_KEY = 'editor';
41383
41235
  const initialEditorState = {
@@ -43503,6 +43355,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43503
43355
  args: [{ selector: 'gn-ui-form-field-spatial-toggle', standalone: true, imports: [CommonModule, SwitchToggleComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-switch-toggle\n [options]=\"switchToggleOptions$ | async\"\n (selectedValue)=\"onSpatialScopeChange($event)\"\n extraClasses=\"grow text-sm\"\n></gn-ui-switch-toggle>\n" }]
43504
43356
  }], ctorParameters: () => [{ type: EditorFacade }] });
43505
43357
 
43358
+ class FormFieldInspireThemeComponent {
43359
+ set value(themes) {
43360
+ this.themes = themes;
43361
+ }
43362
+ constructor(translateService) {
43363
+ this.translateService = translateService;
43364
+ this.themes = [];
43365
+ this.valueChange = new EventEmitter();
43366
+ this.availableThemes = INSPIRE_THEMES;
43367
+ this.displayWithFn = (item) => {
43368
+ return item?.title ? `${item.title}` : '';
43369
+ };
43370
+ this.autoCompleteAction = (query) => {
43371
+ return of(this.availableThemes
43372
+ .filter((theme) => theme.value.toLowerCase().includes(query.toLowerCase()))
43373
+ .sort((a, b) => {
43374
+ const aStarts = a.value.startsWith(query);
43375
+ const bStarts = b.value.startsWith(query);
43376
+ if (aStarts && !bStarts)
43377
+ return -1;
43378
+ if (!aStarts && bStarts)
43379
+ return 1;
43380
+ return 0;
43381
+ })
43382
+ .map((theme) => {
43383
+ return {
43384
+ title: this.translateService.instant(theme.label),
43385
+ value: theme.value,
43386
+ };
43387
+ }));
43388
+ };
43389
+ }
43390
+ handleItemSelection(item) {
43391
+ this.addTheme(item.value);
43392
+ }
43393
+ addTheme(theme) {
43394
+ const duplicatedTheme = this.themes.find((t) => t === theme);
43395
+ if (!duplicatedTheme) {
43396
+ this.themes = [...this.themes, theme];
43397
+ this.valueChange.emit(this.themes);
43398
+ }
43399
+ }
43400
+ removeTheme(theme) {
43401
+ console.log(this.themes);
43402
+ this.themes = this.themes.filter((t) => t !== theme);
43403
+ this.valueChange.emit(this.themes);
43404
+ }
43405
+ getTranslatedTheme(theme) {
43406
+ const themeKey = this.availableThemes.find((avail) => avail.value === theme)?.label;
43407
+ return themeKey ? this.translateService.instant(themeKey) : '';
43408
+ }
43409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
43410
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldInspireThemeComponent, isStandalone: true, selector: "gn-ui-form-field-inspire-theme", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.inspire.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
43411
+ }
43412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, decorators: [{
43413
+ type: Component,
43414
+ args: [{ selector: 'gn-ui-form-field-inspire-theme', standalone: true, imports: [
43415
+ CommonModule,
43416
+ AutocompleteComponent,
43417
+ NgIconComponent,
43418
+ BadgeComponent,
43419
+ TranslatePipe,
43420
+ ], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.inspire.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n" }]
43421
+ }], ctorParameters: () => [{ type: i1$1.TranslateService }], propDecorators: { value: [{
43422
+ type: Input
43423
+ }], valueChange: [{
43424
+ type: Output
43425
+ }] } });
43426
+
43506
43427
  class FormFieldComponent {
43507
43428
  constructor() {
43508
43429
  this.valueChange = new EventEmitter();
@@ -43540,6 +43461,9 @@ class FormFieldComponent {
43540
43461
  get valueAsKeywords() {
43541
43462
  return this.value;
43542
43463
  }
43464
+ get valueAsInspireTheme() {
43465
+ return this.value;
43466
+ }
43543
43467
  get valueAsConstraints() {
43544
43468
  return this.value;
43545
43469
  }
@@ -43550,7 +43474,7 @@ class FormFieldComponent {
43550
43474
  return this.value;
43551
43475
  }
43552
43476
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43553
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43477
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-inspire-theme\n [value]=\"valueAsInspireTheme\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-inspire-theme>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "component", type: FormFieldInspireThemeComponent, selector: "gn-ui-form-field-inspire-theme", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43554
43478
  }
43555
43479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
43556
43480
  type: Component,
@@ -43575,8 +43499,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43575
43499
  FormFieldConstraintsComponent,
43576
43500
  FormFieldConstraintsShortcutsComponent,
43577
43501
  FormFieldSpatialToggleComponent,
43502
+ FormFieldInspireThemeComponent,
43578
43503
  TextFieldModule,
43579
- ], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
43504
+ ], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-inspire-theme\n [value]=\"valueAsInspireTheme\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-inspire-theme>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
43580
43505
  }], propDecorators: { uniqueIdentifier: [{
43581
43506
  type: Input
43582
43507
  }], model: [{
@@ -44102,7 +44027,7 @@ class RouterFacade {
44102
44027
  });
44103
44028
  }
44104
44029
  goToOrganization(organizationName) {
44105
- const safeOrgName = organizationName.replace('/', '');
44030
+ const safeOrgName = organizationName.replace(/\//g, '');
44106
44031
  const path = `${this.routerService.getOrganizationPageRoute()}/${safeOrgName}`;
44107
44032
  this.go({
44108
44033
  path,
@@ -44389,5 +44314,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
44389
44314
  * Generated bundle index. Do not edit.
44390
44315
  */
44391
44316
 
44392
- 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, 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 };
44393
44318
  //# sourceMappingURL=geonetwork-ui.mjs.map