geonetwork-ui 2.7.0-dev.76c515d5b → 2.7.0-dev.7cec835f7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) 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 +11 -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 +3 -2
  23. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  24. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
  25. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  26. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  27. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  28. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +7 -7
  29. package/esm2022/translations/de.json +32 -0
  30. package/esm2022/translations/en.json +32 -0
  31. package/esm2022/translations/es.json +32 -0
  32. package/esm2022/translations/fr.json +32 -0
  33. package/esm2022/translations/it.json +32 -0
  34. package/esm2022/translations/nl.json +32 -0
  35. package/esm2022/translations/pt.json +32 -0
  36. package/esm2022/translations/sk.json +32 -0
  37. package/fesm2022/geonetwork-ui.mjs +533 -520
  38. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  39. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  40. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  41. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  42. package/libs/api/repository/src/index.d.ts +1 -1
  43. package/libs/api/repository/src/index.d.ts.map +1 -1
  44. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  45. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  46. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  47. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  48. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -0
  49. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  50. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  51. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +28 -0
  52. 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
  53. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  54. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  55. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  56. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  57. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  58. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  59. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  60. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
  61. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  62. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  63. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  64. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  65. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  66. package/package.json +11 -10
  67. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  68. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  69. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  70. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  71. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  72. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  73. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  74. package/src/libs/api/repository/src/index.ts +1 -1
  75. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  76. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  77. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  78. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  79. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  80. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
  81. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  82. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +16 -0
  83. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  84. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  85. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +20 -0
  86. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +85 -0
  87. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  88. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  89. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  90. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -1
  91. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  92. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  93. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
  94. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  95. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  96. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  97. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +8 -9
  98. package/translations/de.json +32 -0
  99. package/translations/en.json +32 -0
  100. package/translations/es.json +32 -0
  101. package/translations/fr.json +32 -0
  102. package/translations/it.json +32 -0
  103. package/translations/nl.json +32 -0
  104. package/translations/pt.json +32 -0
  105. package/translations/sk.json +32 -0
  106. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  107. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  108. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  109. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  110. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  111. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  112. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -908,6 +908,16 @@ const RecordStatusValues = [
908
908
  'planned',
909
909
  'required',
910
910
  ];
911
+ marker('record.metadata.api.accessServiceProtocol.wms');
912
+ marker('record.metadata.api.accessServiceProtocol.wfs');
913
+ marker('record.metadata.api.accessServiceProtocol.wps');
914
+ marker('record.metadata.api.accessServiceProtocol.wmts');
915
+ marker('record.metadata.api.accessServiceProtocol.esriRest');
916
+ marker('record.metadata.api.accessServiceProtocol.ogcFeatures');
917
+ marker('record.metadata.api.accessServiceProtocol.GPFDL');
918
+ marker('record.metadata.api.accessServiceProtocol.tms');
919
+ marker('record.metadata.api.accessServiceProtocol.maplibre-style');
920
+ marker('record.metadata.api.accessServiceProtocol.other');
911
921
 
912
922
  function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
913
923
  return frequencyCode &&
@@ -916,21 +926,33 @@ function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
916
926
  : null;
917
927
  }
918
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
+ */
919
934
  const LANG_3_TO_2_MAPPER = {
920
935
  eng: 'en',
936
+ nld: 'nl', // duplicate for "dut"
921
937
  dut: 'nl',
938
+ fra: 'fr', // duplicate for "fre"
922
939
  fre: 'fr',
940
+ deu: 'de', // duplicate for "ger"
923
941
  ger: 'de',
924
942
  kor: 'ko',
925
943
  spa: 'es',
944
+ ces: 'cs', // duplicate for "cze"
926
945
  cze: 'cs',
927
946
  cat: 'ca',
928
947
  fin: 'fi',
948
+ isl: 'is', // duplicate for "ice"
929
949
  ice: 'is',
930
950
  ita: 'it',
931
951
  por: 'pt',
932
952
  rus: 'ru',
953
+ zho: 'zh', // duplicate for "chi"
933
954
  chi: 'zh',
955
+ slk: 'sk', // duplicate for "slo"
934
956
  slo: 'sk',
935
957
  roh: 'rm',
936
958
  ara: 'ar',
@@ -941,8 +963,10 @@ const LANG_3_TO_2_MAPPER = {
941
963
  tur: 'tr',
942
964
  arm: 'hy',
943
965
  aze: 'az',
966
+ kat: 'ka', // duplicate for "geo"
944
967
  geo: 'ka',
945
968
  ukr: 'uk',
969
+ cym: 'cy', // duplicate for "wel"
946
970
  wel: 'cy',
947
971
  };
948
972
  const LANGUAGE_NAMES = {
@@ -977,15 +1001,42 @@ const LANGUAGE_NAMES = {
977
1001
  const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce((mapperObject, langEntry) => {
978
1002
  return { ...mapperObject, [langEntry[1]]: langEntry[0] };
979
1003
  }, {});
980
- function getLang3FromLang2(lang2) {
981
- return LANG_2_TO_3_MAPPER[lang2] ?? lang2;
982
- }
983
- function getLang2FromLang3(lang3) {
984
- 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;
985
1018
  }
986
- function getLocalizedIndexKey(lang2) {
987
- const lang3 = getLang3FromLang2(lang2);
988
- 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;
989
1040
  }
990
1041
  marker('language.en');
991
1042
  marker('language.nl');
@@ -1520,10 +1571,10 @@ function readSpatialExtents$1(rootEl) {
1520
1571
  }
1521
1572
  function readOtherLanguages$1(rootEl) {
1522
1573
  const defaultLanguage = readDefaultLanguage$2(rootEl);
1523
- 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);
1524
1575
  }
1525
1576
  function readDefaultLanguage$2(rootEl) {
1526
- 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);
1527
1578
  }
1528
1579
  function readResourceIdentifier(rootEl) {
1529
1580
  return pipe(findIdentification(), findNestedElement('gmd:citation', 'gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
@@ -2023,12 +2074,12 @@ function writeLanguages(record, rootEl) {
2023
2074
  if (!record.otherLanguages?.length) {
2024
2075
  return;
2025
2076
  }
2026
- 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));
2027
2078
  // add new languages (only if other than default one)
2028
2079
  appendChildren(createLanguageEl(record.defaultLanguage), ...record.otherLanguages.map(createLanguageEl))(rootEl);
2029
2080
  }
2030
2081
  function writeDefaultLanguage$1(record, rootEl) {
2031
- const lang3 = getLang3FromLang2(record.defaultLanguage.toLowerCase());
2082
+ const lang3 = toLang3(record.defaultLanguage.toLowerCase());
2032
2083
  return pipe(findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3))(rootEl);
2033
2084
  }
2034
2085
  function writeResourceIdentifier(record, rootEl) {
@@ -2468,7 +2519,7 @@ function readOnlineResources$1(rootEl) {
2468
2519
  return pipe(findNestedElements('mrd:distributionInfo', 'mrd:MD_Distribution'), mapArray(getOnlineResources), flattenArray())(rootEl);
2469
2520
  }
2470
2521
  function readLocaleElement() {
2471
- 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));
2472
2523
  }
2473
2524
  function readDefaultLanguage$1(rootEl) {
2474
2525
  return pipe(findChildElement('mdb:defaultLocale', false), readLocaleElement())(rootEl);
@@ -2607,7 +2658,7 @@ function writeOnlineResources(record, rootEl) {
2607
2658
  });
2608
2659
  }
2609
2660
  function writeLocaleElement(language) {
2610
- const lang3 = getLang3FromLang2(language.toLowerCase()) ?? language;
2661
+ const lang3 = toLang3(language.toLowerCase()) ?? language;
2611
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));
2612
2663
  }
2613
2664
  function writeDefaultLanguage(record, rootEl) {
@@ -3112,11 +3163,8 @@ function readDefaultLanguage(dataStore, recordNode) {
3112
3163
  if (!statements.length)
3113
3164
  return null;
3114
3165
  const languageNode = statements[0].object;
3115
- let language = languageNode.value.split('/').pop().toLowerCase();
3116
- if (language.length === 3) {
3117
- language = getLang2FromLang3(language) ?? language;
3118
- }
3119
- return language.substring(0, 2);
3166
+ const language = languageNode.value.split('/').pop().toLowerCase();
3167
+ return toLang2(language) ?? language;
3120
3168
  }
3121
3169
 
3122
3170
  /**
@@ -18880,6 +18928,26 @@ var de = {
18880
18928
  "editor.record.form.field.topics": "Kategorien",
18881
18929
  "editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
18882
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": "",
18883
18951
  "editor.record.form.keywords.place.placeholder": "",
18884
18952
  "editor.record.form.keywords.place.withoutExtent": "",
18885
18953
  "editor.record.form.keywords.placeholder": "",
@@ -18915,6 +18983,8 @@ var de = {
18915
18983
  "editor.record.form.section.dataManagers.description": "",
18916
18984
  "editor.record.form.section.dataManagers.label": "",
18917
18985
  "editor.record.form.section.geographicalCoverage.label": "",
18986
+ "editor.record.form.section.inspire.description": "",
18987
+ "editor.record.form.section.inspire.label": "",
18918
18988
  "editor.record.form.section.metadataPointOfContact.description": "",
18919
18989
  "editor.record.form.section.metadataPointOfContact.label": "",
18920
18990
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -19086,6 +19156,16 @@ var de = {
19086
19156
  "record.kind.service": "",
19087
19157
  "record.metadata.about": "Beschreibung",
19088
19158
  "record.metadata.api": "API",
19159
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
19160
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
19161
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
19162
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
19163
+ "record.metadata.api.accessServiceProtocol.other": "",
19164
+ "record.metadata.api.accessServiceProtocol.tms": "",
19165
+ "record.metadata.api.accessServiceProtocol.wfs": "",
19166
+ "record.metadata.api.accessServiceProtocol.wms": "",
19167
+ "record.metadata.api.accessServiceProtocol.wmts": "",
19168
+ "record.metadata.api.accessServiceProtocol.wps": "",
19089
19169
  "record.metadata.api.form.closeButton": "Schließen",
19090
19170
  "record.metadata.api.form.closeForm": "Formular schließen",
19091
19171
  "record.metadata.api.form.create": "Ihre Anfrage erstellen",
@@ -19498,6 +19578,26 @@ var en = {
19498
19578
  "editor.record.form.field.topics": "Categories",
19499
19579
  "editor.record.form.field.uniqueIdentifier": "Unique identifier",
19500
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",
19501
19601
  "editor.record.form.keywords.place.placeholder": "Search for place keywords",
19502
19602
  "editor.record.form.keywords.place.withoutExtent": "This keyword is not associated with any geographical extent",
19503
19603
  "editor.record.form.keywords.placeholder": "Select a keyword",
@@ -19533,6 +19633,8 @@ var en = {
19533
19633
  "editor.record.form.section.dataManagers.description": "The data managers are responsible for the data",
19534
19634
  "editor.record.form.section.dataManagers.label": "Data managers",
19535
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",
19536
19638
  "editor.record.form.section.metadataPointOfContact.description": "This information concerns the metadata",
19537
19639
  "editor.record.form.section.metadataPointOfContact.label": "Metadata point of contact",
19538
19640
  "editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
@@ -19704,6 +19806,16 @@ var en = {
19704
19806
  "record.kind.service": "Service",
19705
19807
  "record.metadata.about": "Description",
19706
19808
  "record.metadata.api": "API",
19809
+ "record.metadata.api.accessServiceProtocol.GPFDL": "GPFDL",
19810
+ "record.metadata.api.accessServiceProtocol.esriRest": "esriRest",
19811
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "maplibre-style",
19812
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "ogcFeatures",
19813
+ "record.metadata.api.accessServiceProtocol.other": "other",
19814
+ "record.metadata.api.accessServiceProtocol.tms": "tms",
19815
+ "record.metadata.api.accessServiceProtocol.wfs": "wfs",
19816
+ "record.metadata.api.accessServiceProtocol.wms": "wms",
19817
+ "record.metadata.api.accessServiceProtocol.wmts": "wmts",
19818
+ "record.metadata.api.accessServiceProtocol.wps": "wps",
19707
19819
  "record.metadata.api.form.closeButton": "Close",
19708
19820
  "record.metadata.api.form.closeForm": "Close the form",
19709
19821
  "record.metadata.api.form.create": "Create your request",
@@ -20116,6 +20228,26 @@ var es = {
20116
20228
  "editor.record.form.field.topics": "Categorías",
20117
20229
  "editor.record.form.field.uniqueIdentifier": "",
20118
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": "",
20119
20251
  "editor.record.form.keywords.place.placeholder": "",
20120
20252
  "editor.record.form.keywords.place.withoutExtent": "",
20121
20253
  "editor.record.form.keywords.placeholder": "",
@@ -20151,6 +20283,8 @@ var es = {
20151
20283
  "editor.record.form.section.dataManagers.description": "",
20152
20284
  "editor.record.form.section.dataManagers.label": "",
20153
20285
  "editor.record.form.section.geographicalCoverage.label": "",
20286
+ "editor.record.form.section.inspire.description": "",
20287
+ "editor.record.form.section.inspire.label": "",
20154
20288
  "editor.record.form.section.metadataPointOfContact.description": "",
20155
20289
  "editor.record.form.section.metadataPointOfContact.label": "",
20156
20290
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -20322,6 +20456,16 @@ var es = {
20322
20456
  "record.kind.service": "",
20323
20457
  "record.metadata.about": "",
20324
20458
  "record.metadata.api": "",
20459
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
20460
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
20461
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
20462
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
20463
+ "record.metadata.api.accessServiceProtocol.other": "",
20464
+ "record.metadata.api.accessServiceProtocol.tms": "",
20465
+ "record.metadata.api.accessServiceProtocol.wfs": "",
20466
+ "record.metadata.api.accessServiceProtocol.wms": "",
20467
+ "record.metadata.api.accessServiceProtocol.wmts": "",
20468
+ "record.metadata.api.accessServiceProtocol.wps": "",
20325
20469
  "record.metadata.api.form.closeButton": "",
20326
20470
  "record.metadata.api.form.closeForm": "",
20327
20471
  "record.metadata.api.form.create": "",
@@ -20734,6 +20878,26 @@ var fr = {
20734
20878
  "editor.record.form.field.topics": "Thèmes",
20735
20879
  "editor.record.form.field.uniqueIdentifier": "Identifiant unique",
20736
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",
20737
20901
  "editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
20738
20902
  "editor.record.form.keywords.place.withoutExtent": "Ce mot-clé n'a pas de localisation géographique associée",
20739
20903
  "editor.record.form.keywords.placeholder": "Sélectionnez un mot-clé",
@@ -20769,6 +20933,8 @@ var fr = {
20769
20933
  "editor.record.form.section.dataManagers.description": "Cette information concerne la donnée",
20770
20934
  "editor.record.form.section.dataManagers.label": "Responsables de la donnée",
20771
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",
20772
20938
  "editor.record.form.section.metadataPointOfContact.description": "Cette information concerne la métadonnée",
20773
20939
  "editor.record.form.section.metadataPointOfContact.label": "Point de contact de la métadonnée",
20774
20940
  "editor.record.form.section.useAndAccessConditions.label": "Conditions d'accès et d'utilisation",
@@ -20940,6 +21106,16 @@ var fr = {
20940
21106
  "record.kind.service": "Service",
20941
21107
  "record.metadata.about": "A propos",
20942
21108
  "record.metadata.api": "API",
21109
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
21110
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
21111
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
21112
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
21113
+ "record.metadata.api.accessServiceProtocol.other": "autre",
21114
+ "record.metadata.api.accessServiceProtocol.tms": "",
21115
+ "record.metadata.api.accessServiceProtocol.wfs": "",
21116
+ "record.metadata.api.accessServiceProtocol.wms": "",
21117
+ "record.metadata.api.accessServiceProtocol.wmts": "",
21118
+ "record.metadata.api.accessServiceProtocol.wps": "",
20943
21119
  "record.metadata.api.form.closeButton": "Fermer",
20944
21120
  "record.metadata.api.form.closeForm": "Fermer le panneau de personnalisation",
20945
21121
  "record.metadata.api.form.create": "Paramétrer votre requête",
@@ -21352,6 +21528,26 @@ var it = {
21352
21528
  "editor.record.form.field.topics": "",
21353
21529
  "editor.record.form.field.uniqueIdentifier": "Identificatore univoco",
21354
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": "",
21355
21551
  "editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
21356
21552
  "editor.record.form.keywords.place.withoutExtent": "Questa parola chiave non ha una posizione geografica associata",
21357
21553
  "editor.record.form.keywords.placeholder": "Seleziona una parola chiave",
@@ -21387,6 +21583,8 @@ var it = {
21387
21583
  "editor.record.form.section.dataManagers.description": "Queste informazioni riguardano i dati",
21388
21584
  "editor.record.form.section.dataManagers.label": "Gestori dei dati",
21389
21585
  "editor.record.form.section.geographicalCoverage.label": "Copertura geografica",
21586
+ "editor.record.form.section.inspire.description": "",
21587
+ "editor.record.form.section.inspire.label": "",
21390
21588
  "editor.record.form.section.metadataPointOfContact.description": "Queste informazioni riguardano i metadati",
21391
21589
  "editor.record.form.section.metadataPointOfContact.label": "Punto di contatto dei metadati",
21392
21590
  "editor.record.form.section.useAndAccessConditions.label": "Condizioni di accesso e utilizzo",
@@ -21558,6 +21756,16 @@ var it = {
21558
21756
  "record.kind.service": "Servizio",
21559
21757
  "record.metadata.about": "Descrizione",
21560
21758
  "record.metadata.api": "API",
21759
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
21760
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
21761
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
21762
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
21763
+ "record.metadata.api.accessServiceProtocol.other": "",
21764
+ "record.metadata.api.accessServiceProtocol.tms": "",
21765
+ "record.metadata.api.accessServiceProtocol.wfs": "",
21766
+ "record.metadata.api.accessServiceProtocol.wms": "",
21767
+ "record.metadata.api.accessServiceProtocol.wmts": "",
21768
+ "record.metadata.api.accessServiceProtocol.wps": "",
21561
21769
  "record.metadata.api.form.closeButton": "Chiude",
21562
21770
  "record.metadata.api.form.closeForm": "Chiude il pannello di personalizzazione",
21563
21771
  "record.metadata.api.form.create": "Configura la sua richiesta",
@@ -21970,6 +22178,26 @@ var nl = {
21970
22178
  "editor.record.form.field.topics": "",
21971
22179
  "editor.record.form.field.uniqueIdentifier": "",
21972
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": "",
21973
22201
  "editor.record.form.keywords.place.placeholder": "",
21974
22202
  "editor.record.form.keywords.place.withoutExtent": "",
21975
22203
  "editor.record.form.keywords.placeholder": "",
@@ -22005,6 +22233,8 @@ var nl = {
22005
22233
  "editor.record.form.section.dataManagers.description": "",
22006
22234
  "editor.record.form.section.dataManagers.label": "",
22007
22235
  "editor.record.form.section.geographicalCoverage.label": "",
22236
+ "editor.record.form.section.inspire.description": "",
22237
+ "editor.record.form.section.inspire.label": "",
22008
22238
  "editor.record.form.section.metadataPointOfContact.description": "",
22009
22239
  "editor.record.form.section.metadataPointOfContact.label": "",
22010
22240
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -22176,6 +22406,16 @@ var nl = {
22176
22406
  "record.kind.service": "",
22177
22407
  "record.metadata.about": "",
22178
22408
  "record.metadata.api": "",
22409
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
22410
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
22411
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
22412
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
22413
+ "record.metadata.api.accessServiceProtocol.other": "",
22414
+ "record.metadata.api.accessServiceProtocol.tms": "",
22415
+ "record.metadata.api.accessServiceProtocol.wfs": "",
22416
+ "record.metadata.api.accessServiceProtocol.wms": "",
22417
+ "record.metadata.api.accessServiceProtocol.wmts": "",
22418
+ "record.metadata.api.accessServiceProtocol.wps": "",
22179
22419
  "record.metadata.api.form.closeButton": "",
22180
22420
  "record.metadata.api.form.closeForm": "",
22181
22421
  "record.metadata.api.form.create": "",
@@ -22588,6 +22828,26 @@ var pt = {
22588
22828
  "editor.record.form.field.topics": "",
22589
22829
  "editor.record.form.field.uniqueIdentifier": "",
22590
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": "",
22591
22851
  "editor.record.form.keywords.place.placeholder": "",
22592
22852
  "editor.record.form.keywords.place.withoutExtent": "",
22593
22853
  "editor.record.form.keywords.placeholder": "",
@@ -22623,6 +22883,8 @@ var pt = {
22623
22883
  "editor.record.form.section.dataManagers.description": "",
22624
22884
  "editor.record.form.section.dataManagers.label": "",
22625
22885
  "editor.record.form.section.geographicalCoverage.label": "",
22886
+ "editor.record.form.section.inspire.description": "",
22887
+ "editor.record.form.section.inspire.label": "",
22626
22888
  "editor.record.form.section.metadataPointOfContact.description": "",
22627
22889
  "editor.record.form.section.metadataPointOfContact.label": "",
22628
22890
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -22794,6 +23056,16 @@ var pt = {
22794
23056
  "record.kind.service": "",
22795
23057
  "record.metadata.about": "",
22796
23058
  "record.metadata.api": "",
23059
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
23060
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
23061
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
23062
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
23063
+ "record.metadata.api.accessServiceProtocol.other": "",
23064
+ "record.metadata.api.accessServiceProtocol.tms": "",
23065
+ "record.metadata.api.accessServiceProtocol.wfs": "",
23066
+ "record.metadata.api.accessServiceProtocol.wms": "",
23067
+ "record.metadata.api.accessServiceProtocol.wmts": "",
23068
+ "record.metadata.api.accessServiceProtocol.wps": "",
22797
23069
  "record.metadata.api.form.closeButton": "",
22798
23070
  "record.metadata.api.form.closeForm": "",
22799
23071
  "record.metadata.api.form.create": "",
@@ -23206,6 +23478,26 @@ var sk = {
23206
23478
  "editor.record.form.field.topics": "",
23207
23479
  "editor.record.form.field.uniqueIdentifier": "",
23208
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": "",
23209
23501
  "editor.record.form.keywords.place.placeholder": "",
23210
23502
  "editor.record.form.keywords.place.withoutExtent": "",
23211
23503
  "editor.record.form.keywords.placeholder": "",
@@ -23241,6 +23533,8 @@ var sk = {
23241
23533
  "editor.record.form.section.dataManagers.description": "",
23242
23534
  "editor.record.form.section.dataManagers.label": "",
23243
23535
  "editor.record.form.section.geographicalCoverage.label": "",
23536
+ "editor.record.form.section.inspire.description": "",
23537
+ "editor.record.form.section.inspire.label": "",
23244
23538
  "editor.record.form.section.metadataPointOfContact.description": "",
23245
23539
  "editor.record.form.section.metadataPointOfContact.label": "",
23246
23540
  "editor.record.form.section.useAndAccessConditions.label": "",
@@ -23412,6 +23706,16 @@ var sk = {
23412
23706
  "record.kind.service": "",
23413
23707
  "record.metadata.about": "O",
23414
23708
  "record.metadata.api": "API",
23709
+ "record.metadata.api.accessServiceProtocol.GPFDL": "",
23710
+ "record.metadata.api.accessServiceProtocol.esriRest": "",
23711
+ "record.metadata.api.accessServiceProtocol.maplibre-style": "",
23712
+ "record.metadata.api.accessServiceProtocol.ogcFeatures": "",
23713
+ "record.metadata.api.accessServiceProtocol.other": "",
23714
+ "record.metadata.api.accessServiceProtocol.tms": "",
23715
+ "record.metadata.api.accessServiceProtocol.wfs": "",
23716
+ "record.metadata.api.accessServiceProtocol.wms": "",
23717
+ "record.metadata.api.accessServiceProtocol.wmts": "",
23718
+ "record.metadata.api.accessServiceProtocol.wps": "",
23415
23719
  "record.metadata.api.form.closeButton": "Zavrieť",
23416
23720
  "record.metadata.api.form.closeForm": "Zavrieť formulár",
23417
23721
  "record.metadata.api.form.create": "Vytvoriť požiadavku",
@@ -23651,7 +23955,7 @@ class MetadataUrlService {
23651
23955
  }
23652
23956
  getUrl(uuid, apiPath = this.apiConfiguration.basePath) {
23653
23957
  const prefix = `${apiPath}/../`;
23654
- return `${prefix}${getLang3FromLang2(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23958
+ return `${prefix}${toLang3(this.translate.currentLang)}/catalog.search#/metadata/${uuid}`;
23655
23959
  }
23656
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 }); }
23657
23961
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataUrlService, providedIn: 'root' }); }
@@ -23680,15 +23984,15 @@ class Gn4FieldMapper {
23680
23984
  qualityScore: (output, source) => this.addExtra({ qualityScore: selectField(source, 'qualityScore') }, output),
23681
23985
  resourceTitleObject: (output, source) => ({
23682
23986
  ...output,
23683
- title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.lang3), 'no title'),
23987
+ title: selectFallback(selectTranslatedField(source, 'resourceTitleObject', this.getLocalizedIndexKey), 'no title'),
23684
23988
  }),
23685
23989
  resourceAbstractObject: (output, source) => ({
23686
23990
  ...output,
23687
- abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.lang3), 'no title'),
23991
+ abstract: selectFallback(selectTranslatedField(source, 'resourceAbstractObject', this.getLocalizedIndexKey), 'no title'),
23688
23992
  }),
23689
23993
  overview: (output, source) => {
23690
23994
  const firstOverview = getFirstValue(selectField(source, 'overview'));
23691
- const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.lang3);
23995
+ const description = selectTranslatedValue(selectField(firstOverview, 'text'), this.getLocalizedIndexKey);
23692
23996
  return {
23693
23997
  ...output,
23694
23998
  overviews: [
@@ -23703,7 +24007,7 @@ class Gn4FieldMapper {
23703
24007
  ...output,
23704
24008
  topics: [
23705
24009
  ...(output.topics || []),
23706
- ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.lang3)),
24010
+ ...getAsArray(selectField(source, 'cl_topic')).map((topic) => selectTranslatedValue(topic, this.getLocalizedIndexKey)),
23707
24011
  ],
23708
24012
  }),
23709
24013
  cl_status: (output, source) => ({
@@ -23740,7 +24044,7 @@ class Gn4FieldMapper {
23740
24044
  }),
23741
24045
  resourceLanguage: (output, source) => {
23742
24046
  const langList = getAsArray(selectField(source, 'resourceLanguage'));
23743
- const languages = langList.map(getLang2FromLang3);
24047
+ const languages = langList.map(toLang2);
23744
24048
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null; // set the first language as main one as fallback
23745
24049
  return {
23746
24050
  ...output,
@@ -23749,7 +24053,7 @@ class Gn4FieldMapper {
23749
24053
  },
23750
24054
  otherLanguage: (output, source) => {
23751
24055
  const langList = getAsArray(selectField(source, 'otherLanguage'));
23752
- const languages = langList.map(getLang2FromLang3);
24056
+ const languages = langList.map(toLang2);
23753
24057
  const defaultLanguage = output.defaultLanguage ?? languages[0] ?? null;
23754
24058
  const otherLanguages = languages.filter((lang) => lang !== defaultLanguage);
23755
24059
  return {
@@ -23761,7 +24065,7 @@ class Gn4FieldMapper {
23761
24065
  const language = selectField(source, 'mainLanguage');
23762
24066
  return {
23763
24067
  ...output,
23764
- defaultLanguage: language ? getLang2FromLang3(language) : null,
24068
+ defaultLanguage: language ? toLang2(language) : null,
23765
24069
  };
23766
24070
  },
23767
24071
  link: (output, source) => {
@@ -23777,7 +24081,7 @@ class Gn4FieldMapper {
23777
24081
  contact: (output, source) => ({
23778
24082
  ...output,
23779
24083
  contacts: [
23780
- mapContact(getFirstValue(selectField(source, 'contact')), this.lang3),
24084
+ mapContact(getFirstValue(selectField(source, 'contact')), this.getLocalizedIndexKey),
23781
24085
  ],
23782
24086
  }),
23783
24087
  contactForResource: (output, source) => ({
@@ -23787,7 +24091,7 @@ class Gn4FieldMapper {
23787
24091
  Array.isArray(output.contactsForResource)
23788
24092
  ? output.contactsForResource
23789
24093
  : []),
23790
- ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.lang3)),
24094
+ ...getAsArray(selectField(source, 'contactForResource')).map((contact) => mapContact(contact, this.getLocalizedIndexKey)),
23791
24095
  ],
23792
24096
  }),
23793
24097
  sourceCatalogue: (output, source) => {
@@ -23797,7 +24101,7 @@ class Gn4FieldMapper {
23797
24101
  },
23798
24102
  allKeywords: (output, source) => ({
23799
24103
  ...output,
23800
- keywords: mapKeywords(selectField(source, 'allKeywords'), this.lang3),
24104
+ keywords: mapKeywords(selectField(source, 'allKeywords'), this.getLocalizedIndexKey),
23801
24105
  }),
23802
24106
  inspireTheme: (output, source) => ({
23803
24107
  ...output,
@@ -23813,7 +24117,7 @@ class Gn4FieldMapper {
23813
24117
  licenseObject: (output, source) => this.constraintField('license', output, getAsArray(selectField(source, 'licenseObject'))),
23814
24118
  lineageObject: (output, source) => ({
23815
24119
  ...output,
23816
- lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
24120
+ lineage: selectTranslatedField(source, 'lineageObject', this.getLocalizedIndexKey),
23817
24121
  }),
23818
24122
  userSavedCount: (output, source) => this.addExtra({
23819
24123
  favoriteCount: parseInt(selectField(source, 'userSavedCount')),
@@ -23887,7 +24191,7 @@ class Gn4FieldMapper {
23887
24191
  spatialExtents: [
23888
24192
  ...spatialExtents,
23889
24193
  ...geoms.map((geom, index) => {
23890
- const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.lang3);
24194
+ const description = selectTranslatedValue(getArrayItem(extentDescriptions, index), this.getLocalizedIndexKey);
23891
24195
  const geometry = shapes[index] ?? geom;
23892
24196
  return {
23893
24197
  ...(description !== null ? { description } : null),
@@ -23931,7 +24235,7 @@ class Gn4FieldMapper {
23931
24235
  }
23932
24236
  const outputArray = outputField in output ? output[outputField] : [];
23933
24237
  outputArray.push(...constraintArray.map((item) => {
23934
- const text = selectTranslatedValue(item, this.lang3);
24238
+ const text = selectTranslatedValue(item, this.getLocalizedIndexKey);
23935
24239
  const url = getAsUrl(selectField(item, 'link'));
23936
24240
  return {
23937
24241
  text,
@@ -23945,9 +24249,9 @@ class Gn4FieldMapper {
23945
24249
  return result;
23946
24250
  };
23947
24251
  this.mapLink = (sourceLink) => {
23948
- const url = getAsUrl(selectFallback(selectTranslatedField(sourceLink, 'urlObject', this.lang3), selectField(sourceLink, 'url')));
23949
- const name = selectFallback(selectTranslatedField(sourceLink, 'nameObject', this.lang3), selectField(sourceLink, 'name'));
23950
- 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'));
23951
24255
  const descriptionLink = selectField(sourceLink, 'descriptionObject');
23952
24256
  const accessRestricted = descriptionLink &&
23953
24257
  'link' in descriptionLink &&
@@ -24003,8 +24307,8 @@ class Gn4FieldMapper {
24003
24307
  extras: { ...(output.extras || {}), ...value },
24004
24308
  });
24005
24309
  }
24006
- get lang3() {
24007
- return getLocalizedIndexKey(this.translateService.currentLang);
24310
+ get getLocalizedIndexKey() {
24311
+ return `lang${toLang3(this.translateService.currentLang)}`;
24008
24312
  }
24009
24313
  getMappingFn(fieldName) {
24010
24314
  return fieldName in this.fields ? this.fields[fieldName] : this.genericField;
@@ -25064,7 +25368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25064
25368
  }] } });
25065
25369
 
25066
25370
  var name = "geonetwork-ui";
25067
- var version = "2.7.0-dev.76c515d5b";
25371
+ var version = "2.7.0-dev.7cec835f7";
25068
25372
  var engines = {
25069
25373
  node: ">=20"
25070
25374
  };
@@ -25097,27 +25401,28 @@ var peerDependencies = {
25097
25401
  "@ngrx/operators": "18.x",
25098
25402
  "@ngx-translate/core": "16.x",
25099
25403
  "@ngx-translate/http-loader": "16.x",
25404
+ "flag-icons": "^7.3.2",
25100
25405
  rxjs: "7.x",
25101
25406
  "zone.js": "*",
25102
25407
  tailwindcss: "3.x"
25103
25408
  };
25104
25409
  var dependencies = {
25105
- "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
25106
- "@camptocamp/ogc-client": "1.1.1-dev.3e2d3cc",
25107
- "@geospatial-sdk/core": "0.0.5-dev.31",
25108
- "@geospatial-sdk/geocoding": "0.0.5-dev.31",
25109
- "@geospatial-sdk/legend": "0.0.5-dev.31",
25110
- "@geospatial-sdk/openlayers": "0.0.5-dev.31",
25410
+ "@biesbjerg/ngx-translate-extract-marker": "~1.0.0",
25411
+ "@camptocamp/ogc-client": "1.2.1-dev.b1a75df",
25412
+ "@geospatial-sdk/core": "0.0.5-dev.37",
25413
+ "@geospatial-sdk/geocoding": "0.0.5-dev.37",
25414
+ "@geospatial-sdk/legend": "0.0.5-dev.37",
25415
+ "@geospatial-sdk/openlayers": "0.0.5-dev.37",
25111
25416
  "@ltd/j-toml": "~1.35.2",
25112
25417
  "@messageformat/core": "^3.0.1",
25113
25418
  "@ng-icons/core": "29.10.0",
25114
25419
  "@ng-icons/iconoir": "29.10.0",
25115
25420
  "@ng-icons/material-icons": "29.10.0",
25116
25421
  "@ng-icons/tabler-icons": "29.10.0",
25117
- "@nx/angular": "20.2.2",
25422
+ "@nx/angular": "20.3.4",
25118
25423
  "@rgrove/parse-xml": "4.2.0",
25119
25424
  alasql: "4.6.0",
25120
- axios: "1.8.2",
25425
+ axios: "1.8.4",
25121
25426
  basiclightbox: "^5.0.4",
25122
25427
  "chart.js": "4.4.7",
25123
25428
  "chroma-js": "3.1.2",
@@ -25144,7 +25449,7 @@ var dependencies = {
25144
25449
  tslib: "^2.3.0",
25145
25450
  typeorm: "^0.3.14",
25146
25451
  "whatwg-fetch": "^3.6.2",
25147
- xlsx: "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
25452
+ xlsx: "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
25148
25453
  };
25149
25454
  var packageJson = {
25150
25455
  name: name,
@@ -25168,11 +25473,11 @@ const ValidatorMapper = {
25168
25473
  abstract: (record) => !!record?.abstract,
25169
25474
  keywords: (record) => (record?.keywords?.length ?? 0) > 0,
25170
25475
  legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
25171
- contacts: (record) => !!record?.contacts?.[0]?.email,
25172
- 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',
25173
25479
  topics: (record) => (record?.topics?.length ?? 0) > 0,
25174
25480
  organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
25175
- capabilities: (record) => record?.onlineResources?.some((resource) => resource?.url?.href.toLowerCase().includes('capabilities')),
25176
25481
  source: (record) => !!record?.extras?.sourcesIdentifiers,
25177
25482
  };
25178
25483
  function getAllKeysValidator() {
@@ -25188,12 +25493,12 @@ function getMappersFromKind(kind) {
25188
25493
  'contacts',
25189
25494
  ];
25190
25495
  switch (kind) {
25191
- case 'service':
25192
- kindKeys = ['capabilities'];
25193
- break;
25194
25496
  case 'reuse':
25195
25497
  kindKeys = ['topics', 'organisation', 'source'];
25196
25498
  break;
25499
+ case 'service':
25500
+ kindKeys = [];
25501
+ break;
25197
25502
  case 'dataset':
25198
25503
  default:
25199
25504
  kindKeys = ['updateFrequency', 'topics', 'organisation'];
@@ -25266,11 +25571,9 @@ function updateLanguages(record, defaultLanguage, otherLanguages) {
25266
25571
 
25267
25572
  class ElasticsearchService {
25268
25573
  // we're using getters in case the defined languages change over time
25269
- get lang3() {
25270
- return getLang3FromLang2(this.translateService.currentLang);
25271
- }
25272
25574
  get metadataLang() {
25273
- return this.injector.get(METADATA_LANGUAGE, null);
25575
+ const mdLangValue = this.injector.get(METADATA_LANGUAGE, null);
25576
+ return typeof mdLangValue === 'function' ? mdLangValue() : mdLangValue;
25274
25577
  }
25275
25578
  constructor(translateService, injector) {
25276
25579
  this.translateService = translateService;
@@ -25423,9 +25726,10 @@ class ElasticsearchService {
25423
25726
  }
25424
25727
  getQueryLang() {
25425
25728
  if (this.metadataLang) {
25426
- return this.isCurrentSearchLang()
25427
- ? `lang${this.lang3}`
25428
- : `lang${this.metadataLang}`;
25729
+ const lang3 = toLang3(this.isCurrentSearchLang()
25730
+ ? this.translateService.currentLang
25731
+ : this.metadataLang);
25732
+ return `lang${lang3}`;
25429
25733
  }
25430
25734
  else
25431
25735
  return '*';
@@ -26092,7 +26396,7 @@ class Gn4Repository {
26092
26396
  return this.gn4LanguagesApi
26093
26397
  .getApplicationLanguages()
26094
26398
  .pipe(map$1((languages) => languages
26095
- .map((lang) => getLang2FromLang3(lang.id))
26399
+ .map((lang) => toLang2(lang.id))
26096
26400
  .filter((code) => !!code)));
26097
26401
  }
26098
26402
  getRecordAsXml(uniqueIdentifier) {
@@ -26173,7 +26477,7 @@ class OrganizationsFromMetadataService {
26173
26477
  }), shareReplay$1());
26174
26478
  }
26175
26479
  get langIndex() {
26176
- return getLocalizedIndexKey(this.translateService.currentLang);
26480
+ return `lang${toLang3(this.translateService.currentLang)}`;
26177
26481
  }
26178
26482
  equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
26179
26483
  if (!str1 || !str2)
@@ -26328,7 +26632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26328
26632
  const IMAGE_URL = '/geonetwork/images/harvesting/';
26329
26633
  class OrganizationsFromGroupsService {
26330
26634
  get lang3() {
26331
- return getLang3FromLang2(this.translateService.currentLang);
26635
+ return toLang3(this.translateService.currentLang);
26332
26636
  }
26333
26637
  constructor(esService, searchApiService, groupsApiService, translateService) {
26334
26638
  this.esService = esService;
@@ -26437,14 +26741,14 @@ class AuthService {
26437
26741
  }
26438
26742
  return baseUrl
26439
26743
  .replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
26440
- .replace('${lang2}', this.translateService.currentLang)
26441
- .replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26744
+ .replace('${lang2}', toLang2(this.translateService.currentLang))
26745
+ .replace('${lang3}', toLang3(this.translateService.currentLang));
26442
26746
  }
26443
26747
  get logoutUrl() {
26444
26748
  return this.baseLogoutUrl;
26445
26749
  }
26446
26750
  get settingsUrl() {
26447
- return this.baseSettingsUrl.replace('${lang3}', getLang3FromLang2(this.translateService.currentLang));
26751
+ return this.baseSettingsUrl.replace('${lang3}', toLang3(this.translateService.currentLang));
26448
26752
  }
26449
26753
  constructor(baseLoginUrlToken, baseLogoutUrlToken, baseSettingsUrlToken, translateService, location) {
26450
26754
  this.baseLoginUrlToken = baseLoginUrlToken;
@@ -26719,7 +27023,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26719
27023
  const minApiVersion = '4.2.2';
26720
27024
  class Gn4PlatformService {
26721
27025
  get lang3() {
26722
- return getLang3FromLang2(this.translateService.currentLang);
27026
+ return toLang3(this.translateService.currentLang);
26723
27027
  }
26724
27028
  constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
26725
27029
  this.siteApiService = siteApiService;
@@ -27488,445 +27792,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
27488
27792
  }]
27489
27793
  }] });
27490
27794
 
27491
- const LANGUAGE_CODES_ISO_3 = [
27492
- 'aar',
27493
- 'abk',
27494
- 'ace',
27495
- 'ach',
27496
- 'ada',
27497
- 'afa',
27498
- 'afh',
27499
- 'afr',
27500
- 'aka',
27501
- 'akk',
27502
- 'ale',
27503
- 'alg',
27504
- 'amh',
27505
- 'ang',
27506
- 'apa',
27507
- 'ara',
27508
- 'arc',
27509
- 'arn',
27510
- 'arp',
27511
- 'art',
27512
- 'arw',
27513
- 'asm',
27514
- 'ath',
27515
- 'aus',
27516
- 'ava',
27517
- 'ave',
27518
- 'awa',
27519
- 'aym',
27520
- 'aze',
27521
- 'bad',
27522
- 'bai',
27523
- 'bak',
27524
- 'bal',
27525
- 'bam',
27526
- 'ban',
27527
- 'bas',
27528
- 'bat',
27529
- 'bej',
27530
- 'bel',
27531
- 'bem',
27532
- 'ben',
27533
- 'ber',
27534
- 'bho',
27535
- 'bih',
27536
- 'bik',
27537
- 'bin',
27538
- 'bis',
27539
- 'bla',
27540
- 'bnt',
27541
- 'tib',
27542
- 'bos',
27543
- 'bra',
27544
- 'bre',
27545
- 'btk',
27546
- 'bua',
27547
- 'bug',
27548
- 'bul',
27549
- 'cad',
27550
- 'cai',
27551
- 'car',
27552
- 'cat',
27553
- 'cau',
27554
- 'ceb',
27555
- 'cel',
27556
- 'cze',
27557
- 'cha',
27558
- 'chb',
27559
- 'che',
27560
- 'chg',
27561
- 'chk',
27562
- 'chm',
27563
- 'chn',
27564
- 'cho',
27565
- 'chp',
27566
- 'chr',
27567
- 'chu',
27568
- 'chv',
27569
- 'chy',
27570
- 'cmc',
27571
- 'cop',
27572
- 'cor',
27573
- 'cos',
27574
- 'cpe',
27575
- 'cpf',
27576
- 'cpp',
27577
- 'cre',
27578
- 'crp',
27579
- 'cus',
27580
- 'wel',
27581
- 'dak',
27582
- 'dan',
27583
- 'day',
27584
- 'del',
27585
- 'den',
27586
- 'ger',
27587
- 'dgr',
27588
- 'din',
27589
- 'div',
27590
- 'doi',
27591
- 'dra',
27592
- 'dua',
27593
- 'dum',
27594
- 'dyu',
27595
- 'dzo',
27596
- 'efi',
27597
- 'egy',
27598
- 'eka',
27599
- 'gre',
27600
- 'elx',
27601
- 'eng',
27602
- 'enm',
27603
- 'epo',
27604
- 'est',
27605
- 'baq',
27606
- 'ewe',
27607
- 'ewo',
27608
- 'fan',
27609
- 'fao',
27610
- 'per',
27611
- 'fat',
27612
- 'fij',
27613
- 'fin',
27614
- 'fiu',
27615
- 'fon',
27616
- 'fre',
27617
- 'frm',
27618
- 'fro',
27619
- 'fry',
27620
- 'ful',
27621
- 'fur',
27622
- 'gaa',
27623
- 'gay',
27624
- 'gba',
27625
- 'gem',
27626
- 'gez',
27627
- 'gil',
27628
- 'gla',
27629
- 'gle',
27630
- 'glg',
27631
- 'glv',
27632
- 'gmh',
27633
- 'goh',
27634
- 'gon',
27635
- 'gor',
27636
- 'got',
27637
- 'grb',
27638
- 'grc',
27639
- 'grn',
27640
- 'guj',
27641
- 'gwi',
27642
- 'hai',
27643
- 'hau',
27644
- 'haw',
27645
- 'heb',
27646
- 'her',
27647
- 'hil',
27648
- 'him',
27649
- 'hin',
27650
- 'hit',
27651
- 'hmn',
27652
- 'hmo',
27653
- 'scr',
27654
- 'hun',
27655
- 'hup',
27656
- 'arm',
27657
- 'iba',
27658
- 'ibo',
27659
- 'ijo',
27660
- 'iku',
27661
- 'ile',
27662
- 'ilo',
27663
- 'ina',
27664
- 'inc',
27665
- 'ind',
27666
- 'ine',
27667
- 'ipk',
27668
- 'ira',
27669
- 'iro',
27670
- 'ice',
27671
- 'ita',
27672
- 'jav',
27673
- 'jpn',
27674
- 'jpr',
27675
- 'jrb',
27676
- 'kaa',
27677
- 'kab',
27678
- 'kac',
27679
- 'kal',
27680
- 'kam',
27681
- 'kan',
27682
- 'kar',
27683
- 'kas',
27684
- 'geo',
27685
- 'kau',
27686
- 'kaw',
27687
- 'kaz',
27688
- 'kha',
27689
- 'khi',
27690
- 'khm',
27691
- 'kho',
27692
- 'kik',
27693
- 'kin',
27694
- 'kir',
27695
- 'kmb',
27696
- 'kok',
27697
- 'kom',
27698
- 'kon',
27699
- 'kor',
27700
- 'kos',
27701
- 'kpe',
27702
- 'kro',
27703
- 'kru',
27704
- 'kua',
27705
- 'kum',
27706
- 'kur',
27707
- 'kut',
27708
- 'lad',
27709
- 'lah',
27710
- 'lam',
27711
- 'lao',
27712
- 'lat',
27713
- 'lav',
27714
- 'lez',
27715
- 'lin',
27716
- 'lit',
27717
- 'lol',
27718
- 'loz',
27719
- 'ltz',
27720
- 'lua',
27721
- 'lub',
27722
- 'lug',
27723
- 'lui',
27724
- 'lun',
27725
- 'luo',
27726
- 'lus',
27727
- 'mad',
27728
- 'mag',
27729
- 'mah',
27730
- 'mai',
27731
- 'mak',
27732
- 'mal',
27733
- 'man',
27734
- 'map',
27735
- 'mar',
27736
- 'mas',
27737
- 'mdr',
27738
- 'men',
27739
- 'mga',
27740
- 'mic',
27741
- 'min',
27742
- 'mis',
27743
- 'mac',
27744
- 'mkh',
27745
- 'mlg',
27746
- 'mlt',
27747
- 'mnc',
27748
- 'mni',
27749
- 'mno',
27750
- 'moh',
27751
- 'mol',
27752
- 'mon',
27753
- 'mos',
27754
- 'mao',
27755
- 'may',
27756
- 'mul',
27757
- 'mun',
27758
- 'mus',
27759
- 'mwr',
27760
- 'bur',
27761
- 'myn',
27762
- 'nah',
27763
- 'nai',
27764
- 'nau',
27765
- 'nav',
27766
- 'nbl',
27767
- 'nde',
27768
- 'ndo',
27769
- 'nep',
27770
- 'new',
27771
- 'nia',
27772
- 'nic',
27773
- 'niu',
27774
- 'dut',
27775
- 'nno',
27776
- 'nob',
27777
- 'non',
27778
- 'nor',
27779
- 'nso',
27780
- 'nub',
27781
- 'nya',
27782
- 'nym',
27783
- 'nyn',
27784
- 'nyo',
27785
- 'nzi',
27786
- 'oci',
27787
- 'oji',
27788
- 'ori',
27789
- 'orm',
27790
- 'osa',
27791
- 'oss',
27792
- 'ota',
27793
- 'oto',
27794
- 'paa',
27795
- 'pag',
27796
- 'pal',
27797
- 'pam',
27798
- 'pan',
27799
- 'pap',
27800
- 'pau',
27801
- 'peo',
27802
- 'phi',
27803
- 'phn',
27804
- 'pli',
27805
- 'pol',
27806
- 'pon',
27807
- 'por',
27808
- 'pra',
27809
- 'pro',
27810
- 'pus',
27811
- 'que',
27812
- 'raj',
27813
- 'rap',
27814
- 'rar',
27815
- 'roa',
27816
- 'roh',
27817
- 'rom',
27818
- 'rum',
27819
- 'run',
27820
- 'rus',
27821
- 'sad',
27822
- 'sag',
27823
- 'sah',
27824
- 'sai',
27825
- 'sal',
27826
- 'sam',
27827
- 'san',
27828
- 'sas',
27829
- 'sat',
27830
- 'sco',
27831
- 'sel',
27832
- 'sem',
27833
- 'sga',
27834
- 'sgn',
27835
- 'shn',
27836
- 'sid',
27837
- 'sin',
27838
- 'sio',
27839
- 'sit',
27840
- 'sla',
27841
- 'slo',
27842
- 'slv',
27843
- 'sme',
27844
- 'smi',
27845
- 'smo',
27846
- 'sna',
27847
- 'snd',
27848
- 'snk',
27849
- 'sog',
27850
- 'som',
27851
- 'son',
27852
- 'sot',
27853
- 'spa',
27854
- 'alb',
27855
- 'srd',
27856
- 'scc',
27857
- 'srr',
27858
- 'ssa',
27859
- 'ssw',
27860
- 'suk',
27861
- 'sun',
27862
- 'sus',
27863
- 'sux',
27864
- 'swa',
27865
- 'swe',
27866
- 'syr',
27867
- 'tah',
27868
- 'tai',
27869
- 'tam',
27870
- 'tat',
27871
- 'tel',
27872
- 'tem',
27873
- 'ter',
27874
- 'tet',
27875
- 'tgk',
27876
- 'tgl',
27877
- 'tha',
27878
- 'tig',
27879
- 'tir',
27880
- 'tiv',
27881
- 'tkl',
27882
- 'tli',
27883
- 'tmh',
27884
- 'tog',
27885
- 'ton',
27886
- 'tpi',
27887
- 'tsi',
27888
- 'tsn',
27889
- 'tso',
27890
- 'tuk',
27891
- 'tum',
27892
- 'tur',
27893
- 'tut',
27894
- 'tvl',
27895
- 'twi',
27896
- 'tyv',
27897
- 'uga',
27898
- 'uig',
27899
- 'ukr',
27900
- 'umb',
27901
- 'und',
27902
- 'urd',
27903
- 'uzb',
27904
- 'vai',
27905
- 'ven',
27906
- 'vie',
27907
- 'vol',
27908
- 'vot',
27909
- 'wak',
27910
- 'wal',
27911
- 'war',
27912
- 'was',
27913
- 'wen',
27914
- 'wol',
27915
- 'xho',
27916
- 'yao',
27917
- 'yap',
27918
- 'yid',
27919
- 'yor',
27920
- 'ypk',
27921
- 'zap',
27922
- 'zen',
27923
- 'zha',
27924
- 'chi',
27925
- 'znd',
27926
- 'zul',
27927
- 'zun',
27928
- ];
27929
-
27930
27795
  const flatten = (base, obj, keepLevel = false) => Object.keys(obj).reduce((prev, curr) => {
27931
27796
  const path = base ? `${base}.${curr}` : curr;
27932
27797
  const val = obj[curr];
@@ -28008,8 +27873,9 @@ function parseMultiConfigSection(fullConfigObj, sectionName, mandatoryKeys, opti
28008
27873
  return result;
28009
27874
  }
28010
27875
  function checkMetadataLanguage(parsedConfigSection, outWarnings) {
28011
- if (LANGUAGE_CODES_ISO_3.indexOf(parsedConfigSection.metadata_language.toLowerCase()) === -1) {
28012
- 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`);
28013
27879
  }
28014
27880
  return parsedConfigSection;
28015
27881
  }
@@ -28356,7 +28222,7 @@ const wrongLanguageCodeConfigFixture = () => `
28356
28222
  [global]
28357
28223
  geonetwork4_api_url = "/geonetwork/srv/api"
28358
28224
  proxy_path = "/proxy/?url="
28359
- metadata_language = "fra"
28225
+ metadata_language = "abc"
28360
28226
 
28361
28227
  [map]
28362
28228
 
@@ -32170,9 +32036,6 @@ class MetadataQualityComponent {
32170
32036
  get computedQualityScore() {
32171
32037
  return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
32172
32038
  }
32173
- hasGetCapabilities(url) {
32174
- return url.toLowerCase().includes('capabilities');
32175
- }
32176
32039
  initialize() {
32177
32040
  if (!this.propsToValidate) {
32178
32041
  this.propsToValidate = getAllKeysValidator();
@@ -32569,7 +32432,7 @@ class ApiCardComponent {
32569
32432
  }
32570
32433
  }
32571
32434
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32572
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { 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: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
32435
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { 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: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
32573
32436
  provideIcons({
32574
32437
  iconoirSettings,
32575
32438
  }),
@@ -32588,7 +32451,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
32588
32451
  provideIcons({
32589
32452
  iconoirSettings,
32590
32453
  }),
32591
- ], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
32454
+ ], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden card-shadow\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div class=\"flex-1 min-w-0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center min-w-[32px]\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div class=\"flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >record.metadata.api.accessServiceProtocol.{{\n link.accessServiceProtocol\n }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
32592
32455
  }], propDecorators: { link: [{
32593
32456
  type: Input
32594
32457
  }], currentLink: [{
@@ -39814,7 +39677,7 @@ class SourcesService {
39814
39677
  this.sources$ = this.sourcesApiService.getSubPortals1().pipe(shareReplay$1());
39815
39678
  }
39816
39679
  getSourceLabel(uuid) {
39817
- 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)]));
39818
39681
  }
39819
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 }); }
39820
39683
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, providedIn: 'root' }); }
@@ -41050,6 +40913,10 @@ const RECORD_KEYWORDS_FIELD = {
41050
40913
  model: 'keywords',
41051
40914
  formFieldConfig: {},
41052
40915
  };
40916
+ const RECORD_TOPICS_FIELD = {
40917
+ model: 'topics',
40918
+ formFieldConfig: {},
40919
+ };
41053
40920
  const RECORD_RESOURCE_CREATED_FIELD = {
41054
40921
  model: 'resourceCreated',
41055
40922
  formFieldConfig: {
@@ -41195,6 +41062,12 @@ const CLASSIFICATION_SECTION = {
41195
41062
  hidden: false,
41196
41063
  fields: [RECORD_KEYWORDS_FIELD],
41197
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
+ };
41198
41071
  const USE_AND_ACCESS_CONDITIONS_SECTION = {
41199
41072
  labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
41200
41073
  hidden: false,
@@ -41229,6 +41102,7 @@ const DEFAULT_CONFIGURATION = {
41229
41102
  sections: [
41230
41103
  TITLE_SECTION,
41231
41104
  CLASSIFICATION_SECTION,
41105
+ INSPIRE_SECTION,
41232
41106
  ABOUT_SECTION,
41233
41107
  GEOGRAPHICAL_COVERAGE_SECTION,
41234
41108
  ],
@@ -41291,6 +41165,71 @@ const SPATIAL_SCOPES = [
41291
41165
  type: 'theme',
41292
41166
  },
41293
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');
41294
41233
 
41295
41234
  const EDITOR_FEATURE_KEY = 'editor';
41296
41235
  const initialEditorState = {
@@ -43416,6 +43355,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43416
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" }]
43417
43356
  }], ctorParameters: () => [{ type: EditorFacade }] });
43418
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
+
43419
43427
  class FormFieldComponent {
43420
43428
  constructor() {
43421
43429
  this.valueChange = new EventEmitter();
@@ -43453,6 +43461,9 @@ class FormFieldComponent {
43453
43461
  get valueAsKeywords() {
43454
43462
  return this.value;
43455
43463
  }
43464
+ get valueAsInspireTheme() {
43465
+ return this.value;
43466
+ }
43456
43467
  get valueAsConstraints() {
43457
43468
  return this.value;
43458
43469
  }
@@ -43463,7 +43474,7 @@ class FormFieldComponent {
43463
43474
  return this.value;
43464
43475
  }
43465
43476
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43466
- 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 }); }
43467
43478
  }
43468
43479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
43469
43480
  type: Component,
@@ -43488,8 +43499,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
43488
43499
  FormFieldConstraintsComponent,
43489
43500
  FormFieldConstraintsShortcutsComponent,
43490
43501
  FormFieldSpatialToggleComponent,
43502
+ FormFieldInspireThemeComponent,
43491
43503
  TextFieldModule,
43492
- ], 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" }]
43493
43505
  }], propDecorators: { uniqueIdentifier: [{
43494
43506
  type: Input
43495
43507
  }], model: [{
@@ -44015,7 +44027,8 @@ class RouterFacade {
44015
44027
  });
44016
44028
  }
44017
44029
  goToOrganization(organizationName) {
44018
- const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`;
44030
+ const safeOrgName = organizationName.replace('/', '');
44031
+ const path = `${this.routerService.getOrganizationPageRoute()}/${safeOrgName}`;
44019
44032
  this.go({
44020
44033
  path,
44021
44034
  queryParamsHandling: '',
@@ -44301,5 +44314,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
44301
44314
  * Generated bundle index. Do not edit.
44302
44315
  */
44303
44316
 
44304
- 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 };
44305
44318
  //# sourceMappingURL=geonetwork-ui.mjs.map