geonetwork-ui 2.7.0-dev.3d703fd88 → 2.7.0-dev.65c46841b
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/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -1
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +12 -2
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +5 -1
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +1 -3
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -2
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -43
- package/esm2022/libs/util/shared/src/index.mjs +2 -2
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -2
- package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
- package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +45 -0
- package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
- package/esm2022/translations/de.json +7 -0
- package/esm2022/translations/en.json +7 -0
- package/esm2022/translations/es.json +7 -0
- package/esm2022/translations/fr.json +8 -1
- package/esm2022/translations/it.json +7 -0
- package/esm2022/translations/nl.json +7 -0
- package/esm2022/translations/pt.json +7 -0
- package/esm2022/translations/sk.json +7 -0
- package/fesm2022/geonetwork-ui.mjs +226 -55
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -6
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -1
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record/index.d.ts +3 -0
- package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -0
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +12 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +0 -2
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +3 -1
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -54
- package/src/libs/util/shared/src/index.ts +1 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +2 -1
- package/src/libs/util/shared/src/lib/record/index.ts +2 -0
- package/src/libs/util/shared/src/lib/record/quality-score.util.ts +69 -0
- package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
- package/translations/de.json +7 -0
- package/translations/en.json +7 -0
- package/translations/es.json +7 -0
- package/translations/fr.json +8 -1
- package/translations/it.json +7 -0
- package/translations/nl.json +7 -0
- package/translations/pt.json +7 -0
- package/translations/sk.json +7 -0
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
- package/libs/util/shared/src/lib/record.util.d.ts +0 -3
- package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
|
@@ -38,7 +38,7 @@ import * as TOML from '@ltd/j-toml';
|
|
|
38
38
|
import { Style, Fill, Stroke, Circle } from 'ol/style';
|
|
39
39
|
import CircleStyle from 'ol/style/Circle';
|
|
40
40
|
import EmblaCarousel from 'embla-carousel';
|
|
41
|
-
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirReduce, iconoirNavArrowDown, iconoirNavArrowUp, iconoirExpand, iconoirAppleWallet, iconoirDatabase, iconoirCode, iconoirAppWindow, iconoirBank, iconoirSettings, iconoirDownload, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirList, iconoirUser, iconoirLock, iconoirTranslate, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh, iconoirCheckCircle, iconoirCircle } from '@ng-icons/iconoir';
|
|
41
|
+
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirReduce, iconoirNavArrowDown, iconoirNavArrowUp, iconoirExpand, iconoirAppleWallet, iconoirDatabase, iconoirCode, iconoirAppWindow, iconoirBank, iconoirSettings, iconoirDownload, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirList, iconoirUser, iconoirLock, iconoirTranslate, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh, iconoirCheckCircle, iconoirCircle, iconoirSystemShut, iconoirBadgeCheck } from '@ng-icons/iconoir';
|
|
42
42
|
import { MatButtonModule } from '@angular/material/button';
|
|
43
43
|
import * as i1$8 from '@angular/cdk/overlay';
|
|
44
44
|
import { CdkConnectedOverlay, OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
@@ -795,8 +795,11 @@ function getStatusFromStatusCode(statusCode) {
|
|
|
795
795
|
case 'onGoing':
|
|
796
796
|
return 'ongoing';
|
|
797
797
|
case 'planned':
|
|
798
|
+
return 'planned';
|
|
798
799
|
case 'required':
|
|
800
|
+
return 'required';
|
|
799
801
|
case 'underDevelopment':
|
|
802
|
+
return 'under_development';
|
|
800
803
|
default:
|
|
801
804
|
return 'under_development';
|
|
802
805
|
}
|
|
@@ -893,12 +896,16 @@ marker('domain.record.status.ongoing');
|
|
|
893
896
|
marker('domain.record.status.under_development');
|
|
894
897
|
marker('domain.record.status.deprecated');
|
|
895
898
|
marker('domain.record.status.removed');
|
|
899
|
+
marker('domain.record.status.planned');
|
|
900
|
+
marker('domain.record.status.required');
|
|
896
901
|
const RecordStatusValues = [
|
|
897
902
|
'completed',
|
|
898
903
|
'ongoing',
|
|
899
904
|
'under_development',
|
|
900
905
|
'deprecated',
|
|
901
906
|
'removed',
|
|
907
|
+
'planned',
|
|
908
|
+
'required',
|
|
902
909
|
];
|
|
903
910
|
|
|
904
911
|
function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
|
|
@@ -1565,6 +1572,10 @@ function getProgressCode(status) {
|
|
|
1565
1572
|
return 'removed';
|
|
1566
1573
|
case 'under_development':
|
|
1567
1574
|
return 'underDevelopment';
|
|
1575
|
+
case 'planned':
|
|
1576
|
+
return 'planned';
|
|
1577
|
+
case 'required':
|
|
1578
|
+
return 'required';
|
|
1568
1579
|
default:
|
|
1569
1580
|
throw new Error(`Could not determine progress code from status: ${status}`);
|
|
1570
1581
|
}
|
|
@@ -18770,7 +18781,9 @@ var de = {
|
|
|
18770
18781
|
"domain.record.status.completed": "Abgeschlossen",
|
|
18771
18782
|
"domain.record.status.deprecated": "Veraltet",
|
|
18772
18783
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
18784
|
+
"domain.record.status.planned": "",
|
|
18773
18785
|
"domain.record.status.removed": "Entfernt",
|
|
18786
|
+
"domain.record.status.required": "",
|
|
18774
18787
|
"domain.record.status.under_development": "In Erstellung",
|
|
18775
18788
|
"domain.record.updateFrequency.annually": "Daten werden jedes Jahr aktualisiert",
|
|
18776
18789
|
"domain.record.updateFrequency.asNeeded": "Daten werden nach Bedarf aktualisiert",
|
|
@@ -18826,6 +18839,7 @@ var de = {
|
|
|
18826
18839
|
"editor.record.form.draft.updateAlert": "",
|
|
18827
18840
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
18828
18841
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
18842
|
+
"editor.record.form.field.contacts": "Ansprechpartner - Email",
|
|
18829
18843
|
"editor.record.form.field.contacts.noContact": "",
|
|
18830
18844
|
"editor.record.form.field.contacts.placeholder": "",
|
|
18831
18845
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -18850,6 +18864,7 @@ var de = {
|
|
|
18850
18864
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
18851
18865
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
18852
18866
|
"editor.record.form.field.onlineResources": "",
|
|
18867
|
+
"editor.record.form.field.organisation": "Ansprechpartner - Organisation",
|
|
18853
18868
|
"editor.record.form.field.otherConstraints": "Allgemeine Einschränkung",
|
|
18854
18869
|
"editor.record.form.field.overviews": "",
|
|
18855
18870
|
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
@@ -18861,6 +18876,7 @@ var de = {
|
|
|
18861
18876
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
18862
18877
|
"editor.record.form.field.title": "Metadaten-Titel",
|
|
18863
18878
|
"editor.record.form.field.title.placeholder": "Geben Sie einen Titel ein",
|
|
18879
|
+
"editor.record.form.field.topics": "Kategorien",
|
|
18864
18880
|
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
18865
18881
|
"editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
|
|
18866
18882
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -18875,6 +18891,8 @@ var de = {
|
|
|
18875
18891
|
"editor.record.form.license.odc-by": "",
|
|
18876
18892
|
"editor.record.form.license.pddl": "",
|
|
18877
18893
|
"editor.record.form.license.unknown": "",
|
|
18894
|
+
"editor.record.form.metadataQuality.open": "Öffnen Sie das Panel zur Metadatenqualität",
|
|
18895
|
+
"editor.record.form.metadataQuality.title": "Vollständigkeit",
|
|
18878
18896
|
"editor.record.form.multilingual.activate": "",
|
|
18879
18897
|
"editor.record.form.multilingual.default": "",
|
|
18880
18898
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -19381,7 +19399,9 @@ var en = {
|
|
|
19381
19399
|
"domain.record.status.completed": "Completed",
|
|
19382
19400
|
"domain.record.status.deprecated": "Deprecated",
|
|
19383
19401
|
"domain.record.status.ongoing": "Ongoing",
|
|
19402
|
+
"domain.record.status.planned": "Planned",
|
|
19384
19403
|
"domain.record.status.removed": "Removed",
|
|
19404
|
+
"domain.record.status.required": "Required",
|
|
19385
19405
|
"domain.record.status.under_development": "Under development",
|
|
19386
19406
|
"domain.record.updateFrequency.annually": "Data is updated every year",
|
|
19387
19407
|
"domain.record.updateFrequency.asNeeded": "Data is updated as deemed necessary",
|
|
@@ -19437,6 +19457,7 @@ var en = {
|
|
|
19437
19457
|
"editor.record.form.draft.updateAlert": "Since you created this draft, the dataset has been updated on { date } by { user }. Publishing your draft might erase their edits. To avoid this, you need to either cancel your changes or knowingly publish your own version.",
|
|
19438
19458
|
"editor.record.form.field.abstract": "Abstract",
|
|
19439
19459
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
19460
|
+
"editor.record.form.field.contacts": "Point of contact - Email",
|
|
19440
19461
|
"editor.record.form.field.contacts.noContact": "Please provide at least one point of contact.",
|
|
19441
19462
|
"editor.record.form.field.contacts.placeholder": "Choose a contact",
|
|
19442
19463
|
"editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
|
|
@@ -19461,6 +19482,7 @@ var en = {
|
|
|
19461
19482
|
"editor.record.form.field.onlineResource.toggle.dataset": "Link to a file",
|
|
19462
19483
|
"editor.record.form.field.onlineResource.toggle.service": "Link to a service",
|
|
19463
19484
|
"editor.record.form.field.onlineResources": "Distribution",
|
|
19485
|
+
"editor.record.form.field.organisation": "Point of contact - Organization",
|
|
19464
19486
|
"editor.record.form.field.otherConstraints": "Other constraint",
|
|
19465
19487
|
"editor.record.form.field.overviews": "Overview",
|
|
19466
19488
|
"editor.record.form.field.recordUpdated": "Record updated",
|
|
@@ -19472,6 +19494,7 @@ var en = {
|
|
|
19472
19494
|
"editor.record.form.field.temporalExtents": "Temporal extents",
|
|
19473
19495
|
"editor.record.form.field.title": "Metadata title",
|
|
19474
19496
|
"editor.record.form.field.title.placeholder": "Enter a title",
|
|
19497
|
+
"editor.record.form.field.topics": "Categories",
|
|
19475
19498
|
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
19476
19499
|
"editor.record.form.field.updateFrequency": "Update frequency",
|
|
19477
19500
|
"editor.record.form.keywords.place.placeholder": "Search for place keywords",
|
|
@@ -19486,6 +19509,8 @@ var en = {
|
|
|
19486
19509
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
19487
19510
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
19488
19511
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
19512
|
+
"editor.record.form.metadataQuality.open": "Open the metadata quality panel",
|
|
19513
|
+
"editor.record.form.metadataQuality.title": "Completeness",
|
|
19489
19514
|
"editor.record.form.multilingual.activate": "Activate the languages",
|
|
19490
19515
|
"editor.record.form.multilingual.default": "Default",
|
|
19491
19516
|
"editor.record.form.multilingual.enable": "Multilingual Mode",
|
|
@@ -19992,7 +20017,9 @@ var es = {
|
|
|
19992
20017
|
"domain.record.status.completed": "",
|
|
19993
20018
|
"domain.record.status.deprecated": "",
|
|
19994
20019
|
"domain.record.status.ongoing": "",
|
|
20020
|
+
"domain.record.status.planned": "",
|
|
19995
20021
|
"domain.record.status.removed": "",
|
|
20022
|
+
"domain.record.status.required": "",
|
|
19996
20023
|
"domain.record.status.under_development": "",
|
|
19997
20024
|
"domain.record.updateFrequency.annually": "Los datos se actualizan cada año",
|
|
19998
20025
|
"domain.record.updateFrequency.asNeeded": "Los datos se actualizan según sea necesario",
|
|
@@ -20048,6 +20075,7 @@ var es = {
|
|
|
20048
20075
|
"editor.record.form.draft.updateAlert": "",
|
|
20049
20076
|
"editor.record.form.field.abstract": "",
|
|
20050
20077
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
20078
|
+
"editor.record.form.field.contacts": "Punto de contacto - Correo ",
|
|
20051
20079
|
"editor.record.form.field.contacts.noContact": "",
|
|
20052
20080
|
"editor.record.form.field.contacts.placeholder": "",
|
|
20053
20081
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -20072,6 +20100,7 @@ var es = {
|
|
|
20072
20100
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
20073
20101
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
20074
20102
|
"editor.record.form.field.onlineResources": "",
|
|
20103
|
+
"editor.record.form.field.organisation": "Punto de contacto - Organización",
|
|
20075
20104
|
"editor.record.form.field.otherConstraints": "",
|
|
20076
20105
|
"editor.record.form.field.overviews": "",
|
|
20077
20106
|
"editor.record.form.field.recordUpdated": "",
|
|
@@ -20083,6 +20112,7 @@ var es = {
|
|
|
20083
20112
|
"editor.record.form.field.temporalExtents": "",
|
|
20084
20113
|
"editor.record.form.field.title": "",
|
|
20085
20114
|
"editor.record.form.field.title.placeholder": "Introduzca un título",
|
|
20115
|
+
"editor.record.form.field.topics": "Categorías",
|
|
20086
20116
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
20087
20117
|
"editor.record.form.field.updateFrequency": "",
|
|
20088
20118
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -20097,6 +20127,8 @@ var es = {
|
|
|
20097
20127
|
"editor.record.form.license.odc-by": "",
|
|
20098
20128
|
"editor.record.form.license.pddl": "",
|
|
20099
20129
|
"editor.record.form.license.unknown": "",
|
|
20130
|
+
"editor.record.form.metadataQuality.open": "Abrir el panel de calidad de los metadatos",
|
|
20131
|
+
"editor.record.form.metadataQuality.title": "Completitud",
|
|
20100
20132
|
"editor.record.form.multilingual.activate": "",
|
|
20101
20133
|
"editor.record.form.multilingual.default": "",
|
|
20102
20134
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -20603,7 +20635,9 @@ var fr = {
|
|
|
20603
20635
|
"domain.record.status.completed": "Finalisé",
|
|
20604
20636
|
"domain.record.status.deprecated": "Obsolète",
|
|
20605
20637
|
"domain.record.status.ongoing": "Mise à jour continue",
|
|
20638
|
+
"domain.record.status.planned": "Planifié",
|
|
20606
20639
|
"domain.record.status.removed": "Supprimé",
|
|
20640
|
+
"domain.record.status.required": "Obligatoire",
|
|
20607
20641
|
"domain.record.status.under_development": "En cours de création",
|
|
20608
20642
|
"domain.record.updateFrequency.annually": "Les données sont mises à jour chaque année",
|
|
20609
20643
|
"domain.record.updateFrequency.asNeeded": "Les données sont mises à jour selon les besoins",
|
|
@@ -20616,7 +20650,7 @@ var fr = {
|
|
|
20616
20650
|
"domain.record.updateFrequency.irregular": "Les données sont mises à jour à intervalles irréguliers",
|
|
20617
20651
|
"domain.record.updateFrequency.month": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par mois",
|
|
20618
20652
|
"domain.record.updateFrequency.monthly": "Les données sont mises à jour chaque mois",
|
|
20619
|
-
"domain.record.updateFrequency.notPlanned": "
|
|
20653
|
+
"domain.record.updateFrequency.notPlanned": "La mise à jour des données n’est pas planifiée",
|
|
20620
20654
|
"domain.record.updateFrequency.periodic": "Les données sont mises à jour à intervalles réguliers",
|
|
20621
20655
|
"domain.record.updateFrequency.quarterly": "Les données sont mises à jour tous les trois mois",
|
|
20622
20656
|
"domain.record.updateFrequency.semimonthly": "Les données sont mises à jour deux fois par mois",
|
|
@@ -20659,6 +20693,7 @@ var fr = {
|
|
|
20659
20693
|
"editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
|
|
20660
20694
|
"editor.record.form.field.abstract": "Description",
|
|
20661
20695
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
20696
|
+
"editor.record.form.field.contacts": "Point de contact - Email",
|
|
20662
20697
|
"editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
|
|
20663
20698
|
"editor.record.form.field.contacts.placeholder": "Choisissez un contact",
|
|
20664
20699
|
"editor.record.form.field.contactsForResource.noContact": "Veuillez renseigner au moins un point de contact responsable de la donnée.",
|
|
@@ -20683,6 +20718,7 @@ var fr = {
|
|
|
20683
20718
|
"editor.record.form.field.onlineResource.toggle.dataset": "Lier un fichier",
|
|
20684
20719
|
"editor.record.form.field.onlineResource.toggle.service": "Lier un service",
|
|
20685
20720
|
"editor.record.form.field.onlineResources": "Distribution",
|
|
20721
|
+
"editor.record.form.field.organisation": "Point de contact - Organisation",
|
|
20686
20722
|
"editor.record.form.field.otherConstraints": "Contrainte générale",
|
|
20687
20723
|
"editor.record.form.field.overviews": "Aperçu",
|
|
20688
20724
|
"editor.record.form.field.recordUpdated": "Date de mise à jour",
|
|
@@ -20694,6 +20730,7 @@ var fr = {
|
|
|
20694
20730
|
"editor.record.form.field.temporalExtents": "Étendue temporelle",
|
|
20695
20731
|
"editor.record.form.field.title": "Titre",
|
|
20696
20732
|
"editor.record.form.field.title.placeholder": "Saisir un titre",
|
|
20733
|
+
"editor.record.form.field.topics": "Thèmes",
|
|
20697
20734
|
"editor.record.form.field.uniqueIdentifier": "Identifiant unique",
|
|
20698
20735
|
"editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
|
|
20699
20736
|
"editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
|
|
@@ -20708,6 +20745,8 @@ var fr = {
|
|
|
20708
20745
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
20709
20746
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
20710
20747
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
20748
|
+
"editor.record.form.metadataQuality.open": "Ouvrir le menu de qualité des métadonnées",
|
|
20749
|
+
"editor.record.form.metadataQuality.title": "Complétion",
|
|
20711
20750
|
"editor.record.form.multilingual.activate": "Activez les langues",
|
|
20712
20751
|
"editor.record.form.multilingual.default": "Par défaut",
|
|
20713
20752
|
"editor.record.form.multilingual.enable": "Mode Multilingue",
|
|
@@ -21214,7 +21253,9 @@ var it = {
|
|
|
21214
21253
|
"domain.record.status.completed": "Completato",
|
|
21215
21254
|
"domain.record.status.deprecated": "Deprecato",
|
|
21216
21255
|
"domain.record.status.ongoing": "Aggiornamento continuo",
|
|
21256
|
+
"domain.record.status.planned": "",
|
|
21217
21257
|
"domain.record.status.removed": "Rimosso",
|
|
21258
|
+
"domain.record.status.required": "",
|
|
21218
21259
|
"domain.record.status.under_development": "In fase di creazione",
|
|
21219
21260
|
"domain.record.updateFrequency.annually": "I dati vengono aggiornati ogni anno",
|
|
21220
21261
|
"domain.record.updateFrequency.asNeeded": "I dati vengono aggiornati secondo necessità",
|
|
@@ -21270,6 +21311,7 @@ var it = {
|
|
|
21270
21311
|
"editor.record.form.draft.updateAlert": "Da quando è stata creata questa bozza, questo dataset è stato modificato il { date } da { user }. La pubblicazione della sua versione potrebbe rimuovere le loro modifiche. Per evitarlo, puoi annullare le sue modifiche o pubblicare la sua versione consapevolmente.",
|
|
21271
21312
|
"editor.record.form.field.abstract": "Riassunto",
|
|
21272
21313
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
21314
|
+
"editor.record.form.field.contacts": "",
|
|
21273
21315
|
"editor.record.form.field.contacts.noContact": "Inserisci almeno un punto di contatto.",
|
|
21274
21316
|
"editor.record.form.field.contacts.placeholder": "Scegli un contatto",
|
|
21275
21317
|
"editor.record.form.field.contactsForResource.noContact": "Inserisci almeno un punto di contatto responsabile dei dati.",
|
|
@@ -21294,6 +21336,7 @@ var it = {
|
|
|
21294
21336
|
"editor.record.form.field.onlineResource.toggle.dataset": "Collega un file",
|
|
21295
21337
|
"editor.record.form.field.onlineResource.toggle.service": "Collega un servizio",
|
|
21296
21338
|
"editor.record.form.field.onlineResources": "Distribuzione",
|
|
21339
|
+
"editor.record.form.field.organisation": "",
|
|
21297
21340
|
"editor.record.form.field.otherConstraints": "Vincolo generale",
|
|
21298
21341
|
"editor.record.form.field.overviews": "Panoramica",
|
|
21299
21342
|
"editor.record.form.field.recordUpdated": "Data di aggiornamento",
|
|
@@ -21305,6 +21348,7 @@ var it = {
|
|
|
21305
21348
|
"editor.record.form.field.temporalExtents": "Estensioni temporali",
|
|
21306
21349
|
"editor.record.form.field.title": "Titolo",
|
|
21307
21350
|
"editor.record.form.field.title.placeholder": "Inserisci un titolo",
|
|
21351
|
+
"editor.record.form.field.topics": "",
|
|
21308
21352
|
"editor.record.form.field.uniqueIdentifier": "Identificatore univoco",
|
|
21309
21353
|
"editor.record.form.field.updateFrequency": "Frequenza di aggiornamento",
|
|
21310
21354
|
"editor.record.form.keywords.place.placeholder": "Cerca una posizione per parola chiave",
|
|
@@ -21319,6 +21363,8 @@ var it = {
|
|
|
21319
21363
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
21320
21364
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
21321
21365
|
"editor.record.form.license.unknown": "Sconosciuto o assente",
|
|
21366
|
+
"editor.record.form.metadataQuality.open": "",
|
|
21367
|
+
"editor.record.form.metadataQuality.title": "",
|
|
21322
21368
|
"editor.record.form.multilingual.activate": "",
|
|
21323
21369
|
"editor.record.form.multilingual.default": "",
|
|
21324
21370
|
"editor.record.form.multilingual.enable": "Aprire il pannello multilingue",
|
|
@@ -21825,7 +21871,9 @@ var nl = {
|
|
|
21825
21871
|
"domain.record.status.completed": "",
|
|
21826
21872
|
"domain.record.status.deprecated": "",
|
|
21827
21873
|
"domain.record.status.ongoing": "",
|
|
21874
|
+
"domain.record.status.planned": "",
|
|
21828
21875
|
"domain.record.status.removed": "",
|
|
21876
|
+
"domain.record.status.required": "",
|
|
21829
21877
|
"domain.record.status.under_development": "",
|
|
21830
21878
|
"domain.record.updateFrequency.annually": "Gegevens worden elk jaar bijgewerkt",
|
|
21831
21879
|
"domain.record.updateFrequency.asNeeded": "Gegevens worden bijgewerkt naar behoefte",
|
|
@@ -21881,6 +21929,7 @@ var nl = {
|
|
|
21881
21929
|
"editor.record.form.draft.updateAlert": "",
|
|
21882
21930
|
"editor.record.form.field.abstract": "",
|
|
21883
21931
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
21932
|
+
"editor.record.form.field.contacts": "",
|
|
21884
21933
|
"editor.record.form.field.contacts.noContact": "",
|
|
21885
21934
|
"editor.record.form.field.contacts.placeholder": "",
|
|
21886
21935
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -21905,6 +21954,7 @@ var nl = {
|
|
|
21905
21954
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
21906
21955
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
21907
21956
|
"editor.record.form.field.onlineResources": "",
|
|
21957
|
+
"editor.record.form.field.organisation": "",
|
|
21908
21958
|
"editor.record.form.field.otherConstraints": "",
|
|
21909
21959
|
"editor.record.form.field.overviews": "",
|
|
21910
21960
|
"editor.record.form.field.recordUpdated": "",
|
|
@@ -21916,6 +21966,7 @@ var nl = {
|
|
|
21916
21966
|
"editor.record.form.field.temporalExtents": "",
|
|
21917
21967
|
"editor.record.form.field.title": "",
|
|
21918
21968
|
"editor.record.form.field.title.placeholder": "Voer een titel in",
|
|
21969
|
+
"editor.record.form.field.topics": "",
|
|
21919
21970
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
21920
21971
|
"editor.record.form.field.updateFrequency": "",
|
|
21921
21972
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -21930,6 +21981,8 @@ var nl = {
|
|
|
21930
21981
|
"editor.record.form.license.odc-by": "",
|
|
21931
21982
|
"editor.record.form.license.pddl": "",
|
|
21932
21983
|
"editor.record.form.license.unknown": "",
|
|
21984
|
+
"editor.record.form.metadataQuality.open": "",
|
|
21985
|
+
"editor.record.form.metadataQuality.title": "",
|
|
21933
21986
|
"editor.record.form.multilingual.activate": "",
|
|
21934
21987
|
"editor.record.form.multilingual.default": "",
|
|
21935
21988
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -22436,7 +22489,9 @@ var pt = {
|
|
|
22436
22489
|
"domain.record.status.completed": "",
|
|
22437
22490
|
"domain.record.status.deprecated": "",
|
|
22438
22491
|
"domain.record.status.ongoing": "",
|
|
22492
|
+
"domain.record.status.planned": "",
|
|
22439
22493
|
"domain.record.status.removed": "",
|
|
22494
|
+
"domain.record.status.required": "",
|
|
22440
22495
|
"domain.record.status.under_development": "",
|
|
22441
22496
|
"domain.record.updateFrequency.annually": "Os dados são atualizados anualmente",
|
|
22442
22497
|
"domain.record.updateFrequency.asNeeded": "Os dados são atualizados conforme necessário",
|
|
@@ -22492,6 +22547,7 @@ var pt = {
|
|
|
22492
22547
|
"editor.record.form.draft.updateAlert": "",
|
|
22493
22548
|
"editor.record.form.field.abstract": "",
|
|
22494
22549
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
22550
|
+
"editor.record.form.field.contacts": "",
|
|
22495
22551
|
"editor.record.form.field.contacts.noContact": "",
|
|
22496
22552
|
"editor.record.form.field.contacts.placeholder": "",
|
|
22497
22553
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -22516,6 +22572,7 @@ var pt = {
|
|
|
22516
22572
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
22517
22573
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
22518
22574
|
"editor.record.form.field.onlineResources": "",
|
|
22575
|
+
"editor.record.form.field.organisation": "",
|
|
22519
22576
|
"editor.record.form.field.otherConstraints": "",
|
|
22520
22577
|
"editor.record.form.field.overviews": "",
|
|
22521
22578
|
"editor.record.form.field.recordUpdated": "",
|
|
@@ -22527,6 +22584,7 @@ var pt = {
|
|
|
22527
22584
|
"editor.record.form.field.temporalExtents": "",
|
|
22528
22585
|
"editor.record.form.field.title": "",
|
|
22529
22586
|
"editor.record.form.field.title.placeholder": "Insira um título",
|
|
22587
|
+
"editor.record.form.field.topics": "",
|
|
22530
22588
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
22531
22589
|
"editor.record.form.field.updateFrequency": "",
|
|
22532
22590
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -22541,6 +22599,8 @@ var pt = {
|
|
|
22541
22599
|
"editor.record.form.license.odc-by": "",
|
|
22542
22600
|
"editor.record.form.license.pddl": "",
|
|
22543
22601
|
"editor.record.form.license.unknown": "",
|
|
22602
|
+
"editor.record.form.metadataQuality.open": "",
|
|
22603
|
+
"editor.record.form.metadataQuality.title": "",
|
|
22544
22604
|
"editor.record.form.multilingual.activate": "",
|
|
22545
22605
|
"editor.record.form.multilingual.default": "",
|
|
22546
22606
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -23047,7 +23107,9 @@ var sk = {
|
|
|
23047
23107
|
"domain.record.status.completed": "Dokončené",
|
|
23048
23108
|
"domain.record.status.deprecated": "Zastarané",
|
|
23049
23109
|
"domain.record.status.ongoing": "Prebiehajúce",
|
|
23110
|
+
"domain.record.status.planned": "",
|
|
23050
23111
|
"domain.record.status.removed": "Odstránené",
|
|
23112
|
+
"domain.record.status.required": "",
|
|
23051
23113
|
"domain.record.status.under_development": "Vo vývoji",
|
|
23052
23114
|
"domain.record.updateFrequency.annually": "Údaje sa aktualizujú každý rok",
|
|
23053
23115
|
"domain.record.updateFrequency.asNeeded": "Údaje sa aktualizujú podľa potreby",
|
|
@@ -23103,6 +23165,7 @@ var sk = {
|
|
|
23103
23165
|
"editor.record.form.draft.updateAlert": "",
|
|
23104
23166
|
"editor.record.form.field.abstract": "",
|
|
23105
23167
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
23168
|
+
"editor.record.form.field.contacts": "",
|
|
23106
23169
|
"editor.record.form.field.contacts.noContact": "",
|
|
23107
23170
|
"editor.record.form.field.contacts.placeholder": "",
|
|
23108
23171
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -23127,6 +23190,7 @@ var sk = {
|
|
|
23127
23190
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
23128
23191
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
23129
23192
|
"editor.record.form.field.onlineResources": "",
|
|
23193
|
+
"editor.record.form.field.organisation": "",
|
|
23130
23194
|
"editor.record.form.field.otherConstraints": "",
|
|
23131
23195
|
"editor.record.form.field.overviews": "",
|
|
23132
23196
|
"editor.record.form.field.recordUpdated": "",
|
|
@@ -23138,6 +23202,7 @@ var sk = {
|
|
|
23138
23202
|
"editor.record.form.field.temporalExtents": "",
|
|
23139
23203
|
"editor.record.form.field.title": "",
|
|
23140
23204
|
"editor.record.form.field.title.placeholder": "Zadajte názov",
|
|
23205
|
+
"editor.record.form.field.topics": "",
|
|
23141
23206
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
23142
23207
|
"editor.record.form.field.updateFrequency": "",
|
|
23143
23208
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -23152,6 +23217,8 @@ var sk = {
|
|
|
23152
23217
|
"editor.record.form.license.odc-by": "",
|
|
23153
23218
|
"editor.record.form.license.pddl": "",
|
|
23154
23219
|
"editor.record.form.license.unknown": "",
|
|
23220
|
+
"editor.record.form.metadataQuality.open": "",
|
|
23221
|
+
"editor.record.form.metadataQuality.title": "",
|
|
23155
23222
|
"editor.record.form.multilingual.activate": "",
|
|
23156
23223
|
"editor.record.form.multilingual.default": "",
|
|
23157
23224
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -25984,8 +26051,8 @@ const FORMATS = {
|
|
|
25984
26051
|
excel: {
|
|
25985
26052
|
extensions: [
|
|
25986
26053
|
'excel',
|
|
25987
|
-
'xls',
|
|
25988
26054
|
'xlsx',
|
|
26055
|
+
'xls',
|
|
25989
26056
|
'ms-excel',
|
|
25990
26057
|
'openxmlformats-officedocument',
|
|
25991
26058
|
],
|
|
@@ -26134,6 +26201,8 @@ function getFileFormat(link) {
|
|
|
26134
26201
|
}
|
|
26135
26202
|
function isFormatInQueryParam(link, alias) {
|
|
26136
26203
|
const queryParams = link.url.searchParams;
|
|
26204
|
+
if (!queryParams)
|
|
26205
|
+
return false;
|
|
26137
26206
|
for (const [key, value] of queryParams.entries()) {
|
|
26138
26207
|
if (key === 'format' || key === 'f') {
|
|
26139
26208
|
return value === alias;
|
|
@@ -26342,7 +26411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26342
26411
|
}] } });
|
|
26343
26412
|
|
|
26344
26413
|
var name = "geonetwork-ui";
|
|
26345
|
-
var version = "2.7.0-dev.
|
|
26414
|
+
var version = "2.7.0-dev.65c46841b";
|
|
26346
26415
|
var engines = {
|
|
26347
26416
|
node: ">=20"
|
|
26348
26417
|
};
|
|
@@ -26441,6 +26510,51 @@ const GEONETWORK_UI_TAG_NAME = GEONETWORK_UI_VERSION.split('-')[1] === 'dev'
|
|
|
26441
26510
|
? 'main'
|
|
26442
26511
|
: `v${packageJson.version}`;
|
|
26443
26512
|
|
|
26513
|
+
const ValidatorMapper = {
|
|
26514
|
+
title: (record) => !!record?.title,
|
|
26515
|
+
abstract: (record) => !!record?.abstract,
|
|
26516
|
+
keywords: (record) => (record?.keywords?.length ?? 0) > 0,
|
|
26517
|
+
legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
|
|
26518
|
+
contacts: (record) => !!record?.contacts?.[0]?.email,
|
|
26519
|
+
updateFrequency: (record) => !!record?.updateFrequency,
|
|
26520
|
+
topics: (record) => (record?.topics?.length ?? 0) > 0,
|
|
26521
|
+
organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
|
|
26522
|
+
capabilities: (record) => record?.onlineResources?.some((resource) => resource?.url?.href.toLowerCase().includes('capabilities')),
|
|
26523
|
+
source: (record) => !!record?.extras?.sourcesIdentifiers,
|
|
26524
|
+
};
|
|
26525
|
+
function getAllKeysValidator() {
|
|
26526
|
+
return Object.keys(ValidatorMapper);
|
|
26527
|
+
}
|
|
26528
|
+
function getMappersFromKind(kind) {
|
|
26529
|
+
let kindKeys = [];
|
|
26530
|
+
const commonsKeys = [
|
|
26531
|
+
'title',
|
|
26532
|
+
'abstract',
|
|
26533
|
+
'keywords',
|
|
26534
|
+
'legalConstraints',
|
|
26535
|
+
'contacts',
|
|
26536
|
+
];
|
|
26537
|
+
switch (kind) {
|
|
26538
|
+
case 'service':
|
|
26539
|
+
kindKeys = ['capabilities'];
|
|
26540
|
+
break;
|
|
26541
|
+
case 'reuse':
|
|
26542
|
+
kindKeys = ['topics', 'organisation', 'source'];
|
|
26543
|
+
break;
|
|
26544
|
+
case 'dataset':
|
|
26545
|
+
default:
|
|
26546
|
+
kindKeys = ['updateFrequency', 'topics', 'organisation'];
|
|
26547
|
+
}
|
|
26548
|
+
return [...commonsKeys, ...kindKeys];
|
|
26549
|
+
}
|
|
26550
|
+
function getQualityValidators(record, propsToValidate) {
|
|
26551
|
+
const filteredProps = propsToValidate.filter((prop) => getMappersFromKind(record.kind).includes(prop));
|
|
26552
|
+
return filteredProps.map((name) => ({
|
|
26553
|
+
name,
|
|
26554
|
+
validator: () => ValidatorMapper[name](record),
|
|
26555
|
+
}));
|
|
26556
|
+
}
|
|
26557
|
+
|
|
26444
26558
|
function updateLanguages(record, defaultLanguage, otherLanguages) {
|
|
26445
26559
|
function updateFieldTranslations(target, fieldName) {
|
|
26446
26560
|
const fieldTranslations = {};
|
|
@@ -26697,10 +26811,20 @@ class Gn4PlatformService {
|
|
|
26697
26811
|
if (typeof parsed === 'object') {
|
|
26698
26812
|
return parsed;
|
|
26699
26813
|
}
|
|
26700
|
-
const decoded =
|
|
26814
|
+
const decoded = this.decodeBase64(parsed);
|
|
26701
26815
|
return JSON.parse(decoded);
|
|
26702
26816
|
}));
|
|
26703
26817
|
}
|
|
26818
|
+
decodeBase64(base64) {
|
|
26819
|
+
const text = atob(base64);
|
|
26820
|
+
const length = text.length;
|
|
26821
|
+
const bytes = new Uint8Array(length);
|
|
26822
|
+
for (let i = 0; i < length; i++) {
|
|
26823
|
+
bytes[i] = text.charCodeAt(i);
|
|
26824
|
+
}
|
|
26825
|
+
const decoder = new TextDecoder();
|
|
26826
|
+
return decoder.decode(bytes);
|
|
26827
|
+
}
|
|
26704
26828
|
attachFileToRecord(recordUuid, file, removeDuplicate = false) {
|
|
26705
26829
|
return this.getRecordAttachments(recordUuid).pipe(map$1((recordAttachments) => recordAttachments.map((r) => r.fileName)), switchMap((fileNames) => {
|
|
26706
26830
|
const fileName = file.name;
|
|
@@ -31921,58 +32045,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31921
32045
|
class MetadataQualityComponent {
|
|
31922
32046
|
constructor() {
|
|
31923
32047
|
this.smaller = false;
|
|
32048
|
+
this.popoverDisplay = true;
|
|
32049
|
+
this.forceComputeScore = false; // Instead of returning es' quality score
|
|
31924
32050
|
this.items = [];
|
|
31925
|
-
this.COMMON_CHECKS = {
|
|
31926
|
-
title: (metadata) => !!metadata?.title,
|
|
31927
|
-
description: (metadata) => !!metadata?.abstract,
|
|
31928
|
-
keywords: (metadata) => (metadata?.keywords?.length ?? 0) > 0,
|
|
31929
|
-
legalConstraints: (metadata) => (metadata?.legalConstraints?.length ?? 0) > 0,
|
|
31930
|
-
contact: (metadata) => !!metadata?.contacts?.[0]?.email,
|
|
31931
|
-
};
|
|
31932
|
-
this.SPECIFIC_CHECKS = {
|
|
31933
|
-
dataset: {
|
|
31934
|
-
updateFrequency: (metadata) => !!metadata?.updateFrequency,
|
|
31935
|
-
topic: (metadata) => (metadata?.topics?.length ?? 0) > 0,
|
|
31936
|
-
organisation: (metadata) => !!metadata?.contacts?.[0]?.organization?.name,
|
|
31937
|
-
},
|
|
31938
|
-
service: {
|
|
31939
|
-
capabilities: (metadata) => (metadata?.onlineResources ?? []).some((resource) => this.hasGetCapabilities(resource?.url?.href ?? '')),
|
|
31940
|
-
},
|
|
31941
|
-
reuse: {
|
|
31942
|
-
topic: (metadata) => (metadata?.topics?.length ?? 0) > 0,
|
|
31943
|
-
organisation: (metadata) => !!metadata?.contacts?.[0]?.organization?.name,
|
|
31944
|
-
source: (metadata) => !!metadata?.extras?.sourcesIdentifiers,
|
|
31945
|
-
},
|
|
31946
|
-
};
|
|
31947
32051
|
}
|
|
31948
32052
|
get qualityScore() {
|
|
31949
|
-
const qualityScore = this.
|
|
32053
|
+
const qualityScore = !this.forceComputeScore
|
|
32054
|
+
? this.metadata?.extras?.qualityScore
|
|
32055
|
+
: this.computedQualityScore;
|
|
31950
32056
|
return typeof qualityScore === 'number'
|
|
31951
32057
|
? qualityScore
|
|
31952
|
-
: this.
|
|
32058
|
+
: this.computedQualityScore;
|
|
31953
32059
|
}
|
|
31954
|
-
get
|
|
32060
|
+
get computedQualityScore() {
|
|
31955
32061
|
return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
|
|
31956
32062
|
}
|
|
31957
|
-
add(name, value) {
|
|
31958
|
-
if (this.metadataQualityDisplay?.[name] !== false) {
|
|
31959
|
-
this.items.push({ name, value });
|
|
31960
|
-
}
|
|
31961
|
-
}
|
|
31962
32063
|
hasGetCapabilities(url) {
|
|
31963
32064
|
return url.toLowerCase().includes('capabilities');
|
|
31964
32065
|
}
|
|
31965
32066
|
initialize() {
|
|
31966
|
-
this.
|
|
31967
|
-
|
|
31968
|
-
this.add(name, check(this.metadata));
|
|
31969
|
-
});
|
|
31970
|
-
const datasetType = this.metadata?.kind;
|
|
31971
|
-
if (datasetType && this.SPECIFIC_CHECKS[datasetType]) {
|
|
31972
|
-
Object.entries(this.SPECIFIC_CHECKS[datasetType]).forEach(([name, check]) => {
|
|
31973
|
-
this.add(name, check(this.metadata));
|
|
31974
|
-
});
|
|
32067
|
+
if (!this.propsToValidate) {
|
|
32068
|
+
this.propsToValidate = getAllKeysValidator();
|
|
31975
32069
|
}
|
|
32070
|
+
this.items = getQualityValidators(this.metadata, this.propsToValidate).map(({ name, validator }) => ({ name, value: validator() }));
|
|
31976
32071
|
}
|
|
31977
32072
|
ngOnChanges(changes) {
|
|
31978
32073
|
if (changes['metadata'] || changes['metadataQualityDisplay']) {
|
|
@@ -31980,7 +32075,7 @@ class MetadataQualityComponent {
|
|
|
31980
32075
|
}
|
|
31981
32076
|
}
|
|
31982
32077
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31983
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, providers: [
|
|
32078
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityComponent, isStandalone: true, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay", popoverDisplay: "popoverDisplay", propsToValidate: "propsToValidate", forceComputeScore: "forceComputeScore" }, providers: [
|
|
31984
32079
|
provideIcons({
|
|
31985
32080
|
matInfoOutline,
|
|
31986
32081
|
}),
|
|
@@ -31988,7 +32083,7 @@ class MetadataQualityComponent {
|
|
|
31988
32083
|
size: '1.2em',
|
|
31989
32084
|
strokeWidth: '1.5px',
|
|
31990
32085
|
}),
|
|
31991
|
-
], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32086
|
+
], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n *ngIf=\"popoverDisplay\"\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31992
32087
|
}
|
|
31993
32088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
31994
32089
|
type: Component,
|
|
@@ -32007,13 +32102,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32007
32102
|
size: '1.2em',
|
|
32008
32103
|
strokeWidth: '1.5px',
|
|
32009
32104
|
}),
|
|
32010
|
-
], template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
32105
|
+
], template: "<div\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center metadata-quality min-w-0\"\n [ngClass]=\"{ 'text-xs leading-[8px] m-h-[120px]': smaller }\"\n>\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n [type]=\"'light'\"\n class=\"flex-grow\"\n ></gn-ui-progress-bar>\n <gn-ui-popover\n *ngIf=\"popoverDisplay\"\n [content]=\"popoverItems\"\n theme=\"light-border\"\n [class]=\"smaller ? 'ml-2' : 'ml-2 mt-1'\"\n >\n <ng-icon\n name=\"matInfoOutline\"\n class=\"flex-shrink-0 text-gray-600\"\n ></ng-icon>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
32011
32106
|
}], propDecorators: { metadata: [{
|
|
32012
32107
|
type: Input
|
|
32013
32108
|
}], smaller: [{
|
|
32014
32109
|
type: Input
|
|
32015
32110
|
}], metadataQualityDisplay: [{
|
|
32016
32111
|
type: Input
|
|
32112
|
+
}], popoverDisplay: [{
|
|
32113
|
+
type: Input
|
|
32114
|
+
}], propsToValidate: [{
|
|
32115
|
+
type: Input
|
|
32116
|
+
}], forceComputeScore: [{
|
|
32117
|
+
type: Input
|
|
32017
32118
|
}] } });
|
|
32018
32119
|
|
|
32019
32120
|
class InternalLinkCardComponent {
|
|
@@ -32055,7 +32156,7 @@ class InternalLinkCardComponent {
|
|
|
32055
32156
|
provideNgIconsConfig({
|
|
32056
32157
|
size: '1.2em',
|
|
32057
32158
|
}),
|
|
32058
|
-
], ngImport: i0, template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind", "extraClass"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
|
|
32159
|
+
], ngImport: i0, template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n [popoverDisplay]=\"true\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay", "popoverDisplay", "propsToValidate", "forceComputeScore"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: KindBadgeComponent, selector: "gn-ui-kind-badge", inputs: ["styling", "contentTemplate", "kind", "extraClass"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
|
|
32059
32160
|
}
|
|
32060
32161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
|
|
32061
32162
|
type: Component,
|
|
@@ -32076,7 +32177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32076
32177
|
provideNgIconsConfig({
|
|
32077
32178
|
size: '1.2em',
|
|
32078
32179
|
}),
|
|
32079
|
-
], template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"] }]
|
|
32180
|
+
], template: "<a\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n class=\"record-card\"\n [ngClass]=\"cardClass\"\n>\n <div *ngIf=\"shouldShowThumbnail\" class=\"record-card__thumbnail\">\n <gn-ui-thumbnail\n class=\"w-full h-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url?.toString() || ''\"\n [fit]=\"'cover'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grow pt-1\" [ngClass]=\"shouldShowThumbnail ? 'sm:w-0' : ''\">\n <div class=\"flex flex-col gap-2 h-full\">\n <h4\n class=\"record-card__title\"\n data-cy=\"recordTitle\"\n [title]=\"record.title\"\n >\n {{ record.title }}\n </h4>\n <div class=\"grow\">\n <gn-ui-markdown-parser\n data-cy=\"recordAbstract\"\n [textContent]=\"abstract\"\n [whitoutStyles]=\"true\"\n class=\"record-card__abstract\"\n [title]=\"abstract\"\n ></gn-ui-markdown-parser>\n </div>\n <div class=\"record-card__footer\">\n <div\n data-cy=\"recordOrg\"\n *ngIf=\"record.ownerOrganization?.name\"\n class=\"grow flex flex-row gap-1 items-center text-primary-lighter\"\n [ngClass]=\"displayContactIconOnly ? 'justify-center' : ''\"\n >\n <ng-icon\n name=\"iconoirBank\"\n class=\"text-primary -translate-y-[0.5px] shrink-0\"\n [title]=\"record.ownerOrganization.name\"\n ></ng-icon>\n <span\n *ngIf=\"!displayContactIconOnly\"\n data-cy=\"recordOrgName\"\n class=\"line-clamp-1\"\n [title]=\"record.ownerOrganization.name\"\n >{{ record.ownerOrganization.name }}</span\n >\n </div>\n <div class=\"record-card__footer__other\">\n <div\n class=\"xs:border-r last:border-r-0 flex grow gap-4 px-4 last:pr-0\"\n >\n <gn-ui-kind-badge\n [extraClass]=\"'text-[1.2em]'\"\n [styling]=\"'gray'\"\n [kind]=\"record?.kind\"\n [contentTemplate]=\"customTemplate\"\n class=\"pt-1\"\n >\n <ng-template #customTemplate></ng-template\n ></gn-ui-kind-badge>\n <gn-ui-metadata-quality\n *ngIf=\"metadataQualityDisplay\"\n class=\"flex items-center min-w-[113px]\"\n [smaller]=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n [popoverDisplay]=\"true\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"flex justify-center\"\n data-cy=\"recordFav\"\n [ngClass]=\"displayContactIconOnly ? 'px-1' : 'px-4'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n</a>\n", styles: [".record-card{@apply rounded-md bg-white hover:cursor-pointer hover:bg-slate-50 overflow-hidden items-stretch flex flex-row md:gap-0 justify-between py-3 pl-3 pr-5;}.record-card.size-L{@apply w-full md:h-[208px] gap-5;}.record-card.size-M{@apply max-w-[940px] md:h-[231px] gap-4;}.record-card.size-S{@apply max-w-[572px] md:h-[315px] gap-4;}.record-card.size-XS{@apply max-w-[280px] md:h-[315px] gap-4;}.record-card:hover .record-card__title{@apply text-primary;}.record-card__thumbnail{@apply border rounded-lg overflow-hidden shrink-0;}.size-L .record-card__thumbnail{@apply w-full w-[190px] h-[184px];}.size-M .record-card__thumbnail{@apply w-full w-[138px] h-[207px];}.record-card__title{@apply text-xl font-medium text-title leading-6;}.size-L .record-card__title{@apply line-clamp-2;}.size-M .record-card__title{@apply line-clamp-2 ml-2;}.size-S .record-card__title,.size-XS .record-card__title{@apply line-clamp-3 ml-2;}.record-card__abstract{@apply text-gray-900 overflow-hidden;}.size-L .record-card__abstract{@apply line-clamp-3;}.size-M .record-card__abstract{@apply line-clamp-3 ml-2;}.size-S .record-card__abstract,.size-XS .record-card__abstract{@apply line-clamp-4 ml-2;}.record-card__footer{@apply flex sm:flex-row flex-col flex-nowrap gap-3 justify-end items-center w-full border-t pt-1 overflow-hidden;}@media (max-width: 450px){.size-S .record-card__footer{@apply flex-col items-stretch;}}.size-XS .record-card__footer{@apply flex-col items-stretch gap-2;}.record-card__footer__other{@apply flex flex-col xs:flex-row flex-nowrap gap-3 xs:border-l first:border-l-0;}.record-card__footer__other>div{@apply py-1;}@media (max-width: 450px){.size-S .record-card__footer__other,.size-S .record-card__footer__other>div{@apply border-0 px-0 py-0;}}.size-XS .record-card__footer__other,.size-XS .record-card__footer__other>div{@apply border-0;}.size-XS .record-card__footer__other>div{@apply px-0 py-0;}\n"] }]
|
|
32080
32181
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
|
|
32081
32182
|
type: Input
|
|
32082
32183
|
}], linkTarget: [{
|
|
@@ -40636,7 +40737,9 @@ class MapViewComponent {
|
|
|
40636
40737
|
link.accessServiceProtocol === 'tms') {
|
|
40637
40738
|
// FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
|
|
40638
40739
|
return of({
|
|
40639
|
-
url: link.url
|
|
40740
|
+
url: link.url
|
|
40741
|
+
.toString()
|
|
40742
|
+
.replace(/\/?$/, `/${link.name}/{z}/{x}/{y}.pbf`),
|
|
40640
40743
|
type: 'xyz',
|
|
40641
40744
|
tileFormat: 'application/vnd.mapbox-vector-tile',
|
|
40642
40745
|
name: link.name,
|
|
@@ -40833,8 +40936,6 @@ const RECORD_KEYWORDS_FIELD = {
|
|
|
40833
40936
|
model: 'keywords',
|
|
40834
40937
|
formFieldConfig: {},
|
|
40835
40938
|
};
|
|
40836
|
-
// keeping track of the label to not lose existing translation
|
|
40837
|
-
marker('editor.record.form.field.keywords');
|
|
40838
40939
|
const RECORD_RESOURCE_CREATED_FIELD = {
|
|
40839
40940
|
model: 'resourceCreated',
|
|
40840
40941
|
formFieldConfig: {
|
|
@@ -43542,7 +43643,7 @@ class MultilingualPanelComponent {
|
|
|
43542
43643
|
provideNgIconsConfig({
|
|
43543
43644
|
size: '1.25em',
|
|
43544
43645
|
}),
|
|
43545
|
-
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
43646
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
43546
43647
|
}
|
|
43547
43648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
43548
43649
|
type: Component,
|
|
@@ -43564,7 +43665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43564
43665
|
provideNgIconsConfig({
|
|
43565
43666
|
size: '1.25em',
|
|
43566
43667
|
}),
|
|
43567
|
-
], template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
43668
|
+
], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
|
|
43568
43669
|
}], ctorParameters: () => [{ type: EditorFacade }, { type: i1$b.MatDialog }, { type: i1$1.TranslateService }, { type: RecordsRepositoryInterface }, { type: i1$8.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { record: [{
|
|
43569
43670
|
type: Input
|
|
43570
43671
|
}], actionMenuButtons: [{
|
|
@@ -43572,6 +43673,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43572
43673
|
args: ['actionMenuButton', { read: ElementRef }]
|
|
43573
43674
|
}] } });
|
|
43574
43675
|
|
|
43676
|
+
//forced translations that are not available in fields.config.ts
|
|
43677
|
+
marker('editor.record.form.field.keywords');
|
|
43678
|
+
marker('editor.record.form.field.topics');
|
|
43679
|
+
marker('editor.record.form.field.contacts');
|
|
43680
|
+
marker('editor.record.form.field.organisation');
|
|
43681
|
+
class MetadataQualityPanelComponent {
|
|
43682
|
+
constructor() {
|
|
43683
|
+
this.propsToValidate = getAllKeysValidator();
|
|
43684
|
+
this.propertiesByPage = [];
|
|
43685
|
+
}
|
|
43686
|
+
ngOnChanges() {
|
|
43687
|
+
if (this.editorConfig && this.record) {
|
|
43688
|
+
const fieldsByPage = this.editorConfig.pages.map((page) => page.sections.flatMap((section) => section.fields
|
|
43689
|
+
.filter((field) => this.propsToValidate.includes(field.model))
|
|
43690
|
+
.map((field) => field.model)));
|
|
43691
|
+
// FIXME: temporarily add topics and organisation to the first and third page
|
|
43692
|
+
// as long as they are not handled by the editor
|
|
43693
|
+
if (fieldsByPage.length > 0) {
|
|
43694
|
+
fieldsByPage[0].includes('topics') || fieldsByPage[0].push('topics');
|
|
43695
|
+
fieldsByPage[2].includes('organisation') ||
|
|
43696
|
+
fieldsByPage[2].push('organisation');
|
|
43697
|
+
}
|
|
43698
|
+
this.propertiesByPage = fieldsByPage
|
|
43699
|
+
.map((fields) => getQualityValidators(this.record, fields).map(({ name, validator }) => ({
|
|
43700
|
+
label: `editor.record.form.field.${name}`, // use same translations as in fields.config.ts
|
|
43701
|
+
value: validator(),
|
|
43702
|
+
})))
|
|
43703
|
+
.filter((arr) => arr.length > 0);
|
|
43704
|
+
}
|
|
43705
|
+
}
|
|
43706
|
+
getExtraClass(checked) {
|
|
43707
|
+
const baseClasses = 'flex flex-row justify-between rounded mb-1 h-[34px] w-full focus:ring-0 hover:border-none border-none hover:text-black text-black cursor-default';
|
|
43708
|
+
return checked
|
|
43709
|
+
? `${baseClasses} bg-neutral-100 hover:bg-neutral-100`
|
|
43710
|
+
: `${baseClasses} bg-transparent hover:bg-transparent`;
|
|
43711
|
+
}
|
|
43712
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43713
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataQualityPanelComponent, isStandalone: true, selector: "gn-ui-metadata-quality-panel", inputs: { editorConfig: "editorConfig", record: "record" }, providers: [
|
|
43714
|
+
provideIcons({
|
|
43715
|
+
iconoirSystemShut,
|
|
43716
|
+
iconoirBadgeCheck,
|
|
43717
|
+
}),
|
|
43718
|
+
provideNgIconsConfig({
|
|
43719
|
+
size: '1.25em',
|
|
43720
|
+
}),
|
|
43721
|
+
], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-3 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.metadataQuality.title</span\n >\n </div>\n <div\n *ngFor=\"let properties of propertiesByPage; let i = index\"\n class=\"flex flex-col gap-2\"\n >\n <gn-ui-button\n *ngFor=\"let property of properties\"\n [extraClass]=\"getExtraClass(property.value)\"\n type=\"outline\"\n attr.data-cy=\"md-quality-btn-{{ property.label }}\"\n >\n <span>{{ property.label | translate }}</span>\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"property.value; else notChecked\"\n class=\"text-primary\"\n name=\"iconoirBadgeCheck\"\n ></ng-icon>\n <ng-template #notChecked>\n <ng-icon class=\"text-neutral-300\" name=\"iconoirSystemShut\"></ng-icon>\n </ng-template>\n </div>\n </gn-ui-button>\n <hr\n *ngIf=\"i !== propertiesByPage.length - 1\"\n class=\"border-gray-300 w-11/12 mx-auto\"\n />\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: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }] }); }
|
|
43722
|
+
}
|
|
43723
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityPanelComponent, decorators: [{
|
|
43724
|
+
type: Component,
|
|
43725
|
+
args: [{ selector: 'gn-ui-metadata-quality-panel', standalone: true, imports: [
|
|
43726
|
+
CommonModule,
|
|
43727
|
+
TranslateDirective,
|
|
43728
|
+
TranslatePipe,
|
|
43729
|
+
ButtonComponent,
|
|
43730
|
+
NgIconComponent,
|
|
43731
|
+
], providers: [
|
|
43732
|
+
provideIcons({
|
|
43733
|
+
iconoirSystemShut,
|
|
43734
|
+
iconoirBadgeCheck,
|
|
43735
|
+
}),
|
|
43736
|
+
provideNgIconsConfig({
|
|
43737
|
+
size: '1.25em',
|
|
43738
|
+
}),
|
|
43739
|
+
], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-3 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.metadataQuality.title</span\n >\n </div>\n <div\n *ngFor=\"let properties of propertiesByPage; let i = index\"\n class=\"flex flex-col gap-2\"\n >\n <gn-ui-button\n *ngFor=\"let property of properties\"\n [extraClass]=\"getExtraClass(property.value)\"\n type=\"outline\"\n attr.data-cy=\"md-quality-btn-{{ property.label }}\"\n >\n <span>{{ property.label | translate }}</span>\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"property.value; else notChecked\"\n class=\"text-primary\"\n name=\"iconoirBadgeCheck\"\n ></ng-icon>\n <ng-template #notChecked>\n <ng-icon class=\"text-neutral-300\" name=\"iconoirSystemShut\"></ng-icon>\n </ng-template>\n </div>\n </gn-ui-button>\n <hr\n *ngIf=\"i !== propertiesByPage.length - 1\"\n class=\"border-gray-300 w-11/12 mx-auto\"\n />\n </div>\n</div>\n" }]
|
|
43740
|
+
}], propDecorators: { editorConfig: [{
|
|
43741
|
+
type: Input
|
|
43742
|
+
}], record: [{
|
|
43743
|
+
type: Input
|
|
43744
|
+
}] } });
|
|
43745
|
+
|
|
43575
43746
|
const ROUTER_STATE_KEY = 'router';
|
|
43576
43747
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
43577
43748
|
const ROUTER_ROUTE_DATASET = 'dataset';
|
|
@@ -44016,5 +44187,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44016
44187
|
* Generated bundle index. Do not edit.
|
|
44017
44188
|
*/
|
|
44018
44189
|
|
|
44019
|
-
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, 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, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLang2FromLang3, getLang3FromLang2, getLayers, getLinkId, getLinkLabel, getLinkPriority, getLocalizedIndexKey, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, 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 };
|
|
44190
|
+
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, getGeometryFromGeoJSON, getGlobalConfig, 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 };
|
|
44020
44191
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|