geonetwork-ui 2.7.0-dev.3d703fd88 → 2.7.0-dev.4cf8fec3b
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/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
- 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/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- 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/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -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 +244 -62
- 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/downloads-list/downloads-list.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.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/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.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/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.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/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -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/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- 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/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- 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
|
@@ -15,7 +15,7 @@ import { TranslateCompiler, TranslateLoader, TranslateDefaultParser, TranslatePa
|
|
|
15
15
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
17
|
import { map as map$1, shareReplay, catchError, tap as tap$1, filter, startWith, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, share, pairwise, first as first$1, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
18
|
-
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, filter as filter$1, take as take$1, tap as tap$2, Observable, buffer, combineLatestWith,
|
|
18
|
+
import { of, map as map$2, lastValueFrom, Subject, switchMap, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, fromEvent, startWith as startWith$1, shareReplay as shareReplay$1, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, filter as filter$1, take as take$1, tap as tap$2, Observable, buffer, combineLatestWith, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1, pairwise as pairwise$1 } from 'rxjs';
|
|
19
19
|
import { lt, valid, coerce, satisfies, ltr } from 'semver';
|
|
20
20
|
import * as i1$2 from '@angular/common';
|
|
21
21
|
import { CommonModule, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgClass, NgTemplateOutlet, DatePipe } from '@angular/common';
|
|
@@ -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": "",
|
|
@@ -25846,6 +25913,14 @@ function downgradeImage(blob, maxSizeBytes) {
|
|
|
25846
25913
|
});
|
|
25847
25914
|
}
|
|
25848
25915
|
|
|
25916
|
+
/**
|
|
25917
|
+
* This returns true when the screen size is under 768px, which is the mobile threshold.
|
|
25918
|
+
*/
|
|
25919
|
+
const MOBILE_MAX_WIDTH = 768;
|
|
25920
|
+
function getIsMobile() {
|
|
25921
|
+
return fromEvent(window, 'resize').pipe(startWith$1(window.innerWidth), map$2(() => window.innerWidth < MOBILE_MAX_WIDTH), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
25922
|
+
}
|
|
25923
|
+
|
|
25849
25924
|
function noDuplicateFileName(fileName, fileNameList) {
|
|
25850
25925
|
if (fileNameList.includes(fileName)) {
|
|
25851
25926
|
const fileNameParts = fileName.split('.');
|
|
@@ -25984,8 +26059,8 @@ const FORMATS = {
|
|
|
25984
26059
|
excel: {
|
|
25985
26060
|
extensions: [
|
|
25986
26061
|
'excel',
|
|
25987
|
-
'xls',
|
|
25988
26062
|
'xlsx',
|
|
26063
|
+
'xls',
|
|
25989
26064
|
'ms-excel',
|
|
25990
26065
|
'openxmlformats-officedocument',
|
|
25991
26066
|
],
|
|
@@ -26134,6 +26209,8 @@ function getFileFormat(link) {
|
|
|
26134
26209
|
}
|
|
26135
26210
|
function isFormatInQueryParam(link, alias) {
|
|
26136
26211
|
const queryParams = link.url.searchParams;
|
|
26212
|
+
if (!queryParams)
|
|
26213
|
+
return false;
|
|
26137
26214
|
for (const [key, value] of queryParams.entries()) {
|
|
26138
26215
|
if (key === 'format' || key === 'f') {
|
|
26139
26216
|
return value === alias;
|
|
@@ -26342,7 +26419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26342
26419
|
}] } });
|
|
26343
26420
|
|
|
26344
26421
|
var name = "geonetwork-ui";
|
|
26345
|
-
var version = "2.7.0-dev.
|
|
26422
|
+
var version = "2.7.0-dev.4cf8fec3b";
|
|
26346
26423
|
var engines = {
|
|
26347
26424
|
node: ">=20"
|
|
26348
26425
|
};
|
|
@@ -26441,6 +26518,51 @@ const GEONETWORK_UI_TAG_NAME = GEONETWORK_UI_VERSION.split('-')[1] === 'dev'
|
|
|
26441
26518
|
? 'main'
|
|
26442
26519
|
: `v${packageJson.version}`;
|
|
26443
26520
|
|
|
26521
|
+
const ValidatorMapper = {
|
|
26522
|
+
title: (record) => !!record?.title,
|
|
26523
|
+
abstract: (record) => !!record?.abstract,
|
|
26524
|
+
keywords: (record) => (record?.keywords?.length ?? 0) > 0,
|
|
26525
|
+
legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
|
|
26526
|
+
contacts: (record) => !!record?.contacts?.[0]?.email,
|
|
26527
|
+
updateFrequency: (record) => !!record?.updateFrequency,
|
|
26528
|
+
topics: (record) => (record?.topics?.length ?? 0) > 0,
|
|
26529
|
+
organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
|
|
26530
|
+
capabilities: (record) => record?.onlineResources?.some((resource) => resource?.url?.href.toLowerCase().includes('capabilities')),
|
|
26531
|
+
source: (record) => !!record?.extras?.sourcesIdentifiers,
|
|
26532
|
+
};
|
|
26533
|
+
function getAllKeysValidator() {
|
|
26534
|
+
return Object.keys(ValidatorMapper);
|
|
26535
|
+
}
|
|
26536
|
+
function getMappersFromKind(kind) {
|
|
26537
|
+
let kindKeys = [];
|
|
26538
|
+
const commonsKeys = [
|
|
26539
|
+
'title',
|
|
26540
|
+
'abstract',
|
|
26541
|
+
'keywords',
|
|
26542
|
+
'legalConstraints',
|
|
26543
|
+
'contacts',
|
|
26544
|
+
];
|
|
26545
|
+
switch (kind) {
|
|
26546
|
+
case 'service':
|
|
26547
|
+
kindKeys = ['capabilities'];
|
|
26548
|
+
break;
|
|
26549
|
+
case 'reuse':
|
|
26550
|
+
kindKeys = ['topics', 'organisation', 'source'];
|
|
26551
|
+
break;
|
|
26552
|
+
case 'dataset':
|
|
26553
|
+
default:
|
|
26554
|
+
kindKeys = ['updateFrequency', 'topics', 'organisation'];
|
|
26555
|
+
}
|
|
26556
|
+
return [...commonsKeys, ...kindKeys];
|
|
26557
|
+
}
|
|
26558
|
+
function getQualityValidators(record, propsToValidate) {
|
|
26559
|
+
const filteredProps = propsToValidate.filter((prop) => getMappersFromKind(record.kind).includes(prop));
|
|
26560
|
+
return filteredProps.map((name) => ({
|
|
26561
|
+
name,
|
|
26562
|
+
validator: () => ValidatorMapper[name](record),
|
|
26563
|
+
}));
|
|
26564
|
+
}
|
|
26565
|
+
|
|
26444
26566
|
function updateLanguages(record, defaultLanguage, otherLanguages) {
|
|
26445
26567
|
function updateFieldTranslations(target, fieldName) {
|
|
26446
26568
|
const fieldTranslations = {};
|
|
@@ -26697,10 +26819,20 @@ class Gn4PlatformService {
|
|
|
26697
26819
|
if (typeof parsed === 'object') {
|
|
26698
26820
|
return parsed;
|
|
26699
26821
|
}
|
|
26700
|
-
const decoded =
|
|
26822
|
+
const decoded = this.decodeBase64(parsed);
|
|
26701
26823
|
return JSON.parse(decoded);
|
|
26702
26824
|
}));
|
|
26703
26825
|
}
|
|
26826
|
+
decodeBase64(base64) {
|
|
26827
|
+
const text = atob(base64);
|
|
26828
|
+
const length = text.length;
|
|
26829
|
+
const bytes = new Uint8Array(length);
|
|
26830
|
+
for (let i = 0; i < length; i++) {
|
|
26831
|
+
bytes[i] = text.charCodeAt(i);
|
|
26832
|
+
}
|
|
26833
|
+
const decoder = new TextDecoder();
|
|
26834
|
+
return decoder.decode(bytes);
|
|
26835
|
+
}
|
|
26704
26836
|
attachFileToRecord(recordUuid, file, removeDuplicate = false) {
|
|
26705
26837
|
return this.getRecordAttachments(recordUuid).pipe(map$1((recordAttachments) => recordAttachments.map((r) => r.fileName)), switchMap((fileNames) => {
|
|
26706
26838
|
const fileName = file.name;
|
|
@@ -30271,6 +30403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30271
30403
|
|
|
30272
30404
|
class SearchFeatureCatalogComponent {
|
|
30273
30405
|
constructor() {
|
|
30406
|
+
this.isMobile$ = getIsMobile();
|
|
30274
30407
|
this.filteredFeatureCatalogChange = new EventEmitter();
|
|
30275
30408
|
this.filterAction = (searchTerm) => {
|
|
30276
30409
|
of(searchTerm)
|
|
@@ -30303,7 +30436,7 @@ class SearchFeatureCatalogComponent {
|
|
|
30303
30436
|
return (this.filteredFeatureCatalog?.featureTypes?.reduce((total, featureType) => total + (featureType.attributes?.length || 0), 0) || 0);
|
|
30304
30437
|
}
|
|
30305
30438
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchFeatureCatalogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto
|
|
30439
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchFeatureCatalogComponent, isStandalone: true, selector: "gn-ui-search-feature-catalog", inputs: { featureCatalog: "featureCatalog" }, outputs: { filteredFeatureCatalogChange: "filteredFeatureCatalogChange" }, ngImport: i0, template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], viewProviders: [
|
|
30307
30440
|
provideIcons({ iconoirSearch }),
|
|
30308
30441
|
provideNgIconsConfig({
|
|
30309
30442
|
size: '1.5rem',
|
|
@@ -30323,7 +30456,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30323
30456
|
provideNgIconsConfig({
|
|
30324
30457
|
size: '1.5rem',
|
|
30325
30458
|
}),
|
|
30326
|
-
], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div class=\"text-sm px-1 ml-auto
|
|
30459
|
+
], template: "<div\n class=\"flex items-center justify-between p-3 mt-8 bg-white rounded-lg border-b solid border-gray-300\"\n *ngIf=\"\n (isMobile$ | async) === false || featureCatalog?.featureTypes?.length > 1\n \"\n>\n <div\n class=\"relative shrink-0\"\n *ngIf=\"featureCatalog?.featureTypes?.length > 1\"\n >\n <input\n type=\"text\"\n [placeholder]=\"'search.filter.into.feature.catalog' | translate\"\n class=\"w-[220px] h-8 pl-3 pr-10 py-2 border rounded-md\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"filterAction(searchTerm)\"\n />\n <ng-icon\n class=\"absolute right-2.5 top-1 w-6 h-6 text-black\"\n name=\"iconoirSearch\"\n ></ng-icon>\n </div>\n <div\n *ngIf=\"(isMobile$ | async) === false\"\n class=\"text-sm px-1 ml-auto inline\"\n >\n <ng-container *ngIf=\"featureCatalog?.featureTypes?.length > 1\">\n <span\n class=\"text-sm font-medium text-gray-900\"\n data-cy=\"total-objects-label\"\n translate\n >record.feature.catalog.number.total.object</span\n ><span\n class=\"text-sm font-bold px-1 text-gray-900\"\n data-cy=\"total-objects\"\n >{{ totalObjects }}</span\n >\n <span class=\"px-1.5\">|</span>\n </ng-container>\n <span\n class=\"text-sm font-medium px-1 text-gray-900\"\n data-cy=\"total-attributes-label\"\n translate\n >record.feature.catalog.number.total.attribute</span\n ><span class=\"text-sm font-bold text-gray-900\" data-cy=\"total-attributes\">{{\n totalAttributes\n }}</span>\n </div>\n</div>\n" }]
|
|
30327
30460
|
}], propDecorators: { featureCatalog: [{
|
|
30328
30461
|
type: Input
|
|
30329
30462
|
}], filteredFeatureCatalogChange: [{
|
|
@@ -31921,58 +32054,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
31921
32054
|
class MetadataQualityComponent {
|
|
31922
32055
|
constructor() {
|
|
31923
32056
|
this.smaller = false;
|
|
32057
|
+
this.popoverDisplay = true;
|
|
32058
|
+
this.forceComputeScore = false; // Instead of returning es' quality score
|
|
31924
32059
|
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
32060
|
}
|
|
31948
32061
|
get qualityScore() {
|
|
31949
|
-
const qualityScore = this.
|
|
32062
|
+
const qualityScore = !this.forceComputeScore
|
|
32063
|
+
? this.metadata?.extras?.qualityScore
|
|
32064
|
+
: this.computedQualityScore;
|
|
31950
32065
|
return typeof qualityScore === 'number'
|
|
31951
32066
|
? qualityScore
|
|
31952
|
-
: this.
|
|
32067
|
+
: this.computedQualityScore;
|
|
31953
32068
|
}
|
|
31954
|
-
get
|
|
32069
|
+
get computedQualityScore() {
|
|
31955
32070
|
return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
|
|
31956
32071
|
}
|
|
31957
|
-
add(name, value) {
|
|
31958
|
-
if (this.metadataQualityDisplay?.[name] !== false) {
|
|
31959
|
-
this.items.push({ name, value });
|
|
31960
|
-
}
|
|
31961
|
-
}
|
|
31962
32072
|
hasGetCapabilities(url) {
|
|
31963
32073
|
return url.toLowerCase().includes('capabilities');
|
|
31964
32074
|
}
|
|
31965
32075
|
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
|
-
});
|
|
32076
|
+
if (!this.propsToValidate) {
|
|
32077
|
+
this.propsToValidate = getAllKeysValidator();
|
|
31975
32078
|
}
|
|
32079
|
+
this.items = getQualityValidators(this.metadata, this.propsToValidate).map(({ name, validator }) => ({ name, value: validator() }));
|
|
31976
32080
|
}
|
|
31977
32081
|
ngOnChanges(changes) {
|
|
31978
32082
|
if (changes['metadata'] || changes['metadataQualityDisplay']) {
|
|
@@ -31980,7 +32084,7 @@ class MetadataQualityComponent {
|
|
|
31980
32084
|
}
|
|
31981
32085
|
}
|
|
31982
32086
|
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: [
|
|
32087
|
+
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
32088
|
provideIcons({
|
|
31985
32089
|
matInfoOutline,
|
|
31986
32090
|
}),
|
|
@@ -31988,7 +32092,7 @@ class MetadataQualityComponent {
|
|
|
31988
32092
|
size: '1.2em',
|
|
31989
32093
|
strokeWidth: '1.5px',
|
|
31990
32094
|
}),
|
|
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 }); }
|
|
32095
|
+
], 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
32096
|
}
|
|
31993
32097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
31994
32098
|
type: Component,
|
|
@@ -32007,13 +32111,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32007
32111
|
size: '1.2em',
|
|
32008
32112
|
strokeWidth: '1.5px',
|
|
32009
32113
|
}),
|
|
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"] }]
|
|
32114
|
+
], 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
32115
|
}], propDecorators: { metadata: [{
|
|
32012
32116
|
type: Input
|
|
32013
32117
|
}], smaller: [{
|
|
32014
32118
|
type: Input
|
|
32015
32119
|
}], metadataQualityDisplay: [{
|
|
32016
32120
|
type: Input
|
|
32121
|
+
}], popoverDisplay: [{
|
|
32122
|
+
type: Input
|
|
32123
|
+
}], propsToValidate: [{
|
|
32124
|
+
type: Input
|
|
32125
|
+
}], forceComputeScore: [{
|
|
32126
|
+
type: Input
|
|
32017
32127
|
}] } });
|
|
32018
32128
|
|
|
32019
32129
|
class InternalLinkCardComponent {
|
|
@@ -32055,7 +32165,7 @@ class InternalLinkCardComponent {
|
|
|
32055
32165
|
provideNgIconsConfig({
|
|
32056
32166
|
size: '1.2em',
|
|
32057
32167
|
}),
|
|
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"] }] }); }
|
|
32168
|
+
], 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
32169
|
}
|
|
32060
32170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InternalLinkCardComponent, decorators: [{
|
|
32061
32171
|
type: Component,
|
|
@@ -32076,7 +32186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32076
32186
|
provideNgIconsConfig({
|
|
32077
32187
|
size: '1.2em',
|
|
32078
32188
|
}),
|
|
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"] }]
|
|
32189
|
+
], 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
32190
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { record: [{
|
|
32081
32191
|
type: Input
|
|
32082
32192
|
}], linkTarget: [{
|
|
@@ -32500,6 +32610,7 @@ class DownloadsListComponent {
|
|
|
32500
32610
|
constructor(translateService, changeDetector) {
|
|
32501
32611
|
this.translateService = translateService;
|
|
32502
32612
|
this.changeDetector = changeDetector;
|
|
32613
|
+
this.isMobile$ = getIsMobile();
|
|
32503
32614
|
this.activeFilterFormats = ['all'];
|
|
32504
32615
|
}
|
|
32505
32616
|
get linksCount() {
|
|
@@ -32587,7 +32698,7 @@ class DownloadsListComponent {
|
|
|
32587
32698
|
link.accessServiceProtocol === 'ogcFeatures'));
|
|
32588
32699
|
}
|
|
32589
32700
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1$1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32590
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n
|
|
32701
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\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: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32591
32702
|
}
|
|
32592
32703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
|
|
32593
32704
|
type: Component,
|
|
@@ -32598,7 +32709,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32598
32709
|
DownloadItemComponent,
|
|
32599
32710
|
TranslateDirective,
|
|
32600
32711
|
PreviousNextButtonsComponent,
|
|
32601
|
-
], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n
|
|
32712
|
+
], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n" }]
|
|
32602
32713
|
}], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { links: [{
|
|
32603
32714
|
type: Input
|
|
32604
32715
|
}] } });
|
|
@@ -32666,9 +32777,10 @@ class GeoDataBadgeComponent {
|
|
|
32666
32777
|
this.linkClassifier = linkClassifier;
|
|
32667
32778
|
this.showLabel = true;
|
|
32668
32779
|
this.styling = 'default';
|
|
32780
|
+
this.isMobile$ = getIsMobile();
|
|
32669
32781
|
}
|
|
32670
32782
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoDataBadgeComponent, deps: [{ token: LinkClassifierService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32671
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoDataBadgeComponent, isStandalone: true, selector: "gn-ui-geo-data-badge", inputs: { showLabel: "showLabel", styling: "styling", record: "record" }, ngImport: i0, template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span
|
|
32783
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoDataBadgeComponent, isStandalone: true, selector: "gn-ui-geo-data-badge", inputs: { showLabel: "showLabel", styling: "styling", record: "record" }, ngImport: i0, template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span\n class=\"ml-1 inline-block shrink-0\"\n *ngIf=\"(isMobile$ | async) === false && showLabel\"\n translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], viewProviders: [
|
|
32672
32784
|
provideIcons({
|
|
32673
32785
|
matLocationSearchingOutline,
|
|
32674
32786
|
}),
|
|
@@ -32680,7 +32792,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32680
32792
|
provideIcons({
|
|
32681
32793
|
matLocationSearchingOutline,
|
|
32682
32794
|
}),
|
|
32683
|
-
], template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span
|
|
32795
|
+
], template: "<div\n [class]=\"badgeClasses\"\n [title]=\"'record.metadata.isGeographical' | translate\"\n *ngIf=\"isGeodata()\"\n>\n <ng-icon\n class=\"shrink-0 text-[0.75em]\"\n name=\"matLocationSearchingOutline\"\n ></ng-icon>\n <span\n class=\"ml-1 inline-block shrink-0\"\n *ngIf=\"(isMobile$ | async) === false && showLabel\"\n translate\n >record.metadata.isGeographical</span\n >\n</div>\n", styles: [":host{--gn-ui-geo-data-badge-background-color: var(--color-primary-white);--gn-ui-geo-data-badge-text-color: var(--color-primary-darkest)}\n"] }]
|
|
32684
32796
|
}], ctorParameters: () => [{ type: LinkClassifierService }], propDecorators: { showLabel: [{
|
|
32685
32797
|
type: Input
|
|
32686
32798
|
}], styling: [{
|
|
@@ -40636,7 +40748,9 @@ class MapViewComponent {
|
|
|
40636
40748
|
link.accessServiceProtocol === 'tms') {
|
|
40637
40749
|
// FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
|
|
40638
40750
|
return of({
|
|
40639
|
-
url: link.url
|
|
40751
|
+
url: link.url
|
|
40752
|
+
.toString()
|
|
40753
|
+
.replace(/\/?$/, `/${link.name}/{z}/{x}/{y}.pbf`),
|
|
40640
40754
|
type: 'xyz',
|
|
40641
40755
|
tileFormat: 'application/vnd.mapbox-vector-tile',
|
|
40642
40756
|
name: link.name,
|
|
@@ -40833,8 +40947,6 @@ const RECORD_KEYWORDS_FIELD = {
|
|
|
40833
40947
|
model: 'keywords',
|
|
40834
40948
|
formFieldConfig: {},
|
|
40835
40949
|
};
|
|
40836
|
-
// keeping track of the label to not lose existing translation
|
|
40837
|
-
marker('editor.record.form.field.keywords');
|
|
40838
40950
|
const RECORD_RESOURCE_CREATED_FIELD = {
|
|
40839
40951
|
model: 'resourceCreated',
|
|
40840
40952
|
formFieldConfig: {
|
|
@@ -43542,7 +43654,7 @@ class MultilingualPanelComponent {
|
|
|
43542
43654
|
provideNgIconsConfig({
|
|
43543
43655
|
size: '1.25em',
|
|
43544
43656
|
}),
|
|
43545
|
-
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
43657
|
+
], 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
43658
|
}
|
|
43547
43659
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
43548
43660
|
type: Component,
|
|
@@ -43564,7 +43676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43564
43676
|
provideNgIconsConfig({
|
|
43565
43677
|
size: '1.25em',
|
|
43566
43678
|
}),
|
|
43567
|
-
], template: "<div\n class=\"flex flex-col h-full w-[302px]
|
|
43679
|
+
], 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
43680
|
}], 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
43681
|
type: Input
|
|
43570
43682
|
}], actionMenuButtons: [{
|
|
@@ -43572,6 +43684,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43572
43684
|
args: ['actionMenuButton', { read: ElementRef }]
|
|
43573
43685
|
}] } });
|
|
43574
43686
|
|
|
43687
|
+
//forced translations that are not available in fields.config.ts
|
|
43688
|
+
marker('editor.record.form.field.keywords');
|
|
43689
|
+
marker('editor.record.form.field.topics');
|
|
43690
|
+
marker('editor.record.form.field.contacts');
|
|
43691
|
+
marker('editor.record.form.field.organisation');
|
|
43692
|
+
class MetadataQualityPanelComponent {
|
|
43693
|
+
constructor() {
|
|
43694
|
+
this.propsToValidate = getAllKeysValidator();
|
|
43695
|
+
this.propertiesByPage = [];
|
|
43696
|
+
}
|
|
43697
|
+
ngOnChanges() {
|
|
43698
|
+
if (this.editorConfig && this.record) {
|
|
43699
|
+
const fieldsByPage = this.editorConfig.pages.map((page) => page.sections.flatMap((section) => section.fields
|
|
43700
|
+
.filter((field) => this.propsToValidate.includes(field.model))
|
|
43701
|
+
.map((field) => field.model)));
|
|
43702
|
+
// FIXME: temporarily add topics and organisation to the first and third page
|
|
43703
|
+
// as long as they are not handled by the editor
|
|
43704
|
+
if (fieldsByPage.length > 0) {
|
|
43705
|
+
fieldsByPage[0].includes('topics') || fieldsByPage[0].push('topics');
|
|
43706
|
+
fieldsByPage[2].includes('organisation') ||
|
|
43707
|
+
fieldsByPage[2].push('organisation');
|
|
43708
|
+
}
|
|
43709
|
+
this.propertiesByPage = fieldsByPage
|
|
43710
|
+
.map((fields) => getQualityValidators(this.record, fields).map(({ name, validator }) => ({
|
|
43711
|
+
label: `editor.record.form.field.${name}`, // use same translations as in fields.config.ts
|
|
43712
|
+
value: validator(),
|
|
43713
|
+
})))
|
|
43714
|
+
.filter((arr) => arr.length > 0);
|
|
43715
|
+
}
|
|
43716
|
+
}
|
|
43717
|
+
getExtraClass(checked) {
|
|
43718
|
+
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';
|
|
43719
|
+
return checked
|
|
43720
|
+
? `${baseClasses} bg-neutral-100 hover:bg-neutral-100`
|
|
43721
|
+
: `${baseClasses} bg-transparent hover:bg-transparent`;
|
|
43722
|
+
}
|
|
43723
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43724
|
+
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: [
|
|
43725
|
+
provideIcons({
|
|
43726
|
+
iconoirSystemShut,
|
|
43727
|
+
iconoirBadgeCheck,
|
|
43728
|
+
}),
|
|
43729
|
+
provideNgIconsConfig({
|
|
43730
|
+
size: '1.25em',
|
|
43731
|
+
}),
|
|
43732
|
+
], 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"] }] }); }
|
|
43733
|
+
}
|
|
43734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataQualityPanelComponent, decorators: [{
|
|
43735
|
+
type: Component,
|
|
43736
|
+
args: [{ selector: 'gn-ui-metadata-quality-panel', standalone: true, imports: [
|
|
43737
|
+
CommonModule,
|
|
43738
|
+
TranslateDirective,
|
|
43739
|
+
TranslatePipe,
|
|
43740
|
+
ButtonComponent,
|
|
43741
|
+
NgIconComponent,
|
|
43742
|
+
], providers: [
|
|
43743
|
+
provideIcons({
|
|
43744
|
+
iconoirSystemShut,
|
|
43745
|
+
iconoirBadgeCheck,
|
|
43746
|
+
}),
|
|
43747
|
+
provideNgIconsConfig({
|
|
43748
|
+
size: '1.25em',
|
|
43749
|
+
}),
|
|
43750
|
+
], 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" }]
|
|
43751
|
+
}], propDecorators: { editorConfig: [{
|
|
43752
|
+
type: Input
|
|
43753
|
+
}], record: [{
|
|
43754
|
+
type: Input
|
|
43755
|
+
}] } });
|
|
43756
|
+
|
|
43575
43757
|
const ROUTER_STATE_KEY = 'router';
|
|
43576
43758
|
const ROUTER_ROUTE_SEARCH = 'search';
|
|
43577
43759
|
const ROUTER_ROUTE_DATASET = 'dataset';
|
|
@@ -44016,5 +44198,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44016
44198
|
* Generated bundle index. Do not edit.
|
|
44017
44199
|
*/
|
|
44018
44200
|
|
|
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 };
|
|
44201
|
+
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, getIsMobile, getJsonDataItemsProxy, getLang2FromLang3, getLang3FromLang2, getLayers, getLinkId, getLinkLabel, getLinkPriority, getLocalizedIndexKey, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
44020
44202
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|