geonetwork-ui 2.1.0 → 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/index.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/auth/src/lib/feature-auth.module.mjs +2 -2
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +2 -2
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +4 -15
- 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/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +63 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +17 -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 +6 -3
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +3 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +9 -6
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +2 -2
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/index.mjs +4 -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 +17 -0
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +10 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +12 -6
- 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 +15 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +19 -40
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +6 -3
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +45 -0
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
- 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/app-config/src/lib/app-config.mjs +5 -1
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/i18n/src/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/libs/util/shared/src/lib/services/theme.service.mjs +8 -1
- package/esm2022/libs/util/shared/src/lib/utils/fuzzy-filter.mjs +27 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/translations/de.json +102 -84
- package/esm2022/translations/en.json +40 -22
- package/esm2022/translations/es.json +18 -0
- package/esm2022/translations/fr.json +26 -8
- package/esm2022/translations/it.json +27 -6
- package/esm2022/translations/nl.json +18 -0
- package/esm2022/translations/pt.json +18 -0
- package/fesm2022/geonetwork-ui.mjs +801 -257
- 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/index.d.ts +1 -0
- package/libs/api/repository/src/index.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/catalog/src/lib/organisations/organisations.component.d.ts +0 -1
- package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +2 -2
- 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/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +16 -12
- 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/feature/map/src/lib/map-context/map-context.service.d.ts +1 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +3 -2
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/effects.d.ts +1 -1
- package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts +3 -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/markdown-parser/markdown-parser.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- 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 +13 -11
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +2 -4
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.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/form-field/form-field.component.d.ts +1 -1
- 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/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +2 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +1 -0
- package/libs/util/i18n/src/index.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/libs/util/shared/src/lib/services/theme.service.d.ts +1 -0
- package/libs/util/shared/src/lib/services/theme.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/fuzzy-filter.d.ts +9 -0
- package/libs/util/shared/src/lib/utils/fuzzy-filter.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/package.json +11 -6
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +1 -0
- package/src/libs/api/repository/src/index.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/auth/src/lib/feature-auth.module.ts +1 -1
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +1 -1
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +3 -17
- 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/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +55 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +63 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +9 -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 +9 -3
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +6 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +12 -4
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -4
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -1
- package/src/libs/feature/search/src/lib/state/effects.ts +1 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +1 -1
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
- package/src/libs/ui/elements/src/index.ts +3 -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 +264 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +1 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +16 -0
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +93 -27
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +7 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +59 -32
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +5 -0
- 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 +7 -0
- package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +22 -42
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +7 -4
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +47 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -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/app-config/src/lib/app-config.ts +4 -0
- package/src/libs/util/app-config/src/lib/model.ts +2 -0
- package/src/libs/util/i18n/src/index.ts +1 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/src/libs/util/shared/src/lib/services/theme.service.ts +9 -0
- package/src/libs/util/shared/src/lib/utils/fuzzy-filter.ts +32 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/tailwind.base.css +31 -1
- package/translations/de.json +102 -84
- package/translations/en.json +40 -22
- package/translations/es.json +18 -0
- package/translations/fr.json +26 -8
- package/translations/it.json +27 -6
- package/translations/nl.json +18 -0
- package/translations/pt.json +18 -0
- package/translations/sk.json +18 -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';
|
|
@@ -32,7 +32,7 @@ import WMTS, { optionsFromCapabilities } from 'ol/source/WMTS';
|
|
|
32
32
|
import { defaults, DragPan, MouseWheelZoom } from 'ol/interaction';
|
|
33
33
|
import { mouseOnly, noModifierKeys, primaryAction, platformModifierKeyOnly } from 'ol/events/condition';
|
|
34
34
|
import WMTSCapabilities from 'ol/format/WMTSCapabilities';
|
|
35
|
-
import { WmsEndpoint, sharedFetch, useCache
|
|
35
|
+
import { WmsEndpoint, WfsEndpoint, sharedFetch, useCache } from '@camptocamp/ogc-client';
|
|
36
36
|
import chroma from 'chroma-js';
|
|
37
37
|
import { register, fromEPSGCode } from 'ol/proj/proj4';
|
|
38
38
|
import proj4 from 'proj4/dist/proj4';
|
|
@@ -58,6 +58,7 @@ import * as i1$4 from '@angular/material/progress-spinner';
|
|
|
58
58
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
59
59
|
import * as i3 from '@angular/material/tooltip';
|
|
60
60
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
61
|
+
import { marked } from 'marked';
|
|
61
62
|
import EmblaCarousel from 'embla-carousel';
|
|
62
63
|
import * as i1$6 from '@angular/cdk/overlay';
|
|
63
64
|
import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
@@ -72,10 +73,13 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
72
73
|
import * as i3$2 from '@angular/material/datepicker';
|
|
73
74
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
74
75
|
import { MatInputModule } from '@angular/material/input';
|
|
76
|
+
import * as basicLightbox from 'basiclightbox';
|
|
75
77
|
import * as i1$8 from '@ngrx/effects';
|
|
76
78
|
import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
77
79
|
import tippy from 'tippy.js';
|
|
78
80
|
import { valid as valid$1 } from 'geojson-validation';
|
|
81
|
+
import { queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
82
|
+
import { Polygon } from 'ol/geom';
|
|
79
83
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
80
84
|
import * as i4$1 from '@angular/cdk/scrolling';
|
|
81
85
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
@@ -16687,20 +16691,20 @@ var de = {
|
|
|
16687
16691
|
"chart.type.line": "Liniendiagramm",
|
|
16688
16692
|
"chart.type.lineSmooth": "Geglättes Liniendiagramm",
|
|
16689
16693
|
"chart.type.pie": "Kreisdiagramm",
|
|
16690
|
-
"dashboard.labels.mySpace": "",
|
|
16691
|
-
"dashboard.records.all": "",
|
|
16692
|
-
"dashboard.records.myDraft": "",
|
|
16693
|
-
"dashboard.records.myLibrary": "",
|
|
16694
|
-
"dashboard.records.myOrg": "",
|
|
16695
|
-
"dashboard.records.myRecords": "",
|
|
16696
|
-
"dashboard.records.noRecord": "",
|
|
16697
|
-
"dashboard.records.noUser": "",
|
|
16698
|
-
"dashboard.records.publishedRecords": "",
|
|
16699
|
-
"dashboard.records.search": "",
|
|
16700
|
-
"dashboard.records.userDetail": "",
|
|
16701
|
-
"dashboard.records.userEmail": "",
|
|
16702
|
-
"dashboard.records.username": "",
|
|
16703
|
-
"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}}",
|
|
16704
16708
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Dateiformat-Erkennung",
|
|
16705
16709
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Sammeln von Datensatzinformationen",
|
|
16706
16710
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Datenauswahl",
|
|
@@ -16714,7 +16718,7 @@ var de = {
|
|
|
16714
16718
|
"datafeeder.form.datepicker": "Wissen Sie, wann der Datensatz erstellt wurde?",
|
|
16715
16719
|
"datafeeder.form.description": "Beschreiben Sie abschließend den Prozess, der zur Erstellung des Datensatzes verwendet wurde",
|
|
16716
16720
|
"datafeeder.form.dropdown": "Für welche Skala wurde er erstellt?",
|
|
16717
|
-
"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",
|
|
16718
16722
|
"datafeeder.form.title": "Geben Sie Ihrem Datensatz den besten Titel",
|
|
16719
16723
|
"datafeeder.formsPage.title": "Erzählen Sie uns mehr über Ihren Datensatz",
|
|
16720
16724
|
"datafeeder.month.april": "April",
|
|
@@ -16729,16 +16733,16 @@ var de = {
|
|
|
16729
16733
|
"datafeeder.month.november": "November",
|
|
16730
16734
|
"datafeeder.month.october": "Oktober",
|
|
16731
16735
|
"datafeeder.month.september": "September",
|
|
16732
|
-
"datafeeder.publish.hint": "Sie können diese Seite sicher verlassen. Sie werden benachrichtigt, wenn der Vorgang abgeschlossen ist",
|
|
16733
|
-
"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?",
|
|
16734
16738
|
"datafeeder.publish.subtitle": "Das Veröffentlichen kann einige Minuten dauern.",
|
|
16735
|
-
"datafeeder.publish.title": "Vielen Dank! Ihr Datensatz wird veröffentlicht",
|
|
16739
|
+
"datafeeder.publish.title": "Vielen Dank! \n Ihr Datensatz wird veröffentlicht",
|
|
16736
16740
|
"datafeeder.publish.upload": "Jetzt hochladen",
|
|
16737
16741
|
"datafeeder.publishSuccess.geonetworkRecord": "Metadatensatz",
|
|
16738
16742
|
"datafeeder.publishSuccess.illustration.title": "Erledigt, alles ist gut!",
|
|
16739
16743
|
"datafeeder.publishSuccess.mapViewer": "Kartenviewer",
|
|
16740
16744
|
"datafeeder.publishSuccess.subtitle": "Zeigen Sie Ihre Daten an in:",
|
|
16741
|
-
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! Ihr Datensatz wurde veröffentlicht",
|
|
16745
|
+
"datafeeder.publishSuccess.title": "Herzlichen Glückwunsch! \n Ihr Datensatz wurde veröffentlicht",
|
|
16742
16746
|
"datafeeder.publishSuccess.uploadAnotherData": "Ein weiteren Datensatz hochladen",
|
|
16743
16747
|
"datafeeder.summarizePage.illustration": "Kein Fehler? Los geht's!",
|
|
16744
16748
|
"datafeeder.summarizePage.previous": "Zurück",
|
|
@@ -16746,11 +16750,11 @@ var de = {
|
|
|
16746
16750
|
"datafeeder.summarizePage.title": "Sie sind fast fertig...",
|
|
16747
16751
|
"datafeeder.upload.acceptedFormats": "Akzeptierte Dateiformate:",
|
|
16748
16752
|
"datafeeder.upload.checkboxLabel": "Ich besitze die Rechte zur Veröffentlichung dieses Datensatzes",
|
|
16749
|
-
"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",
|
|
16750
16754
|
"datafeeder.upload.error.subtitle.cantOpenFile": "Bitte überprüfen Sie, ob die Datei gültig ist",
|
|
16751
16755
|
"datafeeder.upload.error.subtitle.fileFormat": "Beachten Sie: Nur SHP-Dateien",
|
|
16752
|
-
"datafeeder.upload.error.subtitle.fileSize": "Beachten Sie:
|
|
16753
|
-
"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",
|
|
16754
16758
|
"datafeeder.upload.error.title.cantOpenFile": "Fehler beim Öffnen der Datei",
|
|
16755
16759
|
"datafeeder.upload.error.title.fileFormat": "Das ausgewählte Dateiformat wird nicht unterstützt",
|
|
16756
16760
|
"datafeeder.upload.error.title.fileHasntSelected": "Keine Datei ausgewählt",
|
|
@@ -16758,19 +16762,19 @@ var de = {
|
|
|
16758
16762
|
"datafeeder.upload.error.title.noRightsToSendData": "Sie dürfen diesen Datensatz nicht veröffentlichen",
|
|
16759
16763
|
"datafeeder.upload.illustration.enrichment": "Anreicherung",
|
|
16760
16764
|
"datafeeder.upload.illustration.import": "Import",
|
|
16761
|
-
"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",
|
|
16762
16766
|
"datafeeder.upload.illustration.validation": "Validierung",
|
|
16763
|
-
"datafeeder.upload.illustration.verification": "
|
|
16767
|
+
"datafeeder.upload.illustration.verification": "Überprüfung",
|
|
16764
16768
|
"datafeeder.upload.inputLabel": "Importieren Sie Ihre Datei",
|
|
16765
16769
|
"datafeeder.upload.maxFileSize": "Maximale Dateigröße beträgt {size} MB",
|
|
16766
16770
|
"datafeeder.upload.title": "Laden Sie Ihren Datensatz hoch",
|
|
16767
16771
|
"datafeeder.upload.uploadButton": "Hochladen",
|
|
16768
|
-
"datafeeder.validation.encoding": "
|
|
16772
|
+
"datafeeder.validation.encoding": "Codierung",
|
|
16769
16773
|
"datafeeder.validation.extent.title": "Hier ist der Datensatzumfang",
|
|
16770
16774
|
"datafeeder.validation.extent.title.unknown": "Das Projektionssystem ist unbekannt",
|
|
16771
16775
|
"datafeeder.validation.projection": "Raumbezugssystem:",
|
|
16772
|
-
"datafeeder.validation.projection.unknown": "Wählen Sie ein Raumbezugssystem",
|
|
16773
|
-
"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",
|
|
16774
16778
|
"datafeeder.wizard.emptyRequiredValuesMessage": "Bitte füllen Sie die obligatorischen Felder aus",
|
|
16775
16779
|
"datafeeder.wizardSummarize.createdAt": "Erstellt am",
|
|
16776
16780
|
"datafeeder.wizardSummarize.scale": "Maßstab",
|
|
@@ -16780,16 +16784,20 @@ var de = {
|
|
|
16780
16784
|
"datahub.header.news": "Startseite",
|
|
16781
16785
|
"datahub.header.organisations": "Organisationen",
|
|
16782
16786
|
"datahub.header.popularRecords": "Die beliebtesten",
|
|
16783
|
-
"datahub.header.title.html": "<div class=\"text-white\">Entdecken Sie offene<br> Daten
|
|
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?",
|
|
16784
16791
|
"datahub.news.feed": "Nachrichtenfeed",
|
|
16785
16792
|
"datahub.news.figures": "Indikatoren",
|
|
16786
|
-
"datahub.
|
|
16793
|
+
"datahub.record.addToFavorites": "Zu Favoriten hinzufügen",
|
|
16794
|
+
"datahub.search.back": "Zurück",
|
|
16787
16795
|
"datahub.search.filter.all": "Alle",
|
|
16788
|
-
"datahub.search.filter.generatedByWfs": "Generiert durch API",
|
|
16796
|
+
"datahub.search.filter.generatedByWfs": "Generiert durch eine API",
|
|
16789
16797
|
"datahub.search.filter.others": "Andere",
|
|
16790
16798
|
"dataset.error.http": "Die Daten konnten aufgrund eines HTTP-Fehlers nicht geladen werden: \"{ info }\"",
|
|
16791
16799
|
"dataset.error.network": "Die Daten konnten aufgrund eines Netzwerkfehlers oder CORS-Beschränkungen nicht geladen werden: \"{ info }\"",
|
|
16792
|
-
"dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht
|
|
16800
|
+
"dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht gelesen werden: \"{ info }\"",
|
|
16793
16801
|
"dataset.error.unknown": "Die Daten können nicht angezeigt werden: \"{ info }\"",
|
|
16794
16802
|
"dataset.error.unsupportedType": "Der folgende Inhaltstyp wird nicht unterstützt: \"{ info }\"",
|
|
16795
16803
|
"domain.record.status.completed": "Abgeschlossen",
|
|
@@ -16797,18 +16805,18 @@ var de = {
|
|
|
16797
16805
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
16798
16806
|
"domain.record.status.removed": "Entfernt",
|
|
16799
16807
|
"domain.record.status.under_development": "In Erstellung",
|
|
16800
|
-
"domain.record.updateFrequency.asNeeded": "
|
|
16801
|
-
"domain.record.updateFrequency.continual": "
|
|
16808
|
+
"domain.record.updateFrequency.asNeeded": "Nach Bedarf",
|
|
16809
|
+
"domain.record.updateFrequency.continual": "Fortlaufend",
|
|
16802
16810
|
"domain.record.updateFrequency.day": "{count, plural, =0{0} one{Ein} other{{count}}} mal am Tag",
|
|
16803
|
-
"domain.record.updateFrequency.irregular": "
|
|
16811
|
+
"domain.record.updateFrequency.irregular": "Unregelmäßig",
|
|
16804
16812
|
"domain.record.updateFrequency.month": "{count, plural, =0{0} one{Ein} other{{count}}} mal im Monat",
|
|
16805
16813
|
"domain.record.updateFrequency.notPlanned": "Nicht geplant",
|
|
16806
|
-
"domain.record.updateFrequency.periodic": "
|
|
16814
|
+
"domain.record.updateFrequency.periodic": "Regelmäßig",
|
|
16807
16815
|
"domain.record.updateFrequency.unknown": "Unbekannt",
|
|
16808
16816
|
"domain.record.updateFrequency.week": "{count, plural, =0{0} one{Ein} other{{count}}} mal in der Woche",
|
|
16809
16817
|
"domain.record.updateFrequency.year": "{count, plural, =0{0} one{Ein} other{{count}}} mal im Jahr",
|
|
16810
16818
|
"downloads.format.unknown": "unbekannt",
|
|
16811
|
-
"downloads.wfs.featuretype.not.found": "
|
|
16819
|
+
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
16812
16820
|
dropFile: dropFile$6,
|
|
16813
16821
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
16814
16822
|
"facets.block.title.OrgForResource": "Organisation",
|
|
@@ -16843,10 +16851,18 @@ var de = {
|
|
|
16843
16851
|
"map.add.layer.file": "Aus einer Datei",
|
|
16844
16852
|
"map.add.layer.wfs": "Aus WFS",
|
|
16845
16853
|
"map.add.layer.wms": "Aus WMS",
|
|
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",
|
|
16846
16859
|
"map.layers.list": "Ebenen",
|
|
16847
16860
|
"map.loading.data": "Kartendaten werden geladen...",
|
|
16861
|
+
"map.loading.service": "Dienst wird geladen...",
|
|
16848
16862
|
"map.navigation.message": "Bitte verwenden Sie STRG + Maus (oder zwei Finger auf einem Mobilgerät), um die Karte zu navigieren",
|
|
16849
16863
|
"map.select.layer": "Datenquelle",
|
|
16864
|
+
"map.wfs.urlInput.hint": "Geben Sie die WFS URL ein",
|
|
16865
|
+
"map.wms.urlInput.hint": "Geben Sie die WMS URL ein",
|
|
16850
16866
|
"multiselect.filter.placeholder": "Suche",
|
|
16851
16867
|
"nav.back": "Zurück",
|
|
16852
16868
|
next: next$6,
|
|
@@ -16862,56 +16878,61 @@ var de = {
|
|
|
16862
16878
|
"pagination.pageOf": "von",
|
|
16863
16879
|
previous: previous$6,
|
|
16864
16880
|
"record.action.download": "Herunterladen",
|
|
16865
|
-
"record.action.view": "
|
|
16881
|
+
"record.action.view": "Anzeigen",
|
|
16866
16882
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
16867
16883
|
"record.metadata.about": "Beschreibung",
|
|
16868
16884
|
"record.metadata.api": "API",
|
|
16869
|
-
"record.metadata.api.form.closeButton": "",
|
|
16870
|
-
"record.metadata.api.form.closeForm": "",
|
|
16871
|
-
"record.metadata.api.form.create": "",
|
|
16872
|
-
"record.metadata.api.form.customUrl": "",
|
|
16873
|
-
"record.metadata.api.form.limit": "",
|
|
16874
|
-
"record.metadata.api.form.limit.all": "",
|
|
16875
|
-
"record.metadata.api.form.offset": "",
|
|
16876
|
-
"record.metadata.api.form.openForm": "",
|
|
16877
|
-
"record.metadata.api.form.reset": "",
|
|
16878
|
-
"record.metadata.api.form.title": "",
|
|
16879
|
-
"record.metadata.api.form.type": "",
|
|
16880
|
-
"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",
|
|
16881
16897
|
"record.metadata.catalog": "Katalog",
|
|
16882
16898
|
"record.metadata.contact": "Kontakt",
|
|
16883
16899
|
"record.metadata.createdOn": "Erstellt am",
|
|
16884
|
-
"record.metadata.details": "
|
|
16900
|
+
"record.metadata.details": "Technische Informationen",
|
|
16885
16901
|
"record.metadata.download": "Downloads",
|
|
16886
|
-
"record.metadata.formats": "",
|
|
16902
|
+
"record.metadata.formats": "Formate",
|
|
16887
16903
|
"record.metadata.isOpenData": "Open Data",
|
|
16888
16904
|
"record.metadata.keywords": "Stichworte",
|
|
16905
|
+
"record.metadata.lastUpdate": "Zuletzt aktualisiert am",
|
|
16889
16906
|
"record.metadata.links": "Links",
|
|
16890
|
-
"record.metadata.noUsage": "Für diesen Datensatz sind keine
|
|
16907
|
+
"record.metadata.noUsage": "Für diesen Datensatz sind keine Nutzungsbedingungen angegeben.",
|
|
16891
16908
|
"record.metadata.origin": "Über die Daten",
|
|
16909
|
+
"record.metadata.owner": "",
|
|
16892
16910
|
"record.metadata.preview": "Vorschau",
|
|
16893
16911
|
"record.metadata.publications": "Veröffentlichungen",
|
|
16894
|
-
"record.metadata.quality": "",
|
|
16895
|
-
"record.metadata.quality.contact.failed": "",
|
|
16896
|
-
"record.metadata.quality.contact.success": "",
|
|
16897
|
-
"record.metadata.quality.description.failed": "",
|
|
16898
|
-
"record.metadata.quality.description.success": "",
|
|
16899
|
-
"record.metadata.quality.details": "",
|
|
16900
|
-
"record.metadata.quality.keywords.failed": "",
|
|
16901
|
-
"record.metadata.quality.keywords.success": "",
|
|
16902
|
-
"record.metadata.quality.legalConstraints.failed": "",
|
|
16903
|
-
"record.metadata.quality.legalConstraints.success": "",
|
|
16904
|
-
"record.metadata.quality.organisation.failed": "",
|
|
16905
|
-
"record.metadata.quality.organisation.success": "",
|
|
16906
|
-
"record.metadata.quality.title.failed": "",
|
|
16907
|
-
"record.metadata.quality.title.success": "",
|
|
16908
|
-
"record.metadata.quality.topic.failed": "",
|
|
16909
|
-
"record.metadata.quality.topic.success": "",
|
|
16910
|
-
"record.metadata.quality.updateFrequency.failed": "",
|
|
16911
|
-
"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",
|
|
16912
16930
|
"record.metadata.related": "Ähnliche Datensätze",
|
|
16913
|
-
"record.metadata.sheet": "Weitere Informationen
|
|
16931
|
+
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
16932
|
+
"record.metadata.themes": "Kategorien",
|
|
16914
16933
|
"record.metadata.title": "Titel",
|
|
16934
|
+
"record.metadata.type": "Geographischer Datensatz",
|
|
16935
|
+
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
16915
16936
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
16916
16937
|
"record.metadata.updateStatus": "Aktualisierungsstatus der Daten",
|
|
16917
16938
|
"record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen",
|
|
@@ -16923,23 +16944,23 @@ var de = {
|
|
|
16923
16944
|
"record.was.created.time": "erstellte diesen Datensatz {time}",
|
|
16924
16945
|
records: records$6,
|
|
16925
16946
|
"results.layout.selectOne": "Layout auswählen",
|
|
16926
|
-
"results.records.hits.displayedOn": "{displayed, plural, =0{Kein Datensatz.} one{1 Datensatz} other{{displayed} Datensätze }} {hits, plural, other{
|
|
16927
|
-
"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>",
|
|
16928
16949
|
"results.records.hits.found": "{hits, plural, =0{Keine Dokumente entsprechen der angegebenen Suche.} one{1 Datensatz gefunden.} other{{hits} Datensätze gefunden.}}",
|
|
16929
|
-
"results.records.hits.selected": "",
|
|
16950
|
+
"results.records.hits.selected": "{ amount } ausgewählt",
|
|
16930
16951
|
"results.showMore": "Mehr Ergebnisse anzeigen...",
|
|
16931
|
-
"results.sortBy.dateStamp": "
|
|
16952
|
+
"results.sortBy.dateStamp": "Neueste",
|
|
16932
16953
|
"results.sortBy.popularity": "Beliebtheit",
|
|
16933
|
-
"results.sortBy.qualityScore": "",
|
|
16954
|
+
"results.sortBy.qualityScore": "Qualitätsbewertung",
|
|
16934
16955
|
"results.sortBy.relevancy": "Relevanz",
|
|
16935
16956
|
"search.autocomplete.error": "Vorschläge konnten nicht abgerufen werden:",
|
|
16936
16957
|
"search.error.couldNotReachApi": "Die API konnte nicht erreicht werden",
|
|
16937
|
-
"search.error.receivedError": "Ein Fehler
|
|
16958
|
+
"search.error.receivedError": "Ein Fehler ist aufgetreten",
|
|
16938
16959
|
"search.error.recordNotFound": "Der Datensatz mit der Kennung \"{ id }\" konnte nicht gefunden werden.",
|
|
16939
|
-
"search.field.any.placeholder": "Suche
|
|
16960
|
+
"search.field.any.placeholder": "Suche Datensätze ...",
|
|
16940
16961
|
"search.field.sortBy": "Sortieren nach:",
|
|
16941
16962
|
"search.filters.clear": "Zurücksetzen",
|
|
16942
|
-
"search.filters.contact": "
|
|
16963
|
+
"search.filters.contact": "Kontakte",
|
|
16943
16964
|
"search.filters.format": "Formate",
|
|
16944
16965
|
"search.filters.inspireKeyword": "INSPIRE-Schlüsselwort",
|
|
16945
16966
|
"search.filters.isSpatial": "Ist räumliche Daten",
|
|
@@ -16957,13 +16978,13 @@ var de = {
|
|
|
16957
16978
|
"search.filters.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
16958
16979
|
"search.filters.maximize": "Erweitern",
|
|
16959
16980
|
"search.filters.minimize": "Minimieren",
|
|
16960
|
-
"search.filters.myRecords": "",
|
|
16961
|
-
"search.filters.myRecordsHelp": "",
|
|
16962
|
-
"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",
|
|
16963
16984
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
16964
16985
|
"search.filters.publisher": "Organisationen",
|
|
16965
|
-
"search.filters.representationType": "",
|
|
16966
|
-
"search.filters.resourceType": "",
|
|
16986
|
+
"search.filters.representationType": "Repräsentationstyp",
|
|
16987
|
+
"search.filters.resourceType": "Ressourcentyp",
|
|
16967
16988
|
"search.filters.standard": "Standard",
|
|
16968
16989
|
"search.filters.title": "Ergebnisse filtern",
|
|
16969
16990
|
"search.filters.topic": "Thema",
|
|
@@ -16975,6 +16996,7 @@ var de = {
|
|
|
16975
16996
|
"table.object.count": "Objekte in diesem Datensatz",
|
|
16976
16997
|
"table.select.data": "Datenquelle",
|
|
16977
16998
|
"tooltip.html.copy": "HTML kopieren",
|
|
16999
|
+
"tooltip.id.copy": "",
|
|
16978
17000
|
"tooltip.url.copy": "URL kopieren",
|
|
16979
17001
|
"tooltip.url.open": "URL öffnen",
|
|
16980
17002
|
"ui.readLess": "Weniger lesen",
|
|
@@ -17016,12 +17038,12 @@ var en = {
|
|
|
17016
17038
|
"dashboard.records.myRecords": "My Records",
|
|
17017
17039
|
"dashboard.records.noRecord": "No record for this organization",
|
|
17018
17040
|
"dashboard.records.noUser": "No users for this organization",
|
|
17019
|
-
"dashboard.records.publishedRecords": "published records",
|
|
17041
|
+
"dashboard.records.publishedRecords": "{count, plural, =1{published record} other{published records}}",
|
|
17020
17042
|
"dashboard.records.search": "Search for \"{searchText}\"",
|
|
17021
17043
|
"dashboard.records.userDetail": "Name",
|
|
17022
17044
|
"dashboard.records.userEmail": "Email",
|
|
17023
17045
|
"dashboard.records.username": "Username",
|
|
17024
|
-
"dashboard.records.users": "users",
|
|
17046
|
+
"dashboard.records.users": "{count, plural, =1{user} other{users}}",
|
|
17025
17047
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "File format \n detection",
|
|
17026
17048
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Gathering dataset \n information",
|
|
17027
17049
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n data",
|
|
@@ -17102,9 +17124,13 @@ var en = {
|
|
|
17102
17124
|
"datahub.header.organisations": "Organisations",
|
|
17103
17125
|
"datahub.header.popularRecords": "The most popular",
|
|
17104
17126
|
"datahub.header.title.html": "<div class=\"text-white\">Discover open<br> data from my Organization</div>",
|
|
17127
|
+
"datahub.news.contact.contactus": "Contact us",
|
|
17128
|
+
"datahub.news.contact.html": "<p>Do you need data that is not currently present on the platform?</p><p>Our teams are here to answer you.</p>",
|
|
17129
|
+
"datahub.news.contact.title": "A specific need?",
|
|
17105
17130
|
"datahub.news.feed": "News feed",
|
|
17106
17131
|
"datahub.news.figures": "Indicators",
|
|
17107
|
-
"datahub.
|
|
17132
|
+
"datahub.record.addToFavorites": "Add to favorites",
|
|
17133
|
+
"datahub.search.back": "Back",
|
|
17108
17134
|
"datahub.search.filter.all": "All",
|
|
17109
17135
|
"datahub.search.filter.generatedByWfs": "generated by an API",
|
|
17110
17136
|
"datahub.search.filter.others": "Others",
|
|
@@ -17164,10 +17190,18 @@ var en = {
|
|
|
17164
17190
|
"map.add.layer.file": "From a file",
|
|
17165
17191
|
"map.add.layer.wfs": "From WFS",
|
|
17166
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).",
|
|
17196
|
+
"map.layer.add": "Add",
|
|
17197
|
+
"map.layers.available": "Available Layers",
|
|
17167
17198
|
"map.layers.list": "Layers",
|
|
17168
17199
|
"map.loading.data": "Loading map data...",
|
|
17200
|
+
"map.loading.service": "Loading service...",
|
|
17169
17201
|
"map.navigation.message": "Please use CTRL + mouse (or two fingers on mobile) to navigate the map",
|
|
17170
17202
|
"map.select.layer": "Data source",
|
|
17203
|
+
"map.wfs.urlInput.hint": "Enter WFS service URL",
|
|
17204
|
+
"map.wms.urlInput.hint": "Enter WMS service URL",
|
|
17171
17205
|
"multiselect.filter.placeholder": "Search",
|
|
17172
17206
|
"nav.back": "Back",
|
|
17173
17207
|
next: next$5,
|
|
@@ -17202,40 +17236,45 @@ var en = {
|
|
|
17202
17236
|
"record.metadata.catalog": "Catalog",
|
|
17203
17237
|
"record.metadata.contact": "Contact",
|
|
17204
17238
|
"record.metadata.createdOn": "Created on",
|
|
17205
|
-
"record.metadata.details": "
|
|
17239
|
+
"record.metadata.details": "Technical information",
|
|
17206
17240
|
"record.metadata.download": "Downloads",
|
|
17207
17241
|
"record.metadata.formats": "Formats",
|
|
17208
17242
|
"record.metadata.isOpenData": "Open Data",
|
|
17209
17243
|
"record.metadata.keywords": "Keywords",
|
|
17244
|
+
"record.metadata.lastUpdate": "Last updated on",
|
|
17210
17245
|
"record.metadata.links": "Links",
|
|
17211
17246
|
"record.metadata.noUsage": "No usage conditions specified for this record.",
|
|
17212
17247
|
"record.metadata.origin": "About the data",
|
|
17248
|
+
"record.metadata.owner": "Catalog of origin",
|
|
17213
17249
|
"record.metadata.preview": "Preview",
|
|
17214
17250
|
"record.metadata.publications": "publications",
|
|
17215
17251
|
"record.metadata.quality": "Metadata Quality",
|
|
17216
|
-
"record.metadata.quality.contact.failed": "Contact is not
|
|
17217
|
-
"record.metadata.quality.contact.success": "Contact is
|
|
17218
|
-
"record.metadata.quality.description.failed": "Description is not
|
|
17219
|
-
"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",
|
|
17220
17256
|
"record.metadata.quality.details": "Details",
|
|
17221
|
-
"record.metadata.quality.keywords.failed": "Keywords are not
|
|
17222
|
-
"record.metadata.quality.keywords.success": "Keywords are
|
|
17223
|
-
"record.metadata.quality.legalConstraints.failed": "Legal constraints are not
|
|
17224
|
-
"record.metadata.quality.legalConstraints.success": "Legal constraints are
|
|
17225
|
-
"record.metadata.quality.organisation.failed": "Organisation is not
|
|
17226
|
-
"record.metadata.quality.organisation.success": "Organisation is
|
|
17227
|
-
"record.metadata.quality.title.failed": "Title is not
|
|
17228
|
-
"record.metadata.quality.title.success": "Title is
|
|
17229
|
-
"record.metadata.quality.topic.failed": "Topic is not
|
|
17230
|
-
"record.metadata.quality.topic.success": "Topic is
|
|
17231
|
-
"record.metadata.quality.updateFrequency.failed": "Update frequency is not
|
|
17232
|
-
"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",
|
|
17233
17269
|
"record.metadata.related": "Related records",
|
|
17234
|
-
"record.metadata.sheet": "
|
|
17270
|
+
"record.metadata.sheet": "Original metadata",
|
|
17271
|
+
"record.metadata.themes": "Categories",
|
|
17235
17272
|
"record.metadata.title": "Title",
|
|
17273
|
+
"record.metadata.type": "Geographical dataset",
|
|
17274
|
+
"record.metadata.uniqueId": "Unique Identifier",
|
|
17236
17275
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
17237
17276
|
"record.metadata.updateStatus": "Data Update Status",
|
|
17238
|
-
"record.metadata.updatedOn": "
|
|
17277
|
+
"record.metadata.updatedOn": "Metadata's last update",
|
|
17239
17278
|
"record.metadata.usage": "Usage & constraints",
|
|
17240
17279
|
"record.more.details": "Read more",
|
|
17241
17280
|
"record.tab.chart": "Chart",
|
|
@@ -17296,6 +17335,7 @@ var en = {
|
|
|
17296
17335
|
"table.object.count": "objects in this dataset",
|
|
17297
17336
|
"table.select.data": "Data source",
|
|
17298
17337
|
"tooltip.html.copy": "Copy HTML",
|
|
17338
|
+
"tooltip.id.copy": "Copy unique identifier",
|
|
17299
17339
|
"tooltip.url.copy": "Copy URL",
|
|
17300
17340
|
"tooltip.url.open": "Open URL",
|
|
17301
17341
|
"ui.readLess": "Read less",
|
|
@@ -17423,8 +17463,12 @@ var es = {
|
|
|
17423
17463
|
"datahub.header.organisations": "",
|
|
17424
17464
|
"datahub.header.popularRecords": "",
|
|
17425
17465
|
"datahub.header.title.html": "",
|
|
17466
|
+
"datahub.news.contact.contactus": "",
|
|
17467
|
+
"datahub.news.contact.html": "",
|
|
17468
|
+
"datahub.news.contact.title": "",
|
|
17426
17469
|
"datahub.news.feed": "",
|
|
17427
17470
|
"datahub.news.figures": "",
|
|
17471
|
+
"datahub.record.addToFavorites": "",
|
|
17428
17472
|
"datahub.search.back": "",
|
|
17429
17473
|
"datahub.search.filter.all": "",
|
|
17430
17474
|
"datahub.search.filter.generatedByWfs": "",
|
|
@@ -17485,10 +17529,18 @@ var es = {
|
|
|
17485
17529
|
"map.add.layer.file": "",
|
|
17486
17530
|
"map.add.layer.wfs": "",
|
|
17487
17531
|
"map.add.layer.wms": "",
|
|
17532
|
+
"map.addFromFile.placeholder": "",
|
|
17533
|
+
"map.geocoding.placeholder": "",
|
|
17534
|
+
"map.help.addFromFile": "",
|
|
17535
|
+
"map.layer.add": "",
|
|
17536
|
+
"map.layers.available": "",
|
|
17488
17537
|
"map.layers.list": "",
|
|
17489
17538
|
"map.loading.data": "",
|
|
17539
|
+
"map.loading.service": "",
|
|
17490
17540
|
"map.navigation.message": "",
|
|
17491
17541
|
"map.select.layer": "",
|
|
17542
|
+
"map.wfs.urlInput.hint": "",
|
|
17543
|
+
"map.wms.urlInput.hint": "",
|
|
17492
17544
|
"multiselect.filter.placeholder": "",
|
|
17493
17545
|
"nav.back": "",
|
|
17494
17546
|
next: next$4,
|
|
@@ -17528,9 +17580,11 @@ var es = {
|
|
|
17528
17580
|
"record.metadata.formats": "",
|
|
17529
17581
|
"record.metadata.isOpenData": "",
|
|
17530
17582
|
"record.metadata.keywords": "",
|
|
17583
|
+
"record.metadata.lastUpdate": "",
|
|
17531
17584
|
"record.metadata.links": "",
|
|
17532
17585
|
"record.metadata.noUsage": "",
|
|
17533
17586
|
"record.metadata.origin": "",
|
|
17587
|
+
"record.metadata.owner": "",
|
|
17534
17588
|
"record.metadata.preview": "",
|
|
17535
17589
|
"record.metadata.publications": "",
|
|
17536
17590
|
"record.metadata.quality": "",
|
|
@@ -17553,7 +17607,10 @@ var es = {
|
|
|
17553
17607
|
"record.metadata.quality.updateFrequency.success": "",
|
|
17554
17608
|
"record.metadata.related": "",
|
|
17555
17609
|
"record.metadata.sheet": "",
|
|
17610
|
+
"record.metadata.themes": "",
|
|
17556
17611
|
"record.metadata.title": "",
|
|
17612
|
+
"record.metadata.type": "",
|
|
17613
|
+
"record.metadata.uniqueId": "",
|
|
17557
17614
|
"record.metadata.updateFrequency": "",
|
|
17558
17615
|
"record.metadata.updateStatus": "",
|
|
17559
17616
|
"record.metadata.updatedOn": "",
|
|
@@ -17617,6 +17674,7 @@ var es = {
|
|
|
17617
17674
|
"table.object.count": "",
|
|
17618
17675
|
"table.select.data": "",
|
|
17619
17676
|
"tooltip.html.copy": "",
|
|
17677
|
+
"tooltip.id.copy": "",
|
|
17620
17678
|
"tooltip.url.copy": "",
|
|
17621
17679
|
"tooltip.url.open": "",
|
|
17622
17680
|
"ui.readLess": "",
|
|
@@ -17658,12 +17716,12 @@ var fr = {
|
|
|
17658
17716
|
"dashboard.records.myRecords": "Mes fiches publiées",
|
|
17659
17717
|
"dashboard.records.noRecord": "Aucun jeu de données pour cette organisation",
|
|
17660
17718
|
"dashboard.records.noUser": "Aucun utilisateur pour cette organisation",
|
|
17661
|
-
"dashboard.records.publishedRecords": "données publiées",
|
|
17719
|
+
"dashboard.records.publishedRecords": "{count, plural, =1{donnée publiée} other{données publiées}}",
|
|
17662
17720
|
"dashboard.records.search": "Résultats pour \"{searchText}\"",
|
|
17663
17721
|
"dashboard.records.userDetail": "Nom",
|
|
17664
17722
|
"dashboard.records.userEmail": "Email",
|
|
17665
17723
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
17666
|
-
"dashboard.records.users": "utilisateurs",
|
|
17724
|
+
"dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
|
|
17667
17725
|
"datafeeder.analysisProgressBar.illustration.fileFormatDetection": "Détection du \n format de fichier",
|
|
17668
17726
|
"datafeeder.analysisProgressBar.illustration.gatheringDatasetInformation": "Récupération des informations \n sur le jeu de données",
|
|
17669
17727
|
"datafeeder.analysisProgressBar.illustration.samplingData": "Sampling \n des données",
|
|
@@ -17744,9 +17802,13 @@ var fr = {
|
|
|
17744
17802
|
"datahub.header.organisations": "Organisations",
|
|
17745
17803
|
"datahub.header.popularRecords": "Les plus appréciées",
|
|
17746
17804
|
"datahub.header.title.html": "<div class=\"text-white\">Toutes les données<br>publiques de mon organisation</div>",
|
|
17805
|
+
"datahub.news.contact.contactus": "Contactez-nous",
|
|
17806
|
+
"datahub.news.contact.html": "<p>Vous avez besoin de données qui ne sont pas présentes sur la plateforme actuellement ? </p><p> Nos équipes sont la pour vous répondre.</p>",
|
|
17807
|
+
"datahub.news.contact.title": "Un besoin spécifique ?",
|
|
17747
17808
|
"datahub.news.feed": "Fil d'activité",
|
|
17748
17809
|
"datahub.news.figures": "Quelques chiffres",
|
|
17749
|
-
"datahub.
|
|
17810
|
+
"datahub.record.addToFavorites": "Ajouter aux favoris",
|
|
17811
|
+
"datahub.search.back": "Retour",
|
|
17750
17812
|
"datahub.search.filter.all": "Tous",
|
|
17751
17813
|
"datahub.search.filter.generatedByWfs": "généré par une API",
|
|
17752
17814
|
"datahub.search.filter.others": "Autres",
|
|
@@ -17806,10 +17868,18 @@ var fr = {
|
|
|
17806
17868
|
"map.add.layer.file": "",
|
|
17807
17869
|
"map.add.layer.wfs": "",
|
|
17808
17870
|
"map.add.layer.wms": "",
|
|
17871
|
+
"map.addFromFile.placeholder": "",
|
|
17872
|
+
"map.geocoding.placeholder": "",
|
|
17873
|
+
"map.help.addFromFile": "",
|
|
17874
|
+
"map.layer.add": "",
|
|
17875
|
+
"map.layers.available": "",
|
|
17809
17876
|
"map.layers.list": "",
|
|
17810
17877
|
"map.loading.data": "Chargement des données...",
|
|
17878
|
+
"map.loading.service": "",
|
|
17811
17879
|
"map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
|
|
17812
17880
|
"map.select.layer": "Source de données",
|
|
17881
|
+
"map.wfs.urlInput.hint": "",
|
|
17882
|
+
"map.wms.urlInput.hint": "",
|
|
17813
17883
|
"multiselect.filter.placeholder": "Rechercher",
|
|
17814
17884
|
"nav.back": "Retour",
|
|
17815
17885
|
next: next$3,
|
|
@@ -17844,14 +17914,16 @@ var fr = {
|
|
|
17844
17914
|
"record.metadata.catalog": "Catalogue",
|
|
17845
17915
|
"record.metadata.contact": "Contact",
|
|
17846
17916
|
"record.metadata.createdOn": "Créé le",
|
|
17847
|
-
"record.metadata.details": "
|
|
17917
|
+
"record.metadata.details": "Informations techniques",
|
|
17848
17918
|
"record.metadata.download": "Téléchargements",
|
|
17849
17919
|
"record.metadata.formats": "Formats",
|
|
17850
17920
|
"record.metadata.isOpenData": "Donnée Ouverte",
|
|
17851
17921
|
"record.metadata.keywords": "Mots clés",
|
|
17922
|
+
"record.metadata.lastUpdate": "Mis à jour le",
|
|
17852
17923
|
"record.metadata.links": "Liens",
|
|
17853
17924
|
"record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données",
|
|
17854
17925
|
"record.metadata.origin": "À propos des données",
|
|
17926
|
+
"record.metadata.owner": "Catalogue d'origine",
|
|
17855
17927
|
"record.metadata.preview": "Aperçu",
|
|
17856
17928
|
"record.metadata.publications": "données",
|
|
17857
17929
|
"record.metadata.quality": "Qualité des métadonnées",
|
|
@@ -17873,11 +17945,14 @@ var fr = {
|
|
|
17873
17945
|
"record.metadata.quality.updateFrequency.failed": "Fréquence de mise à jour n'est pas renseignée",
|
|
17874
17946
|
"record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée",
|
|
17875
17947
|
"record.metadata.related": "Voir aussi",
|
|
17876
|
-
"record.metadata.sheet": "
|
|
17948
|
+
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
17949
|
+
"record.metadata.themes": "Catégories",
|
|
17877
17950
|
"record.metadata.title": "Titre",
|
|
17951
|
+
"record.metadata.type": "Donnée géographique",
|
|
17952
|
+
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
17878
17953
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
17879
17954
|
"record.metadata.updateStatus": "Statut de mise à jour des données",
|
|
17880
|
-
"record.metadata.updatedOn": "
|
|
17955
|
+
"record.metadata.updatedOn": "Mise à jour de la fiche de métadonnée",
|
|
17881
17956
|
"record.metadata.usage": "Conditions d'utilisation",
|
|
17882
17957
|
"record.more.details": "Détails",
|
|
17883
17958
|
"record.tab.chart": "Graphique",
|
|
@@ -17886,10 +17961,10 @@ var fr = {
|
|
|
17886
17961
|
"record.was.created.time": "a créé ce jeu de données {time}",
|
|
17887
17962
|
records: records$3,
|
|
17888
17963
|
"results.layout.selectOne": "Affichage des résultats",
|
|
17889
|
-
"results.records.hits.displayedOn": "",
|
|
17964
|
+
"results.records.hits.displayedOn": "{displayed, plural, =0{Aucun enregistrement} one{1 enregistrement affiché} other{{displayed} enregistrements affichés}} {hits, plural, other{sur {hits} au total.}}",
|
|
17890
17965
|
"results.records.hits.empty.help.html": "Suggestions : <ul class='list-disc list-inside'><li>Essayez d'autres mots clés</li><li>Cherchez moins de mots</li></ul>",
|
|
17891
17966
|
"results.records.hits.found": "{hits, plural, =0{Aucune correspondance.} one{1 enregistrement trouvé.} other{{hits} résultats.}}",
|
|
17892
|
-
"results.records.hits.selected": "",
|
|
17967
|
+
"results.records.hits.selected": "{amount, plural, one{1 selectionnée} other{{ amount } sélectionnées}}",
|
|
17893
17968
|
"results.showMore": "Plus de résultats...",
|
|
17894
17969
|
"results.sortBy.dateStamp": "Plus récent",
|
|
17895
17970
|
"results.sortBy.popularity": "Popularité",
|
|
@@ -17938,6 +18013,7 @@ var fr = {
|
|
|
17938
18013
|
"table.object.count": "enregistrements dans ces données",
|
|
17939
18014
|
"table.select.data": "Source de données",
|
|
17940
18015
|
"tooltip.html.copy": "Copier le HTML",
|
|
18016
|
+
"tooltip.id.copy": "Copier l'identifiant unique",
|
|
17941
18017
|
"tooltip.url.copy": "Copier l'URL",
|
|
17942
18018
|
"tooltip.url.open": "Ouvrir l'URL",
|
|
17943
18019
|
"ui.readLess": "Réduire",
|
|
@@ -18065,9 +18141,13 @@ var it = {
|
|
|
18065
18141
|
"datahub.header.organisations": "Organizzazioni",
|
|
18066
18142
|
"datahub.header.popularRecords": "Più popolari",
|
|
18067
18143
|
"datahub.header.title.html": "<div class=\"text-white\">Tutti i dati<br>pubblici della mia organizzazione</div>",
|
|
18144
|
+
"datahub.news.contact.contactus": "Contattateci",
|
|
18145
|
+
"datahub.news.contact.html": "<p>Ha bisogno di dati che non sono attualmente disponibili sulla piattaforma? </p><p> I nostri team sono qui per aiutarla.</p>",
|
|
18146
|
+
"datahub.news.contact.title": "Ha un bisogno specifico?",
|
|
18068
18147
|
"datahub.news.feed": "Feed di attività",
|
|
18069
18148
|
"datahub.news.figures": "Alcune figure",
|
|
18070
|
-
"datahub.
|
|
18149
|
+
"datahub.record.addToFavorites": "Aggiungere a miei preferiti",
|
|
18150
|
+
"datahub.search.back": "Ritorna",
|
|
18071
18151
|
"datahub.search.filter.all": "Tutti",
|
|
18072
18152
|
"datahub.search.filter.generatedByWfs": "generato da un'API",
|
|
18073
18153
|
"datahub.search.filter.others": "Altri",
|
|
@@ -18094,6 +18174,7 @@ var it = {
|
|
|
18094
18174
|
"downloads.format.unknown": "sconosciuto",
|
|
18095
18175
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
18096
18176
|
dropFile: dropFile$2,
|
|
18177
|
+
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
18097
18178
|
"facets.block.title.OrgForResource": "Organizzazione",
|
|
18098
18179
|
"facets.block.title.availableInServices": "Disponibile per",
|
|
18099
18180
|
"facets.block.title.cl_hierarchyLevel.key": "Tipo di risorsa",
|
|
@@ -18126,10 +18207,18 @@ var it = {
|
|
|
18126
18207
|
"map.add.layer.file": "Da un file",
|
|
18127
18208
|
"map.add.layer.wfs": "Da un WFS",
|
|
18128
18209
|
"map.add.layer.wms": "Da un WMS",
|
|
18210
|
+
"map.addFromFile.placeholder": "",
|
|
18211
|
+
"map.geocoding.placeholder": "",
|
|
18212
|
+
"map.help.addFromFile": "",
|
|
18213
|
+
"map.layer.add": "",
|
|
18214
|
+
"map.layers.available": "",
|
|
18129
18215
|
"map.layers.list": "Layers",
|
|
18130
18216
|
"map.loading.data": "Caricamento dati...",
|
|
18217
|
+
"map.loading.service": "",
|
|
18131
18218
|
"map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
|
|
18132
18219
|
"map.select.layer": "Sorgente dati",
|
|
18220
|
+
"map.wfs.urlInput.hint": "",
|
|
18221
|
+
"map.wms.urlInput.hint": "",
|
|
18133
18222
|
"multiselect.filter.placeholder": "Cerca",
|
|
18134
18223
|
"nav.back": "Indietro",
|
|
18135
18224
|
next: next$2,
|
|
@@ -18164,14 +18253,16 @@ var it = {
|
|
|
18164
18253
|
"record.metadata.catalog": "Catalogo",
|
|
18165
18254
|
"record.metadata.contact": "Contatto",
|
|
18166
18255
|
"record.metadata.createdOn": "Creato il",
|
|
18167
|
-
"record.metadata.details": "
|
|
18256
|
+
"record.metadata.details": "Informazioni tecniche",
|
|
18168
18257
|
"record.metadata.download": "Download",
|
|
18169
18258
|
"record.metadata.formats": "Formati",
|
|
18170
18259
|
"record.metadata.isOpenData": "Data aperta",
|
|
18171
18260
|
"record.metadata.keywords": "Parole chiave",
|
|
18261
|
+
"record.metadata.lastUpdate": "Ultimo aggiornamento",
|
|
18172
18262
|
"record.metadata.links": "Collegamenti",
|
|
18173
18263
|
"record.metadata.noUsage": "Nessuna condizione d'uso specificata per questi dati",
|
|
18174
18264
|
"record.metadata.origin": "Informazioni sui dati",
|
|
18265
|
+
"record.metadata.owner": "Catalogo originale",
|
|
18175
18266
|
"record.metadata.preview": "Anteprima",
|
|
18176
18267
|
"record.metadata.publications": "pubblicazioni",
|
|
18177
18268
|
"record.metadata.quality": "Qualità dei metadati",
|
|
@@ -18193,11 +18284,14 @@ var it = {
|
|
|
18193
18284
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
18194
18285
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
18195
18286
|
"record.metadata.related": "Vedi anche",
|
|
18196
|
-
"record.metadata.sheet": "
|
|
18287
|
+
"record.metadata.sheet": "Origine del metadata",
|
|
18288
|
+
"record.metadata.themes": "Categorie",
|
|
18197
18289
|
"record.metadata.title": "Titolo",
|
|
18290
|
+
"record.metadata.type": "Dati geografici",
|
|
18291
|
+
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
18198
18292
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
18199
18293
|
"record.metadata.updateStatus": "Stato di aggiornamento dei dati",
|
|
18200
|
-
"record.metadata.updatedOn": "Ultimo aggiornamento
|
|
18294
|
+
"record.metadata.updatedOn": "Ultimo aggiornamento del metadata",
|
|
18201
18295
|
"record.metadata.usage": "Condizioni d'uso",
|
|
18202
18296
|
"record.more.details": "Dettagli",
|
|
18203
18297
|
"record.tab.chart": "Grafico",
|
|
@@ -18206,10 +18300,10 @@ var it = {
|
|
|
18206
18300
|
"record.was.created.time": "ha creato questi dati {time}",
|
|
18207
18301
|
records: records$2,
|
|
18208
18302
|
"results.layout.selectOne": "Mostra risultati",
|
|
18209
|
-
"results.records.hits.displayedOn": "",
|
|
18303
|
+
"results.records.hits.displayedOn": "{displayed, plural, =0{Nessun record} one{1 record visualizzato} other{{displayed} records visualizzati}} {hits, plural, other{su {hits} in totale.}}",
|
|
18210
18304
|
"results.records.hits.empty.help.html": "Suggerimenti: <ul class='list-disc list-inside'><li>Prova con altre parole chiave</li><li>Cerca con meno parole</li></ul>",
|
|
18211
18305
|
"results.records.hits.found": "{hits, plural, =0{Nessuna corrispondenza.} one{1 record trovato.} other{{hits} risultati.}}",
|
|
18212
|
-
"results.records.hits.selected": "",
|
|
18306
|
+
"results.records.hits.selected": "{amount, plural, one{1 selezionato} other{{ amount } selezionati}}",
|
|
18213
18307
|
"results.showMore": "Altri risultati...",
|
|
18214
18308
|
"results.sortBy.dateStamp": "Più recente",
|
|
18215
18309
|
"results.sortBy.popularity": "Popolarità",
|
|
@@ -18258,8 +18352,11 @@ var it = {
|
|
|
18258
18352
|
"table.object.count": "record in questi dati",
|
|
18259
18353
|
"table.select.data": "Sorgente dati",
|
|
18260
18354
|
"tooltip.html.copy": "Copiare il HTML",
|
|
18355
|
+
"tooltip.id.copy": "Copiare l'identificatore unico",
|
|
18261
18356
|
"tooltip.url.copy": "Copiare l'URL",
|
|
18262
18357
|
"tooltip.url.open": "Aprire l'URL",
|
|
18358
|
+
"ui.readLess": "Ridurre",
|
|
18359
|
+
"ui.readMore": "Leggi di più",
|
|
18263
18360
|
"wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
|
|
18264
18361
|
"wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
|
|
18265
18362
|
"wfs.unreachable.cors": "Il servizio non è accessibile a causa di limitazioni CORS",
|
|
@@ -18383,8 +18480,12 @@ var nl = {
|
|
|
18383
18480
|
"datahub.header.organisations": "",
|
|
18384
18481
|
"datahub.header.popularRecords": "",
|
|
18385
18482
|
"datahub.header.title.html": "",
|
|
18483
|
+
"datahub.news.contact.contactus": "",
|
|
18484
|
+
"datahub.news.contact.html": "",
|
|
18485
|
+
"datahub.news.contact.title": "",
|
|
18386
18486
|
"datahub.news.feed": "",
|
|
18387
18487
|
"datahub.news.figures": "",
|
|
18488
|
+
"datahub.record.addToFavorites": "",
|
|
18388
18489
|
"datahub.search.back": "",
|
|
18389
18490
|
"datahub.search.filter.all": "",
|
|
18390
18491
|
"datahub.search.filter.generatedByWfs": "",
|
|
@@ -18445,10 +18546,18 @@ var nl = {
|
|
|
18445
18546
|
"map.add.layer.file": "",
|
|
18446
18547
|
"map.add.layer.wfs": "",
|
|
18447
18548
|
"map.add.layer.wms": "",
|
|
18549
|
+
"map.addFromFile.placeholder": "",
|
|
18550
|
+
"map.geocoding.placeholder": "",
|
|
18551
|
+
"map.help.addFromFile": "",
|
|
18552
|
+
"map.layer.add": "",
|
|
18553
|
+
"map.layers.available": "",
|
|
18448
18554
|
"map.layers.list": "",
|
|
18449
18555
|
"map.loading.data": "",
|
|
18556
|
+
"map.loading.service": "",
|
|
18450
18557
|
"map.navigation.message": "",
|
|
18451
18558
|
"map.select.layer": "",
|
|
18559
|
+
"map.wfs.urlInput.hint": "",
|
|
18560
|
+
"map.wms.urlInput.hint": "",
|
|
18452
18561
|
"multiselect.filter.placeholder": "",
|
|
18453
18562
|
"nav.back": "",
|
|
18454
18563
|
next: next$1,
|
|
@@ -18488,9 +18597,11 @@ var nl = {
|
|
|
18488
18597
|
"record.metadata.formats": "",
|
|
18489
18598
|
"record.metadata.isOpenData": "",
|
|
18490
18599
|
"record.metadata.keywords": "",
|
|
18600
|
+
"record.metadata.lastUpdate": "",
|
|
18491
18601
|
"record.metadata.links": "",
|
|
18492
18602
|
"record.metadata.noUsage": "",
|
|
18493
18603
|
"record.metadata.origin": "",
|
|
18604
|
+
"record.metadata.owner": "",
|
|
18494
18605
|
"record.metadata.preview": "",
|
|
18495
18606
|
"record.metadata.publications": "",
|
|
18496
18607
|
"record.metadata.quality": "",
|
|
@@ -18513,7 +18624,10 @@ var nl = {
|
|
|
18513
18624
|
"record.metadata.quality.updateFrequency.success": "",
|
|
18514
18625
|
"record.metadata.related": "",
|
|
18515
18626
|
"record.metadata.sheet": "",
|
|
18627
|
+
"record.metadata.themes": "",
|
|
18516
18628
|
"record.metadata.title": "",
|
|
18629
|
+
"record.metadata.type": "",
|
|
18630
|
+
"record.metadata.uniqueId": "",
|
|
18517
18631
|
"record.metadata.updateFrequency": "",
|
|
18518
18632
|
"record.metadata.updateStatus": "",
|
|
18519
18633
|
"record.metadata.updatedOn": "",
|
|
@@ -18577,6 +18691,7 @@ var nl = {
|
|
|
18577
18691
|
"table.object.count": "",
|
|
18578
18692
|
"table.select.data": "",
|
|
18579
18693
|
"tooltip.html.copy": "",
|
|
18694
|
+
"tooltip.id.copy": "",
|
|
18580
18695
|
"tooltip.url.copy": "",
|
|
18581
18696
|
"tooltip.url.open": "",
|
|
18582
18697
|
"ui.readLess": "",
|
|
@@ -18704,8 +18819,12 @@ var pt = {
|
|
|
18704
18819
|
"datahub.header.organisations": "",
|
|
18705
18820
|
"datahub.header.popularRecords": "",
|
|
18706
18821
|
"datahub.header.title.html": "",
|
|
18822
|
+
"datahub.news.contact.contactus": "",
|
|
18823
|
+
"datahub.news.contact.html": "",
|
|
18824
|
+
"datahub.news.contact.title": "",
|
|
18707
18825
|
"datahub.news.feed": "",
|
|
18708
18826
|
"datahub.news.figures": "",
|
|
18827
|
+
"datahub.record.addToFavorites": "",
|
|
18709
18828
|
"datahub.search.back": "",
|
|
18710
18829
|
"datahub.search.filter.all": "",
|
|
18711
18830
|
"datahub.search.filter.generatedByWfs": "",
|
|
@@ -18766,10 +18885,18 @@ var pt = {
|
|
|
18766
18885
|
"map.add.layer.file": "",
|
|
18767
18886
|
"map.add.layer.wfs": "",
|
|
18768
18887
|
"map.add.layer.wms": "",
|
|
18888
|
+
"map.addFromFile.placeholder": "",
|
|
18889
|
+
"map.geocoding.placeholder": "",
|
|
18890
|
+
"map.help.addFromFile": "",
|
|
18891
|
+
"map.layer.add": "",
|
|
18892
|
+
"map.layers.available": "",
|
|
18769
18893
|
"map.layers.list": "",
|
|
18770
18894
|
"map.loading.data": "",
|
|
18895
|
+
"map.loading.service": "",
|
|
18771
18896
|
"map.navigation.message": "",
|
|
18772
18897
|
"map.select.layer": "",
|
|
18898
|
+
"map.wfs.urlInput.hint": "",
|
|
18899
|
+
"map.wms.urlInput.hint": "",
|
|
18773
18900
|
"multiselect.filter.placeholder": "",
|
|
18774
18901
|
"nav.back": "",
|
|
18775
18902
|
next: next,
|
|
@@ -18809,9 +18936,11 @@ var pt = {
|
|
|
18809
18936
|
"record.metadata.formats": "",
|
|
18810
18937
|
"record.metadata.isOpenData": "",
|
|
18811
18938
|
"record.metadata.keywords": "",
|
|
18939
|
+
"record.metadata.lastUpdate": "",
|
|
18812
18940
|
"record.metadata.links": "",
|
|
18813
18941
|
"record.metadata.noUsage": "",
|
|
18814
18942
|
"record.metadata.origin": "",
|
|
18943
|
+
"record.metadata.owner": "",
|
|
18815
18944
|
"record.metadata.preview": "",
|
|
18816
18945
|
"record.metadata.publications": "",
|
|
18817
18946
|
"record.metadata.quality": "",
|
|
@@ -18834,7 +18963,10 @@ var pt = {
|
|
|
18834
18963
|
"record.metadata.quality.updateFrequency.success": "",
|
|
18835
18964
|
"record.metadata.related": "",
|
|
18836
18965
|
"record.metadata.sheet": "",
|
|
18966
|
+
"record.metadata.themes": "",
|
|
18837
18967
|
"record.metadata.title": "",
|
|
18968
|
+
"record.metadata.type": "",
|
|
18969
|
+
"record.metadata.uniqueId": "",
|
|
18838
18970
|
"record.metadata.updateFrequency": "",
|
|
18839
18971
|
"record.metadata.updateStatus": "",
|
|
18840
18972
|
"record.metadata.updatedOn": "",
|
|
@@ -18898,6 +19030,7 @@ var pt = {
|
|
|
18898
19030
|
"table.object.count": "",
|
|
18899
19031
|
"table.select.data": "",
|
|
18900
19032
|
"tooltip.html.copy": "",
|
|
19033
|
+
"tooltip.id.copy": "",
|
|
18901
19034
|
"tooltip.url.copy": "",
|
|
18902
19035
|
"tooltip.url.open": "",
|
|
18903
19036
|
"ui.readLess": "",
|
|
@@ -19235,6 +19368,7 @@ class Gn4MetadataMapper extends MetadataBaseMapper {
|
|
|
19235
19368
|
useLimitations: [],
|
|
19236
19369
|
spatialExtents: [],
|
|
19237
19370
|
temporalExtents: [],
|
|
19371
|
+
overviews: [],
|
|
19238
19372
|
};
|
|
19239
19373
|
const record = Object.keys(_source).reduce((prev, fieldName) => this.fieldMapper.getMappingFn(fieldName)(prev, _source), emptyRecord);
|
|
19240
19374
|
return lastValueFrom(this.orgsService.addOrganizationToRecordFromSource(_source, record));
|
|
@@ -20736,6 +20870,13 @@ class ThemeService {
|
|
|
20736
20870
|
}
|
|
20737
20871
|
return chroma.hsl(hue % 360, saturation, lightness).css();
|
|
20738
20872
|
}
|
|
20873
|
+
static setFavicon(faviconPath) {
|
|
20874
|
+
const link = document.querySelector("link[rel*='icon']") ||
|
|
20875
|
+
document.createElement('link');
|
|
20876
|
+
link['rel'] = 'icon';
|
|
20877
|
+
link['href'] = faviconPath;
|
|
20878
|
+
document.getElementsByTagName('head')[0].appendChild(link);
|
|
20879
|
+
}
|
|
20739
20880
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20740
20881
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
|
|
20741
20882
|
}
|
|
@@ -20915,6 +21056,33 @@ function propagateToDocumentOnly(event) {
|
|
|
20915
21056
|
}, 0);
|
|
20916
21057
|
}
|
|
20917
21058
|
|
|
21059
|
+
function normalize(input) {
|
|
21060
|
+
return input
|
|
21061
|
+
.toLowerCase()
|
|
21062
|
+
.normalize('NFD') // explode composite chars (e.g. é) into multiple chars
|
|
21063
|
+
.replace(/[\u0300-\u036f]/g, '') // remove accents
|
|
21064
|
+
.replace(/œ/g, 'oe') // remove accents
|
|
21065
|
+
.replace(/[^a-z0-9\s]/g, ' '); // replace special characters with space
|
|
21066
|
+
}
|
|
21067
|
+
function asNormalizedParts(input) {
|
|
21068
|
+
return normalize(input)
|
|
21069
|
+
.split(/\s+/)
|
|
21070
|
+
.map((part) => part.trim())
|
|
21071
|
+
.filter((part) => part.length > 0);
|
|
21072
|
+
}
|
|
21073
|
+
/**
|
|
21074
|
+
* This creates a filter function based on a pattern (typically a user-input
|
|
21075
|
+
* search text).
|
|
21076
|
+
* @param pattern
|
|
21077
|
+
*/
|
|
21078
|
+
function createFuzzyFilter(pattern) {
|
|
21079
|
+
const patternParts = asNormalizedParts(pattern);
|
|
21080
|
+
return (input) => {
|
|
21081
|
+
const inputParts = asNormalizedParts(input);
|
|
21082
|
+
return patternParts.every((patternPart) => inputParts.some((part) => part.includes(patternPart)));
|
|
21083
|
+
};
|
|
21084
|
+
}
|
|
21085
|
+
|
|
20918
21086
|
marker('downloads.wfs.featuretype.not.found');
|
|
20919
21087
|
const FORMATS = {
|
|
20920
21088
|
csv: {
|
|
@@ -20956,9 +21124,15 @@ const FORMATS = {
|
|
|
20956
21124
|
color: '#328556',
|
|
20957
21125
|
mimeTypes: ['x-gis/x-shapefile'],
|
|
20958
21126
|
},
|
|
21127
|
+
gml: {
|
|
21128
|
+
extensions: ['gml'],
|
|
21129
|
+
priority: 5,
|
|
21130
|
+
color: '#c92bce',
|
|
21131
|
+
mimeTypes: ['application/gml+xml', 'text/xml; subtype=gml'],
|
|
21132
|
+
},
|
|
20959
21133
|
kml: {
|
|
20960
21134
|
extensions: ['kml', 'kmz'],
|
|
20961
|
-
priority:
|
|
21135
|
+
priority: 6,
|
|
20962
21136
|
color: '#348009',
|
|
20963
21137
|
mimeTypes: [
|
|
20964
21138
|
'application/vnd.google-earth.kml+xml',
|
|
@@ -20967,34 +21141,40 @@ const FORMATS = {
|
|
|
20967
21141
|
},
|
|
20968
21142
|
gpkg: {
|
|
20969
21143
|
extensions: ['gpkg', 'geopackage'],
|
|
20970
|
-
priority:
|
|
21144
|
+
priority: 7,
|
|
20971
21145
|
color: '#ea79ba',
|
|
20972
21146
|
mimeTypes: ['application/geopackage+sqlite3'],
|
|
20973
21147
|
},
|
|
20974
21148
|
zip: {
|
|
20975
21149
|
extensions: ['zip', 'tar.gz'],
|
|
20976
|
-
priority:
|
|
21150
|
+
priority: 8,
|
|
20977
21151
|
color: '#f2bb3a',
|
|
20978
21152
|
mimeTypes: ['application/zip', 'application/x-zip'],
|
|
20979
21153
|
},
|
|
20980
21154
|
pdf: {
|
|
20981
21155
|
extensions: ['pdf'],
|
|
20982
|
-
priority:
|
|
21156
|
+
priority: 9,
|
|
20983
21157
|
color: '#db544a',
|
|
20984
21158
|
mimeTypes: ['application/pdf'],
|
|
20985
21159
|
},
|
|
20986
21160
|
jpg: {
|
|
20987
21161
|
extensions: ['jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp'],
|
|
20988
|
-
priority:
|
|
21162
|
+
priority: 9,
|
|
20989
21163
|
color: '#673ab7',
|
|
20990
21164
|
mimeTypes: ['image/jpg'],
|
|
20991
21165
|
},
|
|
20992
21166
|
svg: {
|
|
20993
21167
|
extensions: ['svg'],
|
|
20994
|
-
priority:
|
|
21168
|
+
priority: 10,
|
|
20995
21169
|
color: '#d98294',
|
|
20996
21170
|
mimeTypes: ['image/svg+xml'],
|
|
20997
21171
|
},
|
|
21172
|
+
dxf: {
|
|
21173
|
+
extensions: ['dxf'],
|
|
21174
|
+
priority: 11,
|
|
21175
|
+
color: '#de630b',
|
|
21176
|
+
mimeTypes: ['application/x-dxf', 'image/x-dxf'],
|
|
21177
|
+
},
|
|
20998
21178
|
};
|
|
20999
21179
|
function getFormatPriority(linkFormat) {
|
|
21000
21180
|
for (const format in FORMATS) {
|
|
@@ -21011,14 +21191,18 @@ function getFormatPriority(linkFormat) {
|
|
|
21011
21191
|
function getLinkPriority(link) {
|
|
21012
21192
|
return getFormatPriority(getFileFormat(link));
|
|
21013
21193
|
}
|
|
21014
|
-
function
|
|
21015
|
-
|
|
21016
|
-
|
|
21017
|
-
|
|
21018
|
-
|
|
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;
|
|
21019
21203
|
}
|
|
21020
21204
|
}
|
|
21021
|
-
return
|
|
21205
|
+
return null;
|
|
21022
21206
|
}
|
|
21023
21207
|
function getFileFormat(link) {
|
|
21024
21208
|
if ('mimeType' in link) {
|
|
@@ -22043,6 +22227,7 @@ function loadAppConfig() {
|
|
|
22043
22227
|
'login_url',
|
|
22044
22228
|
'web_component_embedder_url',
|
|
22045
22229
|
'languages',
|
|
22230
|
+
'contact_email',
|
|
22046
22231
|
], warnings, errors);
|
|
22047
22232
|
if (parsedGlobalSection?.metadata_language) {
|
|
22048
22233
|
parsedGlobalSection = checkMetadataLanguage(parsedGlobalSection, warnings);
|
|
@@ -22060,6 +22245,7 @@ function loadAppConfig() {
|
|
|
22060
22245
|
LOGIN_URL: parsedGlobalSection.login_url,
|
|
22061
22246
|
WEB_COMPONENT_EMBEDDER_URL: parsedGlobalSection.web_component_embedder_url,
|
|
22062
22247
|
LANGUAGES: parsedGlobalSection.languages,
|
|
22248
|
+
CONTACT_EMAIL: parsedGlobalSection.contact_email,
|
|
22063
22249
|
};
|
|
22064
22250
|
const parsedLayersSections = parseMultiConfigSection(parsed, 'map_layer', ['type'], ['name', 'url', 'data'], warnings, errors);
|
|
22065
22251
|
const parsedMapSection = parseConfigSection(parsed, 'map', [], [
|
|
@@ -22093,6 +22279,7 @@ function loadAppConfig() {
|
|
|
22093
22279
|
'fonts_stylesheet_url',
|
|
22094
22280
|
'thumbnail_placeholder',
|
|
22095
22281
|
'header_background',
|
|
22282
|
+
'favicon',
|
|
22096
22283
|
], warnings, errors);
|
|
22097
22284
|
themeConfig =
|
|
22098
22285
|
parsedThemeSection === null
|
|
@@ -22108,6 +22295,7 @@ function loadAppConfig() {
|
|
|
22108
22295
|
TITLE_FONT: parsedThemeSection.title_font,
|
|
22109
22296
|
MAIN_FONT: parsedThemeSection.main_font,
|
|
22110
22297
|
FONTS_STYLESHEET_URL: parsedThemeSection.fonts_stylesheet_url,
|
|
22298
|
+
FAVICON: parsedThemeSection.favicon,
|
|
22111
22299
|
};
|
|
22112
22300
|
const parsedSearchSection = parseConfigSection(parsed, 'search', [], [
|
|
22113
22301
|
'filter_geometry_data',
|
|
@@ -22434,6 +22622,7 @@ const DEFAULT_VIEW = {
|
|
|
22434
22622
|
center: [0, 15],
|
|
22435
22623
|
zoom: 2,
|
|
22436
22624
|
};
|
|
22625
|
+
const WFS_MAX_FEATURES = 10000;
|
|
22437
22626
|
class MapContextService {
|
|
22438
22627
|
constructor(mapUtils, styleService) {
|
|
22439
22628
|
this.mapUtils = mapUtils;
|
|
@@ -22492,6 +22681,7 @@ class MapContextService {
|
|
|
22492
22681
|
urlObj.searchParams.set('typename', layerModel.name);
|
|
22493
22682
|
urlObj.searchParams.set('srsname', 'EPSG:3857');
|
|
22494
22683
|
urlObj.searchParams.set('bbox', `${extent.join(',')},EPSG:3857`);
|
|
22684
|
+
urlObj.searchParams.set('maxFeatures', WFS_MAX_FEATURES.toString());
|
|
22495
22685
|
return urlObj.toString();
|
|
22496
22686
|
},
|
|
22497
22687
|
strategy: bbox,
|
|
@@ -23039,6 +23229,7 @@ class ThumbnailComponent {
|
|
|
23039
23229
|
constructor(optionalPlaceholderUrl) {
|
|
23040
23230
|
this.optionalPlaceholderUrl = optionalPlaceholderUrl;
|
|
23041
23231
|
this.fit = 'cover';
|
|
23232
|
+
this.placeholderShown = new EventEmitter();
|
|
23042
23233
|
this.placeholderUrl = this.optionalPlaceholderUrl || DEFAULT_PLACEHOLDER;
|
|
23043
23234
|
this.images = [];
|
|
23044
23235
|
}
|
|
@@ -23074,6 +23265,7 @@ class ThumbnailComponent {
|
|
|
23074
23265
|
setNewSrcImage(image) {
|
|
23075
23266
|
this.imgFit = image.fit;
|
|
23076
23267
|
this.imgUrl = image.url;
|
|
23268
|
+
this.placeholderShown.emit(this.isPlaceholder);
|
|
23077
23269
|
}
|
|
23078
23270
|
setPlaceholder() {
|
|
23079
23271
|
this.setNewSrcImage({ url: this.placeholderUrl, fit: 'scale-down' });
|
|
@@ -23096,7 +23288,7 @@ class ThumbnailComponent {
|
|
|
23096
23288
|
}
|
|
23097
23289
|
}
|
|
23098
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 }); }
|
|
23099
|
-
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 }); }
|
|
23100
23292
|
}
|
|
23101
23293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ThumbnailComponent, decorators: [{
|
|
23102
23294
|
type: Component,
|
|
@@ -23116,11 +23308,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23116
23308
|
}], containerElement: [{
|
|
23117
23309
|
type: ViewChild,
|
|
23118
23310
|
args: ['containerElement']
|
|
23311
|
+
}], placeholderShown: [{
|
|
23312
|
+
type: Output
|
|
23119
23313
|
}] } });
|
|
23120
23314
|
|
|
23121
23315
|
class RecordPreviewCardComponent extends RecordPreviewComponent {
|
|
23122
23316
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23123
|
-
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 }); }
|
|
23124
23318
|
}
|
|
23125
23319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewCardComponent, decorators: [{
|
|
23126
23320
|
type: Component,
|
|
@@ -23129,7 +23323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23129
23323
|
|
|
23130
23324
|
class RecordPreviewListComponent extends RecordPreviewComponent {
|
|
23131
23325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23132
|
-
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 }); }
|
|
23133
23327
|
}
|
|
23134
23328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewListComponent, decorators: [{
|
|
23135
23329
|
type: Component,
|
|
@@ -23277,7 +23471,7 @@ class RecordPreviewRowComponent extends RecordPreviewComponent {
|
|
|
23277
23471
|
this.elementRef = elementRef;
|
|
23278
23472
|
}
|
|
23279
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 }); }
|
|
23280
|
-
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 }); }
|
|
23281
23475
|
}
|
|
23282
23476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewRowComponent, decorators: [{
|
|
23283
23477
|
type: Component,
|
|
@@ -23295,7 +23489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23295
23489
|
|
|
23296
23490
|
class RecordPreviewTitleComponent extends RecordPreviewComponent {
|
|
23297
23491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23298
|
-
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 }); }
|
|
23299
23493
|
}
|
|
23300
23494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewTitleComponent, decorators: [{
|
|
23301
23495
|
type: Component,
|
|
@@ -23335,7 +23529,7 @@ class RecordPreviewFeedComponent extends RecordPreviewComponent {
|
|
|
23335
23529
|
return this.timeFormat.format(this.record.recordCreated, Date.now());
|
|
23336
23530
|
}
|
|
23337
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 }); }
|
|
23338
|
-
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 }); }
|
|
23339
23533
|
}
|
|
23340
23534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordPreviewFeedComponent, decorators: [{
|
|
23341
23535
|
type: Component,
|
|
@@ -23668,6 +23862,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23668
23862
|
args: ['contentDiv']
|
|
23669
23863
|
}] } });
|
|
23670
23864
|
|
|
23865
|
+
class CopyTextButtonComponent {
|
|
23866
|
+
constructor() {
|
|
23867
|
+
this.displayText = true;
|
|
23868
|
+
this.rows = 1;
|
|
23869
|
+
}
|
|
23870
|
+
copyText(event) {
|
|
23871
|
+
navigator.clipboard.writeText(this.text);
|
|
23872
|
+
event.target.blur();
|
|
23873
|
+
}
|
|
23874
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CopyTextButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23875
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23876
|
+
}
|
|
23877
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CopyTextButtonComponent, decorators: [{
|
|
23878
|
+
type: Component,
|
|
23879
|
+
args: [{ selector: 'gn-ui-copy-text-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n" }]
|
|
23880
|
+
}], propDecorators: { text: [{
|
|
23881
|
+
type: Input
|
|
23882
|
+
}], tooltipText: [{
|
|
23883
|
+
type: Input
|
|
23884
|
+
}], displayText: [{
|
|
23885
|
+
type: Input
|
|
23886
|
+
}], rows: [{
|
|
23887
|
+
type: Input
|
|
23888
|
+
}] } });
|
|
23889
|
+
|
|
23671
23890
|
class ContentGhostComponent {
|
|
23672
23891
|
constructor() {
|
|
23673
23892
|
this.ghostClass = '';
|
|
@@ -23822,6 +24041,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23822
24041
|
args: ['container']
|
|
23823
24042
|
}] } });
|
|
23824
24043
|
|
|
24044
|
+
class MarkdownParserComponent {
|
|
24045
|
+
get parsedMarkdown() {
|
|
24046
|
+
return marked.parse(this.textContent);
|
|
24047
|
+
}
|
|
24048
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
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 }); }
|
|
24050
|
+
}
|
|
24051
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkdownParserComponent, decorators: [{
|
|
24052
|
+
type: Component,
|
|
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"] }]
|
|
24054
|
+
}], propDecorators: { textContent: [{
|
|
24055
|
+
type: Input
|
|
24056
|
+
}] } });
|
|
24057
|
+
|
|
23825
24058
|
class MetadataInfoComponent {
|
|
23826
24059
|
constructor() {
|
|
23827
24060
|
this.keyword = new EventEmitter();
|
|
@@ -23859,12 +24092,16 @@ class MetadataInfoComponent {
|
|
|
23859
24092
|
onKeywordClick(keyword) {
|
|
23860
24093
|
this.keyword.emit(keyword);
|
|
23861
24094
|
}
|
|
24095
|
+
copyText() {
|
|
24096
|
+
navigator.clipboard.writeText(this.metadata.uniqueIdentifier);
|
|
24097
|
+
event.target.blur();
|
|
24098
|
+
}
|
|
23862
24099
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23863
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<
|
|
24100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataInfoComponent, selector: "gn-ui-metadata-info", inputs: { metadata: "metadata", incomplete: "incomplete" }, outputs: { keyword: "keyword" }, ngImport: i0, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"py-4 px-6 rounded bg-gray-100 text-gray-700 flex flex-wrap gap-2\">\n <gn-ui-badge *ngIf=\"metadata.extras?.isOpenData\">\n <span translate>record.metadata.isOpenData</span>\n </gn-ui-badge>\n <span\n class=\"text-primary font-medium\"\n *ngFor=\"let usage of usages\"\n gnUiLinkify\n >\n {{ usage }}\n </span>\n <span class=\"text-primary font-medium noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.themes?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.themes</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 lowercase\"\n *ngFor=\"let theme of metadata.themes\"\n >{{ theme }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "collapsed"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: ContentGhostComponent, selector: "gn-ui-content-ghost", inputs: ["showContent", "ghostClass"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23864
24101
|
}
|
|
23865
24102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataInfoComponent, decorators: [{
|
|
23866
24103
|
type: Component,
|
|
23867
|
-
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<
|
|
24104
|
+
args: [{ selector: 'gn-ui-metadata-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost ghostClass=\"h-32\" [showContent]=\"fieldReady('abstract')\">\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div>\n <gn-ui-markdown-parser\n [textContent]=\"metadata.abstract\"\n ></gn-ui-markdown-parser>\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n class=\"metadata-origin\"\n *ngIf=\"\n metadata.lineage ||\n metadata.recordUpdated ||\n metadata.updateFrequency ||\n metadata.status\n \"\n [title]=\"'record.metadata.origin' | translate\"\n>\n <p\n *ngIf=\"metadata.lineage\"\n class=\"mb-5 pt-4 whitespace-pre-line break-words\"\n gnUiLinkify\n >\n {{ metadata.lineage }}\n </p>\n <div\n class=\"py-4 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-[10px] gap-x-[20px] text-gray-700 info-grid\"\n >\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"updateFrequency\">\n <p class=\"text-sm\" translate>record.metadata.updateFrequency</p>\n <p\n class=\"text-primary font-medium mt-1 updateFrequency\"\n translate\n [translateParams]=\"{ count: updatedTimes }\"\n >\n {{ updateFrequency }}\n </p>\n </div>\n <div *ngIf=\"metadata.status\">\n <p class=\"text-sm\" translate>record.metadata.updateStatus</p>\n <p class=\"text-primary font-medium mt-1\" translate>\n domain.record.status.{{ metadata.status }}\n </p>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel [title]=\"'record.metadata.usage' | translate\">\n <div class=\"py-4 px-6 rounded bg-gray-100 text-gray-700 flex flex-wrap gap-2\">\n <gn-ui-badge *ngIf=\"metadata.extras?.isOpenData\">\n <span translate>record.metadata.isOpenData</span>\n </gn-ui-badge>\n <span\n class=\"text-primary font-medium\"\n *ngFor=\"let usage of usages\"\n gnUiLinkify\n >\n {{ usage }}\n </span>\n <span class=\"text-primary font-medium noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'record.metadata.details' | translate\"\n>\n <div class=\"flex flex-col gap-4 mr-4 py-5 rounded text-gray-700\">\n <div *ngIf=\"metadata.recordUpdated\">\n <p class=\"text-sm\" translate>record.metadata.updatedOn</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.themes?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.themes</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 lowercase\"\n *ngFor=\"let theme of metadata.themes\"\n >{{ theme }}</gn-ui-badge\n >\n </div>\n </div>\n <div *ngIf=\"metadata.keywords?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.keywords</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n class=\"inline-block mr-2 mb-2 lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button mat-icon{transform:scale(.8)}\n"] }]
|
|
23868
24105
|
}], propDecorators: { metadata: [{
|
|
23869
24106
|
type: Input
|
|
23870
24107
|
}], incomplete: [{
|
|
@@ -23900,53 +24137,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
23900
24137
|
|
|
23901
24138
|
class ButtonComponent {
|
|
23902
24139
|
constructor() {
|
|
23903
|
-
this.type = 'default';
|
|
23904
24140
|
this.disabled = false;
|
|
23905
24141
|
this.extraClass = '';
|
|
23906
24142
|
this.buttonClick = new EventEmitter();
|
|
23907
24143
|
}
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23911
|
-
get color() {
|
|
23912
|
-
switch (this.type) {
|
|
23913
|
-
case 'default':
|
|
23914
|
-
return 'bg-gray-700 hover:bg-gray-800 hover:bg-gray-800 active:bg-gray-900';
|
|
24144
|
+
// btn-classes are explicited to allow tailwind recognize them and add it in css.
|
|
24145
|
+
set type(value) {
|
|
24146
|
+
switch (value) {
|
|
23915
24147
|
case 'primary':
|
|
23916
|
-
|
|
23917
|
-
|
|
23918
|
-
return 'bg-secondary hover:bg-secondary-darker focus:bg-secondary-darker active:bg-secondary-darkest';
|
|
23919
|
-
case 'outline':
|
|
23920
|
-
return 'bg-white';
|
|
23921
|
-
case 'light':
|
|
23922
|
-
return 'bg-white hover:bg-gray-50 focus:bg-gray-50 active:bg-gray-100';
|
|
23923
|
-
}
|
|
23924
|
-
}
|
|
23925
|
-
get textColor() {
|
|
23926
|
-
switch (this.type) {
|
|
23927
|
-
case 'default':
|
|
24148
|
+
this.btnClass = 'btn-primary';
|
|
24149
|
+
break;
|
|
23928
24150
|
case 'secondary':
|
|
23929
|
-
|
|
23930
|
-
|
|
24151
|
+
this.btnClass = 'btn-secondary';
|
|
24152
|
+
break;
|
|
23931
24153
|
case 'outline':
|
|
23932
|
-
|
|
24154
|
+
this.btnClass = 'btn-outline';
|
|
24155
|
+
break;
|
|
23933
24156
|
case 'light':
|
|
23934
|
-
|
|
24157
|
+
this.btnClass = 'btn-light';
|
|
24158
|
+
break;
|
|
24159
|
+
default:
|
|
24160
|
+
this.btnClass = 'btn-default';
|
|
24161
|
+
break;
|
|
23935
24162
|
}
|
|
23936
24163
|
}
|
|
23937
|
-
get
|
|
23938
|
-
|
|
23939
|
-
case 'default':
|
|
23940
|
-
return 'border border-gray-700 focus:ring-4 focus:ring-gray-200';
|
|
23941
|
-
case 'secondary':
|
|
23942
|
-
return 'border border-secondary focus:ring-4 focus:ring-secondary-lightest';
|
|
23943
|
-
case 'primary':
|
|
23944
|
-
return 'border border-primary focus:ring-4 focus:ring-primary-lightest';
|
|
23945
|
-
case 'outline':
|
|
23946
|
-
return 'border border-gray-300 hover:border-primary-lighter focus:border-primary-lighter focus:ring-4 focus:ring-primary-lightest active:border-primary-darker';
|
|
23947
|
-
case 'light':
|
|
23948
|
-
return 'border border-white focus:ring-4 focus:ring-gray-300';
|
|
23949
|
-
}
|
|
24164
|
+
get classList() {
|
|
24165
|
+
return `${this.btnClass} ${this.extraClass}`;
|
|
23950
24166
|
}
|
|
23951
24167
|
handleClick(event) {
|
|
23952
24168
|
this.buttonClick.emit();
|
|
@@ -23954,11 +24170,11 @@ class ButtonComponent {
|
|
|
23954
24170
|
propagateToDocumentOnly(event);
|
|
23955
24171
|
}
|
|
23956
24172
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23957
|
-
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 }); }
|
|
23958
24174
|
}
|
|
23959
24175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
23960
24176
|
type: Component,
|
|
23961
|
-
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"] }]
|
|
23962
24178
|
}], propDecorators: { type: [{
|
|
23963
24179
|
type: Input
|
|
23964
24180
|
}], disabled: [{
|
|
@@ -24033,40 +24249,15 @@ class DownloadsListComponent {
|
|
|
24033
24249
|
return link.type === 'service' && link.accessServiceProtocol === 'wfs';
|
|
24034
24250
|
}
|
|
24035
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 }); }
|
|
24036
|
-
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 }); }
|
|
24037
24253
|
}
|
|
24038
24254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: DownloadsListComponent, decorators: [{
|
|
24039
24255
|
type: Component,
|
|
24040
|
-
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" }]
|
|
24041
24257
|
}], ctorParameters: function () { return [{ type: i1$1.TranslateService }]; }, propDecorators: { links: [{
|
|
24042
24258
|
type: Input
|
|
24043
24259
|
}] } });
|
|
24044
24260
|
|
|
24045
|
-
class CopyTextButtonComponent {
|
|
24046
|
-
constructor() {
|
|
24047
|
-
this.displayText = true;
|
|
24048
|
-
this.rows = 1;
|
|
24049
|
-
}
|
|
24050
|
-
copyText(event) {
|
|
24051
|
-
navigator.clipboard.writeText(this.text);
|
|
24052
|
-
event.target.blur();
|
|
24053
|
-
}
|
|
24054
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CopyTextButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24055
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: { text: "text", tooltipText: "tooltipText", displayText: "displayText", rows: "rows" }, ngImport: i0, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24056
|
-
}
|
|
24057
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CopyTextButtonComponent, decorators: [{
|
|
24058
|
-
type: Component,
|
|
24059
|
-
args: [{ selector: 'gn-ui-copy-text-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex\">\n <input\n *ngIf=\"displayText && rows <= 1\"\n type=\"text\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 truncate\"\n value=\"{{ text }}\"\n readonly\n />\n <textarea\n *ngIf=\"displayText && rows > 1\"\n [rows]=\"rows\"\n class=\"grow py-2 px-4 bg-gray-200 opacity-50 rounded-l-md border border-gray-300 overflow-y-auto h-max\"\n readonly\n >{{ text }}</textarea\n >\n <button\n type=\"button\"\n (click)=\"copyText($event)\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText\n }\"\n mat-raised-button\n [matTooltip]=\"tooltipText\"\n matTooltipPosition=\"above\"\n >\n <mat-icon\n class=\"material-symbols-outlined pointer-events-none align-middle card-icon\"\n >content_copy</mat-icon\n >\n </button>\n</div>\n" }]
|
|
24060
|
-
}], propDecorators: { text: [{
|
|
24061
|
-
type: Input
|
|
24062
|
-
}], tooltipText: [{
|
|
24063
|
-
type: Input
|
|
24064
|
-
}], displayText: [{
|
|
24065
|
-
type: Input
|
|
24066
|
-
}], rows: [{
|
|
24067
|
-
type: Input
|
|
24068
|
-
}] } });
|
|
24069
|
-
|
|
24070
24261
|
class ApiCardComponent {
|
|
24071
24262
|
constructor() {
|
|
24072
24263
|
this.currentlyActive = false;
|
|
@@ -24263,11 +24454,11 @@ class CarouselComponent {
|
|
|
24263
24454
|
this.emblaApi.scrollTo(stepIndex);
|
|
24264
24455
|
}
|
|
24265
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 }); }
|
|
24266
|
-
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 }); }
|
|
24267
24458
|
}
|
|
24268
24459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
24269
24460
|
type: Component,
|
|
24270
|
-
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"] }]
|
|
24271
24462
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { containerClass: [{
|
|
24272
24463
|
type: Input
|
|
24273
24464
|
}], stepsContainerClass: [{
|
|
@@ -24324,11 +24515,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
24324
24515
|
|
|
24325
24516
|
class RelatedRecordCardComponent {
|
|
24326
24517
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RelatedRecordCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24327
|
-
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 }); }
|
|
24328
24519
|
}
|
|
24329
24520
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RelatedRecordCardComponent, decorators: [{
|
|
24330
24521
|
type: Component,
|
|
24331
|
-
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" }]
|
|
24332
24523
|
}], propDecorators: { record: [{
|
|
24333
24524
|
type: Input
|
|
24334
24525
|
}] } });
|
|
@@ -24346,15 +24537,21 @@ class MetadataContactComponent {
|
|
|
24346
24537
|
? this.metadata.contactsForResource
|
|
24347
24538
|
: this.metadata.contacts) || []);
|
|
24348
24539
|
}
|
|
24540
|
+
get address() {
|
|
24541
|
+
const addressParts = this.contacts[0].address
|
|
24542
|
+
.split(',')
|
|
24543
|
+
.map((part) => part.trim());
|
|
24544
|
+
return addressParts;
|
|
24545
|
+
}
|
|
24349
24546
|
onOrganizationClick() {
|
|
24350
24547
|
this.organizationClick.emit(this.shownOrganization);
|
|
24351
24548
|
}
|
|
24352
24549
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24353
|
-
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
|
|
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 }); }
|
|
24354
24551
|
}
|
|
24355
24552
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, decorators: [{
|
|
24356
24553
|
type: Component,
|
|
24357
|
-
args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
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" }]
|
|
24358
24555
|
}], propDecorators: { metadata: [{
|
|
24359
24556
|
type: Input
|
|
24360
24557
|
}], organizationClick: [{
|
|
@@ -24620,7 +24817,10 @@ class DropdownMultiselectComponent {
|
|
|
24620
24817
|
return this.choices.filter((choice) => this.selected.indexOf(choice.value) > -1);
|
|
24621
24818
|
}
|
|
24622
24819
|
get filteredChoicesByText() {
|
|
24623
|
-
|
|
24820
|
+
if (!this.searchInputValue)
|
|
24821
|
+
return this.choices;
|
|
24822
|
+
const filter = createFuzzyFilter(this.searchInputValue);
|
|
24823
|
+
return this.choices.filter((choice) => filter(choice.label));
|
|
24624
24824
|
}
|
|
24625
24825
|
get focusedIndex() {
|
|
24626
24826
|
return this.checkboxes.reduce((prev, curr, curIndex) => curr.nativeElement === document.activeElement ? curIndex : prev, -1);
|
|
@@ -25071,11 +25271,11 @@ class StarToggleComponent {
|
|
|
25071
25271
|
event.preventDefault();
|
|
25072
25272
|
}
|
|
25073
25273
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: StarToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25074
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: StarToggleComponent, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled\n }\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'star-filled': toggled }\"\n >star</mat-icon\n >\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}mat-icon{width:1em;height:1em;font-size:1.5em;margin-top:-.1em;font-variation-settings:\"opsz\" 40}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25274
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: StarToggleComponent, selector: "gn-ui-star-toggle", inputs: { toggled: "toggled", disabled: "disabled" }, outputs: { newValue: "newValue" }, viewQueries: [{ propertyName: "overlay", first: true, predicate: ["starOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled\n }\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'star-filled': toggled }\"\n >star</mat-icon\n >\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}mat-icon{width:1em;height:1em;font-size:1.5em;margin-top:-.1em;font-variation-settings:\"opsz\" 40;stroke:var(--color-primary-darker)}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25075
25275
|
}
|
|
25076
25276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: StarToggleComponent, decorators: [{
|
|
25077
25277
|
type: Component,
|
|
25078
|
-
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled\n }\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'star-filled': toggled }\"\n >star</mat-icon\n >\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}mat-icon{width:1em;height:1em;font-size:1.5em;margin-top:-.1em;font-variation-settings:\"opsz\" 40}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"] }]
|
|
25278
|
+
args: [{ selector: 'gn-ui-star-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"inline-block relative align-middle\" style=\"line-height: 0.7em\">\n <button\n type=\"button\"\n class=\"-m-[8px] p-[8px]\"\n (click)=\"toggle($event)\"\n [ngClass]=\"{\n enabled: toggled,\n 'disabled opacity-45': !toggled,\n 'transition hover:scale-125 will-change-transform': !disabled,\n 'cursor-default': disabled\n }\"\n >\n <mat-icon\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'star-filled': toggled }\"\n >star</mat-icon\n >\n </button>\n <svg\n #starOverlay\n class=\"star-toggle-overlay\"\n width=\"40px\"\n height=\"40px\"\n viewBox=\"-15 -15 30 30\"\n >\n <g>\n <path d=\"M 0,13.229167 V 0\" />\n <path d=\"M -12.484186,4.0880377 0,0\" />\n <path d=\"M -7.6784102,-10.70262 0,0\" />\n <path d=\"M 7.8734079,-10.70262 0,0\" />\n <path d=\"M 12.679184,4.0880376 0,0\" />\n </g>\n </svg>\n</div>\n", styles: ["button.enabled{color:var(--star-toggle-enabled-color, var(--color-secondary))}button.disabled{color:var(--star-toggle-disabled-color, var(--color-primary))}mat-icon{width:1em;height:1em;font-size:1.5em;margin-top:-.1em;font-variation-settings:\"opsz\" 40;stroke:var(--color-primary-darker)}.star-filled{font-variation-settings:\"FILL\" 1}.star-toggle-overlay{stroke:var(--color-secondary);stroke-width:3.5px;stroke-linecap:round;position:absolute;top:50%;left:50%;width:2.5em;height:2.5em;transform:translate(-50%,-50%);pointer-events:none;stroke-dasharray:5 20;stroke-dashoffset:-15;animation:overlay-dash .8s cubic-bezier(.16,.66,.44,.96) forwards;animation-play-state:paused}@keyframes overlay-dash{to{stroke-dashoffset:7}}\n"] }]
|
|
25079
25279
|
}], propDecorators: { toggled: [{
|
|
25080
25280
|
type: Input
|
|
25081
25281
|
}], disabled: [{
|
|
@@ -25187,11 +25387,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25187
25387
|
|
|
25188
25388
|
class NavigationButtonComponent {
|
|
25189
25389
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NavigationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NavigationButtonComponent, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center backdrop-blur p-1 bg-primary-opacity-
|
|
25390
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NavigationButtonComponent, selector: "gn-ui-navigation-button", inputs: { label: "label", icon: "icon" }, ngImport: i0, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 text-white rounded content-center\"\n>\n <mat-icon class=\"material-symbols-outlined align-middle w-[18px]\">{{\n icon\n }}</mat-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25191
25391
|
}
|
|
25192
25392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NavigationButtonComponent, decorators: [{
|
|
25193
25393
|
type: Component,
|
|
25194
|
-
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"group flex items-center justify-center backdrop-blur p-1 bg-primary-opacity-
|
|
25394
|
+
args: [{ selector: 'gn-ui-navigation-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"group flex items-center justify-center gap-1 backdrop-blur p-1 bg-primary-opacity-30 text-white rounded content-center\"\n>\n <mat-icon class=\"material-symbols-outlined align-middle w-[18px]\">{{\n icon\n }}</mat-icon>\n <span\n class=\"mx-2 mt-0.5 text-[16px] tracking-widest content-center opacity-75\"\n >{{ label.toUpperCase() }}</span\n >\n</button>\n" }]
|
|
25195
25395
|
}], propDecorators: { label: [{
|
|
25196
25396
|
type: Input
|
|
25197
25397
|
}], icon: [{
|
|
@@ -25457,6 +25657,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25457
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"] }]
|
|
25458
25658
|
}] });
|
|
25459
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
|
+
|
|
25460
25703
|
class UiInputsModule {
|
|
25461
25704
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25462
25705
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, declarations: [DropdownSelectorComponent,
|
|
@@ -25482,7 +25725,8 @@ class UiInputsModule {
|
|
|
25482
25725
|
CopyTextButtonComponent,
|
|
25483
25726
|
CheckboxComponent,
|
|
25484
25727
|
SearchInputComponent,
|
|
25485
|
-
DateRangePickerComponent
|
|
25728
|
+
DateRangePickerComponent,
|
|
25729
|
+
EditableLabelDirective], imports: [CommonModule, i1$1.TranslateModule, NgxDropzoneModule,
|
|
25486
25730
|
FormsModule,
|
|
25487
25731
|
ReactiveFormsModule,
|
|
25488
25732
|
TagInputModule,
|
|
@@ -25512,7 +25756,8 @@ class UiInputsModule {
|
|
|
25512
25756
|
CopyTextButtonComponent,
|
|
25513
25757
|
CheckboxComponent,
|
|
25514
25758
|
SearchInputComponent,
|
|
25515
|
-
DateRangePickerComponent
|
|
25759
|
+
DateRangePickerComponent,
|
|
25760
|
+
EditableLabelDirective] }); }
|
|
25516
25761
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiInputsModule, imports: [CommonModule,
|
|
25517
25762
|
TranslateModule.forChild(),
|
|
25518
25763
|
NgxDropzoneModule,
|
|
@@ -25559,6 +25804,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25559
25804
|
CheckboxComponent,
|
|
25560
25805
|
SearchInputComponent,
|
|
25561
25806
|
DateRangePickerComponent,
|
|
25807
|
+
EditableLabelDirective,
|
|
25562
25808
|
],
|
|
25563
25809
|
imports: [
|
|
25564
25810
|
CommonModule,
|
|
@@ -25597,6 +25843,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25597
25843
|
CheckboxComponent,
|
|
25598
25844
|
SearchInputComponent,
|
|
25599
25845
|
DateRangePickerComponent,
|
|
25846
|
+
EditableLabelDirective,
|
|
25600
25847
|
],
|
|
25601
25848
|
}]
|
|
25602
25849
|
}] });
|
|
@@ -25754,6 +26001,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25754
26001
|
type: Input
|
|
25755
26002
|
}] } });
|
|
25756
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
|
+
|
|
25757
26023
|
class UiElementsModule {
|
|
25758
26024
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25759
26025
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, declarations: [MetadataInfoComponent,
|
|
@@ -25775,7 +26041,9 @@ class UiElementsModule {
|
|
|
25775
26041
|
GnUiLinkifyDirective,
|
|
25776
26042
|
PaginationButtonsComponent,
|
|
25777
26043
|
MaxLinesComponent,
|
|
25778
|
-
RecordApiFormComponent
|
|
26044
|
+
RecordApiFormComponent,
|
|
26045
|
+
MarkdownParserComponent,
|
|
26046
|
+
ImageOverlayPreviewComponent], imports: [CommonModule,
|
|
25779
26047
|
MatIconModule,
|
|
25780
26048
|
MatTooltipModule,
|
|
25781
26049
|
UiWidgetsModule,
|
|
@@ -25800,7 +26068,10 @@ class UiElementsModule {
|
|
|
25800
26068
|
AvatarComponent,
|
|
25801
26069
|
UserPreviewComponent,
|
|
25802
26070
|
PaginationButtonsComponent,
|
|
25803
|
-
|
|
26071
|
+
MaxLinesComponent,
|
|
26072
|
+
RecordApiFormComponent,
|
|
26073
|
+
MarkdownParserComponent,
|
|
26074
|
+
ImageOverlayPreviewComponent] }); }
|
|
25804
26075
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: UiElementsModule, imports: [CommonModule,
|
|
25805
26076
|
MatIconModule,
|
|
25806
26077
|
MatTooltipModule,
|
|
@@ -25849,6 +26120,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25849
26120
|
PaginationButtonsComponent,
|
|
25850
26121
|
MaxLinesComponent,
|
|
25851
26122
|
RecordApiFormComponent,
|
|
26123
|
+
MarkdownParserComponent,
|
|
26124
|
+
ImageOverlayPreviewComponent,
|
|
25852
26125
|
],
|
|
25853
26126
|
exports: [
|
|
25854
26127
|
MetadataInfoComponent,
|
|
@@ -25868,7 +26141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
25868
26141
|
AvatarComponent,
|
|
25869
26142
|
UserPreviewComponent,
|
|
25870
26143
|
PaginationButtonsComponent,
|
|
26144
|
+
MaxLinesComponent,
|
|
25871
26145
|
RecordApiFormComponent,
|
|
26146
|
+
MarkdownParserComponent,
|
|
26147
|
+
ImageOverlayPreviewComponent,
|
|
25872
26148
|
],
|
|
25873
26149
|
}]
|
|
25874
26150
|
}] });
|
|
@@ -25987,11 +26263,11 @@ class RecordTableComponent {
|
|
|
25987
26263
|
return false;
|
|
25988
26264
|
}
|
|
25989
26265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25990
|
-
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"] }] }); }
|
|
25991
26267
|
}
|
|
25992
26268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordTableComponent, decorators: [{
|
|
25993
26269
|
type: Component,
|
|
25994
|
-
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"] }]
|
|
25995
26271
|
}], propDecorators: { selectedRecords: [{
|
|
25996
26272
|
type: Input
|
|
25997
26273
|
}], records: [{
|
|
@@ -27255,6 +27531,7 @@ class FavoriteStarComponent {
|
|
|
27255
27531
|
this.changeDetector = changeDetector;
|
|
27256
27532
|
this.authService = authService;
|
|
27257
27533
|
this.translateService = translateService;
|
|
27534
|
+
this.displayCount = true;
|
|
27258
27535
|
this.isFavorite$ = this.favoritesService.myFavoritesUuid$.pipe(map$1((favorites) => favorites.indexOf(this.record.uniqueIdentifier) > -1));
|
|
27259
27536
|
this.isAnonymous$ = this.platformService.isAnonymous();
|
|
27260
27537
|
this.loading = false;
|
|
@@ -27317,12 +27594,14 @@ class FavoriteStarComponent {
|
|
|
27317
27594
|
});
|
|
27318
27595
|
}
|
|
27319
27596
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FavoriteStarComponent, deps: [{ token: FavoritesService }, { token: PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: AuthService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27320
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: { record: "record" }, viewQueries: [{ propertyName: "starToggleRef", first: true, predicate: StarToggleComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div>\n <span
|
|
27597
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: { displayCount: "displayCount", record: "record" }, viewQueries: [{ propertyName: "starToggleRef", first: true, predicate: StarToggleComponent, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"flex flex-row content-center\">\n <span\n class=\"align-text-top mr-1.5 mt-1.5 favorite-count\"\n *ngIf=\"hasFavoriteCount && displayCount\"\n >{{ favoriteCount }}</span\n >\n <gn-ui-star-toggle\n [toggled]=\"isFavorite$ | async\"\n (newValue)=\"toggleFavorite($event)\"\n [disabled]=\"loading || (isAnonymous$ | async)\"\n class=\"mt-1\"\n ></gn-ui-star-toggle>\n <span\n class=\"align-text-top ml-1.5 favorite-count mt-1.5\"\n *ngIf=\"!displayCount\"\n translate=\"datahub.record.addToFavorites\"\n ></span>\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: StarToggleComponent, selector: "gn-ui-star-toggle", inputs: ["toggled", "disabled"], outputs: ["newValue"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27321
27598
|
}
|
|
27322
27599
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FavoriteStarComponent, decorators: [{
|
|
27323
27600
|
type: Component,
|
|
27324
|
-
args: [{ selector: 'gn-ui-favorite-star', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <span
|
|
27325
|
-
}], ctorParameters: function () { return [{ type: FavoritesService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: AuthService }, { type: i1$1.TranslateService }]; }, propDecorators: {
|
|
27601
|
+
args: [{ selector: 'gn-ui-favorite-star', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-row content-center\">\n <span\n class=\"align-text-top mr-1.5 mt-1.5 favorite-count\"\n *ngIf=\"hasFavoriteCount && displayCount\"\n >{{ favoriteCount }}</span\n >\n <gn-ui-star-toggle\n [toggled]=\"isFavorite$ | async\"\n (newValue)=\"toggleFavorite($event)\"\n [disabled]=\"loading || (isAnonymous$ | async)\"\n class=\"mt-1\"\n ></gn-ui-star-toggle>\n <span\n class=\"align-text-top ml-1.5 favorite-count mt-1.5\"\n *ngIf=\"!displayCount\"\n translate=\"datahub.record.addToFavorites\"\n ></span>\n</div>\n" }]
|
|
27602
|
+
}], ctorParameters: function () { return [{ type: FavoritesService }, { type: PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: AuthService }, { type: i1$1.TranslateService }]; }, propDecorators: { displayCount: [{
|
|
27603
|
+
type: Input
|
|
27604
|
+
}], record: [{
|
|
27326
27605
|
type: Input
|
|
27327
27606
|
}], starToggleRef: [{
|
|
27328
27607
|
type: ViewChild,
|
|
@@ -27365,7 +27644,7 @@ class ResultsListContainerComponent {
|
|
|
27365
27644
|
return this.recordUrlTemplate.replace('${uuid}', metadata.uniqueIdentifier);
|
|
27366
27645
|
}
|
|
27367
27646
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsListContainerComponent, deps: [{ token: SearchFacade }, { token: RESULTS_LAYOUT_CONFIG }, { token: RECORD_URL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27368
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: { metadataQualityDisplay: "metadataQualityDisplay", layout: "layout", showMore: "showMore" }, outputs: { mdSelect: "mdSelect" }, ngImport: i0, template: "<div *ngIf=\"(error$ | async) === null\" class=\"search-results relative\">\n <gn-ui-results-list\n [records]=\"facade.results$ | async\"\n [layoutConfig]=\"layoutConfig$ | async\"\n [metadataQualityDisplay]=\"\n metadataQualityDisplay && (pipelineForQualityScoreActivated | async)\n \"\n [favoriteTemplate]=\"favoriteToggle\"\n [recordUrlGetter]=\"recordUrlGetter\"\n (mdSelect)=\"onMetadataSelection($event)\"\n ></gn-ui-results-list>\n <ng-container\n *ngIf=\"\n (facade.isLoading$ | async) === false &&\n (facade.isEndOfResults$ | async) === false\n \"\n >\n <div class=\"show-more h-[100px] pt-[30px]\" *ngIf=\"showMore === 'button'\">\n <gn-ui-button\n data-cy=\"addMoreBtn\"\n type=\"secondary\"\n (buttonClick)=\"onShowMore()\"\n extraClass=\"m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >results.showMore</span\n >\n </gn-ui-button>\n </div>\n <div class=\"show-more h-[100px]\" *ngIf=\"showMore === 'auto'\">\n <gn-ui-viewport-intersector\n (entersViewport)=\"onShowMore()\"\n ></gn-ui-viewport-intersector>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(facade.isLoading$ | async) === true\">\n <div class=\"loading flex justify-center h-[100px] pt-[45px]\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n</div>\n\n<div class=\"p-4 max-w-[600px] m-auto text-[13px]\">\n <gn-ui-search-results-error\n *ngIf=\"(errorCode$ | async) === 0\"\n [type]=\"errorTypes.COULD_NOT_REACH_API\"\n >\n </gn-ui-search-results-error>\n <gn-ui-search-results-error\n *ngIf=\"(error$ | async) !== null && (errorCode$ | async) !== 0\"\n [type]=\"errorTypes.RECEIVED_ERROR\"\n [error]=\"errorMessage$ | async\"\n ></gn-ui-search-results-error>\n</div>\n\n<ng-template #favoriteToggle let-record>\n <gn-ui-favorite-star [record]=\"record\"></gn-ui-favorite-star>\n</ng-template>\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: ResultsListComponent, selector: "gn-ui-results-list", inputs: ["records", "layoutConfig", "favoriteTemplate", "recordUrlGetter", "metadataQualityDisplay"], outputs: ["mdSelect"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: ["isInViewport", "entersViewport", "exitsViewport"] }, { kind: "component", type: SearchResultsErrorComponent, selector: "gn-ui-search-results-error", inputs: ["type", "error", "recordId"] }, { kind: "component", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "component", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: ["record"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }] }); }
|
|
27647
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: { metadataQualityDisplay: "metadataQualityDisplay", layout: "layout", showMore: "showMore" }, outputs: { mdSelect: "mdSelect" }, ngImport: i0, template: "<div *ngIf=\"(error$ | async) === null\" class=\"search-results relative\">\n <gn-ui-results-list\n [records]=\"facade.results$ | async\"\n [layoutConfig]=\"layoutConfig$ | async\"\n [metadataQualityDisplay]=\"\n metadataQualityDisplay && (pipelineForQualityScoreActivated | async)\n \"\n [favoriteTemplate]=\"favoriteToggle\"\n [recordUrlGetter]=\"recordUrlGetter\"\n (mdSelect)=\"onMetadataSelection($event)\"\n ></gn-ui-results-list>\n <ng-container\n *ngIf=\"\n (facade.isLoading$ | async) === false &&\n (facade.isEndOfResults$ | async) === false\n \"\n >\n <div class=\"show-more h-[100px] pt-[30px]\" *ngIf=\"showMore === 'button'\">\n <gn-ui-button\n data-cy=\"addMoreBtn\"\n type=\"secondary\"\n (buttonClick)=\"onShowMore()\"\n extraClass=\"m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >results.showMore</span\n >\n </gn-ui-button>\n </div>\n <div class=\"show-more h-[100px]\" *ngIf=\"showMore === 'auto'\">\n <gn-ui-viewport-intersector\n (entersViewport)=\"onShowMore()\"\n ></gn-ui-viewport-intersector>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(facade.isLoading$ | async) === true\">\n <div class=\"loading flex justify-center h-[100px] pt-[45px]\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n</div>\n\n<div class=\"p-4 max-w-[600px] m-auto text-[13px]\">\n <gn-ui-search-results-error\n *ngIf=\"(errorCode$ | async) === 0\"\n [type]=\"errorTypes.COULD_NOT_REACH_API\"\n >\n </gn-ui-search-results-error>\n <gn-ui-search-results-error\n *ngIf=\"(error$ | async) !== null && (errorCode$ | async) !== 0\"\n [type]=\"errorTypes.RECEIVED_ERROR\"\n [error]=\"errorMessage$ | async\"\n ></gn-ui-search-results-error>\n</div>\n\n<ng-template #favoriteToggle let-record>\n <gn-ui-favorite-star [record]=\"record\"></gn-ui-favorite-star>\n</ng-template>\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: ResultsListComponent, selector: "gn-ui-results-list", inputs: ["records", "layoutConfig", "favoriteTemplate", "recordUrlGetter", "metadataQualityDisplay"], outputs: ["mdSelect"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: ["isInViewport", "entersViewport", "exitsViewport"] }, { kind: "component", type: SearchResultsErrorComponent, selector: "gn-ui-search-results-error", inputs: ["type", "error", "recordId"] }, { kind: "component", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "component", type: FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: ["displayCount", "record"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }] }); }
|
|
27369
27648
|
}
|
|
27370
27649
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsListContainerComponent, decorators: [{
|
|
27371
27650
|
type: Component,
|
|
@@ -28080,7 +28359,7 @@ class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
|
28080
28359
|
return getLinkLabel(link);
|
|
28081
28360
|
}
|
|
28082
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 }); }
|
|
28083
|
-
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 }); }
|
|
28084
28363
|
}
|
|
28085
28364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerRecordPreviewComponent, decorators: [{
|
|
28086
28365
|
type: Component,
|
|
@@ -28124,6 +28403,208 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28124
28403
|
], template: "<div class=\"h-full text-sm\">\n <gn-ui-fuzzy-search></gn-ui-fuzzy-search>\n <gn-ui-results-list-container\n layout=\"ADDLAYER\"\n ></gn-ui-results-list-container>\n</div>\n", styles: ["::ng-deep .mat-tab-body-wrapper{flex-grow:1}\n"] }]
|
|
28125
28404
|
}], ctorParameters: function () { return [{ type: SearchFacade }]; } });
|
|
28126
28405
|
|
|
28406
|
+
class AddLayerFromWmsComponent {
|
|
28407
|
+
constructor(mapFacade, changeDetectorRef) {
|
|
28408
|
+
this.mapFacade = mapFacade;
|
|
28409
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
28410
|
+
this.wmsUrl = '';
|
|
28411
|
+
this.loading = false;
|
|
28412
|
+
this.layers = [];
|
|
28413
|
+
this.wmsEndpoint = null;
|
|
28414
|
+
this.urlChange = new Subject();
|
|
28415
|
+
this.errorMessage = null;
|
|
28416
|
+
}
|
|
28417
|
+
ngOnInit() {
|
|
28418
|
+
this.urlChange.pipe(debounceTime(700)).subscribe(() => this.loadLayers());
|
|
28419
|
+
}
|
|
28420
|
+
async loadLayers() {
|
|
28421
|
+
this.errorMessage = null;
|
|
28422
|
+
try {
|
|
28423
|
+
this.loading = true;
|
|
28424
|
+
if (this.wmsUrl.trim() === '') {
|
|
28425
|
+
this.layers = [];
|
|
28426
|
+
return;
|
|
28427
|
+
}
|
|
28428
|
+
this.wmsEndpoint = await new WmsEndpoint(this.wmsUrl).isReady();
|
|
28429
|
+
this.layers = this.wmsEndpoint.getLayers();
|
|
28430
|
+
}
|
|
28431
|
+
catch (error) {
|
|
28432
|
+
const err = error;
|
|
28433
|
+
this.layers = [];
|
|
28434
|
+
this.errorMessage = 'Error loading layers: ' + err.message;
|
|
28435
|
+
}
|
|
28436
|
+
finally {
|
|
28437
|
+
this.loading = false;
|
|
28438
|
+
this.changeDetectorRef.markForCheck();
|
|
28439
|
+
}
|
|
28440
|
+
}
|
|
28441
|
+
addLayer(layer) {
|
|
28442
|
+
const layerToAdd = {
|
|
28443
|
+
name: layer.name,
|
|
28444
|
+
url: this.wmsUrl.toString(),
|
|
28445
|
+
type: MapContextLayerTypeEnum.WMS,
|
|
28446
|
+
};
|
|
28447
|
+
this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
|
|
28448
|
+
}
|
|
28449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, deps: [{ token: MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28450
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms", ngImport: i0, 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", 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$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
28451
|
+
}
|
|
28452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, decorators: [{
|
|
28453
|
+
type: Component,
|
|
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" }]
|
|
28455
|
+
}], ctorParameters: function () { return [{ type: MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
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
|
+
|
|
28556
|
+
class AddLayerFromWfsComponent {
|
|
28557
|
+
constructor(mapFacade, changeDetectorRef) {
|
|
28558
|
+
this.mapFacade = mapFacade;
|
|
28559
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
28560
|
+
this.wfsUrl = '';
|
|
28561
|
+
this.loading = false;
|
|
28562
|
+
this.layers = [];
|
|
28563
|
+
this.wfsEndpoint = null;
|
|
28564
|
+
this.urlChange = new Subject();
|
|
28565
|
+
this.errorMessage = null;
|
|
28566
|
+
}
|
|
28567
|
+
ngOnInit() {
|
|
28568
|
+
this.urlChange.pipe(debounceTime(700)).subscribe(() => this.loadLayers());
|
|
28569
|
+
}
|
|
28570
|
+
async loadLayers() {
|
|
28571
|
+
this.errorMessage = null;
|
|
28572
|
+
try {
|
|
28573
|
+
this.loading = true;
|
|
28574
|
+
if (this.wfsUrl.trim() === '') {
|
|
28575
|
+
this.layers = [];
|
|
28576
|
+
return;
|
|
28577
|
+
}
|
|
28578
|
+
this.wfsEndpoint = await new WfsEndpoint(this.wfsUrl).isReady();
|
|
28579
|
+
this.layers = this.wfsEndpoint.getFeatureTypes();
|
|
28580
|
+
console.log(this.layers);
|
|
28581
|
+
}
|
|
28582
|
+
catch (error) {
|
|
28583
|
+
const err = error;
|
|
28584
|
+
this.layers = [];
|
|
28585
|
+
this.errorMessage = 'Error loading layers: ' + err.message;
|
|
28586
|
+
}
|
|
28587
|
+
finally {
|
|
28588
|
+
this.loading = false;
|
|
28589
|
+
this.changeDetectorRef.markForCheck();
|
|
28590
|
+
}
|
|
28591
|
+
}
|
|
28592
|
+
addLayer(layer) {
|
|
28593
|
+
const layerToAdd = {
|
|
28594
|
+
name: layer.name,
|
|
28595
|
+
url: this.wfsUrl.toString(),
|
|
28596
|
+
type: MapContextLayerTypeEnum.WFS,
|
|
28597
|
+
};
|
|
28598
|
+
this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
|
|
28599
|
+
}
|
|
28600
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, deps: [{ token: MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28601
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.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 *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\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 </ng-container>\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: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
28602
|
+
}
|
|
28603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWfsComponent, decorators: [{
|
|
28604
|
+
type: Component,
|
|
28605
|
+
args: [{ selector: 'gn-ui-add-layer-from-wfs', template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wfsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wfs.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 *ngFor=\"let layer of layers\">\n <div class=\"flex items-center justify-between my-2 layer-item-tree\">\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 </ng-container>\n</div>\n" }]
|
|
28606
|
+
}], ctorParameters: function () { return [{ type: MapFacade }, { type: i0.ChangeDetectorRef }]; } });
|
|
28607
|
+
|
|
28127
28608
|
class LayersPanelComponent {
|
|
28128
28609
|
constructor(mapFacade) {
|
|
28129
28610
|
this.mapFacade = mapFacade;
|
|
@@ -28133,11 +28614,11 @@ class LayersPanelComponent {
|
|
|
28133
28614
|
this.mapFacade.removeLayer(index);
|
|
28134
28615
|
}
|
|
28135
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 }); }
|
|
28136
|
-
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
|
|
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 }); }
|
|
28137
28618
|
}
|
|
28138
28619
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
28139
28620
|
type: Component,
|
|
28140
|
-
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
|
|
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" }]
|
|
28141
28622
|
}], ctorParameters: function () { return [{ type: MapFacade }]; } });
|
|
28142
28623
|
|
|
28143
28624
|
class MapEffects {
|
|
@@ -28170,6 +28651,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28170
28651
|
args: [{ selector: 'gn-ui-map-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<gn-ui-map-context [context]=\"context$ | async\"></gn-ui-map-context>\n" }]
|
|
28171
28652
|
}], ctorParameters: function () { return [{ type: MapFacade }]; } });
|
|
28172
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
|
+
|
|
28173
28718
|
class FeatureMapModule {
|
|
28174
28719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
28175
28720
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, declarations: [MapContextComponent,
|
|
@@ -28177,7 +28722,11 @@ class FeatureMapModule {
|
|
|
28177
28722
|
LayersPanelComponent,
|
|
28178
28723
|
AddLayerFromCatalogComponent,
|
|
28179
28724
|
MapContainerComponent,
|
|
28180
|
-
AddLayerRecordPreviewComponent
|
|
28725
|
+
AddLayerRecordPreviewComponent,
|
|
28726
|
+
AddLayerFromWmsComponent,
|
|
28727
|
+
AddLayerFromFileComponent,
|
|
28728
|
+
AddLayerFromWfsComponent,
|
|
28729
|
+
GeocodingComponent], imports: [CommonModule,
|
|
28181
28730
|
UiMapModule,
|
|
28182
28731
|
UiLayoutModule,
|
|
28183
28732
|
MatIconModule,
|
|
@@ -28188,7 +28737,8 @@ class FeatureMapModule {
|
|
|
28188
28737
|
MapInstanceDirective,
|
|
28189
28738
|
LayersPanelComponent,
|
|
28190
28739
|
AddLayerFromCatalogComponent,
|
|
28191
|
-
MapContainerComponent
|
|
28740
|
+
MapContainerComponent,
|
|
28741
|
+
GeocodingComponent] }); }
|
|
28192
28742
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FeatureMapModule, providers: [
|
|
28193
28743
|
{
|
|
28194
28744
|
provide: FEATURE_MAP_OPTIONS,
|
|
@@ -28217,6 +28767,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28217
28767
|
AddLayerFromCatalogComponent,
|
|
28218
28768
|
MapContainerComponent,
|
|
28219
28769
|
AddLayerRecordPreviewComponent,
|
|
28770
|
+
AddLayerFromWmsComponent,
|
|
28771
|
+
AddLayerFromFileComponent,
|
|
28772
|
+
AddLayerFromWfsComponent,
|
|
28773
|
+
GeocodingComponent,
|
|
28220
28774
|
],
|
|
28221
28775
|
exports: [
|
|
28222
28776
|
MapContextComponent,
|
|
@@ -28224,6 +28778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
28224
28778
|
LayersPanelComponent,
|
|
28225
28779
|
AddLayerFromCatalogComponent,
|
|
28226
28780
|
MapContainerComponent,
|
|
28781
|
+
GeocodingComponent,
|
|
28227
28782
|
],
|
|
28228
28783
|
imports: [
|
|
28229
28784
|
CommonModule,
|
|
@@ -29605,15 +30160,16 @@ class DataService {
|
|
|
29605
30160
|
// Pour DL toutes les données
|
|
29606
30161
|
return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map$1((urls) => urls.all), map$1((urls) => Object.keys(urls).map((format) => ({
|
|
29607
30162
|
...wfsLink,
|
|
30163
|
+
type: 'download',
|
|
29608
30164
|
url: new URL(urls[format]),
|
|
29609
|
-
mimeType: getMimeTypeForFormat(
|
|
30165
|
+
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
29610
30166
|
}))));
|
|
29611
30167
|
}
|
|
29612
30168
|
getDownloadLinksFromEsriRest(esriRestLink) {
|
|
29613
30169
|
return ['json', 'geojson'].map((format) => ({
|
|
29614
30170
|
...esriRestLink,
|
|
29615
30171
|
url: new URL(this.getDownloadUrlFromEsriRest(esriRestLink.url.toString(), format)),
|
|
29616
|
-
mimeType: getMimeTypeForFormat(
|
|
30172
|
+
mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
|
|
29617
30173
|
}));
|
|
29618
30174
|
}
|
|
29619
30175
|
readAsGeoJson(link) {
|
|
@@ -30197,7 +30753,7 @@ class OrganisationPreviewComponent {
|
|
|
30197
30753
|
this.clickedOrganisation.emit(this.organisation);
|
|
30198
30754
|
}
|
|
30199
30755
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: OrganisationPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30200
|
-
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 }); }
|
|
30201
30757
|
}
|
|
30202
30758
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: OrganisationPreviewComponent, decorators: [{
|
|
30203
30759
|
type: Component,
|
|
@@ -30266,7 +30822,7 @@ class LanguageSwitcherComponent {
|
|
|
30266
30822
|
ngOnInit() {
|
|
30267
30823
|
const languages = this.languagePlaceholder || DEFAULT_LANGUAGES;
|
|
30268
30824
|
this.languageList = languages.map((language) => ({
|
|
30269
|
-
label:
|
|
30825
|
+
label: `${language}`.toUpperCase(),
|
|
30270
30826
|
value: language,
|
|
30271
30827
|
}));
|
|
30272
30828
|
}
|
|
@@ -30281,11 +30837,11 @@ class LanguageSwitcherComponent {
|
|
|
30281
30837
|
this.translate.use(value);
|
|
30282
30838
|
}
|
|
30283
30839
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LanguageSwitcherComponent, deps: [{ token: LANGUAGES_LIST, optional: true }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30284
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LanguageSwitcherComponent, selector: "gn-ui-language-switcher", ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }] }); }
|
|
30840
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LanguageSwitcherComponent, selector: "gn-ui-language-switcher", ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center text-white !pl-2 !py-1'\"\n>\n</gn-ui-dropdown-selector>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth"], outputs: ["selectValue"] }] }); }
|
|
30285
30841
|
}
|
|
30286
30842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LanguageSwitcherComponent, decorators: [{
|
|
30287
30843
|
type: Component,
|
|
30288
|
-
args: [{ selector: 'gn-ui-language-switcher', template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n>\n</gn-ui-dropdown-selector>\n" }]
|
|
30844
|
+
args: [{ selector: 'gn-ui-language-switcher', template: "<gn-ui-dropdown-selector\n [title]=\"'languages'\"\n [choices]=\"languageList\"\n (selectValue)=\"changeLanguage($event)\"\n [selected]=\"currentLang\"\n ariaName=\"languages\"\n [showTitle]=\"false\"\n [extraBtnClass]=\"'flex justify-items-center text-white !pl-2 !py-1'\"\n>\n</gn-ui-dropdown-selector>\n" }]
|
|
30289
30845
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
30290
30846
|
type: Optional
|
|
30291
30847
|
}, {
|
|
@@ -30427,20 +30983,8 @@ class OrganisationsComponent {
|
|
|
30427
30983
|
filterOrganisations(organisations, filterBy) {
|
|
30428
30984
|
if (!filterBy)
|
|
30429
30985
|
return organisations;
|
|
30430
|
-
const
|
|
30431
|
-
|
|
30432
|
-
.replace(/\s(?=.)/g, '.*') //replace whitespaces by "AND" separator
|
|
30433
|
-
.replace(/\s/g, ''), //remove potential whitespaces left
|
|
30434
|
-
'i');
|
|
30435
|
-
return [...organisations].filter((org) => {
|
|
30436
|
-
return this.normalizeString(org.name).match(filterRegex);
|
|
30437
|
-
});
|
|
30438
|
-
}
|
|
30439
|
-
normalizeString(str) {
|
|
30440
|
-
return str
|
|
30441
|
-
.normalize('NFD')
|
|
30442
|
-
.replace(/[\u0300-\u036f]/g, '')
|
|
30443
|
-
.toLowerCase();
|
|
30986
|
+
const filter = createFuzzyFilter(filterBy);
|
|
30987
|
+
return organisations.filter((org) => filter(org.name));
|
|
30444
30988
|
}
|
|
30445
30989
|
sortOrganisations(organisations, sortBy) {
|
|
30446
30990
|
let order;
|
|
@@ -31296,11 +31840,11 @@ class RecordFormComponent {
|
|
|
31296
31840
|
return field.config.model;
|
|
31297
31841
|
}
|
|
31298
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 }); }
|
|
31299
|
-
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 }); }
|
|
31300
31844
|
}
|
|
31301
31845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
31302
31846
|
type: Component,
|
|
31303
|
-
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" }]
|
|
31304
31848
|
}], ctorParameters: function () { return [{ type: EditorService }]; } });
|
|
31305
31849
|
|
|
31306
31850
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -31668,5 +32212,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
31668
32212
|
* Generated bundle index. Do not edit.
|
|
31669
32213
|
*/
|
|
31670
32214
|
|
|
31671
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AutocompleteComponent, AvatarComponent, 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_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_RESOURCES_VALUES, EditorService, 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, 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, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, LANGUAGES_LIST, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, 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, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MyOrgService, NavigationButtonComponent, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, 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, 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, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, currentPage, defaultMapOptions, dragPanCondition,
|
|
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 };
|
|
31672
32216
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|