geonetwork-ui 2.8.0-dev.93d2d87c0 → 2.8.0-dev.94b119e28
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +5 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +26 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -7
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -3
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +1 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +7 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +10 -10
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -2
- package/esm2022/libs/common/domain/src/index.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +3 -1
- package/esm2022/libs/common/domain/src/lib/model/search/sort-by.model.mjs +6 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/index.mjs +2 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +3 -1
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +18 -7
- package/esm2022/libs/feature/dataviz/src/lib/stac-view/stac-view.component.mjs +51 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +23 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -4
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +23 -8
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +2 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +14 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +5 -1
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +9 -7
- package/esm2022/libs/feature/search/src/lib/constants.mjs +1 -2
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +8 -12
- package/esm2022/libs/ui/elements/src/index.mjs +2 -1
- package/esm2022/libs/ui/elements/src/lib/external-link-card/external-link-card.component.mjs +11 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.mjs +37 -0
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +5 -9
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +2 -3
- package/esm2022/libs/util/i18n/src/lib/date-locales.mjs +33 -0
- package/esm2022/libs/util/shared/src/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/humanize-date.directive.mjs +33 -0
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -1
- package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +19 -2
- package/esm2022/libs/util/shared/src/lib/services/proxy.service.mjs +9 -11
- package/esm2022/libs/util/shared/src/lib/utils/sort-by.mjs +9 -6
- package/esm2022/translations/de.json +16 -3
- package/esm2022/translations/en.json +16 -4
- package/esm2022/translations/es.json +15 -2
- package/esm2022/translations/fr.json +16 -3
- package/esm2022/translations/it.json +17 -4
- package/esm2022/translations/nl.json +15 -2
- package/esm2022/translations/pt.json +15 -2
- package/esm2022/translations/sk.json +16 -3
- package/fesm2022/geonetwork-ui-date-locales-MYnkDJ5h.mjs +35 -0
- package/fesm2022/geonetwork-ui-date-locales-MYnkDJ5h.mjs.map +1 -0
- package/fesm2022/geonetwork-ui.mjs +457 -166
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.ts +1 -0
- package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +7 -7
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/index.d.ts +3 -0
- package/libs/common/domain/src/index.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -2
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/sort-by.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
- package/libs/feature/dataviz/src/index.d.ts +1 -0
- package/libs/feature/dataviz/src/index.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts +16 -0
- package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +2 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +3 -2
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +3 -2
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -24
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts +3 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +4 -3
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +1 -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/external-link-card/external-link-card.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +0 -2
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/date-locales.d.ts +5 -0
- package/libs/util/i18n/src/lib/date-locales.d.ts.map +1 -0
- package/libs/util/shared/src/index.d.ts +1 -0
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/humanize-date.directive.d.ts +15 -0
- package/libs/util/shared/src/lib/humanize-date.directive.d.ts.map +1 -0
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -0
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/date.service.d.ts +4 -0
- package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/proxy.service.d.ts +5 -4
- package/libs/util/shared/src/lib/services/proxy.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/sort-by.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +28 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +13 -6
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +6 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -2
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +0 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +37 -36
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -2
- package/src/libs/common/domain/src/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +12 -1
- package/src/libs/common/domain/src/lib/model/search/sort-by.model.ts +5 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -1
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +5 -0
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +19 -0
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/feature/dataviz/src/index.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +16 -5
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.css +0 -0
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.html +40 -0
- package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.ts +62 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +3 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +30 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +7 -1
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +23 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +1 -0
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +30 -1
- package/src/libs/feature/router/src/lib/default/router.service.ts +8 -0
- package/src/libs/feature/router/src/lib/default/state/router.effects.ts +6 -7
- package/src/libs/feature/search/src/lib/constants.ts +0 -1
- package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +8 -12
- package/src/libs/ui/elements/src/index.ts +1 -0
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.html +43 -22
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.ts +12 -3
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.css +0 -0
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.html +31 -0
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.ts +30 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +69 -23
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +2 -9
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +4 -2
- package/src/libs/util/i18n/src/lib/date-locales.ts +63 -0
- package/src/libs/util/shared/src/index.ts +1 -0
- package/src/libs/util/shared/src/lib/humanize-date.directive.ts +35 -0
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -0
- package/src/libs/util/shared/src/lib/services/date.service.ts +27 -1
- package/src/libs/util/shared/src/lib/services/proxy.service.ts +6 -2
- package/src/libs/util/shared/src/lib/utils/sort-by.ts +8 -5
- package/translations/de.json +16 -3
- package/translations/en.json +16 -4
- package/translations/es.json +15 -2
- package/translations/fr.json +16 -3
- package/translations/it.json +17 -4
- package/translations/nl.json +15 -2
- package/translations/pt.json +15 -2
- package/translations/sk.json +16 -3
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +0 -59
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts +0 -11
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts.map +0 -1
- package/src/libs/common/domain/src/lib/index.ts +0 -2
- package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +0 -54
|
@@ -7,7 +7,7 @@ import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
|
7
7
|
import { format } from 'date-fns/format';
|
|
8
8
|
import { Namespace, Literal, lit, parse as parse$2, sym, BlankNode, graph } from 'rdflib';
|
|
9
9
|
import * as i0 from '@angular/core';
|
|
10
|
-
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, APP_INITIALIZER, makeEnvironmentProviders, Directive, Input, HostListener, EventEmitter, Component, ChangeDetectionStrategy, Output, ViewChild, ViewEncapsulation, HostBinding, TemplateRef, ElementRef, ViewChildren, ContentChild, ContentChildren, Host,
|
|
10
|
+
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, APP_INITIALIZER, makeEnvironmentProviders, Directive, Input, HostListener, EventEmitter, Component, ChangeDetectionStrategy, Output, ViewChild, ViewEncapsulation, HostBinding, TemplateRef, ElementRef, ViewChildren, ContentChild, ContentChildren, Host, ViewContainerRef, inject } from '@angular/core';
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
12
12
|
import { HttpHeaders, HttpParams, HttpClient, provideHttpClient, withInterceptorsFromDi, HTTP_INTERCEPTORS, HttpEventType } from '@angular/common/http';
|
|
13
13
|
import * as i1$1 from '@ngx-translate/core';
|
|
@@ -15,11 +15,12 @@ import { TranslateCompiler, TranslateLoader, TranslateDefaultParser, TranslatePa
|
|
|
15
15
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
17
|
import { map as map$1, shareReplay as shareReplay$1, catchError, tap as tap$1, filter as filter$1, startWith as startWith$1, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, pairwise as pairwise$1, share, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
18
|
-
import { of, map as map$2, lastValueFrom, fromEvent, startWith, shareReplay, filter, pairwise,
|
|
18
|
+
import { of, map as map$2, lastValueFrom, fromEvent, startWith, shareReplay, filter, pairwise, switchMap, Subject, combineLatest, from, exhaustMap, throwError, forkJoin, takeLast, firstValueFrom, merge, BehaviorSubject, timer, ReplaySubject, Subscription, first, distinctUntilChanged as distinctUntilChanged$1, animationFrameScheduler, debounceTime as debounceTime$1, Observable, buffer, tap as tap$2, combineLatestWith, take as take$1, catchError as catchError$1, takeUntil, EMPTY, mergeMap as mergeMap$1, withLatestFrom as withLatestFrom$1 } from 'rxjs';
|
|
19
19
|
import { lt, valid, coerce, satisfies, ltr } from 'semver';
|
|
20
20
|
import chroma from 'chroma-js';
|
|
21
21
|
import * as i1$2 from '@angular/common';
|
|
22
22
|
import { CommonModule, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgClass, NgTemplateOutlet, DatePipe } from '@angular/common';
|
|
23
|
+
import { formatDistance } from 'date-fns/formatDistance';
|
|
23
24
|
import * as i1$d from '@angular/router';
|
|
24
25
|
import { Scroll, NavigationEnd, RouteReuseStrategy } from '@angular/router';
|
|
25
26
|
import { WmtsEndpoint, WmsEndpoint, WfsEndpoint, OgcApiEndpoint, sharedFetch, useCache, TmsEndpoint } from '@camptocamp/ogc-client';
|
|
@@ -31,7 +32,7 @@ import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/g
|
|
|
31
32
|
import { FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, SourceLoadErrorType, computeMapContextDiff, createViewFromLayer } from '@geospatial-sdk/core';
|
|
32
33
|
import { listen, createMapFromContext, applyContextDiffToMap } from '@geospatial-sdk/openlayers';
|
|
33
34
|
import { provideIcons, provideNgIconsConfig, NgIconComponent, NgIcon } from '@ng-icons/core';
|
|
34
|
-
import { matSwipeOutline, matErrorOutlineOutline, matComputerOutline, matLocationSearchingOutline, matCallOutline, matLocationOnOutline, matMailOutline as matMailOutline$1, matInfoOutline, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matCloudDownloadOutline, matHomeWorkOutline, matLayersOutline, matAddCircleOutlineOutline, matMoreHorizOutline } from '@ng-icons/material-icons/outline';
|
|
35
|
+
import { matSwipeOutline, matErrorOutlineOutline, matComputerOutline, matLocationSearchingOutline, matCallOutline, matLocationOnOutline, matMailOutline as matMailOutline$1, matInfoOutline, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matCloudDownloadOutline, matHomeWorkOutline, matLayersOutline, matAddCircleOutlineOutline, matDeleteOutline, matMoreHorizOutline } from '@ng-icons/material-icons/outline';
|
|
35
36
|
import { createLegendFromLayer } from '@geospatial-sdk/legend';
|
|
36
37
|
import { defaults, DragPan, MouseWheelZoom } from 'ol/interaction';
|
|
37
38
|
import { mouseOnly, noModifierKeys, primaryAction, platformModifierKeyOnly } from 'ol/events/condition';
|
|
@@ -74,8 +75,6 @@ import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
|
|
|
74
75
|
import { valid as valid$1 } from 'geojson-validation';
|
|
75
76
|
import * as basicLightbox from 'basiclightbox';
|
|
76
77
|
import { marked } from 'marked';
|
|
77
|
-
import { formatDistance } from 'date-fns/formatDistance';
|
|
78
|
-
import { enUS, sk as sk$1, pt as pt$1, nl as nl$1, it as it$1, es as es$1, de as de$1, fr as fr$1 } from 'date-fns/locale';
|
|
79
78
|
import * as i2$3 from '@angular/cdk/scrolling';
|
|
80
79
|
import { CdkScrollable, ScrollingModule } from '@angular/cdk/scrolling';
|
|
81
80
|
import Duration from 'duration-relativetimeformat';
|
|
@@ -666,6 +665,10 @@ function matchProtocol(protocol) {
|
|
|
666
665
|
return 'esriRest';
|
|
667
666
|
if (/DOWNLOAD-1/i.test(protocol))
|
|
668
667
|
return 'GPFDL';
|
|
668
|
+
if (/DB:POSTGIS/i.test(protocol))
|
|
669
|
+
return 'postgis';
|
|
670
|
+
if (/stac\W*items/i.test(protocol))
|
|
671
|
+
return 'stac';
|
|
669
672
|
return 'other';
|
|
670
673
|
}
|
|
671
674
|
function matchMimeType(format) {
|
|
@@ -914,6 +917,8 @@ marker('record.metadata.api.accessServiceProtocol.ogcFeatures');
|
|
|
914
917
|
marker('record.metadata.api.accessServiceProtocol.GPFDL');
|
|
915
918
|
marker('record.metadata.api.accessServiceProtocol.tms');
|
|
916
919
|
marker('record.metadata.api.accessServiceProtocol.maplibre-style');
|
|
920
|
+
marker('record.metadata.api.accessServiceProtocol.postgis');
|
|
921
|
+
marker('record.metadata.api.accessServiceProtocol.stac');
|
|
917
922
|
marker('record.metadata.api.accessServiceProtocol.other');
|
|
918
923
|
|
|
919
924
|
function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
|
|
@@ -1574,7 +1579,8 @@ function readDefaultLanguage$2(rootEl) {
|
|
|
1574
1579
|
return pipe(findChildElement('gmd:language', false), findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? toLang2(lang.toLowerCase()) : null)))(rootEl);
|
|
1575
1580
|
}
|
|
1576
1581
|
function readResourceIdentifier(rootEl) {
|
|
1577
|
-
|
|
1582
|
+
const code = pipe(findIdentification(), findNestedElement('gmd:citation', 'gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
|
|
1583
|
+
return code ? [{ code }] : [];
|
|
1578
1584
|
}
|
|
1579
1585
|
|
|
1580
1586
|
function writeLocalizedElement(writeFn, text, translations, defaultLanguage) {
|
|
@@ -2080,8 +2086,9 @@ function writeDefaultLanguage$1(record, rootEl) {
|
|
|
2080
2086
|
return pipe(findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3))(rootEl);
|
|
2081
2087
|
}
|
|
2082
2088
|
function writeResourceIdentifier(record, rootEl) {
|
|
2083
|
-
|
|
2084
|
-
|
|
2089
|
+
const firstIdentifier = record.resourceIdentifiers?.[0]?.code;
|
|
2090
|
+
pipe(findOrCreateIdentification(), findNestedChildOrCreate('gmd:citation', 'gmd:CI_Citation'), removeChildrenByName('gmd:identifier'), firstIdentifier
|
|
2091
|
+
? pipe(createNestedChild('gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), writeCharacterString(firstIdentifier))
|
|
2085
2092
|
: noop)(rootEl);
|
|
2086
2093
|
}
|
|
2087
2094
|
|
|
@@ -2095,7 +2102,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2095
2102
|
recordUpdated: readRecordUpdated$2,
|
|
2096
2103
|
recordCreated: () => undefined, // not supported in ISO19139
|
|
2097
2104
|
recordPublished: () => undefined, // not supported in ISO19139
|
|
2098
|
-
|
|
2105
|
+
resourceIdentifiers: readResourceIdentifier,
|
|
2099
2106
|
resourceUpdated: readResourceUpdated$1,
|
|
2100
2107
|
resourceCreated: readResourceCreated$1,
|
|
2101
2108
|
resourcePublished: readResourcePublished,
|
|
@@ -2132,7 +2139,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2132
2139
|
recordUpdated: writeRecordUpdated$1,
|
|
2133
2140
|
recordCreated: () => undefined, // not supported in ISO19139
|
|
2134
2141
|
recordPublished: () => undefined, // not supported in ISO19139
|
|
2135
|
-
|
|
2142
|
+
resourceIdentifiers: writeResourceIdentifier,
|
|
2136
2143
|
resourceUpdated: writeResourceUpdated$1,
|
|
2137
2144
|
resourceCreated: writeResourceCreated$1,
|
|
2138
2145
|
resourcePublished: writeResourcePublished$1,
|
|
@@ -2233,11 +2240,11 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2233
2240
|
const onlineResources = this.readers['onlineResources'](rootEl, tr);
|
|
2234
2241
|
const otherLanguages = this.readers['otherLanguages'](rootEl, tr);
|
|
2235
2242
|
const defaultLanguage = this.readers['defaultLanguage'](rootEl, tr);
|
|
2236
|
-
const
|
|
2243
|
+
const resourceIdentifiers = this.readers['resourceIdentifiers'](rootEl, tr);
|
|
2237
2244
|
const spatialExtents = this.readers['spatialExtents'](rootEl, tr);
|
|
2238
2245
|
return {
|
|
2239
2246
|
uniqueIdentifier,
|
|
2240
|
-
...(
|
|
2247
|
+
...(resourceIdentifiers?.length > 0 && { resourceIdentifiers }),
|
|
2241
2248
|
kind,
|
|
2242
2249
|
otherLanguages,
|
|
2243
2250
|
defaultLanguage,
|
|
@@ -2365,8 +2372,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2365
2372
|
this.writers['otherConstraints'](record, rootEl);
|
|
2366
2373
|
fieldChanged('onlineResources') &&
|
|
2367
2374
|
this.writers['onlineResources'](record, rootEl);
|
|
2368
|
-
fieldChanged('
|
|
2369
|
-
this.writers['
|
|
2375
|
+
fieldChanged('resourceIdentifiers') &&
|
|
2376
|
+
this.writers['resourceIdentifiers'](record, rootEl);
|
|
2370
2377
|
if (record.kind === 'dataset') {
|
|
2371
2378
|
fieldChanged('status') && this.writers['status'](record, rootEl);
|
|
2372
2379
|
fieldChanged('updateFrequency') &&
|
|
@@ -3313,7 +3320,7 @@ class DcatApConverter extends BaseConverter {
|
|
|
3313
3320
|
spatialExtents: readSpatialExtents,
|
|
3314
3321
|
keywords: readKeywords,
|
|
3315
3322
|
topics: readTopics,
|
|
3316
|
-
|
|
3323
|
+
resourceIdentifiers: () => undefined,
|
|
3317
3324
|
recordUpdated: readRecordUpdated,
|
|
3318
3325
|
recordCreated: readRecordCreated,
|
|
3319
3326
|
resourceUpdated: readResourceUpdated,
|
|
@@ -3349,7 +3356,7 @@ class DcatApConverter extends BaseConverter {
|
|
|
3349
3356
|
recordUpdated: () => undefined,
|
|
3350
3357
|
recordCreated: () => undefined,
|
|
3351
3358
|
recordPublished: () => undefined,
|
|
3352
|
-
|
|
3359
|
+
resourceIdentifiers: () => undefined,
|
|
3353
3360
|
resourceUpdated: () => undefined,
|
|
3354
3361
|
resourceCreated: () => undefined,
|
|
3355
3362
|
resourcePublished: () => undefined,
|
|
@@ -19159,6 +19166,8 @@ var de = {
|
|
|
19159
19166
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
19160
19167
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
19161
19168
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
19169
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
19170
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
19162
19171
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
19163
19172
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
19164
19173
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -19200,13 +19209,16 @@ var de = {
|
|
|
19200
19209
|
"record.metadata.contact": "Kontakt",
|
|
19201
19210
|
"record.metadata.creation": "Erstellungsdatum",
|
|
19202
19211
|
"record.metadata.details": "Über die Daten",
|
|
19212
|
+
"record.metadata.doi.copy": "",
|
|
19213
|
+
"record.metadata.doi.open": "",
|
|
19203
19214
|
"record.metadata.download": "Downloads",
|
|
19204
19215
|
"record.metadata.feature.catalog": "",
|
|
19205
19216
|
"record.metadata.formats": "Formate",
|
|
19206
19217
|
"record.metadata.isGeographical": "Geographischer Datensatz",
|
|
19207
19218
|
"record.metadata.keywords": "Stichworte",
|
|
19208
19219
|
"record.metadata.languages": "Sprachen",
|
|
19209
|
-
"record.metadata.
|
|
19220
|
+
"record.metadata.link.postgis.table": "",
|
|
19221
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
19210
19222
|
"record.metadata.linked.datasets": "Verknüpfte Datensätze",
|
|
19211
19223
|
"record.metadata.linked.records": "Verknüpfte Inhalte",
|
|
19212
19224
|
"record.metadata.linked.reuses": "Verknüpfte Wiederverwendungen",
|
|
@@ -19247,6 +19259,9 @@ var de = {
|
|
|
19247
19259
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
19248
19260
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
19249
19261
|
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
19262
|
+
"record.metadata.resourceCreated": "Erstellt",
|
|
19263
|
+
"record.metadata.resourcePublished": "Veröffentlicht",
|
|
19264
|
+
"record.metadata.resourceUpdated": "Zuletzt aktualisiert",
|
|
19250
19265
|
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
19251
19266
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
19252
19267
|
"record.metadata.status": "Status",
|
|
@@ -19259,8 +19274,9 @@ var de = {
|
|
|
19259
19274
|
"record.metadata.title": "Titel",
|
|
19260
19275
|
"record.metadata.topics": "Kategorien",
|
|
19261
19276
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
19277
|
+
"record.metadata.update": "Aktualisierungsdatum",
|
|
19262
19278
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
19263
|
-
"record.metadata.updatedOn": "
|
|
19279
|
+
"record.metadata.updatedOn": "Informationen geändert",
|
|
19264
19280
|
"record.metadata.usage": "Nutzung und Einschränkungen",
|
|
19265
19281
|
"record.metadata.userFeedbacks": "",
|
|
19266
19282
|
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
@@ -19275,6 +19291,7 @@ var de = {
|
|
|
19275
19291
|
"record.tab.chart": "Diagramm",
|
|
19276
19292
|
"record.tab.data": "Tabelle",
|
|
19277
19293
|
"record.tab.map": "Karte",
|
|
19294
|
+
"record.tab.stac": "",
|
|
19278
19295
|
"record.was.created.time": "erstellte diesen Ressource {time}",
|
|
19279
19296
|
records: records$7,
|
|
19280
19297
|
"results.layout.selectOne": "Layout auswählen",
|
|
@@ -19283,7 +19300,6 @@ var de = {
|
|
|
19283
19300
|
"results.records.hits.found": "{hits, plural, =0{Keine Ressource entsprechen der angegebenen Suche.} one{1 Ressource gefunden.} other{{hits} Ressourcen gefunden.}}",
|
|
19284
19301
|
"results.records.hits.selected": "{ amount } ausgewählt",
|
|
19285
19302
|
"results.showMore": "Mehr Ergebnisse anzeigen...",
|
|
19286
|
-
"results.sortBy.changeDate": "",
|
|
19287
19303
|
"results.sortBy.dateStamp": "Neueste",
|
|
19288
19304
|
"results.sortBy.popularity": "Beliebtheit",
|
|
19289
19305
|
"results.sortBy.qualityScore": "Fertigstellungsanzeige",
|
|
@@ -19367,6 +19383,10 @@ var de = {
|
|
|
19367
19383
|
"service.metadata.spatialExtent": "",
|
|
19368
19384
|
"share.tab.permalink": "Teilen",
|
|
19369
19385
|
"share.tab.webComponent": "Integrieren",
|
|
19386
|
+
"stac.filter.from": "",
|
|
19387
|
+
"stac.filter.period": "",
|
|
19388
|
+
"stac.filter.reset": "",
|
|
19389
|
+
"stac.filter.to": "",
|
|
19370
19390
|
"table.loading.data": "Daten werden geladen...",
|
|
19371
19391
|
"table.object.count": "Objekte in diesem Datensatz",
|
|
19372
19392
|
"table.paginator.firstPage": "Erste Seite",
|
|
@@ -19634,7 +19654,6 @@ var en = {
|
|
|
19634
19654
|
"editor.record.form.topics.inspire.intelligence": "Intelligence / Military",
|
|
19635
19655
|
"editor.record.form.topics.inspire.location": "Location",
|
|
19636
19656
|
"editor.record.form.topics.inspire.oceans": "Oceans",
|
|
19637
|
-
"editor.record.form.topics.inspire.placeholder": "Select an INSPIRE theme",
|
|
19638
19657
|
"editor.record.form.topics.inspire.planning": "Planning / Cadastre",
|
|
19639
19658
|
"editor.record.form.topics.inspire.society": "Society",
|
|
19640
19659
|
"editor.record.form.topics.inspire.structure": "Structure",
|
|
@@ -19812,6 +19831,8 @@ var en = {
|
|
|
19812
19831
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "maplibre-style",
|
|
19813
19832
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "ogcFeatures",
|
|
19814
19833
|
"record.metadata.api.accessServiceProtocol.other": "other",
|
|
19834
|
+
"record.metadata.api.accessServiceProtocol.postgis": "PostGIS",
|
|
19835
|
+
"record.metadata.api.accessServiceProtocol.stac": "STAC",
|
|
19815
19836
|
"record.metadata.api.accessServiceProtocol.tms": "tms",
|
|
19816
19837
|
"record.metadata.api.accessServiceProtocol.wfs": "wfs",
|
|
19817
19838
|
"record.metadata.api.accessServiceProtocol.wms": "wms",
|
|
@@ -19853,13 +19874,16 @@ var en = {
|
|
|
19853
19874
|
"record.metadata.contact": "Contact",
|
|
19854
19875
|
"record.metadata.creation": "Date of creation",
|
|
19855
19876
|
"record.metadata.details": "About the data",
|
|
19877
|
+
"record.metadata.doi.copy": "Copy DOI",
|
|
19878
|
+
"record.metadata.doi.open": "Open DOI link",
|
|
19856
19879
|
"record.metadata.download": "Downloads",
|
|
19857
19880
|
"record.metadata.feature.catalog": "Feature catalog",
|
|
19858
19881
|
"record.metadata.formats": "Formats",
|
|
19859
19882
|
"record.metadata.isGeographical": "Geographical dataset",
|
|
19860
19883
|
"record.metadata.keywords": "Keywords",
|
|
19861
19884
|
"record.metadata.languages": "Languages",
|
|
19862
|
-
"record.metadata.
|
|
19885
|
+
"record.metadata.link.postgis.table": "table :",
|
|
19886
|
+
"record.metadata.link.postgis.tooltip": "PostGIS resources do not have access links",
|
|
19863
19887
|
"record.metadata.linked.datasets": "Associated datasets",
|
|
19864
19888
|
"record.metadata.linked.records": "Associated content",
|
|
19865
19889
|
"record.metadata.linked.reuses": "Associated reuses",
|
|
@@ -19900,6 +19924,9 @@ var en = {
|
|
|
19900
19924
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
19901
19925
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
19902
19926
|
"record.metadata.related": "Explore the catalog",
|
|
19927
|
+
"record.metadata.resourceCreated": "Created",
|
|
19928
|
+
"record.metadata.resourcePublished": "Published",
|
|
19929
|
+
"record.metadata.resourceUpdated": "Last updated",
|
|
19903
19930
|
"record.metadata.ressources.and.links": "Resources and links",
|
|
19904
19931
|
"record.metadata.sheet": "Original metadata",
|
|
19905
19932
|
"record.metadata.status": "Status",
|
|
@@ -19912,8 +19939,9 @@ var en = {
|
|
|
19912
19939
|
"record.metadata.title": "Title",
|
|
19913
19940
|
"record.metadata.topics": "Categories",
|
|
19914
19941
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
19942
|
+
"record.metadata.update": "Date of update",
|
|
19915
19943
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
19916
|
-
"record.metadata.updatedOn": "
|
|
19944
|
+
"record.metadata.updatedOn": "Metadata modified",
|
|
19917
19945
|
"record.metadata.usage": "License and Conditions",
|
|
19918
19946
|
"record.metadata.userFeedbacks": "Questions / Answers",
|
|
19919
19947
|
"record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
|
|
@@ -19928,6 +19956,7 @@ var en = {
|
|
|
19928
19956
|
"record.tab.chart": "Chart",
|
|
19929
19957
|
"record.tab.data": "Table",
|
|
19930
19958
|
"record.tab.map": "Map",
|
|
19959
|
+
"record.tab.stac": "STAC",
|
|
19931
19960
|
"record.was.created.time": "created this record {time}",
|
|
19932
19961
|
records: records$6,
|
|
19933
19962
|
"results.layout.selectOne": "Results layout",
|
|
@@ -19936,7 +19965,6 @@ var en = {
|
|
|
19936
19965
|
"results.records.hits.found": "{hits, plural, =0{No record match the specified search.} one{1 record found.} other{{hits} records found.}}",
|
|
19937
19966
|
"results.records.hits.selected": "{ amount } selected",
|
|
19938
19967
|
"results.showMore": "Show more results...",
|
|
19939
|
-
"results.sortBy.changeDate": "Last modification",
|
|
19940
19968
|
"results.sortBy.dateStamp": "Newest",
|
|
19941
19969
|
"results.sortBy.popularity": "Popularity",
|
|
19942
19970
|
"results.sortBy.qualityScore": "Completion score",
|
|
@@ -20020,6 +20048,10 @@ var en = {
|
|
|
20020
20048
|
"service.metadata.spatialExtent": "Spatial extent",
|
|
20021
20049
|
"share.tab.permalink": "Share",
|
|
20022
20050
|
"share.tab.webComponent": "Integrate",
|
|
20051
|
+
"stac.filter.from": "From",
|
|
20052
|
+
"stac.filter.period": "Period",
|
|
20053
|
+
"stac.filter.reset": "Reset filters",
|
|
20054
|
+
"stac.filter.to": "To",
|
|
20023
20055
|
"table.loading.data": "Loading data...",
|
|
20024
20056
|
"table.object.count": "Objects in this dataset",
|
|
20025
20057
|
"table.paginator.firstPage": "First page",
|
|
@@ -20464,6 +20496,8 @@ var es = {
|
|
|
20464
20496
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
20465
20497
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
20466
20498
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
20499
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
20500
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
20467
20501
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
20468
20502
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
20469
20503
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -20505,13 +20539,16 @@ var es = {
|
|
|
20505
20539
|
"record.metadata.contact": "",
|
|
20506
20540
|
"record.metadata.creation": "",
|
|
20507
20541
|
"record.metadata.details": "",
|
|
20542
|
+
"record.metadata.doi.copy": "",
|
|
20543
|
+
"record.metadata.doi.open": "",
|
|
20508
20544
|
"record.metadata.download": "",
|
|
20509
20545
|
"record.metadata.feature.catalog": "",
|
|
20510
20546
|
"record.metadata.formats": "",
|
|
20511
20547
|
"record.metadata.isGeographical": "",
|
|
20512
20548
|
"record.metadata.keywords": "",
|
|
20513
20549
|
"record.metadata.languages": "",
|
|
20514
|
-
"record.metadata.
|
|
20550
|
+
"record.metadata.link.postgis.table": "",
|
|
20551
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
20515
20552
|
"record.metadata.linked.datasets": "",
|
|
20516
20553
|
"record.metadata.linked.records": "",
|
|
20517
20554
|
"record.metadata.linked.reuses": "",
|
|
@@ -20552,6 +20589,9 @@ var es = {
|
|
|
20552
20589
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
20553
20590
|
"record.metadata.quality.updateFrequency.success": "",
|
|
20554
20591
|
"record.metadata.related": "",
|
|
20592
|
+
"record.metadata.resourceCreated": "",
|
|
20593
|
+
"record.metadata.resourcePublished": "",
|
|
20594
|
+
"record.metadata.resourceUpdated": "",
|
|
20555
20595
|
"record.metadata.ressources.and.links": "Recursos y enlaces",
|
|
20556
20596
|
"record.metadata.sheet": "",
|
|
20557
20597
|
"record.metadata.status": "",
|
|
@@ -20564,6 +20604,7 @@ var es = {
|
|
|
20564
20604
|
"record.metadata.title": "",
|
|
20565
20605
|
"record.metadata.topics": "",
|
|
20566
20606
|
"record.metadata.uniqueId": "",
|
|
20607
|
+
"record.metadata.update": "",
|
|
20567
20608
|
"record.metadata.updateFrequency": "",
|
|
20568
20609
|
"record.metadata.updatedOn": "",
|
|
20569
20610
|
"record.metadata.usage": "",
|
|
@@ -20580,6 +20621,7 @@ var es = {
|
|
|
20580
20621
|
"record.tab.chart": "",
|
|
20581
20622
|
"record.tab.data": "",
|
|
20582
20623
|
"record.tab.map": "",
|
|
20624
|
+
"record.tab.stac": "",
|
|
20583
20625
|
"record.was.created.time": "",
|
|
20584
20626
|
records: records$5,
|
|
20585
20627
|
"results.layout.selectOne": "",
|
|
@@ -20588,7 +20630,6 @@ var es = {
|
|
|
20588
20630
|
"results.records.hits.found": "",
|
|
20589
20631
|
"results.records.hits.selected": "",
|
|
20590
20632
|
"results.showMore": "",
|
|
20591
|
-
"results.sortBy.changeDate": "",
|
|
20592
20633
|
"results.sortBy.dateStamp": "",
|
|
20593
20634
|
"results.sortBy.popularity": "",
|
|
20594
20635
|
"results.sortBy.qualityScore": "",
|
|
@@ -20672,6 +20713,10 @@ var es = {
|
|
|
20672
20713
|
"service.metadata.spatialExtent": "",
|
|
20673
20714
|
"share.tab.permalink": "",
|
|
20674
20715
|
"share.tab.webComponent": "",
|
|
20716
|
+
"stac.filter.from": "",
|
|
20717
|
+
"stac.filter.period": "",
|
|
20718
|
+
"stac.filter.reset": "",
|
|
20719
|
+
"stac.filter.to": "",
|
|
20675
20720
|
"table.loading.data": "",
|
|
20676
20721
|
"table.object.count": "",
|
|
20677
20722
|
"table.paginator.firstPage": "Primera página",
|
|
@@ -21116,6 +21161,8 @@ var fr = {
|
|
|
21116
21161
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
21117
21162
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
21118
21163
|
"record.metadata.api.accessServiceProtocol.other": "autre",
|
|
21164
|
+
"record.metadata.api.accessServiceProtocol.postgis": "PostGIS",
|
|
21165
|
+
"record.metadata.api.accessServiceProtocol.stac": "STAC",
|
|
21119
21166
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
21120
21167
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
21121
21168
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -21157,13 +21204,16 @@ var fr = {
|
|
|
21157
21204
|
"record.metadata.contact": "Contact",
|
|
21158
21205
|
"record.metadata.creation": "Date de création",
|
|
21159
21206
|
"record.metadata.details": "À propos de la donnée",
|
|
21207
|
+
"record.metadata.doi.copy": "Copier le DOI",
|
|
21208
|
+
"record.metadata.doi.open": "Ouvrir le lien DOI",
|
|
21160
21209
|
"record.metadata.download": "Téléchargements",
|
|
21161
21210
|
"record.metadata.feature.catalog": "Catalogue d'attributs",
|
|
21162
21211
|
"record.metadata.formats": "Formats",
|
|
21163
21212
|
"record.metadata.isGeographical": "Donnée géographique",
|
|
21164
21213
|
"record.metadata.keywords": "Mots-clés",
|
|
21165
21214
|
"record.metadata.languages": "Langues",
|
|
21166
|
-
"record.metadata.
|
|
21215
|
+
"record.metadata.link.postgis.table": "table :",
|
|
21216
|
+
"record.metadata.link.postgis.tooltip": "Les ressources de type PostGIS n'ont pas de lien d'accès",
|
|
21167
21217
|
"record.metadata.linked.datasets": "Jeux de données associés",
|
|
21168
21218
|
"record.metadata.linked.records": "Contenus associés",
|
|
21169
21219
|
"record.metadata.linked.reuses": "Réutilisations associées",
|
|
@@ -21204,6 +21254,9 @@ var fr = {
|
|
|
21204
21254
|
"record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
|
|
21205
21255
|
"record.metadata.quality.updateFrequency.success": "La fréquence de mise à jour est renseignée",
|
|
21206
21256
|
"record.metadata.related": "Explorez le catalogue",
|
|
21257
|
+
"record.metadata.resourceCreated": "Créé",
|
|
21258
|
+
"record.metadata.resourcePublished": "Publié",
|
|
21259
|
+
"record.metadata.resourceUpdated": "Mis à jour",
|
|
21207
21260
|
"record.metadata.ressources.and.links": "Ressources et liens",
|
|
21208
21261
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
21209
21262
|
"record.metadata.status": "Statut",
|
|
@@ -21216,8 +21269,9 @@ var fr = {
|
|
|
21216
21269
|
"record.metadata.title": "Intitulé",
|
|
21217
21270
|
"record.metadata.topics": "Catégories",
|
|
21218
21271
|
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
21272
|
+
"record.metadata.update": "Date de mise à jour",
|
|
21219
21273
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
21220
|
-
"record.metadata.updatedOn": "
|
|
21274
|
+
"record.metadata.updatedOn": "Fiche de métadonnées modifiée",
|
|
21221
21275
|
"record.metadata.usage": "Licences et conditions d'utilisation",
|
|
21222
21276
|
"record.metadata.userFeedbacks": "Questions / Réponses",
|
|
21223
21277
|
"record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.",
|
|
@@ -21232,6 +21286,7 @@ var fr = {
|
|
|
21232
21286
|
"record.tab.chart": "Graphique",
|
|
21233
21287
|
"record.tab.data": "Tableau",
|
|
21234
21288
|
"record.tab.map": "Carte",
|
|
21289
|
+
"record.tab.stac": "STAC",
|
|
21235
21290
|
"record.was.created.time": "a créé cette ressource {time}",
|
|
21236
21291
|
records: records$4,
|
|
21237
21292
|
"results.layout.selectOne": "Affichage des résultats",
|
|
@@ -21240,7 +21295,6 @@ var fr = {
|
|
|
21240
21295
|
"results.records.hits.found": "{hits, plural, =0{Aucune correspondance.} one{1 ressource trouvée.} other{{hits} ressources.}}",
|
|
21241
21296
|
"results.records.hits.selected": "{amount, plural, one{1 selectionné} other{{ amount } sélectionnés}}",
|
|
21242
21297
|
"results.showMore": "Plus de résultats...",
|
|
21243
|
-
"results.sortBy.changeDate": "Dernière modification",
|
|
21244
21298
|
"results.sortBy.dateStamp": "Plus récent",
|
|
21245
21299
|
"results.sortBy.popularity": "Popularité",
|
|
21246
21300
|
"results.sortBy.qualityScore": "Indicateur de complétion",
|
|
@@ -21324,6 +21378,10 @@ var fr = {
|
|
|
21324
21378
|
"service.metadata.spatialExtent": "Etendue spatiale",
|
|
21325
21379
|
"share.tab.permalink": "Partager",
|
|
21326
21380
|
"share.tab.webComponent": "Intégrer",
|
|
21381
|
+
"stac.filter.from": "Du",
|
|
21382
|
+
"stac.filter.period": "Choix de la période",
|
|
21383
|
+
"stac.filter.reset": "Réinitialiser les filtres",
|
|
21384
|
+
"stac.filter.to": "Au",
|
|
21327
21385
|
"table.loading.data": "Chargement des données...",
|
|
21328
21386
|
"table.object.count": "enregistrements dans ce jeu de données",
|
|
21329
21387
|
"table.paginator.firstPage": "Première page",
|
|
@@ -21768,6 +21826,8 @@ var it = {
|
|
|
21768
21826
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
21769
21827
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
21770
21828
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
21829
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
21830
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
21771
21831
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
21772
21832
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
21773
21833
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -21809,13 +21869,16 @@ var it = {
|
|
|
21809
21869
|
"record.metadata.contact": "Contatto",
|
|
21810
21870
|
"record.metadata.creation": "Data di creazione",
|
|
21811
21871
|
"record.metadata.details": "A proposito del dati",
|
|
21872
|
+
"record.metadata.doi.copy": "",
|
|
21873
|
+
"record.metadata.doi.open": "",
|
|
21812
21874
|
"record.metadata.download": "Download",
|
|
21813
21875
|
"record.metadata.feature.catalog": "Catalogo dei oggetti",
|
|
21814
21876
|
"record.metadata.formats": "Formati",
|
|
21815
21877
|
"record.metadata.isGeographical": "Dati geografici",
|
|
21816
21878
|
"record.metadata.keywords": "Parole chiave",
|
|
21817
21879
|
"record.metadata.languages": "Lingue",
|
|
21818
|
-
"record.metadata.
|
|
21880
|
+
"record.metadata.link.postgis.table": "",
|
|
21881
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
21819
21882
|
"record.metadata.linked.datasets": "",
|
|
21820
21883
|
"record.metadata.linked.records": "",
|
|
21821
21884
|
"record.metadata.linked.reuses": "",
|
|
@@ -21856,8 +21919,11 @@ var it = {
|
|
|
21856
21919
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
21857
21920
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
21858
21921
|
"record.metadata.related": "Vedi anche",
|
|
21922
|
+
"record.metadata.resourceCreated": "Creato",
|
|
21923
|
+
"record.metadata.resourcePublished": "Pubblicato",
|
|
21924
|
+
"record.metadata.resourceUpdated": "Ultimo aggiornamento",
|
|
21859
21925
|
"record.metadata.ressources.and.links": "Risorse e collegamenti",
|
|
21860
|
-
"record.metadata.sheet": "Origine
|
|
21926
|
+
"record.metadata.sheet": "Origine dei metadati",
|
|
21861
21927
|
"record.metadata.status": "Stato",
|
|
21862
21928
|
"record.metadata.status.notPublished": "Non pubblicato",
|
|
21863
21929
|
"record.metadata.status.published": "Pubblicato",
|
|
@@ -21868,8 +21934,9 @@ var it = {
|
|
|
21868
21934
|
"record.metadata.title": "Titolo",
|
|
21869
21935
|
"record.metadata.topics": "Categorie",
|
|
21870
21936
|
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
21937
|
+
"record.metadata.update": "Data di aggiornamento",
|
|
21871
21938
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
21872
|
-
"record.metadata.updatedOn": "
|
|
21939
|
+
"record.metadata.updatedOn": "Metadati modificati",
|
|
21873
21940
|
"record.metadata.usage": "Licenze e limiti di utilizzo",
|
|
21874
21941
|
"record.metadata.userFeedbacks": "Domande / Risposte",
|
|
21875
21942
|
"record.metadata.userFeedbacks.anonymousUser": "Per pubblicare un commento, effettua il login.",
|
|
@@ -21884,6 +21951,7 @@ var it = {
|
|
|
21884
21951
|
"record.tab.chart": "Grafico",
|
|
21885
21952
|
"record.tab.data": "Tabella",
|
|
21886
21953
|
"record.tab.map": "Mappa",
|
|
21954
|
+
"record.tab.stac": "",
|
|
21887
21955
|
"record.was.created.time": "ha creato questi dati {time}",
|
|
21888
21956
|
records: records$3,
|
|
21889
21957
|
"results.layout.selectOne": "Mostra risultati",
|
|
@@ -21892,7 +21960,6 @@ var it = {
|
|
|
21892
21960
|
"results.records.hits.found": "{hits, plural, =0{Nessuna corrispondenza.} one{1 record trovato.} other{{hits} risultati.}}",
|
|
21893
21961
|
"results.records.hits.selected": "{amount, plural, one{1 selezionato} other{{ amount } selezionati}}",
|
|
21894
21962
|
"results.showMore": "Altri risultati...",
|
|
21895
|
-
"results.sortBy.changeDate": "Ultima modifica",
|
|
21896
21963
|
"results.sortBy.dateStamp": "Più recente",
|
|
21897
21964
|
"results.sortBy.popularity": "Popolarità",
|
|
21898
21965
|
"results.sortBy.qualityScore": "Indicatore di completamento",
|
|
@@ -21976,6 +22043,10 @@ var it = {
|
|
|
21976
22043
|
"service.metadata.spatialExtent": "Estensione spaziale",
|
|
21977
22044
|
"share.tab.permalink": "Condividere",
|
|
21978
22045
|
"share.tab.webComponent": "Incorporare",
|
|
22046
|
+
"stac.filter.from": "",
|
|
22047
|
+
"stac.filter.period": "",
|
|
22048
|
+
"stac.filter.reset": "",
|
|
22049
|
+
"stac.filter.to": "",
|
|
21979
22050
|
"table.loading.data": "Caricamento dei dati...",
|
|
21980
22051
|
"table.object.count": "record in questi dati",
|
|
21981
22052
|
"table.paginator.firstPage": "Prima pagina",
|
|
@@ -22420,6 +22491,8 @@ var nl = {
|
|
|
22420
22491
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
22421
22492
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
22422
22493
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
22494
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
22495
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
22423
22496
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
22424
22497
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
22425
22498
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -22461,13 +22534,16 @@ var nl = {
|
|
|
22461
22534
|
"record.metadata.contact": "",
|
|
22462
22535
|
"record.metadata.creation": "",
|
|
22463
22536
|
"record.metadata.details": "",
|
|
22537
|
+
"record.metadata.doi.copy": "",
|
|
22538
|
+
"record.metadata.doi.open": "",
|
|
22464
22539
|
"record.metadata.download": "",
|
|
22465
22540
|
"record.metadata.feature.catalog": "",
|
|
22466
22541
|
"record.metadata.formats": "",
|
|
22467
22542
|
"record.metadata.isGeographical": "",
|
|
22468
22543
|
"record.metadata.keywords": "",
|
|
22469
22544
|
"record.metadata.languages": "",
|
|
22470
|
-
"record.metadata.
|
|
22545
|
+
"record.metadata.link.postgis.table": "",
|
|
22546
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
22471
22547
|
"record.metadata.linked.datasets": "",
|
|
22472
22548
|
"record.metadata.linked.records": "",
|
|
22473
22549
|
"record.metadata.linked.reuses": "",
|
|
@@ -22508,6 +22584,9 @@ var nl = {
|
|
|
22508
22584
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
22509
22585
|
"record.metadata.quality.updateFrequency.success": "",
|
|
22510
22586
|
"record.metadata.related": "",
|
|
22587
|
+
"record.metadata.resourceCreated": "",
|
|
22588
|
+
"record.metadata.resourcePublished": "",
|
|
22589
|
+
"record.metadata.resourceUpdated": "",
|
|
22511
22590
|
"record.metadata.ressources.and.links": "Bronnen en links",
|
|
22512
22591
|
"record.metadata.sheet": "",
|
|
22513
22592
|
"record.metadata.status": "",
|
|
@@ -22520,6 +22599,7 @@ var nl = {
|
|
|
22520
22599
|
"record.metadata.title": "",
|
|
22521
22600
|
"record.metadata.topics": "",
|
|
22522
22601
|
"record.metadata.uniqueId": "",
|
|
22602
|
+
"record.metadata.update": "",
|
|
22523
22603
|
"record.metadata.updateFrequency": "",
|
|
22524
22604
|
"record.metadata.updatedOn": "",
|
|
22525
22605
|
"record.metadata.usage": "",
|
|
@@ -22536,6 +22616,7 @@ var nl = {
|
|
|
22536
22616
|
"record.tab.chart": "",
|
|
22537
22617
|
"record.tab.data": "",
|
|
22538
22618
|
"record.tab.map": "",
|
|
22619
|
+
"record.tab.stac": "",
|
|
22539
22620
|
"record.was.created.time": "",
|
|
22540
22621
|
records: records$2,
|
|
22541
22622
|
"results.layout.selectOne": "",
|
|
@@ -22544,7 +22625,6 @@ var nl = {
|
|
|
22544
22625
|
"results.records.hits.found": "",
|
|
22545
22626
|
"results.records.hits.selected": "",
|
|
22546
22627
|
"results.showMore": "",
|
|
22547
|
-
"results.sortBy.changeDate": "",
|
|
22548
22628
|
"results.sortBy.dateStamp": "",
|
|
22549
22629
|
"results.sortBy.popularity": "",
|
|
22550
22630
|
"results.sortBy.qualityScore": "",
|
|
@@ -22628,6 +22708,10 @@ var nl = {
|
|
|
22628
22708
|
"service.metadata.spatialExtent": "",
|
|
22629
22709
|
"share.tab.permalink": "",
|
|
22630
22710
|
"share.tab.webComponent": "",
|
|
22711
|
+
"stac.filter.from": "",
|
|
22712
|
+
"stac.filter.period": "",
|
|
22713
|
+
"stac.filter.reset": "",
|
|
22714
|
+
"stac.filter.to": "",
|
|
22631
22715
|
"table.loading.data": "",
|
|
22632
22716
|
"table.object.count": "",
|
|
22633
22717
|
"table.paginator.firstPage": "",
|
|
@@ -23072,6 +23156,8 @@ var pt = {
|
|
|
23072
23156
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
23073
23157
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
23074
23158
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
23159
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
23160
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
23075
23161
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
23076
23162
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
23077
23163
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -23113,13 +23199,16 @@ var pt = {
|
|
|
23113
23199
|
"record.metadata.contact": "",
|
|
23114
23200
|
"record.metadata.creation": "",
|
|
23115
23201
|
"record.metadata.details": "",
|
|
23202
|
+
"record.metadata.doi.copy": "",
|
|
23203
|
+
"record.metadata.doi.open": "",
|
|
23116
23204
|
"record.metadata.download": "",
|
|
23117
23205
|
"record.metadata.feature.catalog": "",
|
|
23118
23206
|
"record.metadata.formats": "",
|
|
23119
23207
|
"record.metadata.isGeographical": "",
|
|
23120
23208
|
"record.metadata.keywords": "",
|
|
23121
23209
|
"record.metadata.languages": "",
|
|
23122
|
-
"record.metadata.
|
|
23210
|
+
"record.metadata.link.postgis.table": "",
|
|
23211
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
23123
23212
|
"record.metadata.linked.datasets": "",
|
|
23124
23213
|
"record.metadata.linked.records": "",
|
|
23125
23214
|
"record.metadata.linked.reuses": "",
|
|
@@ -23160,6 +23249,9 @@ var pt = {
|
|
|
23160
23249
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
23161
23250
|
"record.metadata.quality.updateFrequency.success": "",
|
|
23162
23251
|
"record.metadata.related": "",
|
|
23252
|
+
"record.metadata.resourceCreated": "",
|
|
23253
|
+
"record.metadata.resourcePublished": "",
|
|
23254
|
+
"record.metadata.resourceUpdated": "",
|
|
23163
23255
|
"record.metadata.ressources.and.links": "Recursos e links",
|
|
23164
23256
|
"record.metadata.sheet": "",
|
|
23165
23257
|
"record.metadata.status": "",
|
|
@@ -23172,6 +23264,7 @@ var pt = {
|
|
|
23172
23264
|
"record.metadata.title": "",
|
|
23173
23265
|
"record.metadata.topics": "",
|
|
23174
23266
|
"record.metadata.uniqueId": "",
|
|
23267
|
+
"record.metadata.update": "",
|
|
23175
23268
|
"record.metadata.updateFrequency": "",
|
|
23176
23269
|
"record.metadata.updatedOn": "",
|
|
23177
23270
|
"record.metadata.usage": "",
|
|
@@ -23188,6 +23281,7 @@ var pt = {
|
|
|
23188
23281
|
"record.tab.chart": "",
|
|
23189
23282
|
"record.tab.data": "",
|
|
23190
23283
|
"record.tab.map": "",
|
|
23284
|
+
"record.tab.stac": "",
|
|
23191
23285
|
"record.was.created.time": "",
|
|
23192
23286
|
records: records$1,
|
|
23193
23287
|
"results.layout.selectOne": "",
|
|
@@ -23196,7 +23290,6 @@ var pt = {
|
|
|
23196
23290
|
"results.records.hits.found": "",
|
|
23197
23291
|
"results.records.hits.selected": "",
|
|
23198
23292
|
"results.showMore": "",
|
|
23199
|
-
"results.sortBy.changeDate": "",
|
|
23200
23293
|
"results.sortBy.dateStamp": "",
|
|
23201
23294
|
"results.sortBy.popularity": "",
|
|
23202
23295
|
"results.sortBy.qualityScore": "",
|
|
@@ -23280,6 +23373,10 @@ var pt = {
|
|
|
23280
23373
|
"service.metadata.spatialExtent": "",
|
|
23281
23374
|
"share.tab.permalink": "",
|
|
23282
23375
|
"share.tab.webComponent": "",
|
|
23376
|
+
"stac.filter.from": "",
|
|
23377
|
+
"stac.filter.period": "",
|
|
23378
|
+
"stac.filter.reset": "",
|
|
23379
|
+
"stac.filter.to": "",
|
|
23283
23380
|
"table.loading.data": "",
|
|
23284
23381
|
"table.object.count": "",
|
|
23285
23382
|
"table.paginator.firstPage": "",
|
|
@@ -23724,6 +23821,8 @@ var sk = {
|
|
|
23724
23821
|
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
23725
23822
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
23726
23823
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
23824
|
+
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
23825
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
23727
23826
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
23728
23827
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
23729
23828
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -23765,13 +23864,16 @@ var sk = {
|
|
|
23765
23864
|
"record.metadata.contact": "Kontakt",
|
|
23766
23865
|
"record.metadata.creation": "",
|
|
23767
23866
|
"record.metadata.details": "Detaily",
|
|
23867
|
+
"record.metadata.doi.copy": "",
|
|
23868
|
+
"record.metadata.doi.open": "",
|
|
23768
23869
|
"record.metadata.download": "Sťahovania",
|
|
23769
23870
|
"record.metadata.feature.catalog": "",
|
|
23770
23871
|
"record.metadata.formats": "Formáty",
|
|
23771
23872
|
"record.metadata.isGeographical": "Súbor geografických údajov",
|
|
23772
23873
|
"record.metadata.keywords": "Kľúčové slová",
|
|
23773
23874
|
"record.metadata.languages": "",
|
|
23774
|
-
"record.metadata.
|
|
23875
|
+
"record.metadata.link.postgis.table": "",
|
|
23876
|
+
"record.metadata.link.postgis.tooltip": "",
|
|
23775
23877
|
"record.metadata.linked.datasets": "",
|
|
23776
23878
|
"record.metadata.linked.records": "",
|
|
23777
23879
|
"record.metadata.linked.reuses": "",
|
|
@@ -23812,6 +23914,9 @@ var sk = {
|
|
|
23812
23914
|
"record.metadata.quality.updateFrequency.failed": "Frekvencia aktualizácie nie je určená",
|
|
23813
23915
|
"record.metadata.quality.updateFrequency.success": "Frekvencia aktualizácie je určená",
|
|
23814
23916
|
"record.metadata.related": "Súvisiace záznamy",
|
|
23917
|
+
"record.metadata.resourceCreated": "",
|
|
23918
|
+
"record.metadata.resourcePublished": "",
|
|
23919
|
+
"record.metadata.resourceUpdated": "",
|
|
23815
23920
|
"record.metadata.ressources.and.links": "Prostředky a odkazy",
|
|
23816
23921
|
"record.metadata.sheet": "Ďalšie metadáta sú k dispozícii na:",
|
|
23817
23922
|
"record.metadata.status": "Stav",
|
|
@@ -23824,8 +23929,9 @@ var sk = {
|
|
|
23824
23929
|
"record.metadata.title": "Názov",
|
|
23825
23930
|
"record.metadata.topics": "",
|
|
23826
23931
|
"record.metadata.uniqueId": "Jedinečný identifikátor",
|
|
23932
|
+
"record.metadata.update": "Dátum aktualizácie",
|
|
23827
23933
|
"record.metadata.updateFrequency": "Frekvencia aktualizácie metadát",
|
|
23828
|
-
"record.metadata.updatedOn": "
|
|
23934
|
+
"record.metadata.updatedOn": "Metadáta zmenené",
|
|
23829
23935
|
"record.metadata.usage": "Použitie a obmedzenia",
|
|
23830
23936
|
"record.metadata.userFeedbacks": "",
|
|
23831
23937
|
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
@@ -23840,6 +23946,7 @@ var sk = {
|
|
|
23840
23946
|
"record.tab.chart": "Graf",
|
|
23841
23947
|
"record.tab.data": "Tabuľka",
|
|
23842
23948
|
"record.tab.map": "Mapa",
|
|
23949
|
+
"record.tab.stac": "",
|
|
23843
23950
|
"record.was.created.time": "vytvoril tento dataset o {time}",
|
|
23844
23951
|
records: records,
|
|
23845
23952
|
"results.layout.selectOne": "Rozmiestnenie výsledkov",
|
|
@@ -23848,7 +23955,6 @@ var sk = {
|
|
|
23848
23955
|
"results.records.hits.found": "{hits, plural, =0{Žiadne dokumenty nezodpovedajú zadanému vyhľadávaniu.} one{1 záznam nájdený.} other{{hits} záznamov nájdených.}}",
|
|
23849
23956
|
"results.records.hits.selected": "{ amount } označených",
|
|
23850
23957
|
"results.showMore": "Zobraziť viac výsledkov...",
|
|
23851
|
-
"results.sortBy.changeDate": "",
|
|
23852
23958
|
"results.sortBy.dateStamp": "Najnovšie",
|
|
23853
23959
|
"results.sortBy.popularity": "Popularita",
|
|
23854
23960
|
"results.sortBy.qualityScore": "Indikátor dokončenia",
|
|
@@ -23932,6 +24038,10 @@ var sk = {
|
|
|
23932
24038
|
"service.metadata.spatialExtent": "",
|
|
23933
24039
|
"share.tab.permalink": "Zdieľať",
|
|
23934
24040
|
"share.tab.webComponent": "Integrovať",
|
|
24041
|
+
"stac.filter.from": "",
|
|
24042
|
+
"stac.filter.period": "",
|
|
24043
|
+
"stac.filter.reset": "",
|
|
24044
|
+
"stac.filter.to": "",
|
|
23935
24045
|
"table.loading.data": "Načítanie údajov...",
|
|
23936
24046
|
"table.object.count": "objekty v tomto súbore údajov",
|
|
23937
24047
|
"table.paginator.firstPage": "",
|
|
@@ -24229,6 +24339,29 @@ class Gn4FieldMapper {
|
|
|
24229
24339
|
}),
|
|
24230
24340
|
};
|
|
24231
24341
|
},
|
|
24342
|
+
resourceIdentifier: (output, source) => {
|
|
24343
|
+
const identifiers = getAsArray(selectField(source, 'resourceIdentifier'));
|
|
24344
|
+
if (!identifiers.length)
|
|
24345
|
+
return output;
|
|
24346
|
+
const mappedIdentifiers = identifiers
|
|
24347
|
+
.map((id) => {
|
|
24348
|
+
const code = selectField(id, 'code');
|
|
24349
|
+
const codeSpace = selectField(id, 'codeSpace');
|
|
24350
|
+
const link = selectField(id, 'link');
|
|
24351
|
+
return {
|
|
24352
|
+
code,
|
|
24353
|
+
...(codeSpace && { codeSpace }),
|
|
24354
|
+
...(link && { url: link }),
|
|
24355
|
+
};
|
|
24356
|
+
})
|
|
24357
|
+
.filter((id) => id !== null);
|
|
24358
|
+
if (!mappedIdentifiers.length)
|
|
24359
|
+
return output;
|
|
24360
|
+
return {
|
|
24361
|
+
...output,
|
|
24362
|
+
resourceIdentifiers: mappedIdentifiers,
|
|
24363
|
+
};
|
|
24364
|
+
},
|
|
24232
24365
|
};
|
|
24233
24366
|
this.genericField = (output) => output;
|
|
24234
24367
|
this.constraintField = (type, output, constraintArray) => {
|
|
@@ -24337,6 +24470,8 @@ class Gn4FieldMapper {
|
|
|
24337
24470
|
/^OGC:WMTS/.test(protocol) ||
|
|
24338
24471
|
/TMS/i.test(protocol) ||
|
|
24339
24472
|
/ogc\W*api\W*features/i.test(protocol) ||
|
|
24473
|
+
/^DB:POSTGIS/i.test(protocol) ||
|
|
24474
|
+
/stac\W*items/i.test(protocol) ||
|
|
24340
24475
|
(/^WWW:DOWNLOAD-/.test(protocol) && /data.geopf.fr/.test(url)) // TO DO : change with the good protocol when decided
|
|
24341
24476
|
) {
|
|
24342
24477
|
return 'service';
|
|
@@ -24459,7 +24594,6 @@ const ES_SOURCE_SUMMARY = [
|
|
|
24459
24594
|
'resourceAbstractObject',
|
|
24460
24595
|
'overview',
|
|
24461
24596
|
'logo',
|
|
24462
|
-
'codelist_status_text',
|
|
24463
24597
|
'link',
|
|
24464
24598
|
'linkProtocol',
|
|
24465
24599
|
'contactForResource*.organisation*',
|
|
@@ -24607,8 +24741,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
24607
24741
|
|
|
24608
24742
|
const PROXY_PATH = new InjectionToken('proxyPath');
|
|
24609
24743
|
class ProxyService {
|
|
24610
|
-
|
|
24611
|
-
this.
|
|
24744
|
+
get proxyPath() {
|
|
24745
|
+
return this.injector.get(PROXY_PATH, null);
|
|
24746
|
+
}
|
|
24747
|
+
constructor(injector, location) {
|
|
24748
|
+
this.injector = injector;
|
|
24612
24749
|
this.location = location;
|
|
24613
24750
|
}
|
|
24614
24751
|
/**
|
|
@@ -24631,7 +24768,7 @@ class ProxyService {
|
|
|
24631
24768
|
return url;
|
|
24632
24769
|
return new URL(`${this.proxyPath}${encodeURIComponent(url)}`, window.location.href).toString();
|
|
24633
24770
|
}
|
|
24634
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProxyService, deps: [{ token:
|
|
24771
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProxyService, deps: [{ token: i0.Injector }, { token: i1$2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24635
24772
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProxyService, providedIn: 'root' }); }
|
|
24636
24773
|
}
|
|
24637
24774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProxyService, decorators: [{
|
|
@@ -24639,16 +24776,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
24639
24776
|
args: [{
|
|
24640
24777
|
providedIn: 'root',
|
|
24641
24778
|
}]
|
|
24642
|
-
}], ctorParameters: () => [{ type:
|
|
24643
|
-
type: Optional
|
|
24644
|
-
}, {
|
|
24645
|
-
type: Inject,
|
|
24646
|
-
args: [PROXY_PATH]
|
|
24647
|
-
}] }, { type: i1$2.Location }] });
|
|
24779
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1$2.Location }] });
|
|
24648
24780
|
|
|
24781
|
+
const DEFAULT_LANGUAGE = 'en';
|
|
24649
24782
|
class DateService {
|
|
24650
24783
|
constructor(translateService) {
|
|
24651
24784
|
this.translateService = translateService;
|
|
24785
|
+
this.dateLocales = import('./geonetwork-ui-date-locales-MYnkDJ5h.mjs').then((obj) => obj.default);
|
|
24652
24786
|
}
|
|
24653
24787
|
getDateObject(date) {
|
|
24654
24788
|
if (typeof date === 'string') {
|
|
@@ -24661,10 +24795,15 @@ class DateService {
|
|
|
24661
24795
|
return date;
|
|
24662
24796
|
}
|
|
24663
24797
|
getLocaleAndDate(date) {
|
|
24664
|
-
const locale = this.translateService.currentLang ||
|
|
24798
|
+
const locale = this.translateService.currentLang || DEFAULT_LANGUAGE;
|
|
24665
24799
|
const dateObj = this.getDateObject(date);
|
|
24666
24800
|
return { locale, dateObj };
|
|
24667
24801
|
}
|
|
24802
|
+
async getDateLocale() {
|
|
24803
|
+
const lang = this.translateService.currentLang || DEFAULT_LANGUAGE;
|
|
24804
|
+
const locales = await this.dateLocales;
|
|
24805
|
+
return locales[lang];
|
|
24806
|
+
}
|
|
24668
24807
|
formatDate(date, options) {
|
|
24669
24808
|
const { locale, dateObj } = this.getLocaleAndDate(date);
|
|
24670
24809
|
return dateObj.toLocaleDateString(locale, options);
|
|
@@ -24673,6 +24812,15 @@ class DateService {
|
|
|
24673
24812
|
const { locale, dateObj } = this.getLocaleAndDate(date);
|
|
24674
24813
|
return dateObj.toLocaleString(locale, options);
|
|
24675
24814
|
}
|
|
24815
|
+
async formatRelativeDateTime(date) {
|
|
24816
|
+
const dateObj = this.getDateObject(date);
|
|
24817
|
+
const now = new Date();
|
|
24818
|
+
const locale = await this.getDateLocale();
|
|
24819
|
+
return formatDistance(dateObj, now, {
|
|
24820
|
+
addSuffix: true,
|
|
24821
|
+
locale: locale,
|
|
24822
|
+
});
|
|
24823
|
+
}
|
|
24676
24824
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24677
24825
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, providedIn: 'root' }); }
|
|
24678
24826
|
}
|
|
@@ -24983,13 +25131,16 @@ function sortByToStrings(sortBy) {
|
|
|
24983
25131
|
return array.map((param) => `${param[0] === 'desc' ? '-' : ''}${param[1]}`);
|
|
24984
25132
|
}
|
|
24985
25133
|
function sortByToString(sortBy) {
|
|
24986
|
-
return sortByToStrings(sortBy)
|
|
25134
|
+
return sortByToStrings(sortBy).join(',');
|
|
24987
25135
|
}
|
|
24988
25136
|
function sortByFromString(sortByString) {
|
|
24989
|
-
|
|
24990
|
-
|
|
24991
|
-
|
|
24992
|
-
|
|
25137
|
+
const fields = sortByString
|
|
25138
|
+
.split(',')
|
|
25139
|
+
.map((field) => [
|
|
25140
|
+
field.startsWith('-') ? 'desc' : 'asc',
|
|
25141
|
+
field.startsWith('-') ? field.substring(1) : field,
|
|
25142
|
+
]);
|
|
25143
|
+
return fields.length > 1 ? fields : fields[0];
|
|
24993
25144
|
}
|
|
24994
25145
|
|
|
24995
25146
|
const stripHtml = function (html) {
|
|
@@ -25187,6 +25338,12 @@ const FORMATS = {
|
|
|
25187
25338
|
color: '#5A9E6F',
|
|
25188
25339
|
mimeTypes: ['image/webp'],
|
|
25189
25340
|
},
|
|
25341
|
+
postgis: {
|
|
25342
|
+
extensions: ['postgis'],
|
|
25343
|
+
priority: 18,
|
|
25344
|
+
color: '#336791',
|
|
25345
|
+
mimeTypes: [],
|
|
25346
|
+
},
|
|
25190
25347
|
};
|
|
25191
25348
|
function getFormatPriority(linkFormat) {
|
|
25192
25349
|
for (const format in FORMATS) {
|
|
@@ -25217,6 +25374,11 @@ function getFileFormatFromServiceOutput(serviceOutput) {
|
|
|
25217
25374
|
return null;
|
|
25218
25375
|
}
|
|
25219
25376
|
function getFileFormat(link) {
|
|
25377
|
+
if ('accessServiceProtocol' in link) {
|
|
25378
|
+
if (link.accessServiceProtocol in FORMATS) {
|
|
25379
|
+
return link.accessServiceProtocol;
|
|
25380
|
+
}
|
|
25381
|
+
}
|
|
25220
25382
|
if ('mimeType' in link) {
|
|
25221
25383
|
const mimeTypeFormat = mimeTypeToFormat(link.mimeType);
|
|
25222
25384
|
if (mimeTypeFormat !== null) {
|
|
@@ -25382,6 +25544,10 @@ class LinkClassifierService {
|
|
|
25382
25544
|
return [LinkUsage.API, LinkUsage.DOWNLOAD, LinkUsage.GEODATA];
|
|
25383
25545
|
case 'GPFDL':
|
|
25384
25546
|
return [LinkUsage.API];
|
|
25547
|
+
case 'postgis':
|
|
25548
|
+
return [LinkUsage.UNKNOWN];
|
|
25549
|
+
case 'stac':
|
|
25550
|
+
return [LinkUsage.API];
|
|
25385
25551
|
default:
|
|
25386
25552
|
return [LinkUsage.UNKNOWN];
|
|
25387
25553
|
}
|
|
@@ -25445,7 +25611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25445
25611
|
}] } });
|
|
25446
25612
|
|
|
25447
25613
|
var name = "geonetwork-ui";
|
|
25448
|
-
var version = "2.8.0-dev.
|
|
25614
|
+
var version = "2.8.0-dev.94b119e28";
|
|
25449
25615
|
var engines = {
|
|
25450
25616
|
node: ">=20"
|
|
25451
25617
|
};
|
|
@@ -25647,6 +25813,35 @@ function updateLanguages(record, defaultLanguage, otherLanguages) {
|
|
|
25647
25813
|
return updatedRecord;
|
|
25648
25814
|
}
|
|
25649
25815
|
|
|
25816
|
+
class GnUiHumanizeDateDirective {
|
|
25817
|
+
constructor(dateService, el, renderer) {
|
|
25818
|
+
this.dateService = dateService;
|
|
25819
|
+
this.el = el;
|
|
25820
|
+
this.renderer = renderer;
|
|
25821
|
+
}
|
|
25822
|
+
async ngOnInit() {
|
|
25823
|
+
await this.updateElement();
|
|
25824
|
+
}
|
|
25825
|
+
async updateElement() {
|
|
25826
|
+
const dateValue = this.gnUiHumanizeDate;
|
|
25827
|
+
const fullDateTime = this.dateService.formatDateTime(dateValue);
|
|
25828
|
+
const relativeDate = await this.dateService.formatRelativeDateTime(dateValue);
|
|
25829
|
+
this.renderer.setAttribute(this.el.nativeElement, 'title', fullDateTime);
|
|
25830
|
+
this.renderer.setProperty(this.el.nativeElement, 'textContent', relativeDate);
|
|
25831
|
+
}
|
|
25832
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GnUiHumanizeDateDirective, deps: [{ token: DateService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25833
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GnUiHumanizeDateDirective, isStandalone: true, selector: "[gnUiHumanizeDate]", inputs: { gnUiHumanizeDate: "gnUiHumanizeDate" }, ngImport: i0 }); }
|
|
25834
|
+
}
|
|
25835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GnUiHumanizeDateDirective, decorators: [{
|
|
25836
|
+
type: Directive,
|
|
25837
|
+
args: [{
|
|
25838
|
+
selector: '[gnUiHumanizeDate]',
|
|
25839
|
+
standalone: true,
|
|
25840
|
+
}]
|
|
25841
|
+
}], ctorParameters: () => [{ type: DateService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { gnUiHumanizeDate: [{
|
|
25842
|
+
type: Input
|
|
25843
|
+
}] } });
|
|
25844
|
+
|
|
25650
25845
|
class ElasticsearchService {
|
|
25651
25846
|
// we're using getters in case the defined languages change over time
|
|
25652
25847
|
get metadataLang() {
|
|
@@ -26197,7 +26392,7 @@ class Gn4SettingsService {
|
|
|
26197
26392
|
this.apiVersion$ = this.getSettingsSetValueByKey('system/platform/version');
|
|
26198
26393
|
}
|
|
26199
26394
|
getSettingsSetValueByKey(key) {
|
|
26200
|
-
return this.siteApiService.getSettingsSet(null, [key])
|
|
26395
|
+
return of(true).pipe(switchMap(() => this.siteApiService.getSettingsSet(null, [key])), map$1((v) => v[key]), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
26201
26396
|
}
|
|
26202
26397
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, deps: [{ token: SiteApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26203
26398
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4SettingsService, providedIn: 'root' }); }
|
|
@@ -26824,7 +27019,7 @@ class AuthService {
|
|
|
26824
27019
|
baseUrl = baseUrl.replace('?', '&');
|
|
26825
27020
|
}
|
|
26826
27021
|
return baseUrl
|
|
26827
|
-
.replace('${current_url}', new URL(this.location.path(), window.location.href).toString())
|
|
27022
|
+
.replace('${current_url}', new URL(this.location.prepareExternalUrl(this.location.path()), window.location.href).toString())
|
|
26828
27023
|
.replace('${lang2}', toLang2(this.translateService.currentLang))
|
|
26829
27024
|
.replace('${lang3}', toLang3(this.translateService.currentLang));
|
|
26830
27025
|
}
|
|
@@ -27025,8 +27220,12 @@ class Gn4PlatformMapper {
|
|
|
27025
27220
|
userFromApi(apiUser) {
|
|
27026
27221
|
if (!apiUser)
|
|
27027
27222
|
return null;
|
|
27028
|
-
const {
|
|
27029
|
-
return {
|
|
27223
|
+
const { addresses, emailAddresses, enabled, id, kind, lastLoginDate, security, primaryAddress, authorities, accountNonExpired, accountNonLocked, credentialsNonExpired, ...user } = apiUser;
|
|
27224
|
+
return {
|
|
27225
|
+
...user,
|
|
27226
|
+
id: id.toString(),
|
|
27227
|
+
email: emailAddresses ? emailAddresses[0] || '' : '',
|
|
27228
|
+
};
|
|
27030
27229
|
}
|
|
27031
27230
|
keywordsFromApi(keywords, thesaurus, lang3) {
|
|
27032
27231
|
return keywords.map((keyword) => {
|
|
@@ -27132,6 +27331,9 @@ class Gn4PlatformService {
|
|
|
27132
27331
|
console.warn('Error while loading gnui language package');
|
|
27133
27332
|
return of({});
|
|
27134
27333
|
}), shareReplay$1(1));
|
|
27334
|
+
this.me$ = this.disableAuth
|
|
27335
|
+
? of(null)
|
|
27336
|
+
: of(true).pipe(switchMap(() => this.meApi.getMe()), switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
27135
27337
|
/**
|
|
27136
27338
|
* A map of already loaded thesauri (groups of keywords); the key is a URI
|
|
27137
27339
|
* @private
|
|
@@ -27142,9 +27344,6 @@ class Gn4PlatformService {
|
|
|
27142
27344
|
.pipe(map$1((thesaurus) => {
|
|
27143
27345
|
return thesaurus[0];
|
|
27144
27346
|
}), shareReplay$1(1));
|
|
27145
|
-
this.me$ = this.disableAuth
|
|
27146
|
-
? of(null)
|
|
27147
|
-
: this.meApi.getMe().pipe(switchMap((apiUser) => this.mapper.userFromMeApi(apiUser)), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
27148
27347
|
this.isUserAnonymous$ = this.me$.pipe(map$1((user) => !user || !('id' in user)));
|
|
27149
27348
|
this.users$ = this.usersApi.getUsers().pipe(map$1((users) => users.map((user) => this.mapper.userFromApi(user))), shareReplay$1());
|
|
27150
27349
|
}
|
|
@@ -29757,8 +29956,7 @@ class DropdownSelectorComponent {
|
|
|
29757
29956
|
];
|
|
29758
29957
|
}
|
|
29759
29958
|
get selectedChoice() {
|
|
29760
|
-
return (this.choices.find((choice) => choice.value === this.selected) ??
|
|
29761
|
-
this.choices[0]);
|
|
29959
|
+
return (this.choices.find((choice) => JSON.stringify(choice.value) === JSON.stringify(this.selected)) ?? this.choices[0]);
|
|
29762
29960
|
}
|
|
29763
29961
|
get id() {
|
|
29764
29962
|
return this.title.toLowerCase().replace(/[^a-z]+/g, '-');
|
|
@@ -31768,7 +31966,6 @@ const FIELDS_SUMMARY = [
|
|
|
31768
31966
|
'resourceAbstractObject',
|
|
31769
31967
|
'overview',
|
|
31770
31968
|
'logo',
|
|
31771
|
-
'codelist_status_text',
|
|
31772
31969
|
'link',
|
|
31773
31970
|
'linkProtocol',
|
|
31774
31971
|
'contactForResource*.organisation*',
|
|
@@ -33735,7 +33932,7 @@ class ExternalLinkCardComponent {
|
|
|
33735
33932
|
}
|
|
33736
33933
|
set size(value) {
|
|
33737
33934
|
this._size = value;
|
|
33738
|
-
this.cardClass = this.sizeClassMap[value]
|
|
33935
|
+
this.cardClass = `group flex flex-row justify-between card-shadow rounded overflow-hidden ${this.sizeClassMap[value]}`;
|
|
33739
33936
|
}
|
|
33740
33937
|
get size() {
|
|
33741
33938
|
return this._size;
|
|
@@ -33746,6 +33943,10 @@ class ExternalLinkCardComponent {
|
|
|
33746
33943
|
}
|
|
33747
33944
|
return this.link.name || this.link.description || '';
|
|
33748
33945
|
}
|
|
33946
|
+
get isDatabase() {
|
|
33947
|
+
return (this.link.type === 'service' &&
|
|
33948
|
+
this.link.accessServiceProtocol === 'postgis');
|
|
33949
|
+
}
|
|
33749
33950
|
getLinkFormat(link) {
|
|
33750
33951
|
return getFileFormat(link);
|
|
33751
33952
|
}
|
|
@@ -33756,18 +33957,20 @@ class ExternalLinkCardComponent {
|
|
|
33756
33957
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ExternalLinkCardComponent, isStandalone: true, selector: "gn-ui-external-link-card", inputs: { link: "link", size: "size" }, providers: [
|
|
33757
33958
|
provideIcons({
|
|
33758
33959
|
matOpenInNew,
|
|
33960
|
+
iconoirDatabase,
|
|
33759
33961
|
}),
|
|
33760
33962
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
33761
|
-
], ngImport: i0, template: "<
|
|
33963
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"isDatabase; else clickableLink\">\n <div [ngClass]=\"cardClass\" [title]=\"title\">\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div\n class=\"gn-ui-card-icon\"\n [title]=\"'record.metadata.link.postgis.tooltip' | translate\"\n >\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDatabase\"\n ></ng-icon>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #clickableLink>\n <a [href]=\"link.url\" target=\"_blank\" [ngClass]=\"cardClass\" [title]=\"title\">\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n </a>\n</ng-template>\n<ng-template #cardContent>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n <ng-container *ngIf=\"isDatabase\">\n {{ 'record.metadata.link.postgis.table' | translate }}\n </ng-container>\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >\n {{ getLinkFormat(link) || ('downloads.format.unknown' | translate) }}\n </span>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33762
33964
|
}
|
|
33763
33965
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExternalLinkCardComponent, decorators: [{
|
|
33764
33966
|
type: Component,
|
|
33765
33967
|
args: [{ selector: 'gn-ui-external-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslatePipe], providers: [
|
|
33766
33968
|
provideIcons({
|
|
33767
33969
|
matOpenInNew,
|
|
33970
|
+
iconoirDatabase,
|
|
33768
33971
|
}),
|
|
33769
33972
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
33770
|
-
], template: "<
|
|
33973
|
+
], template: "<ng-container *ngIf=\"isDatabase; else clickableLink\">\n <div [ngClass]=\"cardClass\" [title]=\"title\">\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div\n class=\"gn-ui-card-icon\"\n [title]=\"'record.metadata.link.postgis.tooltip' | translate\"\n >\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDatabase\"\n ></ng-icon>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #clickableLink>\n <a [href]=\"link.url\" target=\"_blank\" [ngClass]=\"cardClass\" [title]=\"title\">\n <ng-container *ngTemplateOutlet=\"cardContent\"></ng-container>\n <div\n class=\"flex min-w-[32px]\"\n [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\"\n >\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n </a>\n</ng-template>\n<ng-template #cardContent>\n <div class=\"flex flex-col justify-between flex-1 min-w-0\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n <ng-container *ngIf=\"isDatabase\">\n {{ 'record.metadata.link.postgis.table' | translate }}\n </ng-container>\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >\n {{ getLinkFormat(link) || ('downloads.format.unknown' | translate) }}\n </span>\n </div>\n </div>\n</ng-template>\n" }]
|
|
33771
33974
|
}], propDecorators: { link: [{
|
|
33772
33975
|
type: Input
|
|
33773
33976
|
}], size: [{
|
|
@@ -33887,6 +34090,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
33887
34090
|
type: Output
|
|
33888
34091
|
}] } });
|
|
33889
34092
|
|
|
34093
|
+
class MetadataDoiComponent {
|
|
34094
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDoiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34095
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataDoiComponent, isStandalone: true, selector: "gn-ui-metadata-doi", inputs: { code: "code", link: "link" }, ngImport: i0, template: "<div\n class=\"border border-gray-300 rounded-lg py-4 px-5 text-black flex justify-between items-center gap-4\"\n>\n <div class=\"overflow-hidden flex-1\">\n <p class=\"text-base font-medium mb-3\">DOI</p>\n <p\n class=\"text-base font-medium overflow-hidden text-ellipsis whitespace-nowrap\"\n [title]=\"code\"\n >\n {{ code }}\n </p>\n </div>\n <div class=\"flex gap-2 items-start\">\n <gn-ui-copy-text-button\n [text]=\"code\"\n [displayText]=\"false\"\n [tooltipText]=\"'record.metadata.doi.copy' | translate\"\n class=\"[&>div]:flex [&>div]:items-center [&>div]:justify-center [&_button]:w-[40px] [&_button]:h-[32px] [&_button]:flex [&_button]:items-center [&_button]:justify-center [&_button]:hover:bg-gray-100 [&_button]:rounded-lg [&_button]:transition-colors [&_button]:border [&_button]:border-gray-300 [&_button]:px-2 [&_button]:py-1 [&_ng-icon]:w-5 [&_ng-icon]:h-5\"\n ></gn-ui-copy-text-button>\n <a\n *ngIf=\"link\"\n [href]=\"link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"w-[40px] h-[32px] flex items-center justify-center hover:bg-gray-100 rounded-lg transition-colors border border-gray-300 px-2 py-1\"\n [matTooltip]=\"'record.metadata.doi.open' | translate\"\n >\n <ng-icon name=\"matOpenInNew\" size=\"20\"></ng-icon>\n </a>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }], viewProviders: [
|
|
34096
|
+
provideIcons({
|
|
34097
|
+
matOpenInNew,
|
|
34098
|
+
}),
|
|
34099
|
+
] }); }
|
|
34100
|
+
}
|
|
34101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDoiComponent, decorators: [{
|
|
34102
|
+
type: Component,
|
|
34103
|
+
args: [{ selector: 'gn-ui-metadata-doi', standalone: true, imports: [
|
|
34104
|
+
CommonModule,
|
|
34105
|
+
MatTooltipModule,
|
|
34106
|
+
NgIcon,
|
|
34107
|
+
TranslatePipe,
|
|
34108
|
+
CopyTextButtonComponent,
|
|
34109
|
+
], viewProviders: [
|
|
34110
|
+
provideIcons({
|
|
34111
|
+
matOpenInNew,
|
|
34112
|
+
}),
|
|
34113
|
+
], template: "<div\n class=\"border border-gray-300 rounded-lg py-4 px-5 text-black flex justify-between items-center gap-4\"\n>\n <div class=\"overflow-hidden flex-1\">\n <p class=\"text-base font-medium mb-3\">DOI</p>\n <p\n class=\"text-base font-medium overflow-hidden text-ellipsis whitespace-nowrap\"\n [title]=\"code\"\n >\n {{ code }}\n </p>\n </div>\n <div class=\"flex gap-2 items-start\">\n <gn-ui-copy-text-button\n [text]=\"code\"\n [displayText]=\"false\"\n [tooltipText]=\"'record.metadata.doi.copy' | translate\"\n class=\"[&>div]:flex [&>div]:items-center [&>div]:justify-center [&_button]:w-[40px] [&_button]:h-[32px] [&_button]:flex [&_button]:items-center [&_button]:justify-center [&_button]:hover:bg-gray-100 [&_button]:rounded-lg [&_button]:transition-colors [&_button]:border [&_button]:border-gray-300 [&_button]:px-2 [&_button]:py-1 [&_ng-icon]:w-5 [&_ng-icon]:h-5\"\n ></gn-ui-copy-text-button>\n <a\n *ngIf=\"link\"\n [href]=\"link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"w-[40px] h-[32px] flex items-center justify-center hover:bg-gray-100 rounded-lg transition-colors border border-gray-300 px-2 py-1\"\n [matTooltip]=\"'record.metadata.doi.open' | translate\"\n >\n <ng-icon name=\"matOpenInNew\" size=\"20\"></ng-icon>\n </a>\n </div>\n</div>\n" }]
|
|
34114
|
+
}], propDecorators: { code: [{
|
|
34115
|
+
type: Input
|
|
34116
|
+
}], link: [{
|
|
34117
|
+
type: Input
|
|
34118
|
+
}] } });
|
|
34119
|
+
|
|
33890
34120
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
33891
34121
|
class GnUiLinkifyDirective {
|
|
33892
34122
|
constructor(el, renderer) {
|
|
@@ -34030,14 +34260,8 @@ class MetadataInfoComponent {
|
|
|
34030
34260
|
onKeywordClick(keyword) {
|
|
34031
34261
|
this.keyword.emit(keyword);
|
|
34032
34262
|
}
|
|
34033
|
-
formatDate(date) {
|
|
34034
|
-
return this.dateService.formatDate(date);
|
|
34035
|
-
}
|
|
34036
|
-
formatDateTime(date) {
|
|
34037
|
-
return this.dateService.formatDateTime(date);
|
|
34038
|
-
}
|
|
34039
34263
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataInfoComponent, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34040
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataInfoComponent, isStandalone: true, 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\n ghostClass=\"h-[178px]\"\n [showContent]=\"fieldReady('abstract')\"\n >\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div class=\"mb-6\">\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\n <p\n class=\"mt-6 mb-3 font-medium text-black text-sm\"\n translate\n *ngIf=\"!fieldReady('keywords') || metadata.keywords?.length\"\n >\n record.metadata.keywords\n </p>\n\n <gn-ui-content-ghost\n ghostClass=\"h-[31px] w-3/4\"\n [showContent]=\"fieldReady('keywords')\"\n >\n <div *ngIf=\"metadata.keywords?.length\">\n <div class=\"metadata-info-keywords sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.licenses ||\n metadata.legalConstraints ||\n metadata.securityConstraints ||\n metadata.otherConstraints\n \"\n [title]=\"'record.metadata.usage' | translate\"\n data-test=\"usage-panel\"\n>\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <div class=\"mb-6\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <span\n translate\n class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\"\n >\n record.metadata.otherConstraints\n </span>\n <div class=\"mb-6\">\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n (metadata.kind === 'dataset' && metadata.lineage) ||\n metadata.resourceUpdated ||\n metadata.updateFrequency ||\n (metadata.kind === 'dataset' && metadata.status)\n \"\n [title]=\"'record.metadata.details' | translate\"\n data-test=\"details-panel\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.resourceCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ formatDate(metadata.resourceCreated) }}\n </p>\n </div>\n <div *ngIf=\"metadata.resourcePublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ formatDate(metadata.resourcePublished) }}\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.otherLanguages?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.otherLanguages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end,\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.kind !== 'dataset' &&\n metadata.spatialExtents &&\n metadata.spatialExtents.length\n \"\n [title]=\"'service.metadata.spatialExtent' | translate\"\n data-test=\"spatial-extent-panel\"\n>\n <gn-ui-spatial-extent\n class=\"flex h-[271px] w-full rounded-lg border border-gray-100 mt-3 mb-6\"\n [spatialExtents]=\"metadata.spatialExtents\"\n ></gn-ui-spatial-extent>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'service.metadata.other' | translate\"\n data-test=\"other-panel\"\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 && formatDateTime(metadata.recordUpdated) }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n [clickable]=\"false\"\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button ng-icon{transform:scale(.8)}:host{--gn-ui-badge-background-color: var(--color-primary-white);--gn-ui-badge-text-color: var(--color-primary-darkest)}:host .metadata-info-keywords ::ng-deep gn-ui-badge:hover{--gn-ui-badge-text-color: white}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "iconColor", "collapsed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { 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"] }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "component", type: SpatialExtentComponent, selector: "gn-ui-spatial-extent", inputs: ["spatialExtents"] }], viewProviders: [
|
|
34264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MetadataInfoComponent, isStandalone: true, 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\n ghostClass=\"h-[178px]\"\n [showContent]=\"fieldReady('abstract')\"\n >\n <gn-ui-max-lines\n [maxLines]=\"6\"\n *ngIf=\"metadata.abstract\"\n data-test=\"metadata-info-abstract\"\n >\n <div class=\"mb-6\">\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\n <p\n class=\"mt-6 mb-3 font-medium text-black text-sm\"\n translate\n *ngIf=\"!fieldReady('keywords') || metadata.keywords?.length\"\n >\n record.metadata.keywords\n </p>\n\n <gn-ui-content-ghost\n ghostClass=\"h-[31px] w-3/4\"\n [showContent]=\"fieldReady('keywords')\"\n >\n <gn-ui-max-lines [maxLines]=\"7\" *ngIf=\"metadata.keywords?.length\">\n <div class=\"metadata-info-keywords sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.licenses ||\n metadata.legalConstraints ||\n metadata.securityConstraints ||\n metadata.otherConstraints\n \"\n [title]=\"'record.metadata.usage' | translate\"\n data-test=\"usage-panel\"\n>\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <div class=\"mb-6\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <span\n translate\n class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\"\n >\n record.metadata.otherConstraints\n </span>\n <div class=\"mb-6\">\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n (metadata.kind === 'dataset' && metadata.lineage) ||\n resourceContact ||\n metadata.resourceCreated ||\n metadata.resourcePublished ||\n metadata.resourceUpdated ||\n (metadata.kind === 'dataset' && metadata.updateFrequency) ||\n metadata.otherLanguages?.length ||\n (metadata.kind === 'dataset' && temporalExtent)\n \"\n [title]=\"'record.metadata.details' | translate\"\n data-test=\"details-panel\"\n>\n <div\n *ngIf=\"metadata.kind === 'dataset' && metadata.lineage\"\n class=\"text-gray-900 flex flex-col mt-4 gap-2\"\n data-test=\"details-panel-lineage\"\n >\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div\n class=\"flex flex-row gap-6 mt-5 mb-8 resource-contact\"\n *ngIf=\"resourceContact\"\n data-test=\"details-panel-resource-contact\"\n >\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div\n *ngIf=\"metadata.resourceCreated\"\n data-test=\"details-panel-resource-created\"\n >\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p\n class=\"text-primary font-medium mt-1 resource-created\"\n [gnUiHumanizeDate]=\"metadata.resourceCreated\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.resourcePublished\"\n data-test=\"details-panel-resource-published\"\n >\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p\n class=\"text-primary font-medium mt-1 resource-published\"\n [gnUiHumanizeDate]=\"metadata.resourcePublished\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.resourceUpdated\"\n data-test=\"details-panel-resource-updated\"\n >\n <p class=\"text-sm\" translate>record.metadata.update</p>\n <p\n class=\"text-primary font-medium mt-1 resource-updated\"\n [gnUiHumanizeDate]=\"metadata.resourceUpdated\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.kind === 'dataset' && metadata.updateFrequency\"\n data-test=\"details-panel-update-frequency\"\n >\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\n *ngIf=\"metadata.otherLanguages?.length\"\n data-test=\"details-panel-other-languages\"\n >\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium other-languages\"\n translate\n *ngFor=\"let language of metadata.otherLanguages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"metadata.kind === 'dataset' && temporalExtent\"\n data-test=\"details-panel-temporal-extent\"\n >\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div\n class=\"flex flex-row gap-1 mb-1 text-primary font-medium temporal-extent\"\n >\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end,\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.kind !== 'dataset' &&\n metadata.spatialExtents &&\n metadata.spatialExtents.length\n \"\n [title]=\"'service.metadata.spatialExtent' | translate\"\n data-test=\"spatial-extent-panel\"\n>\n <gn-ui-spatial-extent\n class=\"flex h-[271px] w-full rounded-lg border border-gray-100 mt-3 mb-6\"\n [spatialExtents]=\"metadata.spatialExtents\"\n ></gn-ui-spatial-extent>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'service.metadata.other' | translate\"\n data-test=\"other-panel\"\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\n class=\"text-primary font-medium\"\n [gnUiHumanizeDate]=\"metadata.recordUpdated\"\n ></p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n [clickable]=\"false\"\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button ng-icon{transform:scale(.8)}:host{--gn-ui-badge-background-color: var(--color-primary-white);--gn-ui-badge-text-color: var(--color-primary-darkest)}:host .metadata-info-keywords ::ng-deep gn-ui-badge:hover{--gn-ui-badge-text-color: white}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: MarkdownParserComponent, selector: "gn-ui-markdown-parser", inputs: ["textContent", "whitoutStyles"] }, { kind: "component", type: ExpandablePanelComponent, selector: "gn-ui-expandable-panel", inputs: ["title", "iconColor", "collapsed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { 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"] }, { kind: "component", type: MaxLinesComponent, selector: "gn-ui-max-lines", inputs: ["maxLines"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: GnUiLinkifyDirective, selector: "[gnUiLinkify]" }, { kind: "directive", type: GnUiHumanizeDateDirective, selector: "[gnUiHumanizeDate]", inputs: ["gnUiHumanizeDate"] }, { kind: "component", type: SpatialExtentComponent, selector: "gn-ui-spatial-extent", inputs: ["spatialExtents"] }], viewProviders: [
|
|
34041
34265
|
provideIcons({
|
|
34042
34266
|
matOpenInNew,
|
|
34043
34267
|
matMailOutline: matMailOutline$1,
|
|
@@ -34059,13 +34283,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34059
34283
|
CopyTextButtonComponent,
|
|
34060
34284
|
NgIcon,
|
|
34061
34285
|
GnUiLinkifyDirective,
|
|
34286
|
+
GnUiHumanizeDateDirective,
|
|
34062
34287
|
SpatialExtentComponent,
|
|
34063
34288
|
], viewProviders: [
|
|
34064
34289
|
provideIcons({
|
|
34065
34290
|
matOpenInNew,
|
|
34066
34291
|
matMailOutline: matMailOutline$1,
|
|
34067
34292
|
}),
|
|
34068
|
-
], template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost\n ghostClass=\"h-[178px]\"\n [showContent]=\"fieldReady('abstract')\"\n >\n <gn-ui-max-lines [maxLines]=\"6\" *ngIf=\"metadata.abstract\">\n <div class=\"mb-6\">\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\n <p\n class=\"mt-6 mb-3 font-medium text-black text-sm\"\n translate\n *ngIf=\"!fieldReady('keywords') || metadata.keywords?.length\"\n >\n record.metadata.keywords\n </p>\n\n <gn-ui-content-ghost\n ghostClass=\"h-[31px] w-3/4\"\n [showContent]=\"fieldReady('keywords')\"\n >\n <div *ngIf=\"metadata.keywords?.length\">\n <div class=\"metadata-info-keywords sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </div>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.licenses ||\n metadata.legalConstraints ||\n metadata.securityConstraints ||\n metadata.otherConstraints\n \"\n [title]=\"'record.metadata.usage' | translate\"\n data-test=\"usage-panel\"\n>\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <div class=\"mb-6\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <span\n translate\n class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\"\n >\n record.metadata.otherConstraints\n </span>\n <div class=\"mb-6\">\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n (metadata.kind === 'dataset' && metadata.lineage) ||\n metadata.resourceUpdated ||\n metadata.updateFrequency ||\n (metadata.kind === 'dataset' && metadata.status)\n \"\n [title]=\"'record.metadata.details' | translate\"\n data-test=\"details-panel\"\n>\n <div *ngIf=\"metadata.lineage\" class=\"text-gray-900 flex flex-col mt-4 gap-2\">\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div class=\"flex flex-row gap-6 mt-5 mb-8\" *ngIf=\"resourceContact\">\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div *ngIf=\"metadata.resourceCreated\">\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ formatDate(metadata.resourceCreated) }}\n </p>\n </div>\n <div *ngIf=\"metadata.resourcePublished\">\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p class=\"text-primary font-medium mt-1\">\n {{ formatDate(metadata.resourcePublished) }}\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.otherLanguages?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium\"\n translate\n *ngFor=\"let language of metadata.otherLanguages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div *ngIf=\"temporalExtent\">\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div class=\"flex flex-row gap-1 mb-1 text-primary font-medium\">\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end,\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.kind !== 'dataset' &&\n metadata.spatialExtents &&\n metadata.spatialExtents.length\n \"\n [title]=\"'service.metadata.spatialExtent' | translate\"\n data-test=\"spatial-extent-panel\"\n>\n <gn-ui-spatial-extent\n class=\"flex h-[271px] w-full rounded-lg border border-gray-100 mt-3 mb-6\"\n [spatialExtents]=\"metadata.spatialExtents\"\n ></gn-ui-spatial-extent>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'service.metadata.other' | translate\"\n data-test=\"other-panel\"\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 && formatDateTime(metadata.recordUpdated) }}\n </p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n [clickable]=\"false\"\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button ng-icon{transform:scale(.8)}:host{--gn-ui-badge-background-color: var(--color-primary-white);--gn-ui-badge-text-color: var(--color-primary-darkest)}:host .metadata-info-keywords ::ng-deep gn-ui-badge:hover{--gn-ui-badge-text-color: white}\n"] }]
|
|
34293
|
+
], template: "<div class=\"mb-6 md-description sm:mb-4 sm:pr-16\">\n <gn-ui-content-ghost\n ghostClass=\"h-[178px]\"\n [showContent]=\"fieldReady('abstract')\"\n >\n <gn-ui-max-lines\n [maxLines]=\"6\"\n *ngIf=\"metadata.abstract\"\n data-test=\"metadata-info-abstract\"\n >\n <div class=\"mb-6\">\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\n <p\n class=\"mt-6 mb-3 font-medium text-black text-sm\"\n translate\n *ngIf=\"!fieldReady('keywords') || metadata.keywords?.length\"\n >\n record.metadata.keywords\n </p>\n\n <gn-ui-content-ghost\n ghostClass=\"h-[31px] w-3/4\"\n [showContent]=\"fieldReady('keywords')\"\n >\n <gn-ui-max-lines [maxLines]=\"7\" *ngIf=\"metadata.keywords?.length\">\n <div class=\"metadata-info-keywords sm:pb-4 flex flex-wrap gap-2\">\n <gn-ui-badge\n class=\"inline-block lowercase\"\n (click)=\"onKeywordClick(keyword)\"\n [clickable]=\"true\"\n *ngFor=\"let keyword of metadata.keywords\"\n >{{ keyword.label }}</gn-ui-badge\n >\n </div>\n </gn-ui-max-lines>\n </gn-ui-content-ghost>\n</div>\n\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.licenses ||\n metadata.legalConstraints ||\n metadata.securityConstraints ||\n metadata.otherConstraints\n \"\n [title]=\"'record.metadata.usage' | translate\"\n data-test=\"usage-panel\"\n>\n <div class=\"flex flex-col gap-[10px] mr-4 py-[12px] rounded text-gray-900\">\n <ng-container *ngFor=\"let license of licenses\">\n <div *ngIf=\"license.url; else noUrl\" class=\"text-primary\">\n <a\n [href]=\"license.url\"\n target=\"_blank\"\n class=\"cursor-pointer hover:underline transition-all\"\n >\n {{ license.text }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <ng-template #noUrl>\n <div class=\"text-primary\" gnUiLinkify>\n {{ license.text }}\n </div>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"legalConstraints.length\">\n <div class=\"mb-6\">\n <gn-ui-markdown-parser\n *ngFor=\"let constraint of legalConstraints\"\n [textContent]=\"constraint\"\n >\n </gn-ui-markdown-parser>\n </div>\n </ng-container>\n <ng-container *ngIf=\"otherConstraints.length\">\n <div gnUiLinkify *ngFor=\"let constraint of otherConstraints\">\n <span\n translate\n class=\"font-medium text-black text-sm mb-[2px] mt-[16px]\"\n >\n record.metadata.otherConstraints\n </span>\n <div class=\"mb-6\">\n <gn-ui-markdown-parser [textContent]=\"constraint\">\n </gn-ui-markdown-parser>\n </div>\n </div>\n </ng-container>\n\n <span class=\"noUsage\" *ngIf=\"!hasUsage\">\n {{ 'record.metadata.noUsage' | translate }}\n </span>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n (metadata.kind === 'dataset' && metadata.lineage) ||\n resourceContact ||\n metadata.resourceCreated ||\n metadata.resourcePublished ||\n metadata.resourceUpdated ||\n (metadata.kind === 'dataset' && metadata.updateFrequency) ||\n metadata.otherLanguages?.length ||\n (metadata.kind === 'dataset' && temporalExtent)\n \"\n [title]=\"'record.metadata.details' | translate\"\n data-test=\"details-panel\"\n>\n <div\n *ngIf=\"metadata.kind === 'dataset' && metadata.lineage\"\n class=\"text-gray-900 flex flex-col mt-4 gap-2\"\n data-test=\"details-panel-lineage\"\n >\n <p class=\"whitespace-pre-line break-words text-gray-900\" gnUiLinkify>\n {{ metadata.lineage }}\n </p>\n </div>\n <div\n class=\"flex flex-row gap-6 mt-5 mb-8 resource-contact\"\n *ngIf=\"resourceContact\"\n data-test=\"details-panel-resource-contact\"\n >\n <div\n *ngIf=\"resourceContact.organization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"resourceContact.organization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-sm font-medium\" translate>record.metadata.producer</p>\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n data-cy=\"organization-name\"\n >\n {{ resourceContact.organization?.name }}\n </div>\n <div *ngIf=\"resourceContact.organization?.website\">\n <a\n [href]=\"resourceContact.organization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ resourceContact.organization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n <div class=\"mt-4\" *ngIf=\"resourceContact.email\">\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n <a\n *ngIf=\"resourceContact.email\"\n [href]=\"'mailto:' + resourceContact.email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ resourceContact?.email }}</a\n >\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"py-6 px-6 rounded bg-gray-100 grid grid-cols-2 gap-y-6 gap-x-[20px] text-gray-700\"\n >\n <div\n *ngIf=\"metadata.resourceCreated\"\n data-test=\"details-panel-resource-created\"\n >\n <p class=\"text-sm\" translate>record.metadata.creation</p>\n <p\n class=\"text-primary font-medium mt-1 resource-created\"\n [gnUiHumanizeDate]=\"metadata.resourceCreated\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.resourcePublished\"\n data-test=\"details-panel-resource-published\"\n >\n <p class=\"text-sm\" translate>record.metadata.publication</p>\n <p\n class=\"text-primary font-medium mt-1 resource-published\"\n [gnUiHumanizeDate]=\"metadata.resourcePublished\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.resourceUpdated\"\n data-test=\"details-panel-resource-updated\"\n >\n <p class=\"text-sm\" translate>record.metadata.update</p>\n <p\n class=\"text-primary font-medium mt-1 resource-updated\"\n [gnUiHumanizeDate]=\"metadata.resourceUpdated\"\n ></p>\n </div>\n <div\n *ngIf=\"metadata.kind === 'dataset' && metadata.updateFrequency\"\n data-test=\"details-panel-update-frequency\"\n >\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\n *ngIf=\"metadata.otherLanguages?.length\"\n data-test=\"details-panel-other-languages\"\n >\n <p class=\"text-sm mb-1\" translate>record.metadata.languages</p>\n <div class=\"flex flex-row gap-1 flex-wrap\">\n <p\n class=\"text-primary font-medium other-languages\"\n translate\n *ngFor=\"let language of metadata.otherLanguages\"\n >\n language.{{ language }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"metadata.kind === 'dataset' && temporalExtent\"\n data-test=\"details-panel-temporal-extent\"\n >\n <p class=\"text-sm\" translate>record.metadata.temporalExtent</p>\n <div\n class=\"flex flex-row gap-1 mb-1 text-primary font-medium temporal-extent\"\n >\n <p\n *ngIf=\"temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{\n start: temporalExtent.start,\n end: temporalExtent.end,\n }\"\n >\n record.metadata.temporalExtent.fromDateToDate\n </p>\n <p\n *ngIf=\"temporalExtent.start && !temporalExtent.end\"\n translate\n [translateParams]=\"{ start: temporalExtent.start }\"\n >\n record.metadata.temporalExtent.sinceDate\n </p>\n <p\n *ngIf=\"!temporalExtent.start && temporalExtent.end\"\n translate\n [translateParams]=\"{ end: temporalExtent.end }\"\n >\n record.metadata.temporalExtent.untilDate\n </p>\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"\n metadata.kind !== 'dataset' &&\n metadata.spatialExtents &&\n metadata.spatialExtents.length\n \"\n [title]=\"'service.metadata.spatialExtent' | translate\"\n data-test=\"spatial-extent-panel\"\n>\n <gn-ui-spatial-extent\n class=\"flex h-[271px] w-full rounded-lg border border-gray-100 mt-3 mb-6\"\n [spatialExtents]=\"metadata.spatialExtents\"\n ></gn-ui-spatial-extent>\n</gn-ui-expandable-panel>\n<gn-ui-expandable-panel\n *ngIf=\"metadata.landingPage\"\n [title]=\"'service.metadata.other' | translate\"\n data-test=\"other-panel\"\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\n class=\"text-primary font-medium\"\n [gnUiHumanizeDate]=\"metadata.recordUpdated\"\n ></p>\n </div>\n <div *ngIf=\"metadata.landingPage\">\n <p class=\"text-sm\" translate>record.metadata.sheet</p>\n <p class=\"text-primary font-medium\" translate>\n <a [href]=\"metadata.landingPage\" target=\"_blank\">\n <span class=\"break-all\" gnUiLinkify>{{ metadata.landingPage }}</span>\n </a>\n </p>\n </div>\n <div *ngIf=\"metadata.ownerOrganization\">\n <p class=\"text-sm\" translate>record.metadata.owner</p>\n <p class=\"text-primary font-medium\">\n {{ metadata.ownerOrganization.name }}\n </p>\n </div>\n <div *ngIf=\"metadata.uniqueIdentifier\">\n <p class=\"text-sm\" translate>record.metadata.uniqueId</p>\n <div class=\"flex flex-row content-align items-end gap-1\">\n <gn-ui-copy-text-button\n [text]=\"metadata.uniqueIdentifier\"\n [tooltipText]=\"'tooltip.id.copy' | translate\"\n [displayText]=\"false\"\n ></gn-ui-copy-text-button>\n <p class=\"text-primary font-medium\">\n {{ metadata.uniqueIdentifier }}\n </p>\n </div>\n </div>\n <div *ngIf=\"metadata.topics?.length\">\n <p class=\"text-sm mb-1\" translate>record.metadata.topics</p>\n <div class=\"sm:pb-4 sm:pr-16\">\n <gn-ui-badge\n [clickable]=\"false\"\n class=\"inline-block mr-2 mb-2 lowercase\"\n *ngFor=\"let topic of metadata.topics\"\n >{{ topic }}</gn-ui-badge\n >\n </div>\n </div>\n </div>\n</gn-ui-expandable-panel>\n", styles: [".md-description ::ng-deep a{@apply underline text-blue-600 hover:text-blue-800;}.info-grid>:nth-last-child(n+3){padding-bottom:10px;@apply border-b border-gray-300;}:host ::ng-deep gn-ui-copy-text-button button ng-icon{transform:scale(.8)}:host{--gn-ui-badge-background-color: var(--color-primary-white);--gn-ui-badge-text-color: var(--color-primary-darkest)}:host .metadata-info-keywords ::ng-deep gn-ui-badge:hover{--gn-ui-badge-text-color: white}\n"] }]
|
|
34069
34294
|
}], ctorParameters: () => [{ type: DateService }], propDecorators: { metadata: [{
|
|
34070
34295
|
type: Input
|
|
34071
34296
|
}], incomplete: [{
|
|
@@ -34379,59 +34604,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34379
34604
|
type: Input
|
|
34380
34605
|
}] } });
|
|
34381
34606
|
|
|
34382
|
-
class TimeSincePipe {
|
|
34383
|
-
constructor(translate) {
|
|
34384
|
-
this.translate = translate;
|
|
34385
|
-
}
|
|
34386
|
-
transform(value) {
|
|
34387
|
-
if (isNaN(value.getTime())) {
|
|
34388
|
-
throw new Error('Invalid Date');
|
|
34389
|
-
}
|
|
34390
|
-
const maintenant = new Date();
|
|
34391
|
-
let locale;
|
|
34392
|
-
switch (this.translate.currentLang) {
|
|
34393
|
-
case 'fr':
|
|
34394
|
-
locale = fr$1;
|
|
34395
|
-
break;
|
|
34396
|
-
case 'de':
|
|
34397
|
-
locale = de$1;
|
|
34398
|
-
break;
|
|
34399
|
-
case 'es':
|
|
34400
|
-
locale = es$1;
|
|
34401
|
-
break;
|
|
34402
|
-
case 'it':
|
|
34403
|
-
locale = it$1;
|
|
34404
|
-
break;
|
|
34405
|
-
case 'nl':
|
|
34406
|
-
locale = nl$1;
|
|
34407
|
-
break;
|
|
34408
|
-
case 'pt':
|
|
34409
|
-
locale = pt$1;
|
|
34410
|
-
break;
|
|
34411
|
-
case 'sk':
|
|
34412
|
-
locale = sk$1;
|
|
34413
|
-
break;
|
|
34414
|
-
case 'en':
|
|
34415
|
-
default:
|
|
34416
|
-
locale = enUS;
|
|
34417
|
-
break;
|
|
34418
|
-
}
|
|
34419
|
-
return formatDistance(value, maintenant, {
|
|
34420
|
-
addSuffix: true,
|
|
34421
|
-
locale: locale,
|
|
34422
|
-
});
|
|
34423
|
-
}
|
|
34424
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeSincePipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
34425
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimeSincePipe, isStandalone: true, name: "timeSince" }); }
|
|
34426
|
-
}
|
|
34427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeSincePipe, decorators: [{
|
|
34428
|
-
type: Pipe,
|
|
34429
|
-
args: [{
|
|
34430
|
-
name: 'timeSince',
|
|
34431
|
-
standalone: true,
|
|
34432
|
-
}]
|
|
34433
|
-
}], ctorParameters: () => [{ type: i1$1.TranslateService }] });
|
|
34434
|
-
|
|
34435
34607
|
class UserFeedbackItemComponent {
|
|
34436
34608
|
constructor() {
|
|
34437
34609
|
this.newUserFeedbackAnswer = new EventEmitter();
|
|
@@ -34464,7 +34636,7 @@ class UserFeedbackItemComponent {
|
|
|
34464
34636
|
this.onNewAnswerValueChange();
|
|
34465
34637
|
}
|
|
34466
34638
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34467
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserFeedbackItemComponent, isStandalone: true, selector: "gn-ui-user-feedback-item", inputs: { userFeedbackParent: "userFeedbackParent", userFeedBacksAnswers: "userFeedBacksAnswers", activeUser: "activeUser", isLastComment: "isLastComment", isAddUserFeedbackLoading: "isAddUserFeedbackLoading" }, outputs: { newUserFeedbackAnswer: "newUserFeedbackAnswer" }, ngImport: i0, template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span
|
|
34639
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserFeedbackItemComponent, isStandalone: true, selector: "gn-ui-user-feedback-item", inputs: { userFeedbackParent: "userFeedbackParent", userFeedBacksAnswers: "userFeedBacksAnswers", activeUser: "activeUser", isLastComment: "isLastComment", isAddUserFeedbackLoading: "isAddUserFeedbackLoading" }, outputs: { newUserFeedbackAnswer: "newUserFeedbackAnswer" }, ngImport: i0, template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span [gnUiHumanizeDate]=\"userFeedbackParent.date\"></span>\n </div>\n </div>\n <div data-cy=\"commentText\" class=\"mt-4 whitespace-pre-line\">\n {{ userFeedbackParent.comment }}\n </div>\n <div\n class=\"w-full\"\n *ngFor=\"let userFeedBacksAnswer of userFeedBacksAnswers; let last = last\"\n >\n <hr class=\"-mx-4 my-6\" />\n <gn-ui-user-feedback-item\n [userFeedbackParent]=\"userFeedBacksAnswer\"\n [isLastComment]=\"last\"\n ></gn-ui-user-feedback-item>\n </div>\n\n <div *ngIf=\"activeUser\" class=\"mt-2 flex flex-col\">\n <hr class=\"-mx-4 my-4\" />\n <div\n id=\"new-comment-buttons\"\n class=\"flex flex-row gap-2 items-center justify-end\"\n >\n <gn-ui-text-area\n [disabled]=\"isAddUserFeedbackLoading\"\n [(value)]=\"newAnswer\"\n (valueChange)=\"onNewAnswerValueChange()\"\n (keyup.control.enter)=\"publishNewAnswer()\"\n [placeholder]=\"\n 'record.metadata.userFeedbacks.newAnswer.placeholder' | translate\n \"\n class=\"grow\"\n extraClass=\"bg-transparent border-0 placeholder-primary-darker text-primary-darker h-9\"\n ></gn-ui-text-area>\n <div *ngIf=\"!isAnswerEmpty\" class=\"flex flex-row justify-end\">\n <gn-ui-button\n [disabled]=\"isAddUserFeedbackLoading\"\n [type]=\"'outline'\"\n (buttonClick)=\"publishNewAnswer()\"\n [title]=\"\n 'record.metadata.userFeedbacks.newAnswer.buttonTitle' | translate\n \"\n extraClass=\"!p-[0.5em] text-primary-darker border-primary-darker h-9\"\n >\n <ng-icon *ngIf=\"!isAddUserFeedbackLoading\" name=\"matSendOutline\">\n </ng-icon>\n <ng-container *ngIf=\"isAddUserFeedbackLoading\">\n <div class=\"flex justify-center w-full\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n </gn-ui-button>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: UserFeedbackItemComponent, selector: "gn-ui-user-feedback-item", inputs: ["userFeedbackParent", "userFeedBacksAnswers", "activeUser", "isLastComment", "isAddUserFeedbackLoading"], outputs: ["newUserFeedbackAnswer"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "directive", type: GnUiHumanizeDateDirective, selector: "[gnUiHumanizeDate]", inputs: ["gnUiHumanizeDate"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
|
|
34468
34640
|
provideIcons({
|
|
34469
34641
|
matSendOutline,
|
|
34470
34642
|
}),
|
|
@@ -34474,17 +34646,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34474
34646
|
type: Component,
|
|
34475
34647
|
args: [{ selector: 'gn-ui-user-feedback-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
34476
34648
|
CommonModule,
|
|
34477
|
-
TimeSincePipe,
|
|
34478
34649
|
TextAreaComponent,
|
|
34479
34650
|
TranslatePipe,
|
|
34480
34651
|
ButtonComponent,
|
|
34481
34652
|
SpinningLoaderComponent,
|
|
34653
|
+
GnUiHumanizeDateDirective,
|
|
34482
34654
|
NgIcon,
|
|
34483
34655
|
], viewProviders: [
|
|
34484
34656
|
provideIcons({
|
|
34485
34657
|
matSendOutline,
|
|
34486
34658
|
}),
|
|
34487
|
-
], template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span
|
|
34659
|
+
], template: "<div\n *ngIf=\"userFeedbackParent.published\"\n class=\"flex flex-col bg-white rounded w-full\"\n [ngClass]=\"[isAnAnswer ? 'ps-4 ' : 'p-4']\"\n>\n <div class=\"flex flex-row\">\n <div class=\"avatar\">\n <img\n class=\"rounded-full\"\n [src]=\"userFeedbackParent.avatarUrl\"\n alt=\"avatar\"\n />\n </div>\n <div class=\"p-4 flex flex-col\">\n <span>{{ userFeedbackParent.authorName }}</span>\n <span [gnUiHumanizeDate]=\"userFeedbackParent.date\"></span>\n </div>\n </div>\n <div data-cy=\"commentText\" class=\"mt-4 whitespace-pre-line\">\n {{ userFeedbackParent.comment }}\n </div>\n <div\n class=\"w-full\"\n *ngFor=\"let userFeedBacksAnswer of userFeedBacksAnswers; let last = last\"\n >\n <hr class=\"-mx-4 my-6\" />\n <gn-ui-user-feedback-item\n [userFeedbackParent]=\"userFeedBacksAnswer\"\n [isLastComment]=\"last\"\n ></gn-ui-user-feedback-item>\n </div>\n\n <div *ngIf=\"activeUser\" class=\"mt-2 flex flex-col\">\n <hr class=\"-mx-4 my-4\" />\n <div\n id=\"new-comment-buttons\"\n class=\"flex flex-row gap-2 items-center justify-end\"\n >\n <gn-ui-text-area\n [disabled]=\"isAddUserFeedbackLoading\"\n [(value)]=\"newAnswer\"\n (valueChange)=\"onNewAnswerValueChange()\"\n (keyup.control.enter)=\"publishNewAnswer()\"\n [placeholder]=\"\n 'record.metadata.userFeedbacks.newAnswer.placeholder' | translate\n \"\n class=\"grow\"\n extraClass=\"bg-transparent border-0 placeholder-primary-darker text-primary-darker h-9\"\n ></gn-ui-text-area>\n <div *ngIf=\"!isAnswerEmpty\" class=\"flex flex-row justify-end\">\n <gn-ui-button\n [disabled]=\"isAddUserFeedbackLoading\"\n [type]=\"'outline'\"\n (buttonClick)=\"publishNewAnswer()\"\n [title]=\"\n 'record.metadata.userFeedbacks.newAnswer.buttonTitle' | translate\n \"\n extraClass=\"!p-[0.5em] text-primary-darker border-primary-darker h-9\"\n >\n <ng-icon *ngIf=\"!isAddUserFeedbackLoading\" name=\"matSendOutline\">\n </ng-icon>\n <ng-container *ngIf=\"isAddUserFeedbackLoading\">\n <div class=\"flex justify-center w-full\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n </gn-ui-button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
34488
34660
|
}], propDecorators: { userFeedbackParent: [{
|
|
34489
34661
|
type: Input
|
|
34490
34662
|
}], userFeedBacksAnswers: [{
|
|
@@ -36453,6 +36625,11 @@ const SortByEnum = {
|
|
|
36453
36625
|
RELEVANCY: ['desc', '_score'],
|
|
36454
36626
|
QUALITY_SCORE: ['desc', 'qualityScore'],
|
|
36455
36627
|
CHANGE_DATE: ['desc', 'changeDate'],
|
|
36628
|
+
RESOURCE_DATES: [
|
|
36629
|
+
['desc', 'revisionDateForResource'],
|
|
36630
|
+
['desc', 'publicationDateForResource'],
|
|
36631
|
+
['desc', 'creationDateForResource'],
|
|
36632
|
+
],
|
|
36456
36633
|
};
|
|
36457
36634
|
|
|
36458
36635
|
class SortByComponent {
|
|
@@ -36462,33 +36639,29 @@ class SortByComponent {
|
|
|
36462
36639
|
this.choices = [
|
|
36463
36640
|
{
|
|
36464
36641
|
label: marker('results.sortBy.relevancy'),
|
|
36465
|
-
value: SortByEnum.RELEVANCY
|
|
36642
|
+
value: SortByEnum.RELEVANCY,
|
|
36466
36643
|
},
|
|
36467
36644
|
{
|
|
36468
36645
|
label: marker('results.sortBy.dateStamp'),
|
|
36469
|
-
value: SortByEnum.
|
|
36470
|
-
},
|
|
36471
|
-
{
|
|
36472
|
-
label: marker('results.sortBy.changeDate'),
|
|
36473
|
-
value: SortByEnum.CHANGE_DATE.join(','),
|
|
36646
|
+
value: SortByEnum.RESOURCE_DATES,
|
|
36474
36647
|
},
|
|
36475
36648
|
{
|
|
36476
36649
|
label: marker('results.sortBy.popularity'),
|
|
36477
|
-
value: SortByEnum.POPULARITY
|
|
36650
|
+
value: SortByEnum.POPULARITY,
|
|
36478
36651
|
},
|
|
36479
36652
|
];
|
|
36480
|
-
this.currentSortBy$ = this.facade.sortBy$.pipe(filter$1((sortBy) => !!sortBy), map$1((sortBy) => sortBy
|
|
36653
|
+
this.currentSortBy$ = this.facade.sortBy$.pipe(filter$1((sortBy) => !!sortBy), map$1((sortBy) => sortBy));
|
|
36481
36654
|
}
|
|
36482
36655
|
ngOnInit() {
|
|
36483
36656
|
if (this.isQualitySortable) {
|
|
36484
36657
|
this.choices.push({
|
|
36485
36658
|
label: marker('results.sortBy.qualityScore'),
|
|
36486
|
-
value: SortByEnum.QUALITY_SCORE
|
|
36659
|
+
value: SortByEnum.QUALITY_SCORE,
|
|
36487
36660
|
});
|
|
36488
36661
|
}
|
|
36489
36662
|
}
|
|
36490
|
-
changeSortBy(
|
|
36491
|
-
this.searchService.setSortBy(
|
|
36663
|
+
changeSortBy(criteria) {
|
|
36664
|
+
this.searchService.setSortBy(criteria);
|
|
36492
36665
|
}
|
|
36493
36666
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortByComponent, deps: [{ token: SearchFacade }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36494
36667
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SortByComponent, isStandalone: true, selector: "gn-ui-sort-by", inputs: { isQualitySortable: "isQualitySortable" }, ngImport: i0, template: "<gn-ui-dropdown-selector\n [title]=\"'search.field.sortBy' | translate\"\n [choices]=\"choices\"\n (selectValue)=\"changeSortBy($event)\"\n [selected]=\"currentSortBy$ | async\"\n ariaName=\"search-sort-by\"\n></gn-ui-dropdown-selector>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
@@ -38171,13 +38344,24 @@ class DataService {
|
|
|
38171
38344
|
if (!featureType) {
|
|
38172
38345
|
throw new Error('wfs.featuretype.notfound');
|
|
38173
38346
|
}
|
|
38347
|
+
const wfsVersion = endpoint.getVersion();
|
|
38348
|
+
const addSrsName = wfsVersion === '1.1.0' || wfsVersion === '2.0.0';
|
|
38349
|
+
const defaultCrs = featureType.defaultCrs;
|
|
38350
|
+
const shouldAddOutputCrs = addSrsName && defaultCrs;
|
|
38174
38351
|
return {
|
|
38175
|
-
all: featureType.outputFormats.reduce((prev, curr) =>
|
|
38176
|
-
|
|
38177
|
-
|
|
38178
|
-
|
|
38179
|
-
|
|
38180
|
-
|
|
38352
|
+
all: featureType.outputFormats.reduce((prev, curr) => {
|
|
38353
|
+
const isJsonFormat = curr.toLowerCase().includes('json');
|
|
38354
|
+
return {
|
|
38355
|
+
...prev,
|
|
38356
|
+
[curr]: endpoint.getFeatureUrl(featureType.name, {
|
|
38357
|
+
outputFormat: curr,
|
|
38358
|
+
...(shouldAddOutputCrs &&
|
|
38359
|
+
!isJsonFormat && {
|
|
38360
|
+
outputCrs: defaultCrs,
|
|
38361
|
+
}),
|
|
38362
|
+
}),
|
|
38363
|
+
};
|
|
38364
|
+
}, {}),
|
|
38181
38365
|
geojson: endpoint.supportsJson(featureType.name)
|
|
38182
38366
|
? endpoint.getFeatureUrl(featureType.name, {
|
|
38183
38367
|
asJson: true,
|
|
@@ -38852,6 +39036,8 @@ class ChartViewComponent {
|
|
|
38852
39036
|
this.chartType$.next(value);
|
|
38853
39037
|
}
|
|
38854
39038
|
set userChartConfig(config) {
|
|
39039
|
+
if (!config)
|
|
39040
|
+
return;
|
|
38855
39041
|
this.aggregation$.next(config.aggregation);
|
|
38856
39042
|
this.xProperty$.next(config.xProperty);
|
|
38857
39043
|
this.yProperty$.next(config.yProperty);
|
|
@@ -39289,6 +39475,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39289
39475
|
type: Input
|
|
39290
39476
|
}] } });
|
|
39291
39477
|
|
|
39478
|
+
class StacViewComponent {
|
|
39479
|
+
constructor() {
|
|
39480
|
+
this.currentTemporalExtent = null;
|
|
39481
|
+
this.isTemporalFilterModified = false;
|
|
39482
|
+
}
|
|
39483
|
+
onStartDateChange(date) {
|
|
39484
|
+
this.currentTemporalExtent = {
|
|
39485
|
+
...this.currentTemporalExtent,
|
|
39486
|
+
start: date,
|
|
39487
|
+
};
|
|
39488
|
+
this.isTemporalFilterModified = true;
|
|
39489
|
+
}
|
|
39490
|
+
onEndDateChange(date) {
|
|
39491
|
+
this.currentTemporalExtent = {
|
|
39492
|
+
...this.currentTemporalExtent,
|
|
39493
|
+
end: date,
|
|
39494
|
+
};
|
|
39495
|
+
this.isTemporalFilterModified = true;
|
|
39496
|
+
}
|
|
39497
|
+
onResetFilters() {
|
|
39498
|
+
this.currentTemporalExtent = this.initialTemporalExtent;
|
|
39499
|
+
this.isTemporalFilterModified = false;
|
|
39500
|
+
}
|
|
39501
|
+
ngOnInit() {
|
|
39502
|
+
this.currentTemporalExtent = this.initialTemporalExtent;
|
|
39503
|
+
}
|
|
39504
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39505
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StacViewComponent, isStandalone: true, selector: "gn-ui-stac-view", inputs: { link: "link", initialTemporalExtent: "initialTemporalExtent" }, ngImport: i0, template: "<div\n class=\"w-full h-full flex flex-row mt-6 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n>\n <div class=\"flex-1 flex flex-col\">\n <div class=\"m-8\">\n <p class=\"mb-4\" translate>stac.filter.period</p>\n <p translate>stac.filter.from</p>\n <gn-ui-date-picker\n id=\"start-date-picker\"\n [date]=\"currentTemporalExtent?.start\"\n (dateChange)=\"onStartDateChange($event)\"\n />\n <p class=\"mt-4\" translate>stac.filter.to</p>\n <gn-ui-date-picker\n id=\"end-date-picker\"\n [date]=\"currentTemporalExtent?.end\"\n (dateChange)=\"onEndDateChange($event)\"\n />\n </div>\n\n <div class=\"mt-auto mb-8 mx-8\" *ngIf=\"isTemporalFilterModified\">\n <button\n id=\"reset-filters-button\"\n type=\"button\"\n class=\"flex items-center\"\n (click)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon\n name=\"matDeleteOutline\"\n class=\"pointer-events-none ml-2\"\n ></ng-icon>\n </button>\n </div>\n </div>\n\n <div class=\"w-[655px] flex-shrink-0 flex items-center justify-center\">\n <span>Map...</span>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DatePickerComponent, selector: "gn-ui-date-picker", inputs: ["date"], outputs: ["dateChange"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], viewProviders: [provideIcons({ matDeleteOutline })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39506
|
+
}
|
|
39507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, decorators: [{
|
|
39508
|
+
type: Component,
|
|
39509
|
+
args: [{ selector: 'gn-ui-stac-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
39510
|
+
CommonModule,
|
|
39511
|
+
DatePickerComponent,
|
|
39512
|
+
NgIconComponent,
|
|
39513
|
+
TranslateDirective,
|
|
39514
|
+
], viewProviders: [provideIcons({ matDeleteOutline })], template: "<div\n class=\"w-full h-full flex flex-row mt-6 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n>\n <div class=\"flex-1 flex flex-col\">\n <div class=\"m-8\">\n <p class=\"mb-4\" translate>stac.filter.period</p>\n <p translate>stac.filter.from</p>\n <gn-ui-date-picker\n id=\"start-date-picker\"\n [date]=\"currentTemporalExtent?.start\"\n (dateChange)=\"onStartDateChange($event)\"\n />\n <p class=\"mt-4\" translate>stac.filter.to</p>\n <gn-ui-date-picker\n id=\"end-date-picker\"\n [date]=\"currentTemporalExtent?.end\"\n (dateChange)=\"onEndDateChange($event)\"\n />\n </div>\n\n <div class=\"mt-auto mb-8 mx-8\" *ngIf=\"isTemporalFilterModified\">\n <button\n id=\"reset-filters-button\"\n type=\"button\"\n class=\"flex items-center\"\n (click)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon\n name=\"matDeleteOutline\"\n class=\"pointer-events-none ml-2\"\n ></ng-icon>\n </button>\n </div>\n </div>\n\n <div class=\"w-[655px] flex-shrink-0 flex items-center justify-center\">\n <span>Map...</span>\n </div>\n</div>\n" }]
|
|
39515
|
+
}], propDecorators: { link: [{
|
|
39516
|
+
type: Input
|
|
39517
|
+
}], initialTemporalExtent: [{
|
|
39518
|
+
type: Input
|
|
39519
|
+
}] } });
|
|
39520
|
+
|
|
39292
39521
|
/**
|
|
39293
39522
|
* The Metadata View Facade is used to render complete metadata records.
|
|
39294
39523
|
* Supply it with an incomplete record (at least containing the uuid) and the
|
|
@@ -39319,8 +39548,21 @@ class MdViewFacade {
|
|
|
39319
39548
|
this.sourceOf$ = this.store.pipe(select(getSourceOf));
|
|
39320
39549
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
39321
39550
|
this.allLinks$ = this.metadata$.pipe(map$1((record) => 'onlineResources' in record ? record.onlineResources : []), shareReplay$1(1));
|
|
39551
|
+
this.resourceDoi$ = this.metadata$.pipe(map$1((record) => {
|
|
39552
|
+
if (!record?.resourceIdentifiers?.length)
|
|
39553
|
+
return null;
|
|
39554
|
+
const doiIdentifier = record.resourceIdentifiers.find((id) => id.codeSpace?.toLowerCase().includes('doi.org') ||
|
|
39555
|
+
id.code.startsWith('10.'));
|
|
39556
|
+
if (!doiIdentifier)
|
|
39557
|
+
return null;
|
|
39558
|
+
return {
|
|
39559
|
+
code: doiIdentifier.code,
|
|
39560
|
+
url: doiIdentifier.url ? doiIdentifier.url : null,
|
|
39561
|
+
};
|
|
39562
|
+
}), shareReplay$1(1));
|
|
39322
39563
|
this.apiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.API))), shareReplay$1(1));
|
|
39323
39564
|
this.mapApiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.MAP_API))), shareReplay$1(1));
|
|
39565
|
+
this.stacLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => link.type === 'service' && link.accessServiceProtocol === 'stac')), shareReplay$1(1));
|
|
39324
39566
|
this.downloadLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DOWNLOAD))));
|
|
39325
39567
|
this.dataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DATA))));
|
|
39326
39568
|
this.geoDataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.GEODATA))));
|
|
@@ -39478,8 +39720,9 @@ class DataViewPermalinkComponent {
|
|
|
39478
39720
|
set viewType(value) {
|
|
39479
39721
|
this.viewType$.next(value);
|
|
39480
39722
|
}
|
|
39481
|
-
constructor(config, wcEmbedderBaseUrl, facade) {
|
|
39723
|
+
constructor(config, proxyPath, wcEmbedderBaseUrl, facade) {
|
|
39482
39724
|
this.config = config;
|
|
39725
|
+
this.proxyPath = proxyPath;
|
|
39483
39726
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
39484
39727
|
this.facade = facade;
|
|
39485
39728
|
this.viewType$ = new BehaviorSubject('map');
|
|
@@ -39512,6 +39755,9 @@ class DataViewPermalinkComponent {
|
|
|
39512
39755
|
url.searchParams.append('e', `gn-dataset-view-map`);
|
|
39513
39756
|
}
|
|
39514
39757
|
url.searchParams.append('a', `api-url=${this.config.basePath}`);
|
|
39758
|
+
if (this.proxyPath) {
|
|
39759
|
+
url.searchParams.append('a', `proxy-path=${this.proxyPath}`);
|
|
39760
|
+
}
|
|
39515
39761
|
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
|
|
39516
39762
|
url.searchParams.append('a', `primary-color=#0f4395`);
|
|
39517
39763
|
url.searchParams.append('a', `secondary-color=#8bc832`);
|
|
@@ -39520,7 +39766,7 @@ class DataViewPermalinkComponent {
|
|
|
39520
39766
|
return url.toString();
|
|
39521
39767
|
}));
|
|
39522
39768
|
}
|
|
39523
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewPermalinkComponent, deps: [{ token: Configuration }, { token: WEB_COMPONENT_EMBEDDER_URL, optional: true }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39769
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewPermalinkComponent, deps: [{ token: Configuration }, { token: PROXY_PATH, optional: true }, { token: WEB_COMPONENT_EMBEDDER_URL, optional: true }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39524
39770
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewPermalinkComponent, isStandalone: true, selector: "gn-ui-data-view-permalink", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n *ngIf=\"wcEmbedderBaseUrl\"\n [text]=\"permalinkUrl$ | async\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39525
39771
|
}
|
|
39526
39772
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
|
|
@@ -39531,6 +39777,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39531
39777
|
args: [Configuration]
|
|
39532
39778
|
}] }, { type: undefined, decorators: [{
|
|
39533
39779
|
type: Optional
|
|
39780
|
+
}, {
|
|
39781
|
+
type: Inject,
|
|
39782
|
+
args: [PROXY_PATH]
|
|
39783
|
+
}] }, { type: undefined, decorators: [{
|
|
39784
|
+
type: Optional
|
|
39534
39785
|
}, {
|
|
39535
39786
|
type: Inject,
|
|
39536
39787
|
args: [WEB_COMPONENT_EMBEDDER_URL]
|
|
@@ -39639,8 +39890,9 @@ class DataViewWebComponentComponent {
|
|
|
39639
39890
|
set viewType(value) {
|
|
39640
39891
|
this.viewType$.next(value);
|
|
39641
39892
|
}
|
|
39642
|
-
constructor(config, facade) {
|
|
39893
|
+
constructor(config, proxyPath, facade) {
|
|
39643
39894
|
this.config = config;
|
|
39895
|
+
this.proxyPath = proxyPath;
|
|
39644
39896
|
this.facade = facade;
|
|
39645
39897
|
this.viewType$ = new BehaviorSubject('map');
|
|
39646
39898
|
this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
|
|
@@ -39649,7 +39901,10 @@ class DataViewWebComponentComponent {
|
|
|
39649
39901
|
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
39650
39902
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39651
39903
|
<gn-dataset-view-chart
|
|
39652
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39904
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39905
|
+
? `
|
|
39906
|
+
proxy-path="${this.proxyPath}"`
|
|
39907
|
+
: ''}
|
|
39653
39908
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39654
39909
|
aggregation="${aggregation}"
|
|
39655
39910
|
x-property="${xProperty}"
|
|
@@ -39668,7 +39923,10 @@ class DataViewWebComponentComponent {
|
|
|
39668
39923
|
else if (viewType === 'table') {
|
|
39669
39924
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39670
39925
|
<gn-dataset-view-table
|
|
39671
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39926
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39927
|
+
? `
|
|
39928
|
+
proxy-path="${this.proxyPath}"`
|
|
39929
|
+
: ''}
|
|
39672
39930
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39673
39931
|
primary-color="#0f4395"
|
|
39674
39932
|
secondary-color="#8bc832"
|
|
@@ -39681,7 +39939,10 @@ class DataViewWebComponentComponent {
|
|
|
39681
39939
|
else {
|
|
39682
39940
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39683
39941
|
<gn-dataset-view-map
|
|
39684
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39942
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39943
|
+
? `
|
|
39944
|
+
proxy-path="${this.proxyPath}"`
|
|
39945
|
+
: ''}
|
|
39685
39946
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39686
39947
|
primary-color="#0f4395"
|
|
39687
39948
|
secondary-color="#8bc832"
|
|
@@ -39693,7 +39954,7 @@ class DataViewWebComponentComponent {
|
|
|
39693
39954
|
}
|
|
39694
39955
|
}));
|
|
39695
39956
|
}
|
|
39696
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewWebComponentComponent, deps: [{ token: Configuration }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39957
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewWebComponentComponent, deps: [{ token: Configuration }, { token: PROXY_PATH, optional: true }, { token: MdViewFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39697
39958
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DataViewWebComponentComponent, isStandalone: true, selector: "gn-ui-data-view-web-component", inputs: { viewType: "viewType" }, ngImport: i0, template: "<gn-ui-copy-text-button\n [text]=\"webComponentHtml$ | async\"\n [rows]=\"3\"\n [tooltipText]=\"'tooltip.html.copy' | translate\"\n></gn-ui-copy-text-button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39698
39959
|
}
|
|
39699
39960
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
|
|
@@ -39702,6 +39963,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39702
39963
|
}], ctorParameters: () => [{ type: Configuration, decorators: [{
|
|
39703
39964
|
type: Inject,
|
|
39704
39965
|
args: [Configuration]
|
|
39966
|
+
}] }, { type: undefined, decorators: [{
|
|
39967
|
+
type: Optional
|
|
39968
|
+
}, {
|
|
39969
|
+
type: Inject,
|
|
39970
|
+
args: [PROXY_PATH]
|
|
39705
39971
|
}] }, { type: MdViewFacade }], propDecorators: { viewType: [{
|
|
39706
39972
|
type: Input
|
|
39707
39973
|
}] } });
|
|
@@ -40022,6 +40288,7 @@ class MapViewComponent {
|
|
|
40022
40288
|
set exceedsLimit(value) {
|
|
40023
40289
|
this.excludeWfs$.next(value);
|
|
40024
40290
|
}
|
|
40291
|
+
// FIXME the map view component should not need a selectedView
|
|
40025
40292
|
set selectedView(value) {
|
|
40026
40293
|
this.selectedView$.next(value);
|
|
40027
40294
|
}
|
|
@@ -40821,7 +41088,7 @@ const RECORD_RESOURCE_CREATED_FIELD = {
|
|
|
40821
41088
|
gridColumnSpan: 1,
|
|
40822
41089
|
};
|
|
40823
41090
|
const RESOURCE_IDENTIFIER_FIELD = {
|
|
40824
|
-
model: '
|
|
41091
|
+
model: 'resourceIdentifiers',
|
|
40825
41092
|
formFieldConfig: {
|
|
40826
41093
|
labelKey: marker('editor.record.form.field.resourceIdentifier'),
|
|
40827
41094
|
},
|
|
@@ -43335,8 +43602,28 @@ class FormFieldComponent {
|
|
|
43335
43602
|
get valueAsOnlineResources() {
|
|
43336
43603
|
return this.value;
|
|
43337
43604
|
}
|
|
43605
|
+
get valueAsResourceIdentifierCode() {
|
|
43606
|
+
const identifiers = this.value;
|
|
43607
|
+
return identifiers?.[0]?.code || '';
|
|
43608
|
+
}
|
|
43609
|
+
handleResourceIdentifierChange(code) {
|
|
43610
|
+
const identifiers = this.value;
|
|
43611
|
+
if (!code) {
|
|
43612
|
+
this.valueChange.emit(identifiers?.slice(1) || []);
|
|
43613
|
+
return;
|
|
43614
|
+
}
|
|
43615
|
+
if (identifiers?.[0]) {
|
|
43616
|
+
this.valueChange.emit([
|
|
43617
|
+
{ ...identifiers[0], code },
|
|
43618
|
+
...identifiers.slice(1),
|
|
43619
|
+
]);
|
|
43620
|
+
}
|
|
43621
|
+
else {
|
|
43622
|
+
this.valueChange.emit([{ code }]);
|
|
43623
|
+
}
|
|
43624
|
+
}
|
|
43338
43625
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43339
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifier'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-topics\n [value]=\"valueAsTopics\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-topics>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "component", type: FormFieldTopicsComponent, selector: "gn-ui-form-field-topics", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { uniqueIdentifier: "uniqueIdentifier", model: "model", modelSpecifier: "modelSpecifier", componentName: "componentName", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifiers'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsResourceIdentifierCode\"\n (valueChange)=\"handleResourceIdentifierChange($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-topics\n [value]=\"valueAsTopics\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-topics>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["label", "recordLicences"], outputs: ["recordLicencesChange"] }, { kind: "component", type: FormFieldDateComponent, selector: "gn-ui-form-field-date", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "readonly", "invalid", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["label", "hint", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOverviewsComponent, selector: "gn-ui-form-field-overviews", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsForResourceComponent, selector: "gn-ui-form-field-contacts-for-resource", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineResourcesComponent, selector: "gn-ui-form-field-online-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldOnlineLinkResourcesComponent, selector: "gn-ui-form-field-online-link-resources", inputs: ["metadataUuid", "value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldContactsComponent, selector: "gn-ui-form-field-contacts", inputs: ["value"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsComponent, selector: "gn-ui-form-field-constraints", inputs: ["label", "value", "constraintType"], outputs: ["valueChange"] }, { kind: "component", type: FormFieldConstraintsShortcutsComponent, selector: "gn-ui-form-field-constraints-shortcuts" }, { kind: "component", type: FormFieldSpatialToggleComponent, selector: "gn-ui-form-field-spatial-toggle" }, { kind: "component", type: FormFieldTopicsComponent, selector: "gn-ui-form-field-topics", inputs: ["value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43340
43627
|
}
|
|
43341
43628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
43342
43629
|
type: Component,
|
|
@@ -43363,7 +43650,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43363
43650
|
FormFieldSpatialToggleComponent,
|
|
43364
43651
|
FormFieldTopicsComponent,
|
|
43365
43652
|
TextFieldModule,
|
|
43366
|
-
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'
|
|
43653
|
+
], template: "<!-- TEMPORARY - disabling the open data switch -->\n<!-- <ng-container *ngIf=\"model === 'licenses'\">\n <gn-ui-form-field-open-data\n [value]=\"valueAsConstraints\"\n (valueChange)=\"valueChange.emit($event)\"\n (openDataChange)=\"toggleIsOpenData($event)\"\n ></gn-ui-form-field-open-data>\n</ng-container> -->\n<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container [ngSwitch]=\"model\">\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"flex flex-row flex-start items-center gap-3 mb-[12px]\">\n <textarea\n #titleInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n data-test=\"recordTitleInput\"\n class=\"grow font-title text-3xl font-normal overflow-hidden text-black/80\"\n (change)=\"valueChange.emit($event.target.value)\"\n [placeholder]=\"\n 'editor.record.form.field.title.placeholder' | translate\n \"\n >{{ valueAsString }}</textarea\n >\n <div class=\"flex flex-row justify-between self-start mt-0.5\">\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n *ngIf=\"config.hintKey\"\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'abstract'\">\n <gn-ui-form-field-rich\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n [value]=\"valueAsString\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngSwitchCase=\"'overviews'\">\n <gn-ui-form-field-overviews\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOverviews\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-overviews>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceIdentifiers'\">\n <gn-ui-form-field-simple\n [type]=\"'text'\"\n [value]=\"valueAsResourceIdentifierCode\"\n (valueChange)=\"handleResourceIdentifierChange($event)\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceCreated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'resourceUpdated'\">\n <gn-ui-form-field-date\n [value]=\"valueAsDate\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'updateFrequency'\">\n <gn-ui-form-field-update-frequency\n [value]=\"valueAsUpdateFrequency\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngSwitchCase=\"'temporalExtents'\">\n <gn-ui-form-field-temporal-extents\n [value]=\"valueAsTemporalExtents\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spatialExtents'\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngSwitchCase=\"'keywords'\">\n <gn-ui-form-field-keywords\n [value]=\"valueAsKeywords\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n <ng-container *ngSwitchCase=\"'topics'\">\n <gn-ui-form-field-topics\n [value]=\"valueAsTopics\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-topics>\n </ng-container>\n <ng-container *ngSwitchCase=\"'licenses'\">\n <gn-ui-form-field-license\n [label]=\"config.labelKey! | translate\"\n [recordLicences]=\"valueAsConstraints\"\n (recordLicencesChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-license>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'legalConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'securityConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'otherConstraints'\">\n <ng-container *ngTemplateOutlet=\"formFieldConstraints\"></ng-container\n ></ng-container>\n <ng-template #formFieldConstraints>\n <gn-ui-form-field-constraints\n [label]=\"config.labelKey\"\n [value]=\"valueAsConstraints\"\n [constraintType]=\"model\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-constraints\n ></ng-template>\n\n <ng-container *ngSwitchCase=\"'contactsForResource'\">\n <gn-ui-form-field-contacts-for-resource\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts-for-resource>\n </ng-container>\n <ng-container *ngSwitchCase=\"'contacts'\">\n <gn-ui-form-field-contacts\n [value]=\"valueAsIndividuals\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-contacts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:!link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-resources>\n </ng-container>\n <ng-container *ngSwitchCase=\"'onlineResources'\">\n <gn-ui-form-field-online-link-resources\n *ngIf=\"modelSpecifier === 'onlineResourceType:link'\"\n [metadataUuid]=\"uniqueIdentifier\"\n [value]=\"valueAsOnlineResources\"\n (valueChange)=\"valueChange.emit($event)\"\n ></gn-ui-form-field-online-link-resources>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!model\">\n <ng-container [ngSwitch]=\"componentName\">\n <ng-container *ngSwitchCase=\"'form-field-constraints-shortcuts'\">\n <gn-ui-form-field-constraints-shortcuts></gn-ui-form-field-constraints-shortcuts>\n </ng-container>\n <ng-container *ngSwitchCase=\"'form-field-spatial-toggle'\">\n <gn-ui-form-field-spatial-toggle></gn-ui-form-field-spatial-toggle>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
43367
43654
|
}], propDecorators: { uniqueIdentifier: [{
|
|
43368
43655
|
type: Input
|
|
43369
43656
|
}], model: [{
|
|
@@ -43788,6 +44075,9 @@ class RouterService {
|
|
|
43788
44075
|
getOrganizationPageRoute() {
|
|
43789
44076
|
return ROUTER_ROUTE_ORGANIZATION;
|
|
43790
44077
|
}
|
|
44078
|
+
getDefaultSort() {
|
|
44079
|
+
return SortByEnum.RESOURCE_DATES;
|
|
44080
|
+
}
|
|
43791
44081
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterService, deps: [{ token: ROUTER_CONFIG }, { token: i1$d.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43792
44082
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
43793
44083
|
}
|
|
@@ -43948,13 +44238,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43948
44238
|
}], ctorParameters: () => [{ type: i1$3.Store }, { type: RouterService }] });
|
|
43949
44239
|
|
|
43950
44240
|
class RouterEffects {
|
|
43951
|
-
constructor(_actions$, _router, _location, facade, routerConfig, fieldsService) {
|
|
44241
|
+
constructor(_actions$, _router, _location, facade, routerConfig, fieldsService, routerService) {
|
|
43952
44242
|
this._actions$ = _actions$;
|
|
43953
44243
|
this._router = _router;
|
|
43954
44244
|
this._location = _location;
|
|
43955
44245
|
this.facade = facade;
|
|
43956
44246
|
this.routerConfig = routerConfig;
|
|
43957
44247
|
this.fieldsService = fieldsService;
|
|
44248
|
+
this.routerService = routerService;
|
|
43958
44249
|
this.navigate$ = createEffect(() => this._actions$.pipe(ofType(goAction), tap$1(({ path, query: queryParams, queryParamsHandling }) => {
|
|
43959
44250
|
this._router.navigate([path], {
|
|
43960
44251
|
queryParams,
|
|
@@ -43966,14 +44257,14 @@ class RouterEffects {
|
|
|
43966
44257
|
.pipe(map$1((filters) => [searchParams, filters]))), startWith([null, {}]), pairwise(), map$1(([[oldParams, oldFilters], [newParams, newFilters]]) => {
|
|
43967
44258
|
let sortBy = ROUTE_PARAMS.SORT in newParams
|
|
43968
44259
|
? sortByFromString(newParams[ROUTE_PARAMS.SORT])
|
|
43969
|
-
:
|
|
44260
|
+
: this.routerService.getDefaultSort();
|
|
43970
44261
|
let pageNumber = ROUTE_PARAMS.PAGE in newParams
|
|
43971
44262
|
? parseInt(newParams[ROUTE_PARAMS.PAGE])
|
|
43972
44263
|
: 1;
|
|
43973
44264
|
if (oldParams !== null) {
|
|
43974
44265
|
const oldSort = ROUTE_PARAMS.SORT in oldParams
|
|
43975
44266
|
? sortByFromString(oldParams[ROUTE_PARAMS.SORT])
|
|
43976
|
-
:
|
|
44267
|
+
: this.routerService.getDefaultSort();
|
|
43977
44268
|
if (JSON.stringify(sortBy) === JSON.stringify(oldSort)) {
|
|
43978
44269
|
sortBy = null;
|
|
43979
44270
|
}
|
|
@@ -44030,7 +44321,7 @@ class RouterEffects {
|
|
|
44030
44321
|
this.navigateBack$ = createEffect(() => this._actions$.pipe(ofType(backAction), tap$1(() => this._location.back())), { dispatch: false });
|
|
44031
44322
|
this.navigateForward$ = createEffect(() => this._actions$.pipe(ofType(forwardAction), tap$1(() => this._location.forward())), { dispatch: false });
|
|
44032
44323
|
}
|
|
44033
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterEffects, deps: [{ token: i1$c.Actions }, { token: i1$d.Router }, { token: i1$2.Location }, { token: RouterFacade }, { token: ROUTER_CONFIG }, { token: FieldsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44324
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterEffects, deps: [{ token: i1$c.Actions }, { token: i1$d.Router }, { token: i1$2.Location }, { token: RouterFacade }, { token: ROUTER_CONFIG }, { token: FieldsService }, { token: RouterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44034
44325
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterEffects }); }
|
|
44035
44326
|
}
|
|
44036
44327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterEffects, decorators: [{
|
|
@@ -44038,7 +44329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44038
44329
|
}], ctorParameters: () => [{ type: i1$c.Actions }, { type: i1$d.Router }, { type: i1$2.Location }, { type: RouterFacade }, { type: undefined, decorators: [{
|
|
44039
44330
|
type: Inject,
|
|
44040
44331
|
args: [ROUTER_CONFIG]
|
|
44041
|
-
}] }, { type: FieldsService }] });
|
|
44332
|
+
}] }, { type: FieldsService }, { type: RouterService }] });
|
|
44042
44333
|
|
|
44043
44334
|
class DefaultRouterModule {
|
|
44044
44335
|
constructor(routerService) {
|
|
@@ -44176,5 +44467,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44176
44467
|
* Generated bundle index. Do not edit.
|
|
44177
44468
|
*/
|
|
44178
44469
|
|
|
44179
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DISABLE_AUTH, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalLinkCardComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetItemComponent, FacetListComponent, FacetsContainerComponent, FavoriteStarComponent, FavoritesService, FeatureCatalogListComponent, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldTopicsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_DATASET_URL_TOKEN, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEBUG_CONFIG, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getAllKeysValidator, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryBoundingBox, getGeometryFromGeoJSON, getGlobalConfig, getIsMobile, getJsonDataItemsProxy, getLayers, getLinkId, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, handleScrollOnNavigation, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, organizationsServiceFactory, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, toLang2, toLang3, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
44470
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, ActionMenuComponent, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, ApplicationBannerComponent, AuthService, AutocompleteComponent, AvailableServicesField, AvatarComponent, AvatarServiceInterface, BASEMAP_LAYERS, BadgeComponent, BaseConverter, BaseFileReader, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CarouselComponent, CatalogTitleComponent, CellPopinComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ClearError, ClearResults, ColorScaleComponent, ConfirmationDialogComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_GN4_LOGIN_URL, DEFAULT_GN4_LOGOUT_URL, DEFAULT_GN4_SETTINGS_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DISABLE_AUTH, DO_NOT_USE_DEFAULT_BASEMAP, DataService, DataTableComponent, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangeDropdownComponent, DateRangePickerComponent, DateRangeSearchField, DateService, DcatApConverter, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EXTERNAL_VIEWER_OPEN_NEW_TAB, EXTERNAL_VIEWER_URL_TEMPLATE, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalLinkCardComponent, ExternalViewerButtonComponent, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FILTER_SUMMARY_IGNORE_LIST, FORMATS, FacetBlockComponent, FacetItemComponent, FacetListComponent, FacetsContainerComponent, FavoriteStarComponent, FavoritesService, FeatureCatalogListComponent, FeatureDetailComponent, FeatureEditorModule, FeatureMapModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileInputComponent, FileTranslateLoader, FilesDropDirective, FilterDropdownComponent, FormFieldArrayComponent, FormFieldComponent, FormFieldDateComponent, FormFieldFileComponent, FormFieldKeywordsComponent, FormFieldLicenseComponent, FormFieldObjectComponent, FormFieldRichComponent, FormFieldSimpleComponent, FormFieldSpatialExtentComponent, FormFieldTemporalExtentsComponent, FormFieldTopicsComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GEONETWORK_UI_TAG_NAME, GEONETWORK_UI_VERSION, GeoDataBadgeComponent, GeoTableViewComponent, GeocodingComponent, GeojsonReader, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GnUiHumanizeDateDirective, GpfApiDlComponent, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageInputComponent, ImageOverlayPreviewComponent, ImportRecordComponent, InlineFilterComponent, InteractiveTableColumnComponent, InteractiveTableComponent, InternalLinkCardComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, KindBadgeComponent, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LOGIN_URL, LOGOUT_URL, LONLAT_CRS_CODES, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_FEATURE_KEY, MAP_VIEW_CONSTRAINTS, METADATA_LANGUAGE, MapContainerComponent, MapFacade, MapLegendComponent, MapStateContainerComponent, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataDoiComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MetadataQualityPanelComponent, ModalDialogComponent, MultilingualPanelComponent, MultilingualSearchField, MyOrgService, NAMESPACES, NOT_APPLICABLE_CONSTRAINT, NOT_KNOWN_CONSTRAINT, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OrganizationsServiceInterface, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PaginationDotsComponent, PatchResultsAggregations, PlatformServiceInterface, PopoverComponent, PopupAlertComponent, PossibleResourceTypes, PossibleResourceTypesDefinition, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_DATASET_URL_TOKEN, RECORD_REUSE_URL_TOKEN, RECORD_SERVICE_URL_TOKEN, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RESULTS_LAYOUT_CONFIG, ROUTER_CONFIG, ROUTER_ROUTE_DATASET, ROUTER_ROUTE_ORGANIZATION, ROUTER_ROUTE_REUSE, ROUTER_ROUTE_SEARCH, ROUTER_ROUTE_SERVICE, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordKindField, RecordMetaComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResourceTypeLegacyField, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsHitsSearchKindComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SETTINGS_URL, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchFeatureCatalogComponent, SearchFiltersSummaryComponent, SearchFiltersSummaryItemComponent, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, ServiceCapabilitiesComponent, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpatialExtentComponent, SpinningLoaderComponent, StacViewComponent, StarToggleComponent, StickyHeaderComponent, SupportedTypes, SwitchToggleComponent, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEBUG_CONFIG, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, TruncatedTextComponent, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UpdateConfigAggregations, UpdateFilters, UrlInputComponent, UserFeedbackItemComponent, UserPreviewComponent, UserSearchField, VECTOR_STYLE_DEFAULT, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, XmlParseError, _reset, allChildrenElement, appConfigWithTranslationFixture, appendChildTree, appendChildren, assertValidXml, blockModelFixture, bytesToMegabytes, canEditRecord, checkFileFormat, clearSelectedFeatures, createChild, createDocument, createElement, createFuzzyFilter, createNestedChild, createNestedElement, currentPage, defaultMapStyleFixture, defaultMapStyleHlFixture, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, emptyBlockModelFixture, findChildElement, findChildOrCreate, findChildrenElement, findConverterForDocument, findNestedChildOrCreate, findNestedElement, findNestedElements, findParent, firstChildElement, formatDate, formatUserInfo, getAllKeysValidator, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryBoundingBox, getGeometryFromGeoJSON, getGlobalConfig, getIsMobile, getJsonDataItemsProxy, getLayers, getLinkId, getLinkLabel, getLinkPriority, getMapContext, getMapContextLayerFromConfig, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getNamespace, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getQualityValidators, getResourceType, getReuseType, getRootElement, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSelectedFeatures, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, handleScrollOnNavigation, hasRecordChangedSinceDraft, hasRecordChangedSinceDraftSuccess, initSearch, initialEditorState, initialMapState, initialState, isConfigLoaded, isDateRange, isFormatInQueryParam, isPublished, itemModelFixture, kindToCodeListValue, loadAppConfig, malformedConfigFixture, mapConfigFixture, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, matchesNoApplicableConstraint, matchesNoKnownConstraint, megabytesToBytes, mimeTypeToFormat, minimalAppConfigFixture, missingMandatoryConfigFixture, mouseWheelZoomCondition, noDuplicateFileName, okAppConfigFixture, openDataset, openRecord, organizationsServiceFactory, parse, parseXmlString, placeholder, prioritizePageScroll, propagateToDocumentOnly, provideGn4, provideI18n, provideRepositoryUrl, readAttribute, readDataset, readDatasetHeaders, readText, reducer$2 as reducer, reducerSearch, removeAllChildren, removeChildren, removeChildrenByName, removeSearchParams, removeWhitespace, renameElements, saveRecord, saveRecordFailure, saveRecordSuccess, selectCanEditRecord, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectHasRecordChanged, selectIsPublished, selectRecord, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setContext, setCurrentPage, setFieldVisibility, setSelectedFeatures, setTextContent, someHabTableItemFixture, sortByFromString, sortByToString, sortByToStrings, stripHtml, stripNamespace, tableItemsFixture, toDate, toLang2, toLang3, totalPages, undoRecordDraft, unrecognizedKeysConfigFixture, updateLanguages, updateRecordField, updateRecordLanguages, wmsLayerFlatten, writeAttribute, wrongLanguageCodeConfigFixture, xmlToString };
|
|
44180
44471
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|