geonetwork-ui 2.4.0-dev.81e72b2e → 2.4.0-dev.9121e5f4
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.
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +9 -5
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -2
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +7 -4
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +3 -3
- package/esm2022/translations/de.json +7 -8
- package/esm2022/translations/en.json +8 -9
- package/esm2022/translations/es.json +7 -8
- package/esm2022/translations/fr.json +7 -8
- package/esm2022/translations/it.json +7 -8
- package/esm2022/translations/nl.json +7 -8
- package/esm2022/translations/pt.json +7 -8
- package/fesm2022/geonetwork-ui.mjs +133 -133
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +26 -15
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +5 -1
- package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +8 -6
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -0
- package/translations/de.json +7 -8
- package/translations/en.json +8 -9
- package/translations/es.json +7 -8
- package/translations/fr.json +7 -8
- package/translations/it.json +7 -8
- package/translations/nl.json +7 -8
- package/translations/pt.json +7 -8
- package/translations/sk.json +7 -8
|
@@ -17433,7 +17433,7 @@ var de = {
|
|
|
17433
17433
|
"datahub.header.lastRecords": "Die neuesten",
|
|
17434
17434
|
"datahub.header.myfavorites": "Meine Favoriten",
|
|
17435
17435
|
"datahub.header.news": "Startseite",
|
|
17436
|
-
"datahub.header.
|
|
17436
|
+
"datahub.header.organizations": "Organisationen",
|
|
17437
17437
|
"datahub.header.popularRecords": "Die beliebtesten",
|
|
17438
17438
|
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
|
|
17439
17439
|
"datahub.news.contact.contactus": "Kontaktieren Sie uns",
|
|
@@ -17469,6 +17469,7 @@ var de = {
|
|
|
17469
17469
|
"downloads.format.unknown": "unbekannt",
|
|
17470
17470
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17471
17471
|
dropFile: dropFile$6,
|
|
17472
|
+
"editor.record.form.keywords": "Schlagwörter",
|
|
17472
17473
|
"editor.record.form.license": "Lizenz",
|
|
17473
17474
|
"editor.record.form.license.cc-by": "",
|
|
17474
17475
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -17568,12 +17569,10 @@ var de = {
|
|
|
17568
17569
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17569
17570
|
"organisations.sortBy.recordCountAsc": "Veröffentlichungen 0 → 9",
|
|
17570
17571
|
"organisations.sortBy.recordCountDesc": "Veröffentlichungen 9 → 0",
|
|
17571
|
-
"organization.
|
|
17572
|
-
"organization.details.
|
|
17572
|
+
"organization.details.lastPublishedDatasets": "",
|
|
17573
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
17573
17574
|
"organization.details.mailContact": "",
|
|
17574
|
-
"organization.
|
|
17575
|
-
"organization.lastPublishedDatasets": "",
|
|
17576
|
-
"organization.lastPublishedDatasets.searchAllButton": "",
|
|
17575
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
17577
17576
|
"pagination.nextPage": "Nächste Seite",
|
|
17578
17577
|
"pagination.page": "Seite",
|
|
17579
17578
|
"pagination.pageOf": "von",
|
|
@@ -17671,11 +17670,11 @@ var de = {
|
|
|
17671
17670
|
"results.sortBy.relevancy": "Relevanz",
|
|
17672
17671
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
17673
17672
|
"search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
|
|
17673
|
+
"search.error.organizationHasNoDataset": "",
|
|
17674
|
+
"search.error.organizationNotFound": "",
|
|
17674
17675
|
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
17675
17676
|
"search.error.recordHasnolink": "",
|
|
17676
17677
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
17677
|
-
"search.error.organizationNotFound": "",
|
|
17678
|
-
"search.error.organizationHasNoDataset": "",
|
|
17679
17678
|
"search.field.any.placeholder": "Suche Datensätze ...",
|
|
17680
17679
|
"search.field.sortBy": "Sortieren nach:",
|
|
17681
17680
|
"search.filters.clear": "Zurücksetzen",
|
|
@@ -17736,7 +17735,7 @@ var en = {
|
|
|
17736
17735
|
"Add Layer As": "",
|
|
17737
17736
|
"button.login": "Log in",
|
|
17738
17737
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
17739
|
-
"catalog.figures.organizations": "{count, plural, =0{
|
|
17738
|
+
"catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
|
|
17740
17739
|
"chart.aggregation.average": "average",
|
|
17741
17740
|
"chart.aggregation.count": "count",
|
|
17742
17741
|
"chart.aggregation.max": "max",
|
|
@@ -17863,7 +17862,7 @@ var en = {
|
|
|
17863
17862
|
"datahub.header.lastRecords": "The latest",
|
|
17864
17863
|
"datahub.header.myfavorites": "My favorites",
|
|
17865
17864
|
"datahub.header.news": "Home",
|
|
17866
|
-
"datahub.header.
|
|
17865
|
+
"datahub.header.organizations": "Organizations",
|
|
17867
17866
|
"datahub.header.popularRecords": "The most popular",
|
|
17868
17867
|
"datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
|
|
17869
17868
|
"datahub.news.contact.contactus": "Contact us",
|
|
@@ -17899,6 +17898,7 @@ var en = {
|
|
|
17899
17898
|
"downloads.format.unknown": "unknown",
|
|
17900
17899
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17901
17900
|
dropFile: dropFile$5,
|
|
17901
|
+
"editor.record.form.keywords": "Keywords",
|
|
17902
17902
|
"editor.record.form.license": "License",
|
|
17903
17903
|
"editor.record.form.license.cc-by": "Creative Commons CC-BY",
|
|
17904
17904
|
"editor.record.form.license.cc-by-sa": "Creative Commons CC-BY-SA",
|
|
@@ -17998,12 +17998,10 @@ var en = {
|
|
|
17998
17998
|
"organisations.sortBy.nameDesc": "Name Z → A",
|
|
17999
17999
|
"organisations.sortBy.recordCountAsc": "Publications 0 → 9",
|
|
18000
18000
|
"organisations.sortBy.recordCountDesc": "Publications 9 → 0",
|
|
18001
|
-
"organization.
|
|
18002
|
-
"organization.details.
|
|
18001
|
+
"organization.details.lastPublishedDatasets": "Last published datasets",
|
|
18002
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "Search all",
|
|
18003
18003
|
"organization.details.mailContact": "Contact by email",
|
|
18004
|
-
"organization.
|
|
18005
|
-
"organization.lastPublishedDatasets": "Last published datasets",
|
|
18006
|
-
"organization.lastPublishedDatasets.searchAllButton": "Search all",
|
|
18004
|
+
"organization.header.recordCount": "{count, plural, =0{data} one{data} other{datas}}",
|
|
18007
18005
|
"pagination.nextPage": "Next page",
|
|
18008
18006
|
"pagination.page": "page",
|
|
18009
18007
|
"pagination.pageOf": "of",
|
|
@@ -18101,11 +18099,11 @@ var en = {
|
|
|
18101
18099
|
"results.sortBy.relevancy": "Relevancy",
|
|
18102
18100
|
"search.autocomplete.error": "Suggestions could not be fetched:",
|
|
18103
18101
|
"search.error.couldNotReachApi": "The API could not be reached",
|
|
18102
|
+
"search.error.organizationHasNoDataset": "This organization has no dataset yet.",
|
|
18103
|
+
"search.error.organizationNotFound": "This organization could not be found.",
|
|
18104
18104
|
"search.error.receivedError": "An error was received",
|
|
18105
18105
|
"search.error.recordHasnolink": "This record currently has no link yet, please come back later.",
|
|
18106
18106
|
"search.error.recordNotFound": "The record with identifier \"{ id }\" could not be found.",
|
|
18107
|
-
"search.error.organizationNotFound": "This organization could not be found.",
|
|
18108
|
-
"search.error.organizationHasNoDataset": "This organization has no dataset yet.",
|
|
18109
18107
|
"search.field.any.placeholder": "Search datasets ...",
|
|
18110
18108
|
"search.field.sortBy": "Sort by:",
|
|
18111
18109
|
"search.filters.clear": "Reset",
|
|
@@ -18290,7 +18288,7 @@ var es = {
|
|
|
18290
18288
|
"datahub.header.lastRecords": "",
|
|
18291
18289
|
"datahub.header.myfavorites": "",
|
|
18292
18290
|
"datahub.header.news": "",
|
|
18293
|
-
"datahub.header.
|
|
18291
|
+
"datahub.header.organizations": "",
|
|
18294
18292
|
"datahub.header.popularRecords": "",
|
|
18295
18293
|
"datahub.header.title.html": "",
|
|
18296
18294
|
"datahub.news.contact.contactus": "",
|
|
@@ -18326,6 +18324,7 @@ var es = {
|
|
|
18326
18324
|
"downloads.format.unknown": "",
|
|
18327
18325
|
"downloads.wfs.featuretype.not.found": "",
|
|
18328
18326
|
dropFile: dropFile$4,
|
|
18327
|
+
"editor.record.form.keywords": "",
|
|
18329
18328
|
"editor.record.form.license": "",
|
|
18330
18329
|
"editor.record.form.license.cc-by": "",
|
|
18331
18330
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18425,12 +18424,10 @@ var es = {
|
|
|
18425
18424
|
"organisations.sortBy.nameDesc": "",
|
|
18426
18425
|
"organisations.sortBy.recordCountAsc": "",
|
|
18427
18426
|
"organisations.sortBy.recordCountDesc": "",
|
|
18428
|
-
"organization.
|
|
18429
|
-
"organization.details.
|
|
18427
|
+
"organization.details.lastPublishedDatasets": "",
|
|
18428
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
18430
18429
|
"organization.details.mailContact": "",
|
|
18431
|
-
"organization.
|
|
18432
|
-
"organization.lastPublishedDatasets": "",
|
|
18433
|
-
"organization.lastPublishedDatasets.searchAllButton": "",
|
|
18430
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
18434
18431
|
"pagination.nextPage": "",
|
|
18435
18432
|
"pagination.page": "",
|
|
18436
18433
|
"pagination.pageOf": "",
|
|
@@ -18528,11 +18525,11 @@ var es = {
|
|
|
18528
18525
|
"results.sortBy.relevancy": "",
|
|
18529
18526
|
"search.autocomplete.error": "",
|
|
18530
18527
|
"search.error.couldNotReachApi": "",
|
|
18528
|
+
"search.error.organizationHasNoDataset": "",
|
|
18529
|
+
"search.error.organizationNotFound": "",
|
|
18531
18530
|
"search.error.receivedError": "",
|
|
18532
18531
|
"search.error.recordHasnolink": "",
|
|
18533
18532
|
"search.error.recordNotFound": "",
|
|
18534
|
-
"search.error.organizationNotFound": "",
|
|
18535
|
-
"search.error.organizationHasNoDataset": "",
|
|
18536
18533
|
"search.field.any.placeholder": "",
|
|
18537
18534
|
"search.field.sortBy": "",
|
|
18538
18535
|
"search.filters.clear": "",
|
|
@@ -18720,7 +18717,7 @@ var fr = {
|
|
|
18720
18717
|
"datahub.header.lastRecords": "Les plus récentes",
|
|
18721
18718
|
"datahub.header.myfavorites": "Mes favoris",
|
|
18722
18719
|
"datahub.header.news": "Accueil",
|
|
18723
|
-
"datahub.header.
|
|
18720
|
+
"datahub.header.organizations": "Organisations",
|
|
18724
18721
|
"datahub.header.popularRecords": "Les plus appréciées",
|
|
18725
18722
|
"datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
|
|
18726
18723
|
"datahub.news.contact.contactus": "Contactez-nous",
|
|
@@ -18756,6 +18753,7 @@ var fr = {
|
|
|
18756
18753
|
"downloads.format.unknown": "inconnu",
|
|
18757
18754
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18758
18755
|
dropFile: dropFile$3,
|
|
18756
|
+
"editor.record.form.keywords": "Mots-clés",
|
|
18759
18757
|
"editor.record.form.license": "Licence",
|
|
18760
18758
|
"editor.record.form.license.cc-by": "",
|
|
18761
18759
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -18855,12 +18853,10 @@ var fr = {
|
|
|
18855
18853
|
"organisations.sortBy.nameDesc": "Nom Z → A",
|
|
18856
18854
|
"organisations.sortBy.recordCountAsc": "Données 0 → 9",
|
|
18857
18855
|
"organisations.sortBy.recordCountDesc": "Données 9 → 0",
|
|
18858
|
-
"organization.
|
|
18859
|
-
"organization.details.
|
|
18856
|
+
"organization.details.lastPublishedDatasets": "Dernières données publiées",
|
|
18857
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "Rechercher tous",
|
|
18860
18858
|
"organization.details.mailContact": "Contacter par mail",
|
|
18861
|
-
"organization.
|
|
18862
|
-
"organization.lastPublishedDatasets": "Dernières données publiées",
|
|
18863
|
-
"organization.lastPublishedDatasets.searchAllButton": "Rechercher tous",
|
|
18859
|
+
"organization.header.recordCount": "{count, plural, =0{donnée} one{donnée} other{données}}",
|
|
18864
18860
|
"pagination.nextPage": "Page suivante",
|
|
18865
18861
|
"pagination.page": "page",
|
|
18866
18862
|
"pagination.pageOf": "sur",
|
|
@@ -18958,11 +18954,11 @@ var fr = {
|
|
|
18958
18954
|
"results.sortBy.relevancy": "Pertinence",
|
|
18959
18955
|
"search.autocomplete.error": "Les suggestions ne peuvent pas être récupérées",
|
|
18960
18956
|
"search.error.couldNotReachApi": "Problème de connexion à l'API",
|
|
18957
|
+
"search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
|
|
18958
|
+
"search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
|
|
18961
18959
|
"search.error.receivedError": "Erreur retournée",
|
|
18962
18960
|
"search.error.recordHasnolink": "Ce dataset n'a pas encore de lien, réessayez plus tard s'il vous plaît.",
|
|
18963
18961
|
"search.error.recordNotFound": "Cette donnée n'a pu être trouvée.",
|
|
18964
|
-
"search.error.organizationNotFound": "L'organisation n'a pas pu être trouvée.",
|
|
18965
|
-
"search.error.organizationHasNoDataset": "Cette organisation n'a pas encore de données.",
|
|
18966
18962
|
"search.field.any.placeholder": "Rechercher une donnée...",
|
|
18967
18963
|
"search.field.sortBy": "Trier par :",
|
|
18968
18964
|
"search.filters.clear": "Réinitialiser",
|
|
@@ -19147,7 +19143,7 @@ var it = {
|
|
|
19147
19143
|
"datahub.header.lastRecords": "Ultimi",
|
|
19148
19144
|
"datahub.header.myfavorites": "Miei preferiti",
|
|
19149
19145
|
"datahub.header.news": "Home",
|
|
19150
|
-
"datahub.header.
|
|
19146
|
+
"datahub.header.organizations": "Organizzazioni",
|
|
19151
19147
|
"datahub.header.popularRecords": "Più popolari",
|
|
19152
19148
|
"datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
|
|
19153
19149
|
"datahub.news.contact.contactus": "Contattateci",
|
|
@@ -19183,6 +19179,7 @@ var it = {
|
|
|
19183
19179
|
"downloads.format.unknown": "sconosciuto",
|
|
19184
19180
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19185
19181
|
dropFile: dropFile$2,
|
|
19182
|
+
"editor.record.form.keywords": "",
|
|
19186
19183
|
"editor.record.form.license": "Licenza",
|
|
19187
19184
|
"editor.record.form.license.cc-by": "",
|
|
19188
19185
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19282,12 +19279,10 @@ var it = {
|
|
|
19282
19279
|
"organisations.sortBy.nameDesc": "Nome Z → A",
|
|
19283
19280
|
"organisations.sortBy.recordCountAsc": "Dati 0 → 9",
|
|
19284
19281
|
"organisations.sortBy.recordCountDesc": "Dati 9 → 0",
|
|
19285
|
-
"organization.
|
|
19286
|
-
"organization.details.
|
|
19282
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19283
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19287
19284
|
"organization.details.mailContact": "",
|
|
19288
|
-
"organization.
|
|
19289
|
-
"organization.lastPublishedDatasets": "",
|
|
19290
|
-
"organization.lastPublishedDatasets.searchAllButton": "",
|
|
19285
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19291
19286
|
"pagination.nextPage": "Pagina successiva",
|
|
19292
19287
|
"pagination.page": "pagina",
|
|
19293
19288
|
"pagination.pageOf": "di",
|
|
@@ -19385,11 +19380,11 @@ var it = {
|
|
|
19385
19380
|
"results.sortBy.relevancy": "Rilevanza",
|
|
19386
19381
|
"search.autocomplete.error": "Impossibile recuperare le suggerimenti",
|
|
19387
19382
|
"search.error.couldNotReachApi": "Problema di connessione all'API",
|
|
19383
|
+
"search.error.organizationHasNoDataset": "",
|
|
19384
|
+
"search.error.organizationNotFound": "",
|
|
19388
19385
|
"search.error.receivedError": "Errore ricevuto",
|
|
19389
19386
|
"search.error.recordHasnolink": "",
|
|
19390
19387
|
"search.error.recordNotFound": "Impossibile trovare questo dato",
|
|
19391
|
-
"search.error.organizationNotFound": "",
|
|
19392
|
-
"search.error.organizationHasNoDataset": "",
|
|
19393
19388
|
"search.field.any.placeholder": "Cerca un dato...",
|
|
19394
19389
|
"search.field.sortBy": "Ordina per:",
|
|
19395
19390
|
"search.filters.clear": "Ripristina",
|
|
@@ -19574,7 +19569,7 @@ var nl = {
|
|
|
19574
19569
|
"datahub.header.lastRecords": "",
|
|
19575
19570
|
"datahub.header.myfavorites": "",
|
|
19576
19571
|
"datahub.header.news": "",
|
|
19577
|
-
"datahub.header.
|
|
19572
|
+
"datahub.header.organizations": "",
|
|
19578
19573
|
"datahub.header.popularRecords": "",
|
|
19579
19574
|
"datahub.header.title.html": "",
|
|
19580
19575
|
"datahub.news.contact.contactus": "",
|
|
@@ -19610,6 +19605,7 @@ var nl = {
|
|
|
19610
19605
|
"downloads.format.unknown": "",
|
|
19611
19606
|
"downloads.wfs.featuretype.not.found": "",
|
|
19612
19607
|
dropFile: dropFile$1,
|
|
19608
|
+
"editor.record.form.keywords": "",
|
|
19613
19609
|
"editor.record.form.license": "",
|
|
19614
19610
|
"editor.record.form.license.cc-by": "",
|
|
19615
19611
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -19709,12 +19705,10 @@ var nl = {
|
|
|
19709
19705
|
"organisations.sortBy.nameDesc": "",
|
|
19710
19706
|
"organisations.sortBy.recordCountAsc": "",
|
|
19711
19707
|
"organisations.sortBy.recordCountDesc": "",
|
|
19712
|
-
"organization.
|
|
19713
|
-
"organization.details.
|
|
19708
|
+
"organization.details.lastPublishedDatasets": "",
|
|
19709
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
19714
19710
|
"organization.details.mailContact": "",
|
|
19715
|
-
"organization.
|
|
19716
|
-
"organization.lastPublishedDatasets": "",
|
|
19717
|
-
"organization.lastPublishedDatasets.searchAllButton": "",
|
|
19711
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
19718
19712
|
"pagination.nextPage": "",
|
|
19719
19713
|
"pagination.page": "",
|
|
19720
19714
|
"pagination.pageOf": "",
|
|
@@ -19812,11 +19806,11 @@ var nl = {
|
|
|
19812
19806
|
"results.sortBy.relevancy": "",
|
|
19813
19807
|
"search.autocomplete.error": "",
|
|
19814
19808
|
"search.error.couldNotReachApi": "",
|
|
19809
|
+
"search.error.organizationHasNoDataset": "",
|
|
19810
|
+
"search.error.organizationNotFound": "",
|
|
19815
19811
|
"search.error.receivedError": "",
|
|
19816
19812
|
"search.error.recordHasnolink": "",
|
|
19817
19813
|
"search.error.recordNotFound": "",
|
|
19818
|
-
"search.error.organizationNotFound": "",
|
|
19819
|
-
"search.error.organizationHasNoDataset": "",
|
|
19820
19814
|
"search.field.any.placeholder": "",
|
|
19821
19815
|
"search.field.sortBy": "",
|
|
19822
19816
|
"search.filters.clear": "",
|
|
@@ -20001,7 +19995,7 @@ var pt = {
|
|
|
20001
19995
|
"datahub.header.lastRecords": "",
|
|
20002
19996
|
"datahub.header.myfavorites": "",
|
|
20003
19997
|
"datahub.header.news": "",
|
|
20004
|
-
"datahub.header.
|
|
19998
|
+
"datahub.header.organizations": "",
|
|
20005
19999
|
"datahub.header.popularRecords": "",
|
|
20006
20000
|
"datahub.header.title.html": "",
|
|
20007
20001
|
"datahub.news.contact.contactus": "",
|
|
@@ -20037,6 +20031,7 @@ var pt = {
|
|
|
20037
20031
|
"downloads.format.unknown": "",
|
|
20038
20032
|
"downloads.wfs.featuretype.not.found": "",
|
|
20039
20033
|
dropFile: dropFile,
|
|
20034
|
+
"editor.record.form.keywords": "",
|
|
20040
20035
|
"editor.record.form.license": "",
|
|
20041
20036
|
"editor.record.form.license.cc-by": "",
|
|
20042
20037
|
"editor.record.form.license.cc-by-sa": "",
|
|
@@ -20136,12 +20131,10 @@ var pt = {
|
|
|
20136
20131
|
"organisations.sortBy.nameDesc": "",
|
|
20137
20132
|
"organisations.sortBy.recordCountAsc": "",
|
|
20138
20133
|
"organisations.sortBy.recordCountDesc": "",
|
|
20139
|
-
"organization.
|
|
20140
|
-
"organization.details.
|
|
20134
|
+
"organization.details.lastPublishedDatasets": "",
|
|
20135
|
+
"organization.details.lastPublishedDatasets.searchAllButton": "",
|
|
20141
20136
|
"organization.details.mailContact": "",
|
|
20142
|
-
"organization.
|
|
20143
|
-
"organization.lastPublishedDatasets": "",
|
|
20144
|
-
"organization.lastPublishedDatasets.searchAllButton": "",
|
|
20137
|
+
"organization.header.recordCount": "{count, plural, =0{} one{} other{}}",
|
|
20145
20138
|
"pagination.nextPage": "",
|
|
20146
20139
|
"pagination.page": "",
|
|
20147
20140
|
"pagination.pageOf": "",
|
|
@@ -20239,11 +20232,11 @@ var pt = {
|
|
|
20239
20232
|
"results.sortBy.relevancy": "",
|
|
20240
20233
|
"search.autocomplete.error": "",
|
|
20241
20234
|
"search.error.couldNotReachApi": "",
|
|
20235
|
+
"search.error.organizationHasNoDataset": "",
|
|
20236
|
+
"search.error.organizationNotFound": "",
|
|
20242
20237
|
"search.error.receivedError": "",
|
|
20243
20238
|
"search.error.recordHasnolink": "",
|
|
20244
20239
|
"search.error.recordNotFound": "",
|
|
20245
|
-
"search.error.organizationNotFound": "",
|
|
20246
|
-
"search.error.organizationHasNoDataset": "",
|
|
20247
20240
|
"search.field.any.placeholder": "",
|
|
20248
20241
|
"search.field.sortBy": "",
|
|
20249
20242
|
"search.filters.clear": "",
|
|
@@ -21908,8 +21901,6 @@ class Gn4PlatformService {
|
|
|
21908
21901
|
this.allThesaurus$ = this.httpClient
|
|
21909
21902
|
.get(`${this.registriesApiService.configuration.basePath}/thesaurus?_content_type=json`)
|
|
21910
21903
|
.pipe(map$1((thesaurus) => {
|
|
21911
|
-
// FIXME: find a better way to exclude place keywords
|
|
21912
|
-
// thesaurus[0].filter((thes) => thes.dname !== 'place')
|
|
21913
21904
|
return thesaurus[0];
|
|
21914
21905
|
}), shareReplay(1));
|
|
21915
21906
|
this.me$ = this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
@@ -21953,8 +21944,14 @@ class Gn4PlatformService {
|
|
|
21953
21944
|
}
|
|
21954
21945
|
return this.keyTranslations$.pipe(map$1((translations) => translations[key]));
|
|
21955
21946
|
}
|
|
21956
|
-
searchKeywords(query) {
|
|
21957
|
-
const keywords$ = this.
|
|
21947
|
+
searchKeywords(query, keywordTypes) {
|
|
21948
|
+
const keywords$ = this.allThesaurus$.pipe(switchMap((thesaurus) => {
|
|
21949
|
+
const selectedThesauri = [];
|
|
21950
|
+
keywordTypes.map((keywordType) => {
|
|
21951
|
+
selectedThesauri.push(...thesaurus.filter((thes) => thes.dname === keywordType));
|
|
21952
|
+
});
|
|
21953
|
+
return this.registriesApiService.searchKeywords(query, this.langService.iso3, 10, 0, null, selectedThesauri.map((thes) => thes.key), null, `*${query}*`);
|
|
21954
|
+
}));
|
|
21958
21955
|
return combineLatest([keywords$, this.allThesaurus$]).pipe(map$1(([keywords, thesaurus]) => {
|
|
21959
21956
|
return this.mapper.keywordsFromApi(keywords, thesaurus, this.langService.iso3);
|
|
21960
21957
|
}));
|
|
@@ -27338,6 +27335,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27338
27335
|
args: ['contentDiv']
|
|
27339
27336
|
}] } });
|
|
27340
27337
|
|
|
27338
|
+
class MaxLinesComponent {
|
|
27339
|
+
constructor(cdr) {
|
|
27340
|
+
this.cdr = cdr;
|
|
27341
|
+
this.maxLines = 6;
|
|
27342
|
+
this.isExpanded = false;
|
|
27343
|
+
this.maxHeight = '';
|
|
27344
|
+
this.showToggleButton = false;
|
|
27345
|
+
}
|
|
27346
|
+
ngAfterViewInit() {
|
|
27347
|
+
this.calculateMaxHeight();
|
|
27348
|
+
this.observer = new ResizeObserver((mutations) => {
|
|
27349
|
+
mutations.forEach(() => {
|
|
27350
|
+
this.calculateMaxHeight();
|
|
27351
|
+
});
|
|
27352
|
+
});
|
|
27353
|
+
this.observer.observe(this.container.nativeElement.children[0]);
|
|
27354
|
+
}
|
|
27355
|
+
toggleDisplay() {
|
|
27356
|
+
this.isExpanded = !this.isExpanded;
|
|
27357
|
+
this.calculateMaxHeight();
|
|
27358
|
+
}
|
|
27359
|
+
calculateMaxHeight() {
|
|
27360
|
+
const containerElement = this.container.nativeElement;
|
|
27361
|
+
const contentElement = containerElement.children[0];
|
|
27362
|
+
const contentHeight = contentElement.getBoundingClientRect().height;
|
|
27363
|
+
if (contentHeight) {
|
|
27364
|
+
if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
|
|
27365
|
+
this.showToggleButton = true;
|
|
27366
|
+
this.maxHeight = this.isExpanded
|
|
27367
|
+
? `${contentHeight}px`
|
|
27368
|
+
: `${this.maxLines * this.getLineHeight(contentElement)}px`;
|
|
27369
|
+
}
|
|
27370
|
+
else {
|
|
27371
|
+
this.showToggleButton = false;
|
|
27372
|
+
this.maxHeight = `${contentHeight}px`;
|
|
27373
|
+
}
|
|
27374
|
+
containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
|
|
27375
|
+
this.cdr.detectChanges();
|
|
27376
|
+
}
|
|
27377
|
+
}
|
|
27378
|
+
getLineHeight(element) {
|
|
27379
|
+
const computedStyle = window.getComputedStyle(element);
|
|
27380
|
+
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
27381
|
+
const fontSize = parseFloat(computedStyle.fontSize || '14');
|
|
27382
|
+
const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
|
|
27383
|
+
return result;
|
|
27384
|
+
}
|
|
27385
|
+
ngOnDestroy() {
|
|
27386
|
+
if (!this.observer)
|
|
27387
|
+
return;
|
|
27388
|
+
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
27389
|
+
}
|
|
27390
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27391
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27392
|
+
}
|
|
27393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
27394
|
+
type: Component,
|
|
27395
|
+
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n data-cy=\"readMoreButton\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
27396
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
27397
|
+
type: Input
|
|
27398
|
+
}], container: [{
|
|
27399
|
+
type: ViewChild,
|
|
27400
|
+
args: ['container']
|
|
27401
|
+
}] } });
|
|
27402
|
+
|
|
27341
27403
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
27342
27404
|
class GnUiLinkifyDirective {
|
|
27343
27405
|
constructor(el, renderer) {
|
|
@@ -27477,7 +27539,7 @@ class MetadataInfoComponent {
|
|
|
27477
27539
|
this.keyword.emit(keyword);
|
|
27478
27540
|
}
|
|
27479
27541
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27480
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27542
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"mt-6 mb-3 font-medium text-primary text-sm\" translate>\n record.metadata.keywords\n </p>\n <div class=\"sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <h5 translate class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\">\n record.metadata.otherConstraints\n </h5>\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.recordCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordCreated.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.recordPublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordPublished.toLocaleDateString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.languages\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.languages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.technical' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27481
27543
|
}
|
|
27482
27544
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
27483
27545
|
type: Component,
|
|
@@ -27952,71 +28014,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27952
28014
|
type: Input
|
|
27953
28015
|
}] } });
|
|
27954
28016
|
|
|
27955
|
-
class MaxLinesComponent {
|
|
27956
|
-
constructor(cdr) {
|
|
27957
|
-
this.cdr = cdr;
|
|
27958
|
-
this.maxLines = 6;
|
|
27959
|
-
this.isExpanded = false;
|
|
27960
|
-
this.maxHeight = '';
|
|
27961
|
-
this.showToggleButton = false;
|
|
27962
|
-
}
|
|
27963
|
-
ngAfterViewInit() {
|
|
27964
|
-
this.calculateMaxHeight();
|
|
27965
|
-
this.observer = new ResizeObserver((mutations) => {
|
|
27966
|
-
mutations.forEach(() => {
|
|
27967
|
-
this.calculateMaxHeight();
|
|
27968
|
-
});
|
|
27969
|
-
});
|
|
27970
|
-
this.observer.observe(this.container.nativeElement.children[0]);
|
|
27971
|
-
}
|
|
27972
|
-
toggleDisplay() {
|
|
27973
|
-
this.isExpanded = !this.isExpanded;
|
|
27974
|
-
this.calculateMaxHeight();
|
|
27975
|
-
}
|
|
27976
|
-
calculateMaxHeight() {
|
|
27977
|
-
const containerElement = this.container.nativeElement;
|
|
27978
|
-
const contentElement = containerElement.children[0];
|
|
27979
|
-
const contentHeight = contentElement.getBoundingClientRect().height;
|
|
27980
|
-
if (contentHeight) {
|
|
27981
|
-
if (contentHeight > this.maxLines * this.getLineHeight(contentElement)) {
|
|
27982
|
-
this.showToggleButton = true;
|
|
27983
|
-
this.maxHeight = this.isExpanded
|
|
27984
|
-
? `${contentHeight}px`
|
|
27985
|
-
: `${this.maxLines * this.getLineHeight(contentElement)}px`;
|
|
27986
|
-
}
|
|
27987
|
-
else {
|
|
27988
|
-
this.showToggleButton = false;
|
|
27989
|
-
this.maxHeight = `${contentHeight}px`;
|
|
27990
|
-
}
|
|
27991
|
-
containerElement.setAttribute('style', `max-height: ${this.maxHeight}; overflow: hidden`);
|
|
27992
|
-
this.cdr.detectChanges();
|
|
27993
|
-
}
|
|
27994
|
-
}
|
|
27995
|
-
getLineHeight(element) {
|
|
27996
|
-
const computedStyle = window.getComputedStyle(element);
|
|
27997
|
-
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
27998
|
-
const fontSize = parseFloat(computedStyle.fontSize || '14');
|
|
27999
|
-
const result = isNaN(lineHeight) ? fontSize * 1.2 : lineHeight; // Use a default if line height is not specified
|
|
28000
|
-
return result;
|
|
28001
|
-
}
|
|
28002
|
-
ngOnDestroy() {
|
|
28003
|
-
if (!this.observer)
|
|
28004
|
-
return;
|
|
28005
|
-
this.observer.unobserve(this.container.nativeElement.children[0]);
|
|
28006
|
-
}
|
|
28007
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28008
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MaxLinesComponent, isStandalone: true, selector: "gn-ui-max-lines", inputs: { maxLines: "maxLines" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28009
|
-
}
|
|
28010
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MaxLinesComponent, decorators: [{
|
|
28011
|
-
type: Component,
|
|
28012
|
-
args: [{ selector: 'gn-ui-max-lines', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule], template: "<div\n #container\n class=\"max-lines overflow-hidden transition-[max-height] duration-300 relative\"\n [ngClass]=\"isExpanded ? 'ease-in' : 'ease-out'\"\n [style.maxHeight]=\"maxHeight\"\n>\n <ng-content></ng-content>\n <div\n *ngIf=\"showToggleButton && !isExpanded\"\n class=\"absolute inset-x-0 bottom-0 bg-gradient-to-b from-transparent to-white h-3\"\n ></div>\n</div>\n<div\n *ngIf=\"showToggleButton\"\n (click)=\"toggleDisplay()\"\n class=\"text-secondary cursor-pointer pt-2.5\"\n>\n {{ (isExpanded ? 'ui.readLess' : 'ui.readMore') | translate }}\n</div>\n" }]
|
|
28013
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { maxLines: [{
|
|
28014
|
-
type: Input
|
|
28015
|
-
}], container: [{
|
|
28016
|
-
type: ViewChild,
|
|
28017
|
-
args: ['container']
|
|
28018
|
-
}] } });
|
|
28019
|
-
|
|
28020
28017
|
class InteractiveTableColumnComponent {
|
|
28021
28018
|
constructor() {
|
|
28022
28019
|
this.grow = false;
|
|
@@ -28409,7 +28406,8 @@ class UiElementsModule {
|
|
|
28409
28406
|
MarkdownParserComponent,
|
|
28410
28407
|
ThumbnailComponent,
|
|
28411
28408
|
TimeSincePipe,
|
|
28412
|
-
BadgeComponent
|
|
28409
|
+
BadgeComponent,
|
|
28410
|
+
MaxLinesComponent], exports: [MetadataInfoComponent,
|
|
28413
28411
|
ContentGhostComponent,
|
|
28414
28412
|
DownloadItemComponent,
|
|
28415
28413
|
DownloadsListComponent,
|
|
@@ -28440,7 +28438,8 @@ class UiElementsModule {
|
|
|
28440
28438
|
UiInputsModule,
|
|
28441
28439
|
FormsModule,
|
|
28442
28440
|
ThumbnailComponent,
|
|
28443
|
-
BadgeComponent
|
|
28441
|
+
BadgeComponent,
|
|
28442
|
+
MaxLinesComponent] }); }
|
|
28444
28443
|
}
|
|
28445
28444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UiElementsModule, decorators: [{
|
|
28446
28445
|
type: NgModule,
|
|
@@ -28461,6 +28460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28461
28460
|
ThumbnailComponent,
|
|
28462
28461
|
TimeSincePipe,
|
|
28463
28462
|
BadgeComponent,
|
|
28463
|
+
MaxLinesComponent,
|
|
28464
28464
|
],
|
|
28465
28465
|
declarations: [
|
|
28466
28466
|
MetadataInfoComponent,
|
|
@@ -33856,9 +33856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33856
33856
|
class RecordsService {
|
|
33857
33857
|
constructor(recordsRepository) {
|
|
33858
33858
|
this.recordsRepository = recordsRepository;
|
|
33859
|
-
this.recordsCount$ = this.recordsRepository
|
|
33860
|
-
.getMatchesCount({})
|
|
33861
|
-
.pipe(shareReplay(1), catchError(() => of(0)));
|
|
33859
|
+
this.recordsCount$ = of(true).pipe(switchMap(() => this.recordsRepository.getMatchesCount({})), shareReplay(1));
|
|
33862
33860
|
}
|
|
33863
33861
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, deps: [{ token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33864
33862
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordsService, providedIn: 'root' }); }
|
|
@@ -34757,7 +34755,9 @@ class FormFieldKeywordsComponent {
|
|
|
34757
34755
|
return `${item.title} (${item.value.thesaurus?.name})`;
|
|
34758
34756
|
};
|
|
34759
34757
|
this.autoCompleteAction = (query) => {
|
|
34760
|
-
return this.platformService
|
|
34758
|
+
return this.platformService
|
|
34759
|
+
.searchKeywords(query, ['temporal', 'theme', 'other'])
|
|
34760
|
+
.pipe(map$2((keywords) => keywords.map((keyword) => {
|
|
34761
34761
|
return { title: keyword.label, value: keyword };
|
|
34762
34762
|
})));
|
|
34763
34763
|
};
|