geonetwork-ui 2.2.0-dev.05d3ea32 → 2.2.0-dev.0da04556
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/gn4/gn4.metadata.mapper.mjs +2 -1
- package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
- package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +5 -3
- package/esm2022/libs/feature/map/src/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +11 -3
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +76 -0
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/index.mjs +3 -1
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +7 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +45 -0
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +8 -3
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +2 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +3 -3
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/translations/de.json +99 -96
- package/esm2022/translations/en.json +19 -16
- package/esm2022/translations/es.json +3 -0
- package/esm2022/translations/fr.json +3 -0
- package/esm2022/translations/it.json +3 -0
- package/esm2022/translations/nl.json +3 -0
- package/esm2022/translations/pt.json +3 -0
- package/fesm2022/geonetwork-ui.mjs +447 -160
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -0
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -13
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +20 -0
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
- package/libs/ui/elements/src/index.d.ts +2 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +12 -11
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +18 -17
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +1 -0
- package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
- package/src/libs/common/domain/src/lib/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +2 -1
- package/src/libs/feature/map/src/index.ts +1 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +5 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +83 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +3 -1
- package/src/libs/ui/elements/src/index.ts +2 -0
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +29 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +52 -52
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +4 -0
- package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +47 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
- package/src/libs/ui/search/src/lib/record-table/record-table.component.html +2 -2
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/translations/de.json +99 -96
- package/translations/en.json +19 -16
- package/translations/es.json +3 -0
- package/translations/fr.json +3 -0
- package/translations/it.json +3 -0
- package/translations/nl.json +3 -0
- package/translations/pt.json +3 -0
- package/translations/sk.json +3 -0
|
@@ -12,7 +12,7 @@ import { map as map$1, shareReplay, filter, tap as tap$1, startWith, switchMap a
|
|
|
12
12
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
13
13
|
import * as i1$3 from '@angular/common';
|
|
14
14
|
import { CommonModule, NgOptimizedImage, NgForOf } from '@angular/common';
|
|
15
|
-
import { of, map as map$2, lastValueFrom, switchMap, combineLatest, takeLast, forkJoin, Subject, merge, throwError, BehaviorSubject, tap as tap$2, fromEvent, timer, from, Subscription, animationFrameScheduler, firstValueFrom, ReplaySubject, distinctUntilChanged as distinctUntilChanged$1, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, EMPTY, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
15
|
+
import { of, map as map$2, lastValueFrom, switchMap, combineLatest, takeLast, forkJoin, Subject, merge, throwError, BehaviorSubject, tap as tap$2, fromEvent, timer, from, Subscription, animationFrameScheduler, firstValueFrom, ReplaySubject, distinctUntilChanged as distinctUntilChanged$1, Observable, buffer, debounceTime as debounceTime$1, combineLatestWith, catchError as catchError$1, takeUntil, EMPTY, startWith as startWith$1, pairwise as pairwise$1 } from 'rxjs';
|
|
16
16
|
import { valid, coerce, satisfies, ltr } from 'semver';
|
|
17
17
|
import * as i1$2 from '@ngrx/store';
|
|
18
18
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule } from '@ngrx/store';
|
|
@@ -73,10 +73,13 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
73
73
|
import * as i3$2 from '@angular/material/datepicker';
|
|
74
74
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
75
75
|
import { MatInputModule } from '@angular/material/input';
|
|
76
|
+
import * as basicLightbox from 'basiclightbox';
|
|
76
77
|
import * as i1$8 from '@ngrx/effects';
|
|
77
78
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
78
79
|
import tippy from 'tippy.js';
|
|
79
80
|
import { valid as valid$1 } from 'geojson-validation';
|
|
81
|
+
import { queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
82
|
+
import { Polygon } from 'ol/geom';
|
|
80
83
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
81
84
|
import * as i4$1 from '@angular/cdk/scrolling';
|
|
82
85
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
@@ -16688,20 +16691,20 @@ var de = {
|
|
|
16688
16691
|
"chart.type.line": "Liniendiagramm",
|
|
16689
16692
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
16690
16693
|
"chart.type.pie": "Kreisdiagramm",
|
|
16691
|
-
"dashboard.labels.mySpace": "",
|
|
16692
|
-
"dashboard.records.all": "",
|
|
16693
|
-
"dashboard.records.myDraft": "",
|
|
16694
|
-
"dashboard.records.myLibrary": "",
|
|
16695
|
-
"dashboard.records.myOrg": "",
|
|
16696
|
-
"dashboard.records.myRecords": "",
|
|
16697
|
-
"dashboard.records.noRecord": "",
|
|
16698
|
-
"dashboard.records.noUser": "",
|
|
16699
|
-
"dashboard.records.publishedRecords": "",
|
|
16700
|
-
"dashboard.records.search": "",
|
|
16701
|
-
"dashboard.records.userDetail": "",
|
|
16702
|
-
"dashboard.records.userEmail": "",
|
|
16703
|
-
"dashboard.records.username": "",
|
|
16704
|
-
"dashboard.records.users": "",
|
|
16694
|
+
"dashboard.labels.mySpace": "Mein Bereich",
|
|
16695
|
+
"dashboard.records.all": "Katalog",
|
|
16696
|
+
"dashboard.records.myDraft": "Meine Entwürfe",
|
|
16697
|
+
"dashboard.records.myLibrary": "Meine Bibliothek",
|
|
16698
|
+
"dashboard.records.myOrg": "Meine Organisation",
|
|
16699
|
+
"dashboard.records.myRecords": "Meine Datensätze",
|
|
16700
|
+
"dashboard.records.noRecord": "Kein Datensatz für diese Organisation",
|
|
16701
|
+
"dashboard.records.noUser": "Keine Benutzer für diese Organisation",
|
|
16702
|
+
"dashboard.records.publishedRecords": "{count, plural, =1{veröffentlichter Datensatz} other{veröffentlichte Datensätze}}",
|
|
16703
|
+
"dashboard.records.search": "Suche nach \"{searchText}\"",
|
|
16704
|
+
"dashboard.records.userDetail": "Name",
|
|
16705
|
+
"dashboard.records.userEmail": "E-Mail",
|
|
16706
|
+
"dashboard.records.username": "Benutzername",
|
|
16707
|
+
"dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
|
|
16705
16708
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
|
|
16706
16709
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
|
|
16707
16710
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
|
|
@@ -16715,7 +16718,7 @@ var de = {
|
|
|
16715
16718
|
"datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
|
|
16716
16719
|
"datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
|
|
16717
16720
|
"datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
|
|
16718
|
-
"datafeeder.form.tags": "Wählen Sie einen oder mehrere
|
|
16721
|
+
"datafeeder.form.tags": "Wählen Sie einen oder mehrere Tage aus, die zu Ihrem Datensatz passen",
|
|
16719
16722
|
"datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
|
|
16720
16723
|
"datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
|
|
16721
16724
|
"datafeeder.month.april": "April",
|
|
@@ -16730,16 +16733,16 @@ var de = {
|
|
|
16730
16733
|
"datafeeder.month.november": "November",
|
|
16731
16734
|
"datafeeder.month.october": "Oktober",
|
|
16732
16735
|
"datafeeder.month.september": "September",
|
|
16733
|
-
"datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist",
|
|
16734
|
-
"datafeeder.publish.illustration.title": "Ein weiterer Datensatz zum Veröffentlichen?",
|
|
16736
|
+
"datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist.",
|
|
16737
|
+
"datafeeder.publish.illustration.title": "Ein weiterer Datensatz \n zum Veröffentlichen?",
|
|
16735
16738
|
"datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
|
|
16736
|
-
"datafeeder.publish.title": "Vielen Dank! Ihr Datensatz wird veröffentlicht",
|
|
16739
|
+
"datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
|
|
16737
16740
|
"datafeeder.publish.upload": "Jetzt hochladen",
|
|
16738
16741
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
|
|
16739
16742
|
"datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
|
|
16740
16743
|
"datafeeder.publishSuccess.mapViewer": "Kartenviewer",
|
|
16741
16744
|
"datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
|
|
16742
|
-
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! Ihr Datensatz wurde veröffentlicht",
|
|
16745
|
+
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
|
|
16743
16746
|
"datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
|
|
16744
16747
|
"datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
|
|
16745
16748
|
"datafeeder.summarizePage.previous": "Zurück",
|
|
@@ -16747,11 +16750,11 @@ var de = {
|
|
|
16747
16750
|
"datafeeder.summarizePage.title": "Sie sind fast fertig...",
|
|
16748
16751
|
"datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
|
|
16749
16752
|
"datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
|
|
16750
|
-
"datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen
|
|
16753
|
+
"datafeeder.upload.error.subtitle.analysis": "Überprüfen Sie, ob die Datei einen gültigen geografischen Datensatz enthält",
|
|
16751
16754
|
"datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
|
|
16752
16755
|
"datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
|
|
16753
|
-
"datafeeder.upload.error.subtitle.fileSize": "Beachten Sie:
|
|
16754
|
-
"datafeeder.upload.error.title.analysis": "Fehler
|
|
16756
|
+
"datafeeder.upload.error.subtitle.fileSize": "Beachten Sie: Maximale Dateigröße {size} MB",
|
|
16757
|
+
"datafeeder.upload.error.title.analysis": "Fehler während der Datensatzanalyse",
|
|
16755
16758
|
"datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
|
|
16756
16759
|
"datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
|
|
16757
16760
|
"datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
|
|
@@ -16759,19 +16762,19 @@ var de = {
|
|
|
16759
16762
|
"datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
|
|
16760
16763
|
"datafeeder.upload.illustration.enrichment": "Anreicherung",
|
|
16761
16764
|
"datafeeder.upload.illustration.import": "Import",
|
|
16762
|
-
"datafeeder.upload.illustration.title": "Das Hinzufügen von Daten war noch nie
|
|
16765
|
+
"datafeeder.upload.illustration.title": "Das Hinzufügen von Daten \n war noch nie so einfach",
|
|
16763
16766
|
"datafeeder.upload.illustration.validation": "Validierung",
|
|
16764
|
-
"datafeeder.upload.illustration.verification": "
|
|
16767
|
+
"datafeeder.upload.illustration.verification": "Überprüfung",
|
|
16765
16768
|
"datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
|
|
16766
16769
|
"datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
|
|
16767
16770
|
"datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
|
|
16768
16771
|
"datafeeder.upload.uploadButton": "Hochladen",
|
|
16769
|
-
"datafeeder.validation.encoding": "
|
|
16772
|
+
"datafeeder.validation.encoding": "Codierung",
|
|
16770
16773
|
"datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
|
|
16771
16774
|
"datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
|
|
16772
16775
|
"datafeeder.validation.projection": "Raumbezugssystem:",
|
|
16773
|
-
"datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem",
|
|
16774
|
-
"datafeeder.validation.sample.title": "Und eine
|
|
16776
|
+
"datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem aus",
|
|
16777
|
+
"datafeeder.validation.sample.title": "Und eine Beispielentität aus dem Datensatz",
|
|
16775
16778
|
"datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
|
|
16776
16779
|
"datafeeder.wizardSummarize.createdAt": "Erstellt am",
|
|
16777
16780
|
"datafeeder.wizardSummarize.scale": "Maßstab",
|
|
@@ -16781,20 +16784,20 @@ var de = {
|
|
|
16781
16784
|
"datahub.header.news": "Startseite",
|
|
16782
16785
|
"datahub.header.organisations": "Organisationen",
|
|
16783
16786
|
"datahub.header.popularRecords": "Die beliebtesten",
|
|
16784
|
-
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten
|
|
16785
|
-
"datahub.news.contact.contactus": "",
|
|
16786
|
-
"datahub.news.contact.html": "",
|
|
16787
|
-
"datahub.news.contact.title": "",
|
|
16787
|
+
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten meiner Organisation</div>",
|
|
16788
|
+
"datahub.news.contact.contactus": "Kontaktieren Sie uns",
|
|
16789
|
+
"datahub.news.contact.html": "<p>Brauchen Sie Daten, die derzeit nicht auf der Plattform vorhanden sind?</p><p>Unsere Teams stehen Ihnen zur Verfügung.</p>",
|
|
16790
|
+
"datahub.news.contact.title": "Ein spezielles Bedürfnis?",
|
|
16788
16791
|
"datahub.news.feed": "Nachrichtenfeed",
|
|
16789
16792
|
"datahub.news.figures": "Indikatoren",
|
|
16790
|
-
"datahub.record.addToFavorites": "",
|
|
16791
|
-
"datahub.search.back": "Zurück
|
|
16793
|
+
"datahub.record.addToFavorites": "Zu Favoriten hinzufügen",
|
|
16794
|
+
"datahub.search.back": "Zurück",
|
|
16792
16795
|
"datahub.search.filter.all": "Alle",
|
|
16793
|
-
"datahub.search.filter.generatedByWfs": "Generiert durch API",
|
|
16796
|
+
"datahub.search.filter.generatedByWfs": "Generiert durch eine API",
|
|
16794
16797
|
"datahub.search.filter.others": "Andere",
|
|
16795
16798
|
"dataset.error.http": "Die Daten konnten aufgrund eines HTTP-Fehlers nicht geladen werden: \"{ info }\"",
|
|
16796
16799
|
"dataset.error.network": "Die Daten konnten aufgrund eines Netzwerkfehlers oder CORS-Beschränkungen nicht geladen werden: \"{ info }\"",
|
|
16797
|
-
"dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht
|
|
16800
|
+
"dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht gelesen werden: \"{ info }\"",
|
|
16798
16801
|
"dataset.error.unknown": "Die Daten können nicht angezeigt werden: \"{ info }\"",
|
|
16799
16802
|
"dataset.error.unsupportedType": "Der folgende Inhaltstyp wird nicht unterstützt: \"{ info }\"",
|
|
16800
16803
|
"domain.record.status.completed": "Abgeschlossen",
|
|
@@ -16802,18 +16805,18 @@ var de = {
|
|
|
16802
16805
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
16803
16806
|
"domain.record.status.removed": "Entfernt",
|
|
16804
16807
|
"domain.record.status.under_development": "In Erstellung",
|
|
16805
|
-
"domain.record.updateFrequency.asNeeded": "
|
|
16806
|
-
"domain.record.updateFrequency.continual": "
|
|
16808
|
+
"domain.record.updateFrequency.asNeeded": "Nach Bedarf",
|
|
16809
|
+
"domain.record.updateFrequency.continual": "Fortlaufend",
|
|
16807
16810
|
"domain.record.updateFrequency.day": "{count, plural, =0{0} one{Ein} other{{count}}} mal am Tag",
|
|
16808
|
-
"domain.record.updateFrequency.irregular": "
|
|
16811
|
+
"domain.record.updateFrequency.irregular": "Unregelmäßig",
|
|
16809
16812
|
"domain.record.updateFrequency.month": "{count, plural, =0{0} one{Ein} other{{count}}} mal im Monat",
|
|
16810
16813
|
"domain.record.updateFrequency.notPlanned": "Nicht geplant",
|
|
16811
|
-
"domain.record.updateFrequency.periodic": "
|
|
16814
|
+
"domain.record.updateFrequency.periodic": "Regelmäßig",
|
|
16812
16815
|
"domain.record.updateFrequency.unknown": "Unbekannt",
|
|
16813
16816
|
"domain.record.updateFrequency.week": "{count, plural, =0{0} one{Ein} other{{count}}} mal in der Woche",
|
|
16814
16817
|
"domain.record.updateFrequency.year": "{count, plural, =0{0} one{Ein} other{{count}}} mal im Jahr",
|
|
16815
16818
|
"downloads.format.unknown": "unbekannt",
|
|
16816
|
-
"downloads.wfs.featuretype.not.found": "
|
|
16819
|
+
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
16817
16820
|
dropFile: dropFile$6,
|
|
16818
16821
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
16819
16822
|
"facets.block.title.OrgForResource": "Organisation",
|
|
@@ -16848,15 +16851,18 @@ var de = {
|
|
|
16848
16851
|
"map.add.layer.file": "Aus einer Datei",
|
|
16849
16852
|
"map.add.layer.wfs": "Aus WFS",
|
|
16850
16853
|
"map.add.layer.wms": "Aus WMS",
|
|
16851
|
-
"map.
|
|
16852
|
-
"map.
|
|
16854
|
+
"map.addFromFile.placeholder": "Klicke hier oder ziehe eine Datei herein",
|
|
16855
|
+
"map.geocoding.placeholder": "",
|
|
16856
|
+
"map.help.addFromFile": "Klicke oder ziehe eine Datei herein um eine Karte hinzuzufügen (momentan wird nur das GeoJSON-Format unterstützt).",
|
|
16857
|
+
"map.layer.add": "Hinzufügen",
|
|
16858
|
+
"map.layers.available": "Verfügbare Layer",
|
|
16853
16859
|
"map.layers.list": "Ebenen",
|
|
16854
16860
|
"map.loading.data": "Kartendaten werden geladen...",
|
|
16855
|
-
"map.loading.service": "",
|
|
16861
|
+
"map.loading.service": "Dienst wird geladen...",
|
|
16856
16862
|
"map.navigation.message": "Bitte verwenden Sie STRG + Maus (oder zwei Finger auf einem Mobilgerät), um die Karte zu navigieren",
|
|
16857
16863
|
"map.select.layer": "Datenquelle",
|
|
16858
|
-
"map.wfs.urlInput.hint": "",
|
|
16859
|
-
"map.wms.urlInput.hint": "",
|
|
16864
|
+
"map.wfs.urlInput.hint": "Geben Sie die WFS URL ein",
|
|
16865
|
+
"map.wms.urlInput.hint": "Geben Sie die WMS URL ein",
|
|
16860
16866
|
"multiselect.filter.placeholder": "Suche",
|
|
16861
16867
|
"nav.back": "Zurück",
|
|
16862
16868
|
next: next$6,
|
|
@@ -16872,61 +16878,61 @@ var de = {
|
|
|
16872
16878
|
"pagination.pageOf": "von",
|
|
16873
16879
|
previous: previous$6,
|
|
16874
16880
|
"record.action.download": "Herunterladen",
|
|
16875
|
-
"record.action.view": "
|
|
16881
|
+
"record.action.view": "Anzeigen",
|
|
16876
16882
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
16877
16883
|
"record.metadata.about": "Beschreibung",
|
|
16878
16884
|
"record.metadata.api": "API",
|
|
16879
|
-
"record.metadata.api.form.closeButton": "",
|
|
16880
|
-
"record.metadata.api.form.closeForm": "",
|
|
16881
|
-
"record.metadata.api.form.create": "",
|
|
16882
|
-
"record.metadata.api.form.customUrl": "",
|
|
16883
|
-
"record.metadata.api.form.limit": "",
|
|
16884
|
-
"record.metadata.api.form.limit.all": "",
|
|
16885
|
-
"record.metadata.api.form.offset": "",
|
|
16886
|
-
"record.metadata.api.form.openForm": "",
|
|
16887
|
-
"record.metadata.api.form.reset": "",
|
|
16888
|
-
"record.metadata.api.form.title": "",
|
|
16889
|
-
"record.metadata.api.form.type": "",
|
|
16890
|
-
"record.metadata.author": "",
|
|
16885
|
+
"record.metadata.api.form.closeButton": "Schließen",
|
|
16886
|
+
"record.metadata.api.form.closeForm": "Formular schließen",
|
|
16887
|
+
"record.metadata.api.form.create": "Ihre Anfrage erstellen",
|
|
16888
|
+
"record.metadata.api.form.customUrl": "Benutzerdefinierte URL",
|
|
16889
|
+
"record.metadata.api.form.limit": "Anzahl der Datensätze",
|
|
16890
|
+
"record.metadata.api.form.limit.all": "Alle",
|
|
16891
|
+
"record.metadata.api.form.offset": "Anzahl des ersten Datensatzes",
|
|
16892
|
+
"record.metadata.api.form.openForm": "Formular öffnen",
|
|
16893
|
+
"record.metadata.api.form.reset": "Zurücksetzen",
|
|
16894
|
+
"record.metadata.api.form.title": "Benutzerdefinierte URL generieren",
|
|
16895
|
+
"record.metadata.api.form.type": "Ausgabeformat",
|
|
16896
|
+
"record.metadata.author": "Autor",
|
|
16891
16897
|
"record.metadata.catalog": "Katalog",
|
|
16892
16898
|
"record.metadata.contact": "Kontakt",
|
|
16893
16899
|
"record.metadata.createdOn": "Erstellt am",
|
|
16894
16900
|
"record.metadata.details": "Technische Informationen",
|
|
16895
16901
|
"record.metadata.download": "Downloads",
|
|
16896
|
-
"record.metadata.formats": "",
|
|
16902
|
+
"record.metadata.formats": "Formate",
|
|
16897
16903
|
"record.metadata.isOpenData": "Open Data",
|
|
16898
16904
|
"record.metadata.keywords": "Stichworte",
|
|
16899
|
-
"record.metadata.lastUpdate": "",
|
|
16905
|
+
"record.metadata.lastUpdate": "Zuletzt aktualisiert am",
|
|
16900
16906
|
"record.metadata.links": "Links",
|
|
16901
|
-
"record.metadata.noUsage": "Für diesen Datensatz sind keine
|
|
16907
|
+
"record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
|
|
16902
16908
|
"record.metadata.origin": "Über die Daten",
|
|
16903
16909
|
"record.metadata.owner": "",
|
|
16904
16910
|
"record.metadata.preview": "Vorschau",
|
|
16905
16911
|
"record.metadata.publications": "Veröffentlichungen",
|
|
16906
|
-
"record.metadata.quality": "",
|
|
16907
|
-
"record.metadata.quality.contact.failed": "",
|
|
16908
|
-
"record.metadata.quality.contact.success": "",
|
|
16909
|
-
"record.metadata.quality.description.failed": "",
|
|
16910
|
-
"record.metadata.quality.description.success": "",
|
|
16911
|
-
"record.metadata.quality.details": "",
|
|
16912
|
-
"record.metadata.quality.keywords.failed": "",
|
|
16913
|
-
"record.metadata.quality.keywords.success": "",
|
|
16914
|
-
"record.metadata.quality.legalConstraints.failed": "",
|
|
16915
|
-
"record.metadata.quality.legalConstraints.success": "",
|
|
16916
|
-
"record.metadata.quality.organisation.failed": "",
|
|
16917
|
-
"record.metadata.quality.organisation.success": "",
|
|
16918
|
-
"record.metadata.quality.title.failed": "",
|
|
16919
|
-
"record.metadata.quality.title.success": "",
|
|
16920
|
-
"record.metadata.quality.topic.failed": "",
|
|
16921
|
-
"record.metadata.quality.topic.success": "",
|
|
16922
|
-
"record.metadata.quality.updateFrequency.failed": "",
|
|
16923
|
-
"record.metadata.quality.updateFrequency.success": "",
|
|
16912
|
+
"record.metadata.quality": "Metadatenqualität",
|
|
16913
|
+
"record.metadata.quality.contact.failed": "Kontakt nicht angegeben",
|
|
16914
|
+
"record.metadata.quality.contact.success": "Kontakt angegeben",
|
|
16915
|
+
"record.metadata.quality.description.failed": "Beschreibung nicht angegeben",
|
|
16916
|
+
"record.metadata.quality.description.success": "Beschreibung angegeben",
|
|
16917
|
+
"record.metadata.quality.details": "Details",
|
|
16918
|
+
"record.metadata.quality.keywords.failed": "Schlagwörter nicht angegeben",
|
|
16919
|
+
"record.metadata.quality.keywords.success": "Schlagwörter angegeben",
|
|
16920
|
+
"record.metadata.quality.legalConstraints.failed": "Rechtliche Beschränkungen nicht angegeben",
|
|
16921
|
+
"record.metadata.quality.legalConstraints.success": "Rechtliche Beschränkungen angegeben",
|
|
16922
|
+
"record.metadata.quality.organisation.failed": "Organisation nicht angegeben",
|
|
16923
|
+
"record.metadata.quality.organisation.success": "Organisation angegeben",
|
|
16924
|
+
"record.metadata.quality.title.failed": "Titel nicht angegeben",
|
|
16925
|
+
"record.metadata.quality.title.success": "Titel angegeben",
|
|
16926
|
+
"record.metadata.quality.topic.failed": "Thema nicht angegeben",
|
|
16927
|
+
"record.metadata.quality.topic.success": "Thema angegeben",
|
|
16928
|
+
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
16929
|
+
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
16924
16930
|
"record.metadata.related": "Ähnliche Datensätze",
|
|
16925
|
-
"record.metadata.sheet": "Weitere Informationen
|
|
16926
|
-
"record.metadata.themes": "",
|
|
16931
|
+
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
16932
|
+
"record.metadata.themes": "Kategorien",
|
|
16927
16933
|
"record.metadata.title": "Titel",
|
|
16928
|
-
"record.metadata.type": "",
|
|
16929
|
-
"record.metadata.uniqueId": "",
|
|
16934
|
+
"record.metadata.type": "Geographischer Datensatz",
|
|
16935
|
+
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
16930
16936
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
16931
16937
|
"record.metadata.updateStatus": "Aktualisierungsstatus der Daten",
|
|
16932
16938
|
"record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen",
|
|
@@ -16938,23 +16944,23 @@ var de = {
|
|
|
16938
16944
|
"record.was.created.time": "erstellte diesen Datensatz {time}",
|
|
16939
16945
|
records: records$6,
|
|
16940
16946
|
"results.layout.selectOne": "Layout auswählen",
|
|
16941
|
-
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{
|
|
16942
|
-
"results.records.hits.empty.help.html": "Vorschläge: <ul class='list-disc list-inside'><li>Versuchen Sie
|
|
16947
|
+
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{angezeigt von {hits} insgesamt.}}",
|
|
16948
|
+
"results.records.hits.empty.help.html": "Vorschläge: <ul class='list-disc list-inside'><li>Versuchen Sie es mit anderen Worten</li><li>Beschränken Sie die Suchwörter</li></ul>",
|
|
16943
16949
|
"results.records.hits.found": "{hits, plural, =0{Keine Dokumente entsprechen der angegebenen Suche.} one{1 Datensatz gefunden.} other{{hits} Datensätze gefunden.}}",
|
|
16944
|
-
"results.records.hits.selected": "",
|
|
16950
|
+
"results.records.hits.selected": "{ amount } ausgewählt",
|
|
16945
16951
|
"results.showMore": "Mehr Ergebnisse anzeigen...",
|
|
16946
|
-
"results.sortBy.dateStamp": "
|
|
16952
|
+
"results.sortBy.dateStamp": "Neueste",
|
|
16947
16953
|
"results.sortBy.popularity": "Beliebtheit",
|
|
16948
|
-
"results.sortBy.qualityScore": "",
|
|
16954
|
+
"results.sortBy.qualityScore": "Qualitätsbewertung",
|
|
16949
16955
|
"results.sortBy.relevancy": "Relevanz",
|
|
16950
16956
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
16951
16957
|
"search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
|
|
16952
|
-
"search.error.receivedError": "Ein Fehler
|
|
16958
|
+
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
16953
16959
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
16954
|
-
"search.field.any.placeholder": "Suche
|
|
16960
|
+
"search.field.any.placeholder": "Suche Datensätze ...",
|
|
16955
16961
|
"search.field.sortBy": "Sortieren nach:",
|
|
16956
16962
|
"search.filters.clear": "Zurücksetzen",
|
|
16957
|
-
"search.filters.contact": "
|
|
16963
|
+
"search.filters.contact": "Kontakte",
|
|
16958
16964
|
"search.filters.format": "Formate",
|
|
16959
16965
|
"search.filters.inspireKeyword": "INSPIRE-Schlüsselwort",
|
|
16960
16966
|
"search.filters.isSpatial": "Ist räumliche Daten",
|
|
@@ -16972,13 +16978,13 @@ var de = {
|
|
|
16972
16978
|
"search.filters.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
16973
16979
|
"search.filters.maximize": "Erweitern",
|
|
16974
16980
|
"search.filters.minimize": "Minimieren",
|
|
16975
|
-
"search.filters.myRecords": "",
|
|
16976
|
-
"search.filters.myRecordsHelp": "",
|
|
16977
|
-
"search.filters.otherRecords": "",
|
|
16981
|
+
"search.filters.myRecords": "Nur meine Datensätze anzeigen",
|
|
16982
|
+
"search.filters.myRecordsHelp": "Wenn dies aktiviert ist, werden nur von mir erstellte Datensätze angezeigt; Datensätze, die von anderen erstellt wurden, werden nicht angezeigt.",
|
|
16983
|
+
"search.filters.otherRecords": "Datensätze von einer anderen Person anzeigen",
|
|
16978
16984
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
16979
16985
|
"search.filters.publisher": "Organisationen",
|
|
16980
|
-
"search.filters.representationType": "",
|
|
16981
|
-
"search.filters.resourceType": "",
|
|
16986
|
+
"search.filters.representationType": "Repräsentationstyp",
|
|
16987
|
+
"search.filters.resourceType": "Ressourcentyp",
|
|
16982
16988
|
"search.filters.standard": "Standard",
|
|
16983
16989
|
"search.filters.title": "Ergebnisse filtern",
|
|
16984
16990
|
"search.filters.topic": "Thema",
|
|
@@ -17184,6 +17190,9 @@ var en = {
|
|
|
17184
17190
|
"map.add.layer.file": "From a file",
|
|
17185
17191
|
"map.add.layer.wfs": "From WFS",
|
|
17186
17192
|
"map.add.layer.wms": "From WMS",
|
|
17193
|
+
"map.addFromFile.placeholder": "Click or drop a file here",
|
|
17194
|
+
"map.geocoding.placeholder": "Search for a place",
|
|
17195
|
+
"map.help.addFromFile": "Click or drag and drop a file to add to the map (currently supports GeoJSON format only).",
|
|
17187
17196
|
"map.layer.add": "Add",
|
|
17188
17197
|
"map.layers.available": "Available Layers",
|
|
17189
17198
|
"map.layers.list": "Layers",
|
|
@@ -17240,23 +17249,23 @@ var en = {
|
|
|
17240
17249
|
"record.metadata.preview": "Preview",
|
|
17241
17250
|
"record.metadata.publications": "publications",
|
|
17242
17251
|
"record.metadata.quality": "Metadata Quality",
|
|
17243
|
-
"record.metadata.quality.contact.failed": "Contact is not
|
|
17244
|
-
"record.metadata.quality.contact.success": "Contact is
|
|
17245
|
-
"record.metadata.quality.description.failed": "Description is not
|
|
17246
|
-
"record.metadata.quality.description.success": "Description is
|
|
17252
|
+
"record.metadata.quality.contact.failed": "Contact is not specified",
|
|
17253
|
+
"record.metadata.quality.contact.success": "Contact is specified",
|
|
17254
|
+
"record.metadata.quality.description.failed": "Description is not specified",
|
|
17255
|
+
"record.metadata.quality.description.success": "Description is specified",
|
|
17247
17256
|
"record.metadata.quality.details": "Details",
|
|
17248
|
-
"record.metadata.quality.keywords.failed": "Keywords are not
|
|
17249
|
-
"record.metadata.quality.keywords.success": "Keywords are
|
|
17250
|
-
"record.metadata.quality.legalConstraints.failed": "Legal constraints are not
|
|
17251
|
-
"record.metadata.quality.legalConstraints.success": "Legal constraints are
|
|
17252
|
-
"record.metadata.quality.organisation.failed": "Organisation is not
|
|
17253
|
-
"record.metadata.quality.organisation.success": "Organisation is
|
|
17254
|
-
"record.metadata.quality.title.failed": "Title is not
|
|
17255
|
-
"record.metadata.quality.title.success": "Title is
|
|
17256
|
-
"record.metadata.quality.topic.failed": "Topic is not
|
|
17257
|
-
"record.metadata.quality.topic.success": "Topic is
|
|
17258
|
-
"record.metadata.quality.updateFrequency.failed": "Update frequency is not
|
|
17259
|
-
"record.metadata.quality.updateFrequency.success": "Update frequency is
|
|
17257
|
+
"record.metadata.quality.keywords.failed": "Keywords are not specified",
|
|
17258
|
+
"record.metadata.quality.keywords.success": "Keywords are specified",
|
|
17259
|
+
"record.metadata.quality.legalConstraints.failed": "Legal constraints are not specified",
|
|
17260
|
+
"record.metadata.quality.legalConstraints.success": "Legal constraints are specified",
|
|
17261
|
+
"record.metadata.quality.organisation.failed": "Organisation is not specified",
|
|
17262
|
+
"record.metadata.quality.organisation.success": "Organisation is specified",
|
|
17263
|
+
"record.metadata.quality.title.failed": "Title is not specified",
|
|
17264
|
+
"record.metadata.quality.title.success": "Title is specified",
|
|
17265
|
+
"record.metadata.quality.topic.failed": "Topic is not specified",
|
|
17266
|
+
"record.metadata.quality.topic.success": "Topic is specified",
|
|
17267
|
+
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
17268
|
+
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
17260
17269
|
"record.metadata.related": "Related records",
|
|
17261
17270
|
"record.metadata.sheet": "Original metadata",
|
|
17262
17271
|
"record.metadata.themes": "Categories",
|
|
@@ -17520,6 +17529,9 @@ var es = {
|
|
|
17520
17529
|
"map.add.layer.file": "",
|
|
17521
17530
|
"map.add.layer.wfs": "",
|
|
17522
17531
|
"map.add.layer.wms": "",
|
|
17532
|
+
"map.addFromFile.placeholder": "",
|
|
17533
|
+
"map.geocoding.placeholder": "",
|
|
17534
|
+
"map.help.addFromFile": "",
|
|
17523
17535
|
"map.layer.add": "",
|
|
17524
17536
|
"map.layers.available": "",
|
|
17525
17537
|
"map.layers.list": "",
|
|
@@ -17856,6 +17868,9 @@ var fr = {
|
|
|
17856
17868
|
"map.add.layer.file": "",
|
|
17857
17869
|
"map.add.layer.wfs": "",
|
|
17858
17870
|
"map.add.layer.wms": "",
|
|
17871
|
+
"map.addFromFile.placeholder": "",
|
|
17872
|
+
"map.geocoding.placeholder": "",
|
|
17873
|
+
"map.help.addFromFile": "",
|
|
17859
17874
|
"map.layer.add": "",
|
|
17860
17875
|
"map.layers.available": "",
|
|
17861
17876
|
"map.layers.list": "",
|
|
@@ -18192,6 +18207,9 @@ var it = {
|
|
|
18192
18207
|
"map.add.layer.file": "Da un file",
|
|
18193
18208
|
"map.add.layer.wfs": "Da un WFS",
|
|
18194
18209
|
"map.add.layer.wms": "Da un WMS",
|
|
18210
|
+
"map.addFromFile.placeholder": "",
|
|
18211
|
+
"map.geocoding.placeholder": "",
|
|
18212
|
+
"map.help.addFromFile": "",
|
|
18195
18213
|
"map.layer.add": "",
|
|
18196
18214
|
"map.layers.available": "",
|
|
18197
18215
|
"map.layers.list": "Layers",
|
|
@@ -18528,6 +18546,9 @@ var nl = {
|
|
|
18528
18546
|
"map.add.layer.file": "",
|
|
18529
18547
|
"map.add.layer.wfs": "",
|
|
18530
18548
|
"map.add.layer.wms": "",
|
|
18549
|
+
"map.addFromFile.placeholder": "",
|
|
18550
|
+
"map.geocoding.placeholder": "",
|
|
18551
|
+
"map.help.addFromFile": "",
|
|
18531
18552
|
"map.layer.add": "",
|
|
18532
18553
|
"map.layers.available": "",
|
|
18533
18554
|
"map.layers.list": "",
|
|
@@ -18864,6 +18885,9 @@ var pt = {
|
|
|
18864
18885
|
"map.add.layer.file": "",
|
|
18865
18886
|
"map.add.layer.wfs": "",
|
|
18866
18887
|
"map.add.layer.wms": "",
|
|
18888
|
+
"map.addFromFile.placeholder": "",
|
|
18889
|
+
"map.geocoding.placeholder": "",
|
|
18890
|
+
"map.help.addFromFile": "",
|
|
18867
18891
|
"map.layer.add": "",
|
|
18868
18892
|
"map.layers.available": "",
|
|
18869
18893
|
"map.layers.list": "",
|
|
@@ -19344,6 +19368,7 @@ class Gn4MetadataMapper extends MetadataBaseMapper {
|
|
|
19344
19368
|
useLimitations: [],
|
|
19345
19369
|
spatialExtents: [],
|
|
19346
19370
|
temporalExtents: [],
|
|
19371
|
+
overviews: [],
|
|
19347
19372
|
};
|
|
19348
19373
|
const record = Object.keys(_source).reduce((prev, fieldName) => this.fieldMapper.getMappingFn(fieldName)(prev, _source), emptyRecord);
|
|
19349
19374
|
return lastValueFrom(this.orgsService.addOrganizationToRecordFromSource(_source, record));
|
|
@@ -21099,9 +21124,15 @@ const FORMATS = {
|
|
|
21099
21124
|
color: '#328556',
|
|
21100
21125
|
mimeTypes: ['x-gis/x-shapefile'],
|
|
21101
21126
|
},
|
|
21127
|
+
gml: {
|
|
21128
|
+
extensions: ['gml'],
|
|
21129
|
+
priority: 5,
|
|
21130
|
+
color: '#c92bce',
|
|
21131
|
+
mimeTypes: ['application/gml+xml', 'text/xml; subtype=gml'],
|
|
21132
|
+
},
|
|
21102
21133
|
kml: {
|
|
21103
21134
|
extensions: ['kml', 'kmz'],
|
|
21104
|
-
priority:
|
|
21135
|
+
priority: 6,
|
|
21105
21136
|
color: '#348009',
|
|
21106
21137
|
mimeTypes: [
|
|
21107
21138
|
'application/vnd.google-earth.kml+xml',
|
|
@@ -21110,34 +21141,40 @@ const FORMATS = {
|
|
|
21110
21141
|
},
|
|
21111
21142
|
gpkg: {
|
|
21112
21143
|
extensions: ['gpkg', 'geopackage'],
|
|
21113
|
-
priority:
|
|
21144
|
+
priority: 7,
|
|
21114
21145
|
color: '#ea79ba',
|
|
21115
21146
|
mimeTypes: ['application/geopackage+sqlite3'],
|
|
21116
21147
|
},
|
|
21117
21148
|
zip: {
|
|
21118
21149
|
extensions: ['zip', 'tar.gz'],
|
|
21119
|
-
priority:
|
|
21150
|
+
priority: 8,
|
|
21120
21151
|
color: '#f2bb3a',
|
|
21121
21152
|
mimeTypes: ['application/zip', 'application/x-zip'],
|
|
21122
21153
|
},
|
|
21123
21154
|
pdf: {
|
|
21124
21155
|
extensions: ['pdf'],
|
|
21125
|
-
priority:
|
|
21156
|
+
priority: 9,
|
|
21126
21157
|
color: '#db544a',
|
|
21127
21158
|
mimeTypes: ['application/pdf'],
|
|
21128
21159
|
},
|
|
21129
21160
|
jpg: {
|
|
21130
21161
|
extensions: ['jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp'],
|
|
21131
|
-
priority:
|
|
21162
|
+
priority: 9,
|
|
21132
21163
|
color: '#673ab7',
|
|
21133
21164
|
mimeTypes: ['image/jpg'],
|
|
21134
21165
|
},
|
|
21135
21166
|
svg: {
|
|
21136
21167
|
extensions: ['svg'],
|
|
21137
|
-
priority:
|
|
21168
|
+
priority: 10,
|
|
21138
21169
|
color: '#d98294',
|
|
21139
21170
|
mimeTypes: ['image/svg+xml'],
|
|
21140
21171
|
},
|
|
21172
|
+
dxf: {
|
|
21173
|
+
extensions: ['dxf'],
|
|
21174
|
+
priority: 11,
|
|
21175
|
+
color: '#de630b',
|
|
21176
|
+
mimeTypes: ['application/x-dxf', 'image/x-dxf'],
|
|
21177
|
+
},
|
|
21141
21178
|
};
|
|
21142
21179
|
function getFormatPriority(linkFormat) {
|
|
21143
21180
|
for (const format in FORMATS) {
|
|
@@ -21154,14 +21191,18 @@ function getFormatPriority(linkFormat) {
|
|
|
21154
21191
|
function getLinkPriority(link) {
|
|
21155
21192
|
return getFormatPriority(getFileFormat(link));
|
|
21156
21193
|
}
|
|
21157
|
-
function
|
|
21158
|
-
|
|
21159
|
-
|
|
21160
|
-
|
|
21161
|
-
|
|
21194
|
+
function getFileFormatFromServiceOutput(serviceOutput) {
|
|
21195
|
+
function formatMatcher(format) {
|
|
21196
|
+
const output = serviceOutput.toLowerCase();
|
|
21197
|
+
return (format.extensions.some((extension) => output.includes(extension)) ||
|
|
21198
|
+
format.mimeTypes.some((mimeType) => output.includes(mimeType)));
|
|
21199
|
+
}
|
|
21200
|
+
for (const formatName in FORMATS) {
|
|
21201
|
+
if (formatMatcher(FORMATS[formatName])) {
|
|
21202
|
+
return formatName;
|
|
21162
21203
|
}
|
|
21163
21204
|
}
|
|
21164
|
-
return
|
|
21205
|
+
return null;
|
|
21165
21206
|
}
|
|
21166
21207
|
function getFileFormat(link) {
|
|
21167
21208
|
if ('mimeType' in link) {
|
|
@@ -23188,6 +23229,7 @@ class ThumbnailComponent {
|
|
|
23188
23229
|
constructor(optionalPlaceholderUrl) {
|
|
23189
23230
|
this.optionalPlaceholderUrl = optionalPlaceholderUrl;
|
|
23190
23231
|
this.fit = 'cover';
|
|
23232
|
+
this.placeholderShown = new EventEmitter();
|
|
23191
23233
|
this.placeholderUrl = this.optionalPlaceholderUrl || DEFAULT_PLACEHOLDER;
|
|
23192
23234
|
this.images = [];
|
|
23193
23235
|
}
|
|
@@ -23223,6 +23265,7 @@ class ThumbnailComponent {
|
|
|
23223
23265
|
setNewSrcImage(image) {
|
|
23224
23266
|
this.imgFit = image.fit;
|
|
23225
23267
|
this.imgUrl = image.url;
|
|
23268
|
+
this.placeholderShown.emit(this.isPlaceholder);
|
|
23226
23269
|
}
|
|
23227
23270
|
setPlaceholder() {
|
|
23228
23271
|
this.setNewSrcImage({ url: this.placeholderUrl, fit: 'scale-down' });
|
|
@@ -23245,7 +23288,7 @@ class ThumbnailComponent {
|
|
|
23245
23288
|
}
|
|
23246
23289
|
}
|
|
23247
23290
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, deps: [{ token: THUMBNAIL_PLACEHOLDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23248
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23291
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: { thumbnailUrl: "thumbnailUrl", fit: "fit" }, outputs: { placeholderShown: "placeholderShown" }, viewQueries: [{ propertyName: "imgElement", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "containerElement", first: true, predicate: ["containerElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #containerElement\n class=\"h-full w-full relative shrink-0 overflow-hidden flex items-center\"\n [ngClass]=\"isPlaceholder ? 'bg-gray-100' : 'bg-white'\"\n [attr.data-cy-is-placeholder]=\"isPlaceholder.toString()\"\n>\n <img\n #imageElement\n class=\"relative w-full object-center\"\n [ngClass]=\"imgFit === 'contain' ? 'h-4/5' : 'h-full'\"\n [ngStyle]=\"{ objectFit: imgFit }\"\n alt=\"thumbnail\"\n loading=\"lazy\"\n (load)=\"setObjectFit()\"\n [src]=\"imgUrl\"\n (error)=\"useFallback()\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23249
23292
|
}
|
|
23250
23293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, decorators: [{
|
|
23251
23294
|
type: Component,
|
|
@@ -23265,11 +23308,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23265
23308
|
}], containerElement: [{
|
|
23266
23309
|
type: ViewChild,
|
|
23267
23310
|
args: ['containerElement']
|
|
23311
|
+
}], placeholderShown: [{
|
|
23312
|
+
type: Output
|
|
23268
23313
|
}] } });
|
|
23269
23314
|
|
|
23270
23315
|
class RecordPreviewCardComponent extends RecordPreviewComponent {
|
|
23271
23316
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewCardComponent, selector: "gn-ui-record-preview-card", usesInheritance: true, ngImport: i0, template: "<div\n class=\"h-full border bg-white rounded-sm overflow-hidden transition duration-200 transform hover:scale-105 hover:bg-gray-50 border-gray-300 hover:border-primary hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [title]=\"record.abstract\"\n [target]=\"linkTarget\"\n >\n <div class=\"flex flex-col min-h-full\">\n <gn-ui-thumbnail\n class=\"lg:h-48 md:h-36 border-b border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow p-4\">\n <h1 class=\"title-font text-lg font-medium mb-3 clamp-2\">\n {{ record.title }}\n </h1>\n <p class=\"leading-relaxed text-sm text-gray-700 clamp-3\">\n {{ record.abstract }}\n </p>\n </div>\n </div>\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23317
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewCardComponent, selector: "gn-ui-record-preview-card", usesInheritance: true, ngImport: i0, template: "<div\n class=\"h-full border bg-white rounded-sm overflow-hidden transition duration-200 transform hover:scale-105 hover:bg-gray-50 border-gray-300 hover:border-primary hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [title]=\"record.abstract\"\n [target]=\"linkTarget\"\n >\n <div class=\"flex flex-col min-h-full\">\n <gn-ui-thumbnail\n class=\"lg:h-48 md:h-36 border-b border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow p-4\">\n <h1 class=\"title-font text-lg font-medium mb-3 clamp-2\">\n {{ record.title }}\n </h1>\n <p class=\"leading-relaxed text-sm text-gray-700 clamp-3\">\n {{ record.abstract }}\n </p>\n </div>\n </div>\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23273
23318
|
}
|
|
23274
23319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewCardComponent, decorators: [{
|
|
23275
23320
|
type: Component,
|
|
@@ -23278,7 +23323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23278
23323
|
|
|
23279
23324
|
class RecordPreviewListComponent extends RecordPreviewComponent {
|
|
23280
23325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23281
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewListComponent, selector: "gn-ui-record-preview-list", usesInheritance: true, ngImport: i0, template: "<div\n class=\"h-40 bg-white transition duration-200 border border-gray-200 rounded-md hover:bg-gray-50 hover:border-primary hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [target]=\"linkTarget\"\n [title]=\"record.abstract\"\n >\n <div class=\"h-full flex flex-row items-center shadow-sm\">\n <gn-ui-thumbnail\n class=\"w-40 h-full shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow h-full px-6 py-4 flex flex-col overflow-hidden\">\n <div class=\"title-font text-lg font-medium mb-2\">\n <h1 class=\"truncate\">{{ record.title }}</h1>\n </div>\n <p class=\"leading-relaxed clamp-3 text-sm text-gray-700\">\n {{ record.abstract }}\n </p>\n <div class=\"grow\"></div>\n <div class=\"flex flex-row items-center\">\n <div\n class=\"text-gray-500 text-xs truncate capitalize border-r mr-4 pr-4\"\n *ngIf=\"record.kind === 'dataset'\"\n >\n <span translate>{{ record.updateFrequency }}</span>\n </div>\n <div\n class=\"text-gray-500 text-xs border-gray-300 truncate viewable-downloadable\"\n *ngIf=\"isViewable || isDownloadable\"\n >\n <span *ngIf=\"isViewable\" translate>record.action.view</span>\n <span *ngIf=\"isViewable && isDownloadable\">, </span>\n <span *ngIf=\"isDownloadable\" translate>record.action.download</span>\n </div>\n </div>\n </div>\n </div>\n </a>\n</div>\n", styles: [".viewable-downloadable :first-child{text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewListComponent, selector: "gn-ui-record-preview-list", usesInheritance: true, ngImport: i0, template: "<div\n class=\"h-40 bg-white transition duration-200 border border-gray-200 rounded-md hover:bg-gray-50 hover:border-primary hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [target]=\"linkTarget\"\n [title]=\"record.abstract\"\n >\n <div class=\"h-full flex flex-row items-center shadow-sm\">\n <gn-ui-thumbnail\n class=\"w-40 h-full shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow h-full px-6 py-4 flex flex-col overflow-hidden\">\n <div class=\"title-font text-lg font-medium mb-2\">\n <h1 class=\"truncate\">{{ record.title }}</h1>\n </div>\n <p class=\"leading-relaxed clamp-3 text-sm text-gray-700\">\n {{ record.abstract }}\n </p>\n <div class=\"grow\"></div>\n <div class=\"flex flex-row items-center\">\n <div\n class=\"text-gray-500 text-xs truncate capitalize border-r mr-4 pr-4\"\n *ngIf=\"record.kind === 'dataset'\"\n >\n <span translate>{{ record.updateFrequency }}</span>\n </div>\n <div\n class=\"text-gray-500 text-xs border-gray-300 truncate viewable-downloadable\"\n *ngIf=\"isViewable || isDownloadable\"\n >\n <span *ngIf=\"isViewable\" translate>record.action.view</span>\n <span *ngIf=\"isViewable && isDownloadable\">, </span>\n <span *ngIf=\"isDownloadable\" translate>record.action.download</span>\n </div>\n </div>\n </div>\n </div>\n </a>\n</div>\n", styles: [".viewable-downloadable :first-child{text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23282
23327
|
}
|
|
23283
23328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewListComponent, decorators: [{
|
|
23284
23329
|
type: Component,
|
|
@@ -23426,7 +23471,7 @@ class RecordPreviewRowComponent extends RecordPreviewComponent {
|
|
|
23426
23471
|
this.elementRef = elementRef;
|
|
23427
23472
|
}
|
|
23428
23473
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewRowComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23429
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewRowComponent, selector: "gn-ui-record-preview-row", usesInheritance: true, ngImport: i0, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[record.overviews?.[0]?.url?.toString(), organization?.logoUrl?.toString()]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n {{ abstract }}\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <mat-icon\n *ngIf=\"isDownloadable\"\n class=\"material-symbols-outlined text-primary opacity-45 mx-1\"\n >cloud_download</mat-icon\n >\n <mat-icon\n *ngIf=\"isViewable\"\n class=\"material-symbols-outlined text-primary opacity-45 mx-1\"\n >map</mat-icon\n >\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n smaller=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23474
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewRowComponent, selector: "gn-ui-record-preview-row", usesInheritance: true, ngImport: i0, template: "<a\n class=\"group container-lg mx-auto flex cursor-pointer flex-wrap sm:flex-nowrap\"\n [title]=\"record.title\"\n [attr.href]=\"linkHref\"\n>\n <div class=\"shrink-0 w-full sm:w-52\">\n <div\n class=\"overflow-hidden bg-gray-100 rounded-lg w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full object-cover object-left-top\"\n [thumbnailUrl]=\"[record.overviews?.[0]?.url?.toString(), organization?.logoUrl?.toString()]\"\n [fit]=\"['cover', 'contain']\"\n ></gn-ui-thumbnail>\n </div>\n </div>\n <div\n class=\"content grid grow relative sm:pl-6 sm:pr-12\"\n style=\"grid-template-columns: auto 70px\"\n >\n <div class=\"mb-3 mt-5 sm:mt-2\">\n <div\n class=\"font-title text-21 text-title line-clamp-2 col-start-1 col-span-2 sm:line-clamp-1 group-hover:text-primary transition-colors\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </div>\n </div>\n <div\n class=\"abstract mt-4 mb-5 h-36 line-clamp-6 col-start-1 col-span-2 row-start-3 sm:mb-2 sm:h-[4.5rem] sm:line-clamp-3 sm:row-start-2 sm:mt-0\"\n data-cy=\"recordAbstract\"\n >\n {{ abstract }}\n </div>\n <div\n class=\"text-primary opacity-45 uppercase col-start-1 col-span-2 row-start-2 sm:truncate sm:row-start-3 sm:col-span-1\"\n data-cy=\"recordOrg\"\n [class]=\"metadataQualityDisplay ? 'limit-organisation-with-quality' : ''\"\n >\n {{ organization?.name }}\n </div>\n <div\n class=\"icons flex flex-row col-start-1 row-start-4 sm:col-start-2 sm:row-start-3 sm:absolute sm:right-[0.4em]\"\n >\n <mat-icon\n *ngIf=\"isDownloadable\"\n class=\"material-symbols-outlined text-primary opacity-45 mx-1\"\n >cloud_download</mat-icon\n >\n <mat-icon\n *ngIf=\"isViewable\"\n class=\"material-symbols-outlined text-primary opacity-45 mx-1\"\n >map</mat-icon\n >\n </div>\n <div\n *ngIf=\"metadataQualityDisplay\"\n class=\"col-start-2 row-start-4 sm:row-start-3 absolute right-[4em] sm:right-[5em]\"\n >\n <gn-ui-metadata-quality\n smaller=\"true\"\n [metadata]=\"record\"\n [metadataQualityDisplay]=\"metadataQualityDisplay\"\n ></gn-ui-metadata-quality>\n </div>\n <div\n class=\"text-right col-start-3 row-start-4 sm:absolute sm:col-start-2 sm:row-start-1 sm:top-[-1.125em] sm:right-[0.4em]\"\n data-cy=\"recordFav\"\n >\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n </div>\n</a>\n", styles: [".limit-organisation-with-quality{max-width:calc(100% - 170px)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: ["metadata", "smaller", "metadataQualityDisplay"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23430
23475
|
}
|
|
23431
23476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewRowComponent, decorators: [{
|
|
23432
23477
|
type: Component,
|
|
@@ -23444,7 +23489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23444
23489
|
|
|
23445
23490
|
class RecordPreviewTitleComponent extends RecordPreviewComponent {
|
|
23446
23491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23447
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewTitleComponent, selector: "gn-ui-record-preview-title", usesInheritance: true, ngImport: i0, template: "<!-- Record list item: List Small -->\n<div\n class=\"h-10 w-full border-b border-gray-200 transition duration-200 rounded-sm hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [target]=\"linkTarget\"\n [title]=\"record.abstract\"\n >\n <div class=\"h-full flex flex-row items-center\">\n <gn-ui-thumbnail\n class=\"w-10 h-full shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow px-3 py-1 flex flex-col overflow-hidden\">\n <h1 class=\"title-font text-sm font-bold truncate md:text-clip\">\n {{ record.title }}\n </h1>\n </div>\n </div>\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewTitleComponent, selector: "gn-ui-record-preview-title", usesInheritance: true, ngImport: i0, template: "<!-- Record list item: List Small -->\n<div\n class=\"h-10 w-full border-b border-gray-200 transition duration-200 rounded-sm hover:text-primary\"\n>\n <a\n [href]=\"record.landingPage\"\n [target]=\"linkTarget\"\n [title]=\"record.abstract\"\n >\n <div class=\"h-full flex flex-row items-center\">\n <gn-ui-thumbnail\n class=\"w-10 h-full shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"grow px-3 py-1 flex flex-col overflow-hidden\">\n <h1 class=\"title-font text-sm font-bold truncate md:text-clip\">\n {{ record.title }}\n </h1>\n </div>\n </div>\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23448
23493
|
}
|
|
23449
23494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewTitleComponent, decorators: [{
|
|
23450
23495
|
type: Component,
|
|
@@ -23484,7 +23529,7 @@ class RecordPreviewFeedComponent extends RecordPreviewComponent {
|
|
|
23484
23529
|
return this.timeFormat.format(this.record.recordCreated, Date.now());
|
|
23485
23530
|
}
|
|
23486
23531
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewFeedComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23487
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewFeedComponent, selector: "gn-ui-record-preview-feed", usesInheritance: true, ngImport: i0, template: "<div\n class=\"mx-[18px] pl-[18px] pb-[18px] border-solid border-l-2 border-gray-100\"\n>\n <a\n class=\"record-container block rounded-lg bg-white border border-white card-shadow\"\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n >\n <div\n class=\"record-header py-4 px-4 border-b border-gray-300 flex flex-row items-center relative transition duration-200\"\n >\n <div\n class=\"absolute w-3 h-3 bg-secondary rounded-full\"\n style=\"right: calc(100% + 14px)\"\n ></div>\n <div\n class=\"record-header-image border border-gray-300 bg-white rounded-full w-16 h-16 object-contain mr-4 overflow-hidden transition duration-200 shrink-0\"\n >\n <mat-icon\n *ngIf=\"!hasLogo\"\n class=\"material-symbols-outlined text-gray-200\"\n style=\"width: 42px; height: 42px; font-size: 42px; margin: 10px\"\n >{{ hasOnlyPerson ? 'face' : 'home_work' }}</mat-icon\n >\n <gn-ui-thumbnail\n *ngIf=\"hasLogo\"\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString()\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col overflow-hidden items-start\">\n <span\n *ngIf=\"hasOrganization\"\n class=\"font-bold transition duration-200 text-primary truncate max-w-full\"\n >\n {{ record.ownerOrganization.name }}\n </span>\n <span\n *ngIf=\"hasOnlyPerson\"\n class=\"font-bold transition duration-200 text-primary truncate max-w-full\"\n >\n {{ contact.firstName }} {{ contact.lastName }}\n </span>\n <p class=\"\">\n <span translate [translateParams]=\"{ time }\"\n >record.was.created.time</span\n >\n </p>\n </div>\n </div>\n <div class=\"pt-5 pb-5 px-10 relative\">\n <div class=\"absolute top-[0.85em] right-[0.85em]\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n <h1\n class=\"font-title text-black text-[21px] font-medium mb-3 pr-8\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </h1>\n <p class=\"line-clamp-3\">{{ abstract }}</p>\n <gn-ui-thumbnail\n *ngIf=\"record.overviews?.[0]\"\n class=\"block mt-3 w-full h-[136px] border border-gray-100 rounded-lg overflow-hidden\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-row mt-3\" *ngIf=\"isDownloadable || isViewable\">\n <mat-icon\n *ngIf=\"isDownloadable\"\n class=\"material-symbols-outlined text-primary opacity-45 mr-3\"\n >cloud_download\n </mat-icon>\n <mat-icon\n *ngIf=\"isViewable\"\n class=\"material-symbols-outlined text-primary opacity-45 mr-3\"\n >map\n </mat-icon>\n </div>\n </div>\n </a>\n</div>\n", styles: [".record-container:hover .record-header,.record-container:hover .record-header-image{border-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23532
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordPreviewFeedComponent, selector: "gn-ui-record-preview-feed", usesInheritance: true, ngImport: i0, template: "<div\n class=\"mx-[18px] pl-[18px] pb-[18px] border-solid border-l-2 border-gray-100\"\n>\n <a\n class=\"record-container block rounded-lg bg-white border border-white card-shadow\"\n [attr.href]=\"linkHref\"\n [target]=\"linkTarget\"\n >\n <div\n class=\"record-header py-4 px-4 border-b border-gray-300 flex flex-row items-center relative transition duration-200\"\n >\n <div\n class=\"absolute w-3 h-3 bg-secondary rounded-full\"\n style=\"right: calc(100% + 14px)\"\n ></div>\n <div\n class=\"record-header-image border border-gray-300 bg-white rounded-full w-16 h-16 object-contain mr-4 overflow-hidden transition duration-200 shrink-0\"\n >\n <mat-icon\n *ngIf=\"!hasLogo\"\n class=\"material-symbols-outlined text-gray-200\"\n style=\"width: 42px; height: 42px; font-size: 42px; margin: 10px\"\n >{{ hasOnlyPerson ? 'face' : 'home_work' }}</mat-icon\n >\n <gn-ui-thumbnail\n *ngIf=\"hasLogo\"\n [thumbnailUrl]=\"record.ownerOrganization?.logoUrl?.toString()\"\n [fit]=\"'contain'\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col overflow-hidden items-start\">\n <span\n *ngIf=\"hasOrganization\"\n class=\"font-bold transition duration-200 text-primary truncate max-w-full\"\n >\n {{ record.ownerOrganization.name }}\n </span>\n <span\n *ngIf=\"hasOnlyPerson\"\n class=\"font-bold transition duration-200 text-primary truncate max-w-full\"\n >\n {{ contact.firstName }} {{ contact.lastName }}\n </span>\n <p class=\"\">\n <span translate [translateParams]=\"{ time }\"\n >record.was.created.time</span\n >\n </p>\n </div>\n </div>\n <div class=\"pt-5 pb-5 px-10 relative\">\n <div class=\"absolute top-[0.85em] right-[0.85em]\">\n <ng-container\n [ngTemplateOutlet]=\"favoriteTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: record }\"\n ></ng-container>\n </div>\n <h1\n class=\"font-title text-black text-[21px] font-medium mb-3 pr-8\"\n data-cy=\"recordTitle\"\n >\n {{ record.title }}\n </h1>\n <p class=\"line-clamp-3\">{{ abstract }}</p>\n <gn-ui-thumbnail\n *ngIf=\"record.overviews?.[0]\"\n class=\"block mt-3 w-full h-[136px] border border-gray-100 rounded-lg overflow-hidden\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n <div class=\"flex flex-row mt-3\" *ngIf=\"isDownloadable || isViewable\">\n <mat-icon\n *ngIf=\"isDownloadable\"\n class=\"material-symbols-outlined text-primary opacity-45 mr-3\"\n >cloud_download\n </mat-icon>\n <mat-icon\n *ngIf=\"isViewable\"\n class=\"material-symbols-outlined text-primary opacity-45 mr-3\"\n >map\n </mat-icon>\n </div>\n </div>\n </a>\n</div>\n", styles: [".record-container:hover .record-header,.record-container:hover .record-header-image{border-color:var(--color-primary-lightest)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23488
23533
|
}
|
|
23489
23534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewFeedComponent, decorators: [{
|
|
23490
23535
|
type: Component,
|
|
@@ -24001,11 +24046,11 @@ class MarkdownParserComponent {
|
|
|
24001
24046
|
return marked.parse(this.textContent);
|
|
24002
24047
|
}
|
|
24003
24048
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24004
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent" }, ngImport: i0, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host
|
|
24049
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: { textContent: "textContent" }, ngImport: i0, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}:host ::ng-deep .markdown-body strong{@apply font-bold;color:var(--color-secondary-darker)}:host ::ng-deep .markdown-body h1,:host ::ng-deep .markdown-body h2,:host ::ng-deep .markdown-body h3,:host ::ng-deep .markdown-body h4,:host ::ng-deep .markdown-body h5,:host ::ng-deep .markdown-body h6{margin-top:24px;margin-bottom:16px;line-height:1.25;@apply text-title font-title font-bold;}:host ::ng-deep .markdown-body h1{margin:.67em 0;padding-bottom:.3em;font-size:2em;color:var(--color-primary)}:host ::ng-deep .markdown-body h2{padding-bottom:.3em;font-size:1.5em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h3{font-size:1.25em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h4{font-size:1em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h5{font-size:.875em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h6{font-size:.85em;color:var(--color-secondary-lighter)}:host ::ng-deep .markdown-body p{margin-top:0;margin-bottom:10px}:host ::ng-deep .markdown-body p>a{margin-top:0;margin-bottom:10px;color:var(--color-primary)!important;text-decoration:none!important;@apply font-bold;}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important}:host ::ng-deep .markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-secondary-lighter);border-left:.25em solid var(--color-primary-lighter)}:host ::ng-deep .markdown-body pre{margin-top:0;margin-bottom:0;font-size:12px;background-color:var(--color-gray-100);word-wrap:normal}:host ::ng-deep .markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--color-secondary);border-radius:6px}:host ::ng-deep .markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;border-radius:6px}:host ::ng-deep .markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;border:0}:host ::ng-deep .markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-secondary);height:.15em;padding:0;margin:24px 0;background-color:var(--color-secondary);border:0}:host ::ng-deep .markdown-body hr:before{display:table;content:\"\"}:host ::ng-deep .markdown-body hr:after{display:table;clear:both;content:\"\"}:host ::ng-deep .markdown-body ul,:host ::ng-deep .markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em;list-style:revert}:host ::ng-deep .markdown-body ol ol,:host ::ng-deep .markdown-body ul ol{list-style-type:lower-roman}:host ::ng-deep .markdown-body ul ul ol,:host ::ng-deep .markdown-body ul ol ol,:host ::ng-deep .markdown-body ol ul ol,:host ::ng-deep .markdown-body ol ol ol{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}:host ::ng-deep .markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}:host ::ng-deep .markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}:host ::ng-deep .markdown-body ol[type=\"1\"]{list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body div>ol:not([type]){list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;padding-bottom:15px}:host ::ng-deep .markdown-body td,:host ::ng-deep .markdown-body th{padding:0}:host ::ng-deep .markdown-body th{color:var(--color-secondary)}:host ::ng-deep .markdown-body table th,:host ::ng-deep .markdown-body table td{padding:6px 13px;border:1px solid var(--color-gray-500)}:host ::ng-deep .markdown-body table td>:last-child{margin-bottom:0}:host ::ng-deep .markdown-body table tr{background-color:#fff;border-top:1px solid var(--color-secondary-lighter)}:host ::ng-deep .markdown-body table tr:nth-child(2n){background-color:var(--color-gray-100)}:host ::ng-deep .markdown-body table img{background-color:transparent}:host ::ng-deep .markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent}:host ::ng-deep .markdown-body img[align=right]{padding-left:20px}:host ::ng-deep .markdown-body img[align=left]{padding-right:20px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24005
24050
|
}
|
|
24006
24051
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, decorators: [{
|
|
24007
24052
|
type: Component,
|
|
24008
|
-
args: [{ selector: 'gn-ui-markdown-parser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host
|
|
24053
|
+
args: [{ selector: 'gn-ui-markdown-parser', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"markdown-body\" [innerHTML]=\"parsedMarkdown\"></div>\n", styles: [":host ::ng-deep .markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0px 0px 1.5rem;line-height:1.5;word-wrap:break-word}:host ::ng-deep .markdown-body strong{@apply font-bold;color:var(--color-secondary-darker)}:host ::ng-deep .markdown-body h1,:host ::ng-deep .markdown-body h2,:host ::ng-deep .markdown-body h3,:host ::ng-deep .markdown-body h4,:host ::ng-deep .markdown-body h5,:host ::ng-deep .markdown-body h6{margin-top:24px;margin-bottom:16px;line-height:1.25;@apply text-title font-title font-bold;}:host ::ng-deep .markdown-body h1{margin:.67em 0;padding-bottom:.3em;font-size:2em;color:var(--color-primary)}:host ::ng-deep .markdown-body h2{padding-bottom:.3em;font-size:1.5em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h3{font-size:1.25em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h4{font-size:1em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h5{font-size:.875em;color:var(--color-secondary)}:host ::ng-deep .markdown-body h6{font-size:.85em;color:var(--color-secondary-lighter)}:host ::ng-deep .markdown-body p{margin-top:0;margin-bottom:10px}:host ::ng-deep .markdown-body p>a{margin-top:0;margin-bottom:10px;color:var(--color-primary)!important;text-decoration:none!important;@apply font-bold;}:host ::ng-deep .markdown-body p>a:hover{color:var(--color-primary-darker)!important}:host ::ng-deep .markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-secondary-lighter);border-left:.25em solid var(--color-primary-lighter)}:host ::ng-deep .markdown-body pre{margin-top:0;margin-bottom:0;font-size:12px;background-color:var(--color-gray-100);word-wrap:normal}:host ::ng-deep .markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--color-secondary);border-radius:6px}:host ::ng-deep .markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;border-radius:6px}:host ::ng-deep .markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;border:0}:host ::ng-deep .markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-secondary);height:.15em;padding:0;margin:24px 0;background-color:var(--color-secondary);border:0}:host ::ng-deep .markdown-body hr:before{display:table;content:\"\"}:host ::ng-deep .markdown-body hr:after{display:table;clear:both;content:\"\"}:host ::ng-deep .markdown-body ul,:host ::ng-deep .markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em;list-style:revert}:host ::ng-deep .markdown-body ol ol,:host ::ng-deep .markdown-body ul ol{list-style-type:lower-roman}:host ::ng-deep .markdown-body ul ul ol,:host ::ng-deep .markdown-body ul ol ol,:host ::ng-deep .markdown-body ol ul ol,:host ::ng-deep .markdown-body ol ol ol{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}:host ::ng-deep .markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}:host ::ng-deep .markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}:host ::ng-deep .markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}:host ::ng-deep .markdown-body ol[type=\"1\"]{list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body div>ol:not([type]){list-style:unset;list-style-type:decimal}:host ::ng-deep .markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto;padding-bottom:15px}:host ::ng-deep .markdown-body td,:host ::ng-deep .markdown-body th{padding:0}:host ::ng-deep .markdown-body th{color:var(--color-secondary)}:host ::ng-deep .markdown-body table th,:host ::ng-deep .markdown-body table td{padding:6px 13px;border:1px solid var(--color-gray-500)}:host ::ng-deep .markdown-body table td>:last-child{margin-bottom:0}:host ::ng-deep .markdown-body table tr{background-color:#fff;border-top:1px solid var(--color-secondary-lighter)}:host ::ng-deep .markdown-body table tr:nth-child(2n){background-color:var(--color-gray-100)}:host ::ng-deep .markdown-body table img{background-color:transparent}:host ::ng-deep .markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:transparent}:host ::ng-deep .markdown-body img[align=right]{padding-left:20px}:host ::ng-deep .markdown-body img[align=left]{padding-right:20px}\n"] }]
|
|
24009
24054
|
}], propDecorators: { textContent: [{
|
|
24010
24055
|
type: Input
|
|
24011
24056
|
}] } });
|
|
@@ -24125,11 +24170,11 @@ class ButtonComponent {
|
|
|
24125
24170
|
propagateToDocumentOnly(event);
|
|
24126
24171
|
}
|
|
24127
24172
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24128
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ButtonComponent, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host
|
|
24173
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ButtonComponent, selector: "gn-ui-button", inputs: { type: "type", disabled: "disabled", extraClass: "extraClass" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24129
24174
|
}
|
|
24130
24175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
24131
24176
|
type: Component,
|
|
24132
|
-
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host
|
|
24177
|
+
args: [{ selector: 'gn-ui-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"flex flex-row items-center text-[1em] leading-none p-[1em] rounded-[0.25em] transition-all duration-100 focus:outline-none disabled:opacity-50 disabled:pointer-events-none\"\n [class]=\"classList\"\n [disabled]=\"disabled\"\n (click)=\"handleClick($event)\"\n>\n <ng-content></ng-content>\n</button>\n", styles: [":host ::ng-deep mat-icon.mat-icon{margin-top:-.325em;margin-bottom:-.325em}\n"] }]
|
|
24133
24178
|
}], propDecorators: { type: [{
|
|
24134
24179
|
type: Input
|
|
24135
24180
|
}], disabled: [{
|
|
@@ -24204,11 +24249,11 @@ class DownloadsListComponent {
|
|
|
24204
24249
|
return link.type === 'service' && link.accessServiceProtocol === 'wfs';
|
|
24205
24250
|
}
|
|
24206
24251
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: DownloadsListComponent, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div
|
|
24252
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: DownloadsListComponent, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\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-50')\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<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromWfs]=\"isFromWfs(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromWfs"], outputs: ["exportUrl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24208
24253
|
}
|
|
24209
24254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DownloadsListComponent, decorators: [{
|
|
24210
24255
|
type: Component,
|
|
24211
|
-
args: [{ selector: 'gn-ui-downloads-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div
|
|
24256
|
+
args: [{ selector: 'gn-ui-downloads-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\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-50')\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<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromWfs]=\"isFromWfs(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
|
|
24212
24257
|
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { links: [{
|
|
24213
24258
|
type: Input
|
|
24214
24259
|
}] } });
|
|
@@ -24409,11 +24454,11 @@ class CarouselComponent {
|
|
|
24409
24454
|
this.emblaApi.scrollTo(stepIndex);
|
|
24410
24455
|
}
|
|
24411
24456
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24412
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CarouselComponent, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"overflow-hidden h-full w-full\">\n <div class=\"carousel-container flex flex-row\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<div\n class=\"absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1\"\n [ngClass]=\"stepsContainerClass\"\n>\n <button\n *ngFor=\"let step of steps; let i = index\"\n class=\"carousel-step-dot\"\n (click)=\"scrollToStep(i)\"\n [ngClass]=\"selectedStep === i ? 'bg-secondary' : 'bg-gray-400'\"\n ></button>\n</div>\n", styles: [":host .carousel-container
|
|
24457
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CarouselComponent, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"overflow-hidden h-full w-full\">\n <div class=\"carousel-container flex flex-row\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<div\n class=\"absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1\"\n [ngClass]=\"stepsContainerClass\"\n>\n <button\n *ngFor=\"let step of steps; let i = index\"\n class=\"carousel-step-dot\"\n (click)=\"scrollToStep(i)\"\n [ngClass]=\"selectedStep === i ? 'bg-secondary' : 'bg-gray-400'\"\n ></button>\n</div>\n", styles: [":host .carousel-container ::ng-deep>*{flex-shrink:0}:host{position:relative}.carousel-step-dot{width:6px;height:6px;border-radius:6px;position:relative}.carousel-step-dot:after{content:\"\";position:absolute;left:-4px;top:-4px;width:14px;height:14px}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24413
24458
|
}
|
|
24414
24459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
24415
24460
|
type: Component,
|
|
24416
|
-
args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #carouselOverflowContainer class=\"overflow-hidden h-full w-full\">\n <div class=\"carousel-container flex flex-row\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<div\n class=\"absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1\"\n [ngClass]=\"stepsContainerClass\"\n>\n <button\n *ngFor=\"let step of steps; let i = index\"\n class=\"carousel-step-dot\"\n (click)=\"scrollToStep(i)\"\n [ngClass]=\"selectedStep === i ? 'bg-secondary' : 'bg-gray-400'\"\n ></button>\n</div>\n", styles: [":host .carousel-container
|
|
24461
|
+
args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #carouselOverflowContainer class=\"overflow-hidden h-full w-full\">\n <div class=\"carousel-container flex flex-row\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<div\n class=\"absolute right-0 top-0 flex flex-row justify-center gap-[10px] p-1\"\n [ngClass]=\"stepsContainerClass\"\n>\n <button\n *ngFor=\"let step of steps; let i = index\"\n class=\"carousel-step-dot\"\n (click)=\"scrollToStep(i)\"\n [ngClass]=\"selectedStep === i ? 'bg-secondary' : 'bg-gray-400'\"\n ></button>\n</div>\n", styles: [":host .carousel-container ::ng-deep>*{flex-shrink:0}:host{position:relative}.carousel-step-dot{width:6px;height:6px;border-radius:6px;position:relative}.carousel-step-dot:after{content:\"\";position:absolute;left:-4px;top:-4px;width:14px;height:14px}\n"] }]
|
|
24417
24462
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { containerClass: [{
|
|
24418
24463
|
type: Input
|
|
24419
24464
|
}], stepsContainerClass: [{
|
|
@@ -24470,11 +24515,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
24470
24515
|
|
|
24471
24516
|
class RelatedRecordCardComponent {
|
|
24472
24517
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24473
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record" }, ngImport: i0, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]
|
|
24518
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RelatedRecordCardComponent, selector: "gn-ui-related-record-card", inputs: { record: "record" }, ngImport: i0, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i1$5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24474
24519
|
}
|
|
24475
24520
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
24476
24521
|
type: Component,
|
|
24477
|
-
args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]
|
|
24522
|
+
args: [{ selector: 'gn-ui-related-record-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n class=\"w-72 h-96 overflow-hidden rounded-lg bg-white cursor-pointer block hover:-translate-y-2 duration-[180ms]\"\n [routerLink]=\"['/dataset', record.uniqueIdentifier]\"\n target=\"_blank\"\n>\n <div class=\"h-52 bg-gray-100\">\n <gn-ui-thumbnail\n class=\"h-52 w-full object-cover\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col justify-between h-44 px-5 pt-4 pb-6\">\n <h4\n class=\"max-h-24 font-title text-21 text-black text-ellipsis overflow-hidden\"\n >\n {{ record.title }}\n </h4>\n <div>\n <button\n mat-raised-button\n [matTooltip]=\"'tooltip.url.open' | translate\"\n matTooltipPosition=\"above\"\n >\n <mat-icon class=\"material-symbols-outlined align-middle text-secondary\"\n >open_in_new</mat-icon\n >\n </button>\n </div>\n </div>\n</a>\n" }]
|
|
24478
24523
|
}], propDecorators: { record: [{
|
|
24479
24524
|
type: Input
|
|
24480
24525
|
}] } });
|
|
@@ -24502,11 +24547,11 @@ class MetadataContactComponent {
|
|
|
24502
24547
|
this.organizationClick.emit(this.shownOrganization);
|
|
24503
24548
|
}
|
|
24504
24549
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24505
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization
|
|
24550
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24506
24551
|
}
|
|
24507
24552
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, decorators: [{
|
|
24508
24553
|
type: Component,
|
|
24509
|
-
args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization
|
|
24554
|
+
args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
24510
24555
|
}], propDecorators: { metadata: [{
|
|
24511
24556
|
type: Input
|
|
24512
24557
|
}], organizationClick: [{
|
|
@@ -25612,6 +25657,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25612
25657
|
args: [{ selector: 'gn-ui-date-range-picker', template: "<div\n class=\"flex items-center justify-center w-64 h-11 rounded-lg border border-gray-300 bg-white\"\n>\n <div class=\"w-48 flex justify-between\">\n <mat-date-range-input [rangePicker]=\"picker\" class=\"w-full\">\n <input\n class=\"w-24 text-black font-basierCircle text-base font-medium text-center\"\n matStartDate\n placeholder=\"Start date\"\n (dateInput)=\"startDateSelected($event)\"\n />\n <input\n class=\"w-24 text-black font-basierCircle text-base font-medium text-center\"\n matEndDate\n placeholder=\"End date\"\n (dateInput)=\"endDateSelected($event)\"\n />\n </mat-date-range-input>\n </div>\n <mat-datepicker-toggle matSuffix [for]=\"picker\">\n <mat-icon>calendar_today</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n</div>\n", styles: ["mat-datepicker-toggle{@apply text-primary;}\n"] }]
|
|
25613
25658
|
}] });
|
|
25614
25659
|
|
|
25660
|
+
class EditableLabelDirective {
|
|
25661
|
+
constructor(el, renderer) {
|
|
25662
|
+
this.el = el;
|
|
25663
|
+
this.renderer = renderer;
|
|
25664
|
+
this.editableLabelChanged = new EventEmitter();
|
|
25665
|
+
}
|
|
25666
|
+
ngAfterViewInit() {
|
|
25667
|
+
if (this.gnUiEditableLabel !== false) {
|
|
25668
|
+
const appendedInput = this.renderer.createElement('input');
|
|
25669
|
+
this.renderer.setStyle(appendedInput, 'background', 'inherit');
|
|
25670
|
+
this.renderer.setStyle(appendedInput, 'color', 'inherit');
|
|
25671
|
+
this.renderer.setStyle(appendedInput, 'font', 'inherit');
|
|
25672
|
+
this.renderer.setStyle(appendedInput, 'border', 'inherit');
|
|
25673
|
+
this.renderer.setStyle(appendedInput, 'width', '100%');
|
|
25674
|
+
this.renderer.setStyle(appendedInput, 'padding', 'inherit');
|
|
25675
|
+
this.renderer.setStyle(appendedInput, 'margin', '0');
|
|
25676
|
+
this.renderer.setStyle(appendedInput, 'height', 'inherit');
|
|
25677
|
+
this.renderer.setStyle(appendedInput, 'line-height', 'inherit');
|
|
25678
|
+
this.renderer.setStyle(appendedInput, 'text-decoration', 'inherit');
|
|
25679
|
+
const hostContent = this.el.nativeElement.textContent || '';
|
|
25680
|
+
const formattedContent = hostContent.replace(/\s+/g, ' ').trim();
|
|
25681
|
+
this.renderer.setProperty(appendedInput, 'value', formattedContent);
|
|
25682
|
+
this.renderer.setProperty(this.el.nativeElement, 'innerHTML', '');
|
|
25683
|
+
this.renderer.listen(appendedInput, 'input', (event) => {
|
|
25684
|
+
this.editableLabelChanged.emit(event.target.value);
|
|
25685
|
+
});
|
|
25686
|
+
this.renderer.appendChild(this.el.nativeElement, appendedInput);
|
|
25687
|
+
}
|
|
25688
|
+
}
|
|
25689
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditableLabelDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25690
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: { gnUiEditableLabel: "gnUiEditableLabel" }, outputs: { editableLabelChanged: "editableLabelChanged" }, ngImport: i0 }); }
|
|
25691
|
+
}
|
|
25692
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: EditableLabelDirective, decorators: [{
|
|
25693
|
+
type: Directive,
|
|
25694
|
+
args: [{
|
|
25695
|
+
selector: '[gnUiEditableLabel]',
|
|
25696
|
+
}]
|
|
25697
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { editableLabelChanged: [{
|
|
25698
|
+
type: Output
|
|
25699
|
+
}], gnUiEditableLabel: [{
|
|
25700
|
+
type: Input
|
|
25701
|
+
}] } });
|
|
25702
|
+
|
|
25615
25703
|
class UiInputsModule {
|
|
25616
25704
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25617
25705
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, declarations: [DropdownSelectorComponent,
|
|
@@ -25637,7 +25725,8 @@ class UiInputsModule {
|
|
|
25637
25725
|
CopyTextButtonComponent,
|
|
25638
25726
|
CheckboxComponent,
|
|
25639
25727
|
SearchInputComponent,
|
|
25640
|
-
DateRangePickerComponent
|
|
25728
|
+
DateRangePickerComponent,
|
|
25729
|
+
EditableLabelDirective], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
25641
25730
|
FormsModule,
|
|
25642
25731
|
ReactiveFormsModule,
|
|
25643
25732
|
TagInputModule,
|
|
@@ -25667,7 +25756,8 @@ class UiInputsModule {
|
|
|
25667
25756
|
CopyTextButtonComponent,
|
|
25668
25757
|
CheckboxComponent,
|
|
25669
25758
|
SearchInputComponent,
|
|
25670
|
-
DateRangePickerComponent
|
|
25759
|
+
DateRangePickerComponent,
|
|
25760
|
+
EditableLabelDirective] }); }
|
|
25671
25761
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, imports: [CommonModule,
|
|
25672
25762
|
TranslateModule.forChild(),
|
|
25673
25763
|
NgxDropzoneModule,
|
|
@@ -25714,6 +25804,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25714
25804
|
CheckboxComponent,
|
|
25715
25805
|
SearchInputComponent,
|
|
25716
25806
|
DateRangePickerComponent,
|
|
25807
|
+
EditableLabelDirective,
|
|
25717
25808
|
],
|
|
25718
25809
|
imports: [
|
|
25719
25810
|
CommonModule,
|
|
@@ -25752,6 +25843,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25752
25843
|
CheckboxComponent,
|
|
25753
25844
|
SearchInputComponent,
|
|
25754
25845
|
DateRangePickerComponent,
|
|
25846
|
+
EditableLabelDirective,
|
|
25755
25847
|
],
|
|
25756
25848
|
}]
|
|
25757
25849
|
}] });
|
|
@@ -25909,6 +26001,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25909
26001
|
type: Input
|
|
25910
26002
|
}] } });
|
|
25911
26003
|
|
|
26004
|
+
class ImageOverlayPreviewComponent {
|
|
26005
|
+
constructor() {
|
|
26006
|
+
this.isPlaceholderShown = new EventEmitter();
|
|
26007
|
+
}
|
|
26008
|
+
openLightbox(src) {
|
|
26009
|
+
basicLightbox.create(`<img src="${src}"/>`).show();
|
|
26010
|
+
}
|
|
26011
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ImageOverlayPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26012
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ImageOverlayPreviewComponent, selector: "gn-ui-image-overlay-preview", inputs: { imageUrl: "imageUrl" }, outputs: { isPlaceholderShown: "isPlaceholderShown" }, ngImport: i0, template: "<gn-ui-content-ghost\n [showContent]=\"imageUrl !== undefined\"\n ghostClass=\"h-36 mb-3\"\n>\n <div\n *ngIf=\"imageUrl\"\n data-cy=\"record-thumbnail\"\n class=\"flex-shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36 group-hover:shadow-xl group-hover:border-0 mb-3\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"imageUrl\"\n fit=\"cover\"\n (placeholderShown)=\"isPlaceholderShown.emit($event)\"\n ></gn-ui-thumbnail>\n <div class=\"relative\">\n <gn-ui-button\n class=\"absolute bottom-0 right-0 z-10 mr-2 mb-2\"\n [type]=\"'outline'\"\n [extraClass]=\"'!py-2 !px-0'\"\n (buttonClick)=\"openLightbox(imageUrl)\"\n >\n <mat-icon class=\"material-symbols-outlined font-extralight\"\n >zoom_out_map</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n</gn-ui-content-ghost>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }] }); }
|
|
26013
|
+
}
|
|
26014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ImageOverlayPreviewComponent, decorators: [{
|
|
26015
|
+
type: Component,
|
|
26016
|
+
args: [{ selector: 'gn-ui-image-overlay-preview', template: "<gn-ui-content-ghost\n [showContent]=\"imageUrl !== undefined\"\n ghostClass=\"h-36 mb-3\"\n>\n <div\n *ngIf=\"imageUrl\"\n data-cy=\"record-thumbnail\"\n class=\"flex-shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36 group-hover:shadow-xl group-hover:border-0 mb-3\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"imageUrl\"\n fit=\"cover\"\n (placeholderShown)=\"isPlaceholderShown.emit($event)\"\n ></gn-ui-thumbnail>\n <div class=\"relative\">\n <gn-ui-button\n class=\"absolute bottom-0 right-0 z-10 mr-2 mb-2\"\n [type]=\"'outline'\"\n [extraClass]=\"'!py-2 !px-0'\"\n (buttonClick)=\"openLightbox(imageUrl)\"\n >\n <mat-icon class=\"material-symbols-outlined font-extralight\"\n >zoom_out_map</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n</gn-ui-content-ghost>\n" }]
|
|
26017
|
+
}], propDecorators: { imageUrl: [{
|
|
26018
|
+
type: Input
|
|
26019
|
+
}], isPlaceholderShown: [{
|
|
26020
|
+
type: Output
|
|
26021
|
+
}] } });
|
|
26022
|
+
|
|
25912
26023
|
class UiElementsModule {
|
|
25913
26024
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25914
26025
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, declarations: [MetadataInfoComponent,
|
|
@@ -25931,7 +26042,8 @@ class UiElementsModule {
|
|
|
25931
26042
|
PaginationButtonsComponent,
|
|
25932
26043
|
MaxLinesComponent,
|
|
25933
26044
|
RecordApiFormComponent,
|
|
25934
|
-
MarkdownParserComponent
|
|
26045
|
+
MarkdownParserComponent,
|
|
26046
|
+
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
25935
26047
|
MatIconModule,
|
|
25936
26048
|
MatTooltipModule,
|
|
25937
26049
|
UiWidgetsModule,
|
|
@@ -25956,8 +26068,10 @@ class UiElementsModule {
|
|
|
25956
26068
|
AvatarComponent,
|
|
25957
26069
|
UserPreviewComponent,
|
|
25958
26070
|
PaginationButtonsComponent,
|
|
26071
|
+
MaxLinesComponent,
|
|
25959
26072
|
RecordApiFormComponent,
|
|
25960
|
-
MarkdownParserComponent
|
|
26073
|
+
MarkdownParserComponent,
|
|
26074
|
+
ImageOverlayPreviewComponent] }); }
|
|
25961
26075
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, imports: [CommonModule,
|
|
25962
26076
|
MatIconModule,
|
|
25963
26077
|
MatTooltipModule,
|
|
@@ -26007,6 +26121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
26007
26121
|
MaxLinesComponent,
|
|
26008
26122
|
RecordApiFormComponent,
|
|
26009
26123
|
MarkdownParserComponent,
|
|
26124
|
+
ImageOverlayPreviewComponent,
|
|
26010
26125
|
],
|
|
26011
26126
|
exports: [
|
|
26012
26127
|
MetadataInfoComponent,
|
|
@@ -26026,8 +26141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
26026
26141
|
AvatarComponent,
|
|
26027
26142
|
UserPreviewComponent,
|
|
26028
26143
|
PaginationButtonsComponent,
|
|
26144
|
+
MaxLinesComponent,
|
|
26029
26145
|
RecordApiFormComponent,
|
|
26030
26146
|
MarkdownParserComponent,
|
|
26147
|
+
ImageOverlayPreviewComponent,
|
|
26031
26148
|
],
|
|
26032
26149
|
}]
|
|
26033
26150
|
}] });
|
|
@@ -26146,11 +26263,11 @@ class RecordTableComponent {
|
|
|
26146
26263
|
return false;
|
|
26147
26264
|
}
|
|
26148
26265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordTableComponent, selector: "gn-ui-record-table", inputs: { selectedRecords: "selectedRecords", records: "records", totalHits: "totalHits", sortBy: "sortBy" }, outputs: { recordClick: "recordClick", recordsSelect: "recordsSelect", recordsDeselect: "recordsDeselect", sortByChange: "sortByChange" }, ngImport: i0, template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"
|
|
26266
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordTableComponent, selector: "gn-ui-record-table", inputs: { selectedRecords: "selectedRecords", records: "records", totalHits: "totalHits", sortBy: "sortBy" }, outputs: { recordClick: "recordClick", recordsSelect: "recordsSelect", recordsDeselect: "recordsDeselect", sortByChange: "sortByChange" }, ngImport: i0, template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col text-16\">\n {{ record.name }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.username }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.emailAddresses[0] }}\n </div>\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(6,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"!records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"flex justify-center items-center\">\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"selectAll()\"\n type=\"default\"\n >\n </gn-ui-checkbox>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1 text-left\"\n (buttonClick)=\"setSortBy('resourceTitleObject.default.keyword')\"\n >\n <span translate>record.metadata.title</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div translate=\"\" class=\"record-table-header text-gray-400 flex gap-1\">\n record.metadata.formats\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('recordOwner')\"\n >\n <span translate>record.metadata.author</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('changeDate')\"\n >\n <span translate>record.metadata.updatedOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('createDate')\"\n >\n <span translate>record.metadata.createdOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col\">\n <gn-ui-checkbox\n [checked]=\"isChecked(record)\"\n (changed)=\"handleRecordSelectedChange($event, record)\"\n type=\"default\"\n ></gn-ui-checkbox>\n </div>\n <div\n [title]=\"record.title\"\n class=\"record-table-col text-16 self-center\"\n >\n {{ record.title }}\n </div>\n <div\n class=\"record-table-col flex justify-start items-center gap-2 text-16\"\n [title]=\"formats.join(', ')\"\n *ngIf=\"getRecordFormats(record) as formats\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div\n class=\"flex-shrink-0\"\n *ngIf=\"!record.name && formats.slice(2).length > 0\"\n >\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div class=\"record-table-col flex items-center gap-2 text-16\">\n <mat-icon class=\"material-symbols-outlined\"> person </mat-icon>\n <span class=\"\">{{ formatUserInfo(record.extras?.ownerInfo) }}</span>\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordUpdated) }}\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordCreated) }}\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".record-table-col{@apply px-5 py-3 items-center truncate;}.record-table-header{@apply record-table-col capitalize;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
26150
26267
|
}
|
|
26151
26268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, decorators: [{
|
|
26152
26269
|
type: Component,
|
|
26153
|
-
args: [{ selector: 'gn-ui-record-table', template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"
|
|
26270
|
+
args: [{ selector: 'gn-ui-record-table', template: "<div>\n <div *ngIf=\"totalHits\" class=\"\">\n <div class=\"flex records-information\">\n <div\n translate\n class=\"my-8 ml-4 block text-gray-800\"\n [translateParams]=\"{\n displayed: records.length,\n hits: totalHits\n }\"\n >\n results.records.hits.displayedOn\n </div>\n <div\n *ngIf=\"selectedRecords.length > 0\"\n class=\"my-8 ml-6 block text-gray-400 selected-records\"\n translate\n [translateParams]=\"{ amount: selectedRecords.length }\"\n >\n results.records.hits.selected\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(3,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userDetail</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.username</span>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <span translate>dashboard.records.userEmail</span>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col text-16\">\n {{ record.name }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.username }}\n </div>\n <div class=\"record-table-col text-16\">\n {{ record.emailAddresses[0] }}\n </div>\n </div>\n </div>\n\n <div\n class=\"grid grid-cols-[repeat(6,minmax(0,max-content))] gap-x-4 gap-y-1\"\n *ngIf=\"!records[0].name\"\n >\n <div class=\"contents text-sm\">\n <div class=\"flex justify-center items-center\">\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"selectAll()\"\n type=\"default\"\n >\n </gn-ui-checkbox>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1 text-left\"\n (buttonClick)=\"setSortBy('resourceTitleObject.default.keyword')\"\n >\n <span translate>record.metadata.title</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('resourceTitleObject.default.keyword', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div translate=\"\" class=\"record-table-header text-gray-400 flex gap-1\">\n record.metadata.formats\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('recordOwner')\"\n >\n <span translate>record.metadata.author</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('recordOwner', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('changeDate')\"\n >\n <span translate>record.metadata.updatedOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('changeDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n <div class=\"record-table-header text-gray-400 flex gap-1\">\n <gn-ui-button\n type=\"light\"\n extraClass=\"px-3 pl-0 space-x-1\"\n (buttonClick)=\"setSortBy('createDate')\"\n >\n <span translate>record.metadata.createdOn</span>\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'desc')\"\n >\n expand_more</mat-icon\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n *ngIf=\"isSortedBy('createDate', 'asc')\"\n >\n expand_less</mat-icon\n >\n </gn-ui-button>\n </div>\n </div>\n <div\n class=\"contents hover:text-gray-900 text-gray-800 cursor-pointer\"\n (click)=\"recordsSelect.emit([record])\"\n *ngFor=\"let record of records\"\n >\n <div class=\"record-table-col\">\n <gn-ui-checkbox\n [checked]=\"isChecked(record)\"\n (changed)=\"handleRecordSelectedChange($event, record)\"\n type=\"default\"\n ></gn-ui-checkbox>\n </div>\n <div\n [title]=\"record.title\"\n class=\"record-table-col text-16 self-center\"\n >\n {{ record.title }}\n </div>\n <div\n class=\"record-table-col flex justify-start items-center gap-2 text-16\"\n [title]=\"formats.join(', ')\"\n *ngIf=\"getRecordFormats(record) as formats\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div\n class=\"flex-shrink-0\"\n *ngIf=\"!record.name && formats.slice(2).length > 0\"\n >\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div class=\"record-table-col flex items-center gap-2 text-16\">\n <mat-icon class=\"material-symbols-outlined\"> person </mat-icon>\n <span class=\"\">{{ formatUserInfo(record.extras?.ownerInfo) }}</span>\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordUpdated) }}\n </div>\n <div class=\"record-table-col text-16 self-center\">\n {{ dateToString(record.recordCreated) }}\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".record-table-col{@apply px-5 py-3 items-center truncate;}.record-table-header{@apply record-table-col capitalize;}\n"] }]
|
|
26154
26271
|
}], propDecorators: { selectedRecords: [{
|
|
26155
26272
|
type: Input
|
|
26156
26273
|
}], records: [{
|
|
@@ -28242,7 +28359,7 @@ class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
|
28242
28359
|
return getLinkLabel(link);
|
|
28243
28360
|
}
|
|
28244
28361
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, deps: [{ token: i0.ElementRef }, { token: LinkClassifierService }, { token: MapFacade }, { token: MapUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28245
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28362
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerRecordPreviewComponent, selector: "gn-ui-add-layer-record-preview", usesInheritance: true, ngImport: i0, template: "<div class=\"w-full flex flex-row rounded-sm\" [title]=\"record.abstract\">\n <gn-ui-thumbnail\n class=\"w-16 h-16 shrink-0 border-r border-gray-200 bg-gray-100\"\n [thumbnailUrl]=\"record.overviews?.[0]?.url.toString()\"\n ></gn-ui-thumbnail>\n\n <div class=\"flex flex-col p-2 gap-2 overflow-hidden\">\n <h1 class=\"text-sm font-medium truncate\">\n {{ record.title }}\n </h1>\n <ng-container *ngFor=\"let link of mapLinks\">\n <gn-ui-button\n [type]=\"'outline'\"\n (buttonClick)=\"handleLinkClick(link)\"\n extraClass=\"!py-[8px] !px-[12px]\"\n >\n <div class=\"text-left text-[12px] line-clamp-2\">\n {{ getLinkLabel(link) }}\n </div>\n </gn-ui-button>\n </ng-container>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28246
28363
|
}
|
|
28247
28364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, decorators: [{
|
|
28248
28365
|
type: Component,
|
|
@@ -28337,6 +28454,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28337
28454
|
args: [{ selector: 'gn-ui-add-layer-from-wms', template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wmsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wms.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container\n *ngFor=\"let layer of layers\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: layer\n }\"\n ></ng-container>\n</div>\n\n<ng-template #layerTreeItem let-layer=\"layer\">\n <div class=\"flex items-center justify-between layer-tree-item my-2\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n <div *ngIf=\"layer.children?.length > 0\" class=\"ml-4\">\n <ng-container\n *ngFor=\"let child of layer.children\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: child\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
28338
28455
|
}], ctorParameters: function () { return [{ type: MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
28339
28456
|
|
|
28457
|
+
const INVALID_FILE_FORMAT_ERROR_MESSAGE = 'Invalid file format';
|
|
28458
|
+
class AddLayerFromFileComponent {
|
|
28459
|
+
constructor(mapFacade, changeDetectorRef) {
|
|
28460
|
+
this.mapFacade = mapFacade;
|
|
28461
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
28462
|
+
this.errorMessage = null;
|
|
28463
|
+
this.successMessage = null;
|
|
28464
|
+
this.loading = false;
|
|
28465
|
+
this.acceptedMimeType = ['.geojson'];
|
|
28466
|
+
this.maxFileSize = 5000000;
|
|
28467
|
+
}
|
|
28468
|
+
async handleFileChange(file) {
|
|
28469
|
+
if (!file) {
|
|
28470
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
28471
|
+
return;
|
|
28472
|
+
}
|
|
28473
|
+
if (file.size > this.maxFileSize) {
|
|
28474
|
+
this.displayMessage('File size exceeds the limit of 5MB', 'error');
|
|
28475
|
+
return;
|
|
28476
|
+
}
|
|
28477
|
+
await this.addLayer(file);
|
|
28478
|
+
}
|
|
28479
|
+
async addLayer(file) {
|
|
28480
|
+
this.errorMessage = null;
|
|
28481
|
+
this.loading = true;
|
|
28482
|
+
try {
|
|
28483
|
+
if (!this.isFileFormatValid(file)) {
|
|
28484
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
28485
|
+
return;
|
|
28486
|
+
}
|
|
28487
|
+
const fileExtension = this.getFileExtension(file);
|
|
28488
|
+
switch (fileExtension) {
|
|
28489
|
+
case 'geojson':
|
|
28490
|
+
await this.addGeoJsonLayer(file);
|
|
28491
|
+
break;
|
|
28492
|
+
default:
|
|
28493
|
+
this.displayMessage(INVALID_FILE_FORMAT_ERROR_MESSAGE, 'error');
|
|
28494
|
+
break;
|
|
28495
|
+
}
|
|
28496
|
+
}
|
|
28497
|
+
catch (error) {
|
|
28498
|
+
const err = error;
|
|
28499
|
+
this.displayMessage('Error loading file: ' + err.message, 'error');
|
|
28500
|
+
}
|
|
28501
|
+
finally {
|
|
28502
|
+
this.loading = false;
|
|
28503
|
+
}
|
|
28504
|
+
}
|
|
28505
|
+
addGeoJsonLayer(file) {
|
|
28506
|
+
return new Promise((resolve, reject) => {
|
|
28507
|
+
try {
|
|
28508
|
+
const reader = new FileReader();
|
|
28509
|
+
reader.onload = () => {
|
|
28510
|
+
const result = reader.result;
|
|
28511
|
+
const title = file.name.split('.').slice(0, -1).join('.');
|
|
28512
|
+
const layerToAdd = {
|
|
28513
|
+
type: 'geojson',
|
|
28514
|
+
data: result,
|
|
28515
|
+
};
|
|
28516
|
+
this.mapFacade.addLayer({ ...layerToAdd, title: title });
|
|
28517
|
+
this.displayMessage('File successfully added to map', 'success');
|
|
28518
|
+
resolve();
|
|
28519
|
+
};
|
|
28520
|
+
reader.onerror = reject;
|
|
28521
|
+
reader.readAsText(file);
|
|
28522
|
+
}
|
|
28523
|
+
catch (error) {
|
|
28524
|
+
reject(error);
|
|
28525
|
+
}
|
|
28526
|
+
});
|
|
28527
|
+
}
|
|
28528
|
+
isFileFormatValid(file) {
|
|
28529
|
+
const fileExtension = this.getFileExtension(file);
|
|
28530
|
+
return this.acceptedMimeType.includes(`.${fileExtension}`);
|
|
28531
|
+
}
|
|
28532
|
+
getFileExtension(file) {
|
|
28533
|
+
return file.name.split('.').pop();
|
|
28534
|
+
}
|
|
28535
|
+
displayMessage(message, type) {
|
|
28536
|
+
if (type === 'success') {
|
|
28537
|
+
this.successMessage = message;
|
|
28538
|
+
}
|
|
28539
|
+
else if (type === 'error') {
|
|
28540
|
+
this.errorMessage = message;
|
|
28541
|
+
}
|
|
28542
|
+
setTimeout(() => {
|
|
28543
|
+
this.successMessage = null;
|
|
28544
|
+
this.errorMessage = null;
|
|
28545
|
+
this.changeDetectorRef.detectChanges();
|
|
28546
|
+
}, 5000);
|
|
28547
|
+
}
|
|
28548
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, deps: [{ token: MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28549
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file", ngImport: i0, template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"flex-grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DragAndDropFileInputComponent, selector: "gn-ui-drag-and-drop-file-input", inputs: ["placeholder", "accept"], outputs: ["fileChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
28550
|
+
}
|
|
28551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromFileComponent, decorators: [{
|
|
28552
|
+
type: Component,
|
|
28553
|
+
args: [{ selector: 'gn-ui-add-layer-from-file', template: "<div class=\"flex flex-col gap-2 my-2\">\n <div class=\"flex items-center gap-4\">\n <div class=\"flex-grow rounded-md border-2 border-gray-200\">\n <gn-ui-drag-and-drop-file-input\n (fileChange)=\"handleFileChange($event)\"\n [accept]=\"acceptedMimeType.join(',')\"\n [placeholder]=\"'map.addFromFile.placeholder' | translate\"\n class=\"placeholder-grey\"\n ></gn-ui-drag-and-drop-file-input>\n </div>\n </div>\n <p class=\"text-sm text-gray-600\" translate>map.help.addFromFile</p>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"successMessage\" class=\"text-green-500 mt-2\">\n {{ successMessage }}\n</div>\n" }]
|
|
28554
|
+
}], ctorParameters: function () { return [{ type: MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
28555
|
+
|
|
28340
28556
|
class AddLayerFromWfsComponent {
|
|
28341
28557
|
constructor(mapFacade, changeDetectorRef) {
|
|
28342
28558
|
this.mapFacade = mapFacade;
|
|
@@ -28398,11 +28614,11 @@ class LayersPanelComponent {
|
|
|
28398
28614
|
this.mapFacade.removeLayer(index);
|
|
28399
28615
|
}
|
|
28400
28616
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, deps: [{ token: MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28401
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3
|
|
28617
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$3.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28402
28618
|
}
|
|
28403
28619
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
28404
28620
|
type: Component,
|
|
28405
|
-
args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3
|
|
28621
|
+
args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
|
|
28406
28622
|
}], ctorParameters: function () { return [{ type: MapFacade }]; } });
|
|
28407
28623
|
|
|
28408
28624
|
class MapEffects {
|
|
@@ -28435,6 +28651,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28435
28651
|
args: [{ selector: 'gn-ui-map-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-map-context [context]=\"context$ | async\"></gn-ui-map-context>\n" }]
|
|
28436
28652
|
}], ctorParameters: function () { return [{ type: MapFacade }]; } });
|
|
28437
28653
|
|
|
28654
|
+
class GeocodingComponent {
|
|
28655
|
+
constructor(mapManager) {
|
|
28656
|
+
this.mapManager = mapManager;
|
|
28657
|
+
this.searchText = '';
|
|
28658
|
+
this.results = [];
|
|
28659
|
+
this.searchTextChanged = new Subject();
|
|
28660
|
+
this.destroy$ = new Subject();
|
|
28661
|
+
this.searchTextChanged
|
|
28662
|
+
.pipe(debounceTime(300), switchMap$1((searchText) => {
|
|
28663
|
+
const options = {
|
|
28664
|
+
origins: ['zipcode', 'gg25', 'address'],
|
|
28665
|
+
limit: 6,
|
|
28666
|
+
};
|
|
28667
|
+
return from(queryGeoadmin(searchText, options)).pipe(catchError$1((error) => {
|
|
28668
|
+
console.error(error);
|
|
28669
|
+
return [];
|
|
28670
|
+
}));
|
|
28671
|
+
}), takeUntil(this.destroy$))
|
|
28672
|
+
.subscribe((results) => {
|
|
28673
|
+
this.results = results;
|
|
28674
|
+
});
|
|
28675
|
+
}
|
|
28676
|
+
ngOnDestroy() {
|
|
28677
|
+
this.destroy$.next();
|
|
28678
|
+
this.destroy$.complete();
|
|
28679
|
+
}
|
|
28680
|
+
onSearchChange(searchText) {
|
|
28681
|
+
if (!searchText) {
|
|
28682
|
+
this.clearSearch();
|
|
28683
|
+
return;
|
|
28684
|
+
}
|
|
28685
|
+
else {
|
|
28686
|
+
this.searchTextChanged.next(searchText);
|
|
28687
|
+
}
|
|
28688
|
+
}
|
|
28689
|
+
clearSearch() {
|
|
28690
|
+
this.searchText = '';
|
|
28691
|
+
this.results = [];
|
|
28692
|
+
}
|
|
28693
|
+
zoomToLocation(result) {
|
|
28694
|
+
const map = this.mapManager.map;
|
|
28695
|
+
const view = map.getView();
|
|
28696
|
+
const geometry = result.geom;
|
|
28697
|
+
const polygonCoords = geometry.coordinates;
|
|
28698
|
+
const transformedCoords = polygonCoords[0].map((coord) => fromLonLat(coord));
|
|
28699
|
+
const polygon = new Polygon([transformedCoords]);
|
|
28700
|
+
view.fit(polygon, {
|
|
28701
|
+
duration: 100,
|
|
28702
|
+
maxZoom: 12,
|
|
28703
|
+
});
|
|
28704
|
+
}
|
|
28705
|
+
onEnterPress() {
|
|
28706
|
+
if (this.results && this.results.length > 0) {
|
|
28707
|
+
this.zoomToLocation(this.results[0]);
|
|
28708
|
+
}
|
|
28709
|
+
}
|
|
28710
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingComponent, deps: [{ token: MapManagerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28711
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: GeocodingComponent, selector: "gn-ui-geocoding", ngImport: i0, template: "<gn-ui-search-input\n [(value)]=\"searchText\"\n (valueChange)=\"onSearchChange($event)\"\n (keyup.enter)=\"onEnterPress()\"\n [placeholder]=\"'map.geocoding.placeholder' | translate\"\n>\n</gn-ui-search-input>\n<ul\n class=\"bg-gray-50 border border-gray-200 w-full mt-2 shadow-sm rounded-lg\"\n *ngIf=\"results && results.length\"\n>\n <li\n *ngFor=\"let result of results\"\n (click)=\"zoomToLocation(result)\"\n class=\"flex items-center pl-8 pr-4 py-2 border-b border-gray-200 relative cursor-pointer hover:bg-blue-100 hover:text-gray-800 transition duration-300 ease-in-out\"\n >\n <svg\n class=\"stroke-current text-blue-500 absolute w-5 h-5 left-3 top-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"\n />\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"\n />\n </svg>\n <span class=\"font-sans font-semibold ml-4\">{{ result.label }}</span>\n </li>\n</ul>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchInputComponent, selector: "gn-ui-search-input", inputs: ["value", "placeholder"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
28712
|
+
}
|
|
28713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: GeocodingComponent, decorators: [{
|
|
28714
|
+
type: Component,
|
|
28715
|
+
args: [{ selector: 'gn-ui-geocoding', template: "<gn-ui-search-input\n [(value)]=\"searchText\"\n (valueChange)=\"onSearchChange($event)\"\n (keyup.enter)=\"onEnterPress()\"\n [placeholder]=\"'map.geocoding.placeholder' | translate\"\n>\n</gn-ui-search-input>\n<ul\n class=\"bg-gray-50 border border-gray-200 w-full mt-2 shadow-sm rounded-lg\"\n *ngIf=\"results && results.length\"\n>\n <li\n *ngFor=\"let result of results\"\n (click)=\"zoomToLocation(result)\"\n class=\"flex items-center pl-8 pr-4 py-2 border-b border-gray-200 relative cursor-pointer hover:bg-blue-100 hover:text-gray-800 transition duration-300 ease-in-out\"\n >\n <svg\n class=\"stroke-current text-blue-500 absolute w-5 h-5 left-3 top-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"\n />\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"\n />\n </svg>\n <span class=\"font-sans font-semibold ml-4\">{{ result.label }}</span>\n </li>\n</ul>\n" }]
|
|
28716
|
+
}], ctorParameters: function () { return [{ type: MapManagerService }]; } });
|
|
28717
|
+
|
|
28438
28718
|
class FeatureMapModule {
|
|
28439
28719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
28440
28720
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, declarations: [MapContextComponent,
|
|
@@ -28444,7 +28724,9 @@ class FeatureMapModule {
|
|
|
28444
28724
|
MapContainerComponent,
|
|
28445
28725
|
AddLayerRecordPreviewComponent,
|
|
28446
28726
|
AddLayerFromWmsComponent,
|
|
28447
|
-
|
|
28727
|
+
AddLayerFromFileComponent,
|
|
28728
|
+
AddLayerFromWfsComponent,
|
|
28729
|
+
GeocodingComponent], imports: [CommonModule,
|
|
28448
28730
|
UiMapModule,
|
|
28449
28731
|
UiLayoutModule,
|
|
28450
28732
|
MatIconModule,
|
|
@@ -28455,7 +28737,8 @@ class FeatureMapModule {
|
|
|
28455
28737
|
MapInstanceDirective,
|
|
28456
28738
|
LayersPanelComponent,
|
|
28457
28739
|
AddLayerFromCatalogComponent,
|
|
28458
|
-
MapContainerComponent
|
|
28740
|
+
MapContainerComponent,
|
|
28741
|
+
GeocodingComponent] }); }
|
|
28459
28742
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, providers: [
|
|
28460
28743
|
{
|
|
28461
28744
|
provide: FEATURE_MAP_OPTIONS,
|
|
@@ -28485,7 +28768,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28485
28768
|
MapContainerComponent,
|
|
28486
28769
|
AddLayerRecordPreviewComponent,
|
|
28487
28770
|
AddLayerFromWmsComponent,
|
|
28771
|
+
AddLayerFromFileComponent,
|
|
28488
28772
|
AddLayerFromWfsComponent,
|
|
28773
|
+
GeocodingComponent,
|
|
28489
28774
|
],
|
|
28490
28775
|
exports: [
|
|
28491
28776
|
MapContextComponent,
|
|
@@ -28493,6 +28778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28493
28778
|
LayersPanelComponent,
|
|
28494
28779
|
AddLayerFromCatalogComponent,
|
|
28495
28780
|
MapContainerComponent,
|
|
28781
|
+
GeocodingComponent,
|
|
28496
28782
|
],
|
|
28497
28783
|
imports: [
|
|
28498
28784
|
CommonModule,
|
|
@@ -29874,15 +30160,16 @@ class DataService {
|
|
|
29874
30160
|
// Pour DL toutes les données
|
|
29875
30161
|
return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map$1((urls) => urls.all), map$1((urls) => Object.keys(urls).map((format) => ({
|
|
29876
30162
|
...wfsLink,
|
|
30163
|
+
type: 'download',
|
|
29877
30164
|
url: new URL(urls[format]),
|
|
29878
|
-
mimeType: getMimeTypeForFormat(
|
|
30165
|
+
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
29879
30166
|
}))));
|
|
29880
30167
|
}
|
|
29881
30168
|
getDownloadLinksFromEsriRest(esriRestLink) {
|
|
29882
30169
|
return ['json', 'geojson'].map((format) => ({
|
|
29883
30170
|
...esriRestLink,
|
|
29884
30171
|
url: new URL(this.getDownloadUrlFromEsriRest(esriRestLink.url.toString(), format)),
|
|
29885
|
-
mimeType: getMimeTypeForFormat(
|
|
30172
|
+
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
29886
30173
|
}));
|
|
29887
30174
|
}
|
|
29888
30175
|
readAsGeoJson(link) {
|
|
@@ -30466,7 +30753,7 @@ class OrganisationPreviewComponent {
|
|
|
30466
30753
|
this.clickedOrganisation.emit(this.organisation);
|
|
30467
30754
|
}
|
|
30468
30755
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: OrganisationPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30469
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: { organisation: "organisation", organisationUrl: "organisationUrl" }, outputs: { clickedOrganisation: "clickedOrganisation" }, ngImport: i0, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organisation.name\"\n >\n <div\n class=\"flex-shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organisation.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col flex-grow overflow-hidden\">\n <span\n class=\"flex-shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organisation.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 flex-grow flex-shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organisation.description }}\n </p>\n <div class=\"flex-shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organisation.recordCount\n }}</span>\n <span translate>record.metadata.publications</span>\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30756
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: OrganisationPreviewComponent, selector: "gn-ui-organisation-preview", inputs: { organisation: "organisation", organisationUrl: "organisationUrl" }, outputs: { clickedOrganisation: "clickedOrganisation" }, ngImport: i0, template: "<a href (click)=\"clickOrganisation($event)\" [attr.href]=\"organisationUrl\">\n <div\n class=\"group cursor-pointer rounded-lg h-full flex flex-col\"\n [title]=\"organisation.name\"\n >\n <div\n class=\"flex-shrink-0 bg-gray-100 rounded-lg overflow-hidden w-full border border-gray-300 h-36\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"organisation.logoUrl\"\n [fit]=\"'contain'\"\n >\n </gn-ui-thumbnail>\n </div>\n <div class=\"px-3 pb-2 capitalize flex flex-col flex-grow overflow-hidden\">\n <span\n class=\"flex-shrink-0 mb-3 mt-5 font-title text-21 text-title group-hover:text-primary line-clamp-2 sm:mt-2 transition-colors\"\n data-cy=\"organizationName\"\n >\n {{ organisation.name }}</span\n >\n <p\n class=\"abstract mt-4 mb-5 sm:mb-2 sm:mt-0 flex-grow flex-shrink-1 overflow-hidden\"\n data-cy=\"organizationDesc\"\n >\n {{ organisation.description }}\n </p>\n <div class=\"flex-shrink-0 text-primary opacity-50 flex leading-6\">\n <mat-icon class=\"material-symbols-outlined text-primary opacity-50 mr-1\"\n >folder_open\n </mat-icon>\n <span class=\"mx-1\" data-cy=\"organizationRecordsCount\">{{\n organisation.recordCount\n }}</span>\n <span translate>record.metadata.publications</span>\n </div>\n </div>\n </div>\n</a>\n", styles: [".abstract{position:relative}.abstract:after{content:\"\";position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,white,transparent);height:10px}\n"], dependencies: [{ kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30470
30757
|
}
|
|
30471
30758
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
|
|
30472
30759
|
type: Component,
|
|
@@ -31553,11 +31840,11 @@ class RecordFormComponent {
|
|
|
31553
31840
|
return field.config.model;
|
|
31554
31841
|
}
|
|
31555
31842
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31556
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31843
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["config", "value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31557
31844
|
}
|
|
31558
31845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
31559
31846
|
type: Component,
|
|
31560
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\n</div>\n" }]
|
|
31847
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, UiInputsModule], template: "<div class=\"flex flex-col gap-6\">\n <gn-ui-form-field\n *ngFor=\"let field of editorService.fields$ | async; trackBy: fieldTracker\"\n [config]=\"field.config\"\n [value]=\"field.value\"\n (valueChange)=\"handleFieldValueChange(field.config.model, $event)\"\n ></gn-ui-form-field>\n</div>\n" }]
|
|
31561
31848
|
}], ctorParameters: function () { return [{ type: EditorService }]; } });
|
|
31562
31849
|
|
|
31563
31850
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -31925,5 +32212,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
31925
32212
|
* Generated bundle index. Do not edit.
|
|
31926
32213
|
*/
|
|
31927
32214
|
|
|
31928
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldFileComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentComponent, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, Gn4MetadataMapper, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, LANGUAGES_LIST, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapUtilsWMSService, MapViewComponent, MarkdownParserComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MyOrgService, NavigationButtonComponent, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationsFromGroupsService, OrganizationsFromMetadataService, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordTableComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, 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, SearchInputComponent, SearchResultsErrorComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SiteTitleComponent, SortByComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslateTestingModule, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, dragPanCondition, dropEmptyTranslations,
|
|
32215
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldFileComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentComponent, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4MetadataMapper, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, LANGUAGES_LIST, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapUtilsWMSService, MapViewComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MyOrgService, NavigationButtonComponent, ORGANIZATIONS_STRATEGY, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationsFromGroupsService, OrganizationsFromMetadataService, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordTableComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, 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, SearchInputComponent, SearchResultsErrorComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SiteTitleComponent, SortByComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslateTestingModule, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, dragPanCondition, dropEmptyTranslations, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getThemeConfig, initSearch, initialMapState, initialState, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapLogo, mapOrganization, mapReducer, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$1 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, selectFallback, selectFallbackFields, selectField, selectTranslatedField, selectTranslatedValue, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, toModel, toXml, totalPages, updateLayer };
|
|
31929
32216
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|