geonetwork-ui 2.8.0-dev.6ea037ab6 → 2.8.0-dev.7ecc6ee1d
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 +3 -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 +25 -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/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 +2 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.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/state/mdview.facade.mjs +14 -1
- package/esm2022/libs/ui/elements/src/index.mjs +2 -1
- 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/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 +3 -1
- package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +19 -2
- package/esm2022/translations/de.json +13 -4
- package/esm2022/translations/en.json +13 -4
- package/esm2022/translations/es.json +9 -0
- package/esm2022/translations/fr.json +13 -4
- package/esm2022/translations/it.json +14 -5
- package/esm2022/translations/nl.json +9 -0
- package/esm2022/translations/pt.json +9 -0
- package/esm2022/translations/sk.json +10 -1
- 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 +345 -116
- 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/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/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +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/state/mdview.facade.d.ts +28 -24
- package/libs/feature/record/src/lib/state/mdview.facade.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/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/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/services/date.service.d.ts +4 -0
- package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -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 +27 -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/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 +10 -1
- 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 +10 -0
- 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/state/mdview.facade.ts +30 -1
- package/src/libs/ui/elements/src/index.ts +1 -0
- 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 +67 -21
- 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/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 +2 -0
- package/src/libs/util/shared/src/lib/services/date.service.ts +27 -1
- package/translations/de.json +13 -4
- package/translations/en.json +13 -4
- package/translations/es.json +9 -0
- package/translations/fr.json +13 -4
- package/translations/it.json +14 -5
- package/translations/nl.json +9 -0
- package/translations/pt.json +9 -0
- package/translations/sk.json +10 -1
- 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';
|
|
@@ -20,6 +20,7 @@ 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';
|
|
@@ -668,6 +667,8 @@ function matchProtocol(protocol) {
|
|
|
668
667
|
return 'GPFDL';
|
|
669
668
|
if (/DB:POSTGIS/i.test(protocol))
|
|
670
669
|
return 'postgis';
|
|
670
|
+
if (/stac\W*items/i.test(protocol))
|
|
671
|
+
return 'stac';
|
|
671
672
|
return 'other';
|
|
672
673
|
}
|
|
673
674
|
function matchMimeType(format) {
|
|
@@ -917,6 +918,7 @@ marker('record.metadata.api.accessServiceProtocol.GPFDL');
|
|
|
917
918
|
marker('record.metadata.api.accessServiceProtocol.tms');
|
|
918
919
|
marker('record.metadata.api.accessServiceProtocol.maplibre-style');
|
|
919
920
|
marker('record.metadata.api.accessServiceProtocol.postgis');
|
|
921
|
+
marker('record.metadata.api.accessServiceProtocol.stac');
|
|
920
922
|
marker('record.metadata.api.accessServiceProtocol.other');
|
|
921
923
|
|
|
922
924
|
function getUpdateFrequencyFromFrequencyCode(frequencyCode) {
|
|
@@ -1577,7 +1579,8 @@ function readDefaultLanguage$2(rootEl) {
|
|
|
1577
1579
|
return pipe(findChildElement('gmd:language', false), findChildElement('lan:LanguageCode'), readAttribute('codeListValue'), map((lang) => (lang ? toLang2(lang.toLowerCase()) : null)))(rootEl);
|
|
1578
1580
|
}
|
|
1579
1581
|
function readResourceIdentifier(rootEl) {
|
|
1580
|
-
|
|
1582
|
+
const code = pipe(findIdentification(), findNestedElement('gmd:citation', 'gmd:CI_Citation', 'gmd:identifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
|
|
1583
|
+
return code ? [{ code }] : [];
|
|
1581
1584
|
}
|
|
1582
1585
|
|
|
1583
1586
|
function writeLocalizedElement(writeFn, text, translations, defaultLanguage) {
|
|
@@ -2083,8 +2086,9 @@ function writeDefaultLanguage$1(record, rootEl) {
|
|
|
2083
2086
|
return pipe(findNestedChildOrCreate('gmd:language', 'gmd:LanguageCode'), writeAttribute('codeList', 'http://www.loc.gov/standards/iso639-2/'), writeAttribute('codeListValue', lang3))(rootEl);
|
|
2084
2087
|
}
|
|
2085
2088
|
function writeResourceIdentifier(record, rootEl) {
|
|
2086
|
-
|
|
2087
|
-
|
|
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))
|
|
2088
2092
|
: noop)(rootEl);
|
|
2089
2093
|
}
|
|
2090
2094
|
|
|
@@ -2098,7 +2102,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2098
2102
|
recordUpdated: readRecordUpdated$2,
|
|
2099
2103
|
recordCreated: () => undefined, // not supported in ISO19139
|
|
2100
2104
|
recordPublished: () => undefined, // not supported in ISO19139
|
|
2101
|
-
|
|
2105
|
+
resourceIdentifiers: readResourceIdentifier,
|
|
2102
2106
|
resourceUpdated: readResourceUpdated$1,
|
|
2103
2107
|
resourceCreated: readResourceCreated$1,
|
|
2104
2108
|
resourcePublished: readResourcePublished,
|
|
@@ -2135,7 +2139,7 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2135
2139
|
recordUpdated: writeRecordUpdated$1,
|
|
2136
2140
|
recordCreated: () => undefined, // not supported in ISO19139
|
|
2137
2141
|
recordPublished: () => undefined, // not supported in ISO19139
|
|
2138
|
-
|
|
2142
|
+
resourceIdentifiers: writeResourceIdentifier,
|
|
2139
2143
|
resourceUpdated: writeResourceUpdated$1,
|
|
2140
2144
|
resourceCreated: writeResourceCreated$1,
|
|
2141
2145
|
resourcePublished: writeResourcePublished$1,
|
|
@@ -2236,11 +2240,11 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2236
2240
|
const onlineResources = this.readers['onlineResources'](rootEl, tr);
|
|
2237
2241
|
const otherLanguages = this.readers['otherLanguages'](rootEl, tr);
|
|
2238
2242
|
const defaultLanguage = this.readers['defaultLanguage'](rootEl, tr);
|
|
2239
|
-
const
|
|
2243
|
+
const resourceIdentifiers = this.readers['resourceIdentifiers'](rootEl, tr);
|
|
2240
2244
|
const spatialExtents = this.readers['spatialExtents'](rootEl, tr);
|
|
2241
2245
|
return {
|
|
2242
2246
|
uniqueIdentifier,
|
|
2243
|
-
...(
|
|
2247
|
+
...(resourceIdentifiers?.length > 0 && { resourceIdentifiers }),
|
|
2244
2248
|
kind,
|
|
2245
2249
|
otherLanguages,
|
|
2246
2250
|
defaultLanguage,
|
|
@@ -2368,8 +2372,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
2368
2372
|
this.writers['otherConstraints'](record, rootEl);
|
|
2369
2373
|
fieldChanged('onlineResources') &&
|
|
2370
2374
|
this.writers['onlineResources'](record, rootEl);
|
|
2371
|
-
fieldChanged('
|
|
2372
|
-
this.writers['
|
|
2375
|
+
fieldChanged('resourceIdentifiers') &&
|
|
2376
|
+
this.writers['resourceIdentifiers'](record, rootEl);
|
|
2373
2377
|
if (record.kind === 'dataset') {
|
|
2374
2378
|
fieldChanged('status') && this.writers['status'](record, rootEl);
|
|
2375
2379
|
fieldChanged('updateFrequency') &&
|
|
@@ -3316,7 +3320,7 @@ class DcatApConverter extends BaseConverter {
|
|
|
3316
3320
|
spatialExtents: readSpatialExtents,
|
|
3317
3321
|
keywords: readKeywords,
|
|
3318
3322
|
topics: readTopics,
|
|
3319
|
-
|
|
3323
|
+
resourceIdentifiers: () => undefined,
|
|
3320
3324
|
recordUpdated: readRecordUpdated,
|
|
3321
3325
|
recordCreated: readRecordCreated,
|
|
3322
3326
|
resourceUpdated: readResourceUpdated,
|
|
@@ -3352,7 +3356,7 @@ class DcatApConverter extends BaseConverter {
|
|
|
3352
3356
|
recordUpdated: () => undefined,
|
|
3353
3357
|
recordCreated: () => undefined,
|
|
3354
3358
|
recordPublished: () => undefined,
|
|
3355
|
-
|
|
3359
|
+
resourceIdentifiers: () => undefined,
|
|
3356
3360
|
resourceUpdated: () => undefined,
|
|
3357
3361
|
resourceCreated: () => undefined,
|
|
3358
3362
|
resourcePublished: () => undefined,
|
|
@@ -19163,6 +19167,7 @@ var de = {
|
|
|
19163
19167
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
19164
19168
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
19165
19169
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
19170
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
19166
19171
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
19167
19172
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
19168
19173
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -19204,6 +19209,8 @@ var de = {
|
|
|
19204
19209
|
"record.metadata.contact": "Kontakt",
|
|
19205
19210
|
"record.metadata.creation": "Erstellungsdatum",
|
|
19206
19211
|
"record.metadata.details": "Über die Daten",
|
|
19212
|
+
"record.metadata.doi.copy": "",
|
|
19213
|
+
"record.metadata.doi.open": "",
|
|
19207
19214
|
"record.metadata.download": "Downloads",
|
|
19208
19215
|
"record.metadata.feature.catalog": "",
|
|
19209
19216
|
"record.metadata.formats": "Formate",
|
|
@@ -19252,9 +19259,9 @@ var de = {
|
|
|
19252
19259
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
19253
19260
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
19254
19261
|
"record.metadata.related": "Entdecken Sie den Katalog",
|
|
19255
|
-
"record.metadata.resourceCreated": "Erstellt
|
|
19256
|
-
"record.metadata.resourcePublished": "Veröffentlicht
|
|
19257
|
-
"record.metadata.resourceUpdated": "Zuletzt aktualisiert
|
|
19262
|
+
"record.metadata.resourceCreated": "Erstellt",
|
|
19263
|
+
"record.metadata.resourcePublished": "Veröffentlicht",
|
|
19264
|
+
"record.metadata.resourceUpdated": "Zuletzt aktualisiert",
|
|
19258
19265
|
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
19259
19266
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
19260
19267
|
"record.metadata.status": "Status",
|
|
@@ -19267,8 +19274,9 @@ var de = {
|
|
|
19267
19274
|
"record.metadata.title": "Titel",
|
|
19268
19275
|
"record.metadata.topics": "Kategorien",
|
|
19269
19276
|
"record.metadata.uniqueId": "Eindeutige Kennung",
|
|
19277
|
+
"record.metadata.update": "Aktualisierungsdatum",
|
|
19270
19278
|
"record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten",
|
|
19271
|
-
"record.metadata.updatedOn": "
|
|
19279
|
+
"record.metadata.updatedOn": "Informationen geändert",
|
|
19272
19280
|
"record.metadata.usage": "Nutzung und Einschränkungen",
|
|
19273
19281
|
"record.metadata.userFeedbacks": "",
|
|
19274
19282
|
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
@@ -19283,6 +19291,7 @@ var de = {
|
|
|
19283
19291
|
"record.tab.chart": "Diagramm",
|
|
19284
19292
|
"record.tab.data": "Tabelle",
|
|
19285
19293
|
"record.tab.map": "Karte",
|
|
19294
|
+
"record.tab.stac": "",
|
|
19286
19295
|
"record.was.created.time": "erstellte diesen Ressource {time}",
|
|
19287
19296
|
records: records$7,
|
|
19288
19297
|
"results.layout.selectOne": "Layout auswählen",
|
|
@@ -19374,6 +19383,10 @@ var de = {
|
|
|
19374
19383
|
"service.metadata.spatialExtent": "",
|
|
19375
19384
|
"share.tab.permalink": "Teilen",
|
|
19376
19385
|
"share.tab.webComponent": "Integrieren",
|
|
19386
|
+
"stac.filter.from": "",
|
|
19387
|
+
"stac.filter.period": "",
|
|
19388
|
+
"stac.filter.reset": "",
|
|
19389
|
+
"stac.filter.to": "",
|
|
19377
19390
|
"table.loading.data": "Daten werden geladen...",
|
|
19378
19391
|
"table.object.count": "Objekte in diesem Datensatz",
|
|
19379
19392
|
"table.paginator.firstPage": "Erste Seite",
|
|
@@ -19819,6 +19832,7 @@ var en = {
|
|
|
19819
19832
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "ogcFeatures",
|
|
19820
19833
|
"record.metadata.api.accessServiceProtocol.other": "other",
|
|
19821
19834
|
"record.metadata.api.accessServiceProtocol.postgis": "PostGIS",
|
|
19835
|
+
"record.metadata.api.accessServiceProtocol.stac": "STAC",
|
|
19822
19836
|
"record.metadata.api.accessServiceProtocol.tms": "tms",
|
|
19823
19837
|
"record.metadata.api.accessServiceProtocol.wfs": "wfs",
|
|
19824
19838
|
"record.metadata.api.accessServiceProtocol.wms": "wms",
|
|
@@ -19860,6 +19874,8 @@ var en = {
|
|
|
19860
19874
|
"record.metadata.contact": "Contact",
|
|
19861
19875
|
"record.metadata.creation": "Date of creation",
|
|
19862
19876
|
"record.metadata.details": "About the data",
|
|
19877
|
+
"record.metadata.doi.copy": "Copy DOI",
|
|
19878
|
+
"record.metadata.doi.open": "Open DOI link",
|
|
19863
19879
|
"record.metadata.download": "Downloads",
|
|
19864
19880
|
"record.metadata.feature.catalog": "Feature catalog",
|
|
19865
19881
|
"record.metadata.formats": "Formats",
|
|
@@ -19908,9 +19924,9 @@ var en = {
|
|
|
19908
19924
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
19909
19925
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
19910
19926
|
"record.metadata.related": "Explore the catalog",
|
|
19911
|
-
"record.metadata.resourceCreated": "Created
|
|
19912
|
-
"record.metadata.resourcePublished": "Published
|
|
19913
|
-
"record.metadata.resourceUpdated": "Last updated
|
|
19927
|
+
"record.metadata.resourceCreated": "Created",
|
|
19928
|
+
"record.metadata.resourcePublished": "Published",
|
|
19929
|
+
"record.metadata.resourceUpdated": "Last updated",
|
|
19914
19930
|
"record.metadata.ressources.and.links": "Resources and links",
|
|
19915
19931
|
"record.metadata.sheet": "Original metadata",
|
|
19916
19932
|
"record.metadata.status": "Status",
|
|
@@ -19923,8 +19939,9 @@ var en = {
|
|
|
19923
19939
|
"record.metadata.title": "Title",
|
|
19924
19940
|
"record.metadata.topics": "Categories",
|
|
19925
19941
|
"record.metadata.uniqueId": "Unique Identifier",
|
|
19942
|
+
"record.metadata.update": "Date of update",
|
|
19926
19943
|
"record.metadata.updateFrequency": "Data Update Frequency",
|
|
19927
|
-
"record.metadata.updatedOn": "
|
|
19944
|
+
"record.metadata.updatedOn": "Metadata modified",
|
|
19928
19945
|
"record.metadata.usage": "License and Conditions",
|
|
19929
19946
|
"record.metadata.userFeedbacks": "Questions / Answers",
|
|
19930
19947
|
"record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.",
|
|
@@ -19939,6 +19956,7 @@ var en = {
|
|
|
19939
19956
|
"record.tab.chart": "Chart",
|
|
19940
19957
|
"record.tab.data": "Table",
|
|
19941
19958
|
"record.tab.map": "Map",
|
|
19959
|
+
"record.tab.stac": "STAC",
|
|
19942
19960
|
"record.was.created.time": "created this record {time}",
|
|
19943
19961
|
records: records$6,
|
|
19944
19962
|
"results.layout.selectOne": "Results layout",
|
|
@@ -20030,6 +20048,10 @@ var en = {
|
|
|
20030
20048
|
"service.metadata.spatialExtent": "Spatial extent",
|
|
20031
20049
|
"share.tab.permalink": "Share",
|
|
20032
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",
|
|
20033
20055
|
"table.loading.data": "Loading data...",
|
|
20034
20056
|
"table.object.count": "Objects in this dataset",
|
|
20035
20057
|
"table.paginator.firstPage": "First page",
|
|
@@ -20475,6 +20497,7 @@ var es = {
|
|
|
20475
20497
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
20476
20498
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
20477
20499
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
20500
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
20478
20501
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
20479
20502
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
20480
20503
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -20516,6 +20539,8 @@ var es = {
|
|
|
20516
20539
|
"record.metadata.contact": "",
|
|
20517
20540
|
"record.metadata.creation": "",
|
|
20518
20541
|
"record.metadata.details": "",
|
|
20542
|
+
"record.metadata.doi.copy": "",
|
|
20543
|
+
"record.metadata.doi.open": "",
|
|
20519
20544
|
"record.metadata.download": "",
|
|
20520
20545
|
"record.metadata.feature.catalog": "",
|
|
20521
20546
|
"record.metadata.formats": "",
|
|
@@ -20579,6 +20604,7 @@ var es = {
|
|
|
20579
20604
|
"record.metadata.title": "",
|
|
20580
20605
|
"record.metadata.topics": "",
|
|
20581
20606
|
"record.metadata.uniqueId": "",
|
|
20607
|
+
"record.metadata.update": "",
|
|
20582
20608
|
"record.metadata.updateFrequency": "",
|
|
20583
20609
|
"record.metadata.updatedOn": "",
|
|
20584
20610
|
"record.metadata.usage": "",
|
|
@@ -20595,6 +20621,7 @@ var es = {
|
|
|
20595
20621
|
"record.tab.chart": "",
|
|
20596
20622
|
"record.tab.data": "",
|
|
20597
20623
|
"record.tab.map": "",
|
|
20624
|
+
"record.tab.stac": "",
|
|
20598
20625
|
"record.was.created.time": "",
|
|
20599
20626
|
records: records$5,
|
|
20600
20627
|
"results.layout.selectOne": "",
|
|
@@ -20686,6 +20713,10 @@ var es = {
|
|
|
20686
20713
|
"service.metadata.spatialExtent": "",
|
|
20687
20714
|
"share.tab.permalink": "",
|
|
20688
20715
|
"share.tab.webComponent": "",
|
|
20716
|
+
"stac.filter.from": "",
|
|
20717
|
+
"stac.filter.period": "",
|
|
20718
|
+
"stac.filter.reset": "",
|
|
20719
|
+
"stac.filter.to": "",
|
|
20689
20720
|
"table.loading.data": "",
|
|
20690
20721
|
"table.object.count": "",
|
|
20691
20722
|
"table.paginator.firstPage": "Primera página",
|
|
@@ -21131,6 +21162,7 @@ var fr = {
|
|
|
21131
21162
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
21132
21163
|
"record.metadata.api.accessServiceProtocol.other": "autre",
|
|
21133
21164
|
"record.metadata.api.accessServiceProtocol.postgis": "PostGIS",
|
|
21165
|
+
"record.metadata.api.accessServiceProtocol.stac": "STAC",
|
|
21134
21166
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
21135
21167
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
21136
21168
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -21172,6 +21204,8 @@ var fr = {
|
|
|
21172
21204
|
"record.metadata.contact": "Contact",
|
|
21173
21205
|
"record.metadata.creation": "Date de création",
|
|
21174
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",
|
|
21175
21209
|
"record.metadata.download": "Téléchargements",
|
|
21176
21210
|
"record.metadata.feature.catalog": "Catalogue d'attributs",
|
|
21177
21211
|
"record.metadata.formats": "Formats",
|
|
@@ -21220,9 +21254,9 @@ var fr = {
|
|
|
21220
21254
|
"record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
|
|
21221
21255
|
"record.metadata.quality.updateFrequency.success": "La fréquence de mise à jour est renseignée",
|
|
21222
21256
|
"record.metadata.related": "Explorez le catalogue",
|
|
21223
|
-
"record.metadata.resourceCreated": "Créé
|
|
21224
|
-
"record.metadata.resourcePublished": "Publié
|
|
21225
|
-
"record.metadata.resourceUpdated": "Mis à jour
|
|
21257
|
+
"record.metadata.resourceCreated": "Créé",
|
|
21258
|
+
"record.metadata.resourcePublished": "Publié",
|
|
21259
|
+
"record.metadata.resourceUpdated": "Mis à jour",
|
|
21226
21260
|
"record.metadata.ressources.and.links": "Ressources et liens",
|
|
21227
21261
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
21228
21262
|
"record.metadata.status": "Statut",
|
|
@@ -21235,8 +21269,9 @@ var fr = {
|
|
|
21235
21269
|
"record.metadata.title": "Intitulé",
|
|
21236
21270
|
"record.metadata.topics": "Catégories",
|
|
21237
21271
|
"record.metadata.uniqueId": "Identificateur de ressource unique",
|
|
21272
|
+
"record.metadata.update": "Date de mise à jour",
|
|
21238
21273
|
"record.metadata.updateFrequency": "Fréquence de mise à jour des données",
|
|
21239
|
-
"record.metadata.updatedOn": "
|
|
21274
|
+
"record.metadata.updatedOn": "Fiche de métadonnées modifiée",
|
|
21240
21275
|
"record.metadata.usage": "Licences et conditions d'utilisation",
|
|
21241
21276
|
"record.metadata.userFeedbacks": "Questions / Réponses",
|
|
21242
21277
|
"record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.",
|
|
@@ -21251,6 +21286,7 @@ var fr = {
|
|
|
21251
21286
|
"record.tab.chart": "Graphique",
|
|
21252
21287
|
"record.tab.data": "Tableau",
|
|
21253
21288
|
"record.tab.map": "Carte",
|
|
21289
|
+
"record.tab.stac": "STAC",
|
|
21254
21290
|
"record.was.created.time": "a créé cette ressource {time}",
|
|
21255
21291
|
records: records$4,
|
|
21256
21292
|
"results.layout.selectOne": "Affichage des résultats",
|
|
@@ -21342,6 +21378,10 @@ var fr = {
|
|
|
21342
21378
|
"service.metadata.spatialExtent": "Etendue spatiale",
|
|
21343
21379
|
"share.tab.permalink": "Partager",
|
|
21344
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",
|
|
21345
21385
|
"table.loading.data": "Chargement des données...",
|
|
21346
21386
|
"table.object.count": "enregistrements dans ce jeu de données",
|
|
21347
21387
|
"table.paginator.firstPage": "Première page",
|
|
@@ -21787,6 +21827,7 @@ var it = {
|
|
|
21787
21827
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
21788
21828
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
21789
21829
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
21830
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
21790
21831
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
21791
21832
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
21792
21833
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -21828,6 +21869,8 @@ var it = {
|
|
|
21828
21869
|
"record.metadata.contact": "Contatto",
|
|
21829
21870
|
"record.metadata.creation": "Data di creazione",
|
|
21830
21871
|
"record.metadata.details": "A proposito del dati",
|
|
21872
|
+
"record.metadata.doi.copy": "",
|
|
21873
|
+
"record.metadata.doi.open": "",
|
|
21831
21874
|
"record.metadata.download": "Download",
|
|
21832
21875
|
"record.metadata.feature.catalog": "Catalogo dei oggetti",
|
|
21833
21876
|
"record.metadata.formats": "Formati",
|
|
@@ -21876,11 +21919,11 @@ var it = {
|
|
|
21876
21919
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
21877
21920
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
21878
21921
|
"record.metadata.related": "Vedi anche",
|
|
21879
|
-
"record.metadata.resourceCreated": "Creato
|
|
21880
|
-
"record.metadata.resourcePublished": "Pubblicato
|
|
21881
|
-
"record.metadata.resourceUpdated": "Ultimo aggiornamento
|
|
21922
|
+
"record.metadata.resourceCreated": "Creato",
|
|
21923
|
+
"record.metadata.resourcePublished": "Pubblicato",
|
|
21924
|
+
"record.metadata.resourceUpdated": "Ultimo aggiornamento",
|
|
21882
21925
|
"record.metadata.ressources.and.links": "Risorse e collegamenti",
|
|
21883
|
-
"record.metadata.sheet": "Origine
|
|
21926
|
+
"record.metadata.sheet": "Origine dei metadati",
|
|
21884
21927
|
"record.metadata.status": "Stato",
|
|
21885
21928
|
"record.metadata.status.notPublished": "Non pubblicato",
|
|
21886
21929
|
"record.metadata.status.published": "Pubblicato",
|
|
@@ -21891,8 +21934,9 @@ var it = {
|
|
|
21891
21934
|
"record.metadata.title": "Titolo",
|
|
21892
21935
|
"record.metadata.topics": "Categorie",
|
|
21893
21936
|
"record.metadata.uniqueId": "Identificatore unico di risorsa",
|
|
21937
|
+
"record.metadata.update": "Data di aggiornamento",
|
|
21894
21938
|
"record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati",
|
|
21895
|
-
"record.metadata.updatedOn": "
|
|
21939
|
+
"record.metadata.updatedOn": "Metadati modificati",
|
|
21896
21940
|
"record.metadata.usage": "Licenze e limiti di utilizzo",
|
|
21897
21941
|
"record.metadata.userFeedbacks": "Domande / Risposte",
|
|
21898
21942
|
"record.metadata.userFeedbacks.anonymousUser": "Per pubblicare un commento, effettua il login.",
|
|
@@ -21907,6 +21951,7 @@ var it = {
|
|
|
21907
21951
|
"record.tab.chart": "Grafico",
|
|
21908
21952
|
"record.tab.data": "Tabella",
|
|
21909
21953
|
"record.tab.map": "Mappa",
|
|
21954
|
+
"record.tab.stac": "",
|
|
21910
21955
|
"record.was.created.time": "ha creato questi dati {time}",
|
|
21911
21956
|
records: records$3,
|
|
21912
21957
|
"results.layout.selectOne": "Mostra risultati",
|
|
@@ -21998,6 +22043,10 @@ var it = {
|
|
|
21998
22043
|
"service.metadata.spatialExtent": "Estensione spaziale",
|
|
21999
22044
|
"share.tab.permalink": "Condividere",
|
|
22000
22045
|
"share.tab.webComponent": "Incorporare",
|
|
22046
|
+
"stac.filter.from": "",
|
|
22047
|
+
"stac.filter.period": "",
|
|
22048
|
+
"stac.filter.reset": "",
|
|
22049
|
+
"stac.filter.to": "",
|
|
22001
22050
|
"table.loading.data": "Caricamento dei dati...",
|
|
22002
22051
|
"table.object.count": "record in questi dati",
|
|
22003
22052
|
"table.paginator.firstPage": "Prima pagina",
|
|
@@ -22443,6 +22492,7 @@ var nl = {
|
|
|
22443
22492
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
22444
22493
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
22445
22494
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
22495
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
22446
22496
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
22447
22497
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
22448
22498
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -22484,6 +22534,8 @@ var nl = {
|
|
|
22484
22534
|
"record.metadata.contact": "",
|
|
22485
22535
|
"record.metadata.creation": "",
|
|
22486
22536
|
"record.metadata.details": "",
|
|
22537
|
+
"record.metadata.doi.copy": "",
|
|
22538
|
+
"record.metadata.doi.open": "",
|
|
22487
22539
|
"record.metadata.download": "",
|
|
22488
22540
|
"record.metadata.feature.catalog": "",
|
|
22489
22541
|
"record.metadata.formats": "",
|
|
@@ -22547,6 +22599,7 @@ var nl = {
|
|
|
22547
22599
|
"record.metadata.title": "",
|
|
22548
22600
|
"record.metadata.topics": "",
|
|
22549
22601
|
"record.metadata.uniqueId": "",
|
|
22602
|
+
"record.metadata.update": "",
|
|
22550
22603
|
"record.metadata.updateFrequency": "",
|
|
22551
22604
|
"record.metadata.updatedOn": "",
|
|
22552
22605
|
"record.metadata.usage": "",
|
|
@@ -22563,6 +22616,7 @@ var nl = {
|
|
|
22563
22616
|
"record.tab.chart": "",
|
|
22564
22617
|
"record.tab.data": "",
|
|
22565
22618
|
"record.tab.map": "",
|
|
22619
|
+
"record.tab.stac": "",
|
|
22566
22620
|
"record.was.created.time": "",
|
|
22567
22621
|
records: records$2,
|
|
22568
22622
|
"results.layout.selectOne": "",
|
|
@@ -22654,6 +22708,10 @@ var nl = {
|
|
|
22654
22708
|
"service.metadata.spatialExtent": "",
|
|
22655
22709
|
"share.tab.permalink": "",
|
|
22656
22710
|
"share.tab.webComponent": "",
|
|
22711
|
+
"stac.filter.from": "",
|
|
22712
|
+
"stac.filter.period": "",
|
|
22713
|
+
"stac.filter.reset": "",
|
|
22714
|
+
"stac.filter.to": "",
|
|
22657
22715
|
"table.loading.data": "",
|
|
22658
22716
|
"table.object.count": "",
|
|
22659
22717
|
"table.paginator.firstPage": "",
|
|
@@ -23099,6 +23157,7 @@ var pt = {
|
|
|
23099
23157
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
23100
23158
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
23101
23159
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
23160
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
23102
23161
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
23103
23162
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
23104
23163
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -23140,6 +23199,8 @@ var pt = {
|
|
|
23140
23199
|
"record.metadata.contact": "",
|
|
23141
23200
|
"record.metadata.creation": "",
|
|
23142
23201
|
"record.metadata.details": "",
|
|
23202
|
+
"record.metadata.doi.copy": "",
|
|
23203
|
+
"record.metadata.doi.open": "",
|
|
23143
23204
|
"record.metadata.download": "",
|
|
23144
23205
|
"record.metadata.feature.catalog": "",
|
|
23145
23206
|
"record.metadata.formats": "",
|
|
@@ -23203,6 +23264,7 @@ var pt = {
|
|
|
23203
23264
|
"record.metadata.title": "",
|
|
23204
23265
|
"record.metadata.topics": "",
|
|
23205
23266
|
"record.metadata.uniqueId": "",
|
|
23267
|
+
"record.metadata.update": "",
|
|
23206
23268
|
"record.metadata.updateFrequency": "",
|
|
23207
23269
|
"record.metadata.updatedOn": "",
|
|
23208
23270
|
"record.metadata.usage": "",
|
|
@@ -23219,6 +23281,7 @@ var pt = {
|
|
|
23219
23281
|
"record.tab.chart": "",
|
|
23220
23282
|
"record.tab.data": "",
|
|
23221
23283
|
"record.tab.map": "",
|
|
23284
|
+
"record.tab.stac": "",
|
|
23222
23285
|
"record.was.created.time": "",
|
|
23223
23286
|
records: records$1,
|
|
23224
23287
|
"results.layout.selectOne": "",
|
|
@@ -23310,6 +23373,10 @@ var pt = {
|
|
|
23310
23373
|
"service.metadata.spatialExtent": "",
|
|
23311
23374
|
"share.tab.permalink": "",
|
|
23312
23375
|
"share.tab.webComponent": "",
|
|
23376
|
+
"stac.filter.from": "",
|
|
23377
|
+
"stac.filter.period": "",
|
|
23378
|
+
"stac.filter.reset": "",
|
|
23379
|
+
"stac.filter.to": "",
|
|
23313
23380
|
"table.loading.data": "",
|
|
23314
23381
|
"table.object.count": "",
|
|
23315
23382
|
"table.paginator.firstPage": "",
|
|
@@ -23755,6 +23822,7 @@ var sk = {
|
|
|
23755
23822
|
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
23756
23823
|
"record.metadata.api.accessServiceProtocol.other": "",
|
|
23757
23824
|
"record.metadata.api.accessServiceProtocol.postgis": "",
|
|
23825
|
+
"record.metadata.api.accessServiceProtocol.stac": "",
|
|
23758
23826
|
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
23759
23827
|
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
23760
23828
|
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
@@ -23796,6 +23864,8 @@ var sk = {
|
|
|
23796
23864
|
"record.metadata.contact": "Kontakt",
|
|
23797
23865
|
"record.metadata.creation": "",
|
|
23798
23866
|
"record.metadata.details": "Detaily",
|
|
23867
|
+
"record.metadata.doi.copy": "",
|
|
23868
|
+
"record.metadata.doi.open": "",
|
|
23799
23869
|
"record.metadata.download": "Sťahovania",
|
|
23800
23870
|
"record.metadata.feature.catalog": "",
|
|
23801
23871
|
"record.metadata.formats": "Formáty",
|
|
@@ -23859,8 +23929,9 @@ var sk = {
|
|
|
23859
23929
|
"record.metadata.title": "Názov",
|
|
23860
23930
|
"record.metadata.topics": "",
|
|
23861
23931
|
"record.metadata.uniqueId": "Jedinečný identifikátor",
|
|
23932
|
+
"record.metadata.update": "Dátum aktualizácie",
|
|
23862
23933
|
"record.metadata.updateFrequency": "Frekvencia aktualizácie metadát",
|
|
23863
|
-
"record.metadata.updatedOn": "
|
|
23934
|
+
"record.metadata.updatedOn": "Metadáta zmenené",
|
|
23864
23935
|
"record.metadata.usage": "Použitie a obmedzenia",
|
|
23865
23936
|
"record.metadata.userFeedbacks": "",
|
|
23866
23937
|
"record.metadata.userFeedbacks.anonymousUser": "",
|
|
@@ -23875,6 +23946,7 @@ var sk = {
|
|
|
23875
23946
|
"record.tab.chart": "Graf",
|
|
23876
23947
|
"record.tab.data": "Tabuľka",
|
|
23877
23948
|
"record.tab.map": "Mapa",
|
|
23949
|
+
"record.tab.stac": "",
|
|
23878
23950
|
"record.was.created.time": "vytvoril tento dataset o {time}",
|
|
23879
23951
|
records: records,
|
|
23880
23952
|
"results.layout.selectOne": "Rozmiestnenie výsledkov",
|
|
@@ -23966,6 +24038,10 @@ var sk = {
|
|
|
23966
24038
|
"service.metadata.spatialExtent": "",
|
|
23967
24039
|
"share.tab.permalink": "Zdieľať",
|
|
23968
24040
|
"share.tab.webComponent": "Integrovať",
|
|
24041
|
+
"stac.filter.from": "",
|
|
24042
|
+
"stac.filter.period": "",
|
|
24043
|
+
"stac.filter.reset": "",
|
|
24044
|
+
"stac.filter.to": "",
|
|
23969
24045
|
"table.loading.data": "Načítanie údajov...",
|
|
23970
24046
|
"table.object.count": "objekty v tomto súbore údajov",
|
|
23971
24047
|
"table.paginator.firstPage": "",
|
|
@@ -24263,6 +24339,29 @@ class Gn4FieldMapper {
|
|
|
24263
24339
|
}),
|
|
24264
24340
|
};
|
|
24265
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
|
+
},
|
|
24266
24365
|
};
|
|
24267
24366
|
this.genericField = (output) => output;
|
|
24268
24367
|
this.constraintField = (type, output, constraintArray) => {
|
|
@@ -24372,6 +24471,7 @@ class Gn4FieldMapper {
|
|
|
24372
24471
|
/TMS/i.test(protocol) ||
|
|
24373
24472
|
/ogc\W*api\W*features/i.test(protocol) ||
|
|
24374
24473
|
/^DB:POSTGIS/i.test(protocol) ||
|
|
24474
|
+
/stac\W*items/i.test(protocol) ||
|
|
24375
24475
|
(/^WWW:DOWNLOAD-/.test(protocol) && /data.geopf.fr/.test(url)) // TO DO : change with the good protocol when decided
|
|
24376
24476
|
) {
|
|
24377
24477
|
return 'service';
|
|
@@ -24679,9 +24779,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
24679
24779
|
}]
|
|
24680
24780
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1$2.Location }] });
|
|
24681
24781
|
|
|
24782
|
+
const DEFAULT_LANGUAGE = 'en';
|
|
24682
24783
|
class DateService {
|
|
24683
24784
|
constructor(translateService) {
|
|
24684
24785
|
this.translateService = translateService;
|
|
24786
|
+
this.dateLocales = import('./geonetwork-ui-date-locales-MYnkDJ5h.mjs').then((obj) => obj.default);
|
|
24685
24787
|
}
|
|
24686
24788
|
getDateObject(date) {
|
|
24687
24789
|
if (typeof date === 'string') {
|
|
@@ -24694,10 +24796,15 @@ class DateService {
|
|
|
24694
24796
|
return date;
|
|
24695
24797
|
}
|
|
24696
24798
|
getLocaleAndDate(date) {
|
|
24697
|
-
const locale = this.translateService.currentLang ||
|
|
24799
|
+
const locale = this.translateService.currentLang || DEFAULT_LANGUAGE;
|
|
24698
24800
|
const dateObj = this.getDateObject(date);
|
|
24699
24801
|
return { locale, dateObj };
|
|
24700
24802
|
}
|
|
24803
|
+
async getDateLocale() {
|
|
24804
|
+
const lang = this.translateService.currentLang || DEFAULT_LANGUAGE;
|
|
24805
|
+
const locales = await this.dateLocales;
|
|
24806
|
+
return locales[lang];
|
|
24807
|
+
}
|
|
24701
24808
|
formatDate(date, options) {
|
|
24702
24809
|
const { locale, dateObj } = this.getLocaleAndDate(date);
|
|
24703
24810
|
return dateObj.toLocaleDateString(locale, options);
|
|
@@ -24706,6 +24813,15 @@ class DateService {
|
|
|
24706
24813
|
const { locale, dateObj } = this.getLocaleAndDate(date);
|
|
24707
24814
|
return dateObj.toLocaleString(locale, options);
|
|
24708
24815
|
}
|
|
24816
|
+
async formatRelativeDateTime(date) {
|
|
24817
|
+
const dateObj = this.getDateObject(date);
|
|
24818
|
+
const now = new Date();
|
|
24819
|
+
const locale = await this.getDateLocale();
|
|
24820
|
+
return formatDistance(dateObj, now, {
|
|
24821
|
+
addSuffix: true,
|
|
24822
|
+
locale: locale,
|
|
24823
|
+
});
|
|
24824
|
+
}
|
|
24709
24825
|
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 }); }
|
|
24710
24826
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateService, providedIn: 'root' }); }
|
|
24711
24827
|
}
|
|
@@ -25431,6 +25547,8 @@ class LinkClassifierService {
|
|
|
25431
25547
|
return [LinkUsage.API];
|
|
25432
25548
|
case 'postgis':
|
|
25433
25549
|
return [LinkUsage.UNKNOWN];
|
|
25550
|
+
case 'stac':
|
|
25551
|
+
return [LinkUsage.API];
|
|
25434
25552
|
default:
|
|
25435
25553
|
return [LinkUsage.UNKNOWN];
|
|
25436
25554
|
}
|
|
@@ -25494,7 +25612,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25494
25612
|
}] } });
|
|
25495
25613
|
|
|
25496
25614
|
var name = "geonetwork-ui";
|
|
25497
|
-
var version = "2.8.0-dev.
|
|
25615
|
+
var version = "2.8.0-dev.7ecc6ee1d";
|
|
25498
25616
|
var engines = {
|
|
25499
25617
|
node: ">=20"
|
|
25500
25618
|
};
|
|
@@ -25696,6 +25814,35 @@ function updateLanguages(record, defaultLanguage, otherLanguages) {
|
|
|
25696
25814
|
return updatedRecord;
|
|
25697
25815
|
}
|
|
25698
25816
|
|
|
25817
|
+
class GnUiHumanizeDateDirective {
|
|
25818
|
+
constructor(dateService, el, renderer) {
|
|
25819
|
+
this.dateService = dateService;
|
|
25820
|
+
this.el = el;
|
|
25821
|
+
this.renderer = renderer;
|
|
25822
|
+
}
|
|
25823
|
+
async ngOnInit() {
|
|
25824
|
+
await this.updateElement();
|
|
25825
|
+
}
|
|
25826
|
+
async updateElement() {
|
|
25827
|
+
const dateValue = this.gnUiHumanizeDate;
|
|
25828
|
+
const fullDateTime = this.dateService.formatDateTime(dateValue);
|
|
25829
|
+
const relativeDate = await this.dateService.formatRelativeDateTime(dateValue);
|
|
25830
|
+
this.renderer.setAttribute(this.el.nativeElement, 'title', fullDateTime);
|
|
25831
|
+
this.renderer.setProperty(this.el.nativeElement, 'textContent', relativeDate);
|
|
25832
|
+
}
|
|
25833
|
+
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 }); }
|
|
25834
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GnUiHumanizeDateDirective, isStandalone: true, selector: "[gnUiHumanizeDate]", inputs: { gnUiHumanizeDate: "gnUiHumanizeDate" }, ngImport: i0 }); }
|
|
25835
|
+
}
|
|
25836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GnUiHumanizeDateDirective, decorators: [{
|
|
25837
|
+
type: Directive,
|
|
25838
|
+
args: [{
|
|
25839
|
+
selector: '[gnUiHumanizeDate]',
|
|
25840
|
+
standalone: true,
|
|
25841
|
+
}]
|
|
25842
|
+
}], ctorParameters: () => [{ type: DateService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { gnUiHumanizeDate: [{
|
|
25843
|
+
type: Input
|
|
25844
|
+
}] } });
|
|
25845
|
+
|
|
25699
25846
|
class ElasticsearchService {
|
|
25700
25847
|
// we're using getters in case the defined languages change over time
|
|
25701
25848
|
get metadataLang() {
|
|
@@ -33945,6 +34092,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
33945
34092
|
type: Output
|
|
33946
34093
|
}] } });
|
|
33947
34094
|
|
|
34095
|
+
class MetadataDoiComponent {
|
|
34096
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDoiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34097
|
+
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: [
|
|
34098
|
+
provideIcons({
|
|
34099
|
+
matOpenInNew,
|
|
34100
|
+
}),
|
|
34101
|
+
] }); }
|
|
34102
|
+
}
|
|
34103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataDoiComponent, decorators: [{
|
|
34104
|
+
type: Component,
|
|
34105
|
+
args: [{ selector: 'gn-ui-metadata-doi', standalone: true, imports: [
|
|
34106
|
+
CommonModule,
|
|
34107
|
+
MatTooltipModule,
|
|
34108
|
+
NgIcon,
|
|
34109
|
+
TranslatePipe,
|
|
34110
|
+
CopyTextButtonComponent,
|
|
34111
|
+
], viewProviders: [
|
|
34112
|
+
provideIcons({
|
|
34113
|
+
matOpenInNew,
|
|
34114
|
+
}),
|
|
34115
|
+
], 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" }]
|
|
34116
|
+
}], propDecorators: { code: [{
|
|
34117
|
+
type: Input
|
|
34118
|
+
}], link: [{
|
|
34119
|
+
type: Input
|
|
34120
|
+
}] } });
|
|
34121
|
+
|
|
33948
34122
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
33949
34123
|
class GnUiLinkifyDirective {
|
|
33950
34124
|
constructor(el, renderer) {
|
|
@@ -34088,14 +34262,8 @@ class MetadataInfoComponent {
|
|
|
34088
34262
|
onKeywordClick(keyword) {
|
|
34089
34263
|
this.keyword.emit(keyword);
|
|
34090
34264
|
}
|
|
34091
|
-
formatDate(date) {
|
|
34092
|
-
return this.dateService.formatDate(date);
|
|
34093
|
-
}
|
|
34094
|
-
formatDateTime(date) {
|
|
34095
|
-
return this.dateService.formatDateTime(date);
|
|
34096
|
-
}
|
|
34097
34265
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MetadataInfoComponent, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34098
|
-
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 <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 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: [
|
|
34266
|
+
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: [
|
|
34099
34267
|
provideIcons({
|
|
34100
34268
|
matOpenInNew,
|
|
34101
34269
|
matMailOutline: matMailOutline$1,
|
|
@@ -34117,13 +34285,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34117
34285
|
CopyTextButtonComponent,
|
|
34118
34286
|
NgIcon,
|
|
34119
34287
|
GnUiLinkifyDirective,
|
|
34288
|
+
GnUiHumanizeDateDirective,
|
|
34120
34289
|
SpatialExtentComponent,
|
|
34121
34290
|
], viewProviders: [
|
|
34122
34291
|
provideIcons({
|
|
34123
34292
|
matOpenInNew,
|
|
34124
34293
|
matMailOutline: matMailOutline$1,
|
|
34125
34294
|
}),
|
|
34126
|
-
], 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 <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 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"] }]
|
|
34295
|
+
], 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"] }]
|
|
34127
34296
|
}], ctorParameters: () => [{ type: DateService }], propDecorators: { metadata: [{
|
|
34128
34297
|
type: Input
|
|
34129
34298
|
}], incomplete: [{
|
|
@@ -34437,59 +34606,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34437
34606
|
type: Input
|
|
34438
34607
|
}] } });
|
|
34439
34608
|
|
|
34440
|
-
class TimeSincePipe {
|
|
34441
|
-
constructor(translate) {
|
|
34442
|
-
this.translate = translate;
|
|
34443
|
-
}
|
|
34444
|
-
transform(value) {
|
|
34445
|
-
if (isNaN(value.getTime())) {
|
|
34446
|
-
throw new Error('Invalid Date');
|
|
34447
|
-
}
|
|
34448
|
-
const maintenant = new Date();
|
|
34449
|
-
let locale;
|
|
34450
|
-
switch (this.translate.currentLang) {
|
|
34451
|
-
case 'fr':
|
|
34452
|
-
locale = fr$1;
|
|
34453
|
-
break;
|
|
34454
|
-
case 'de':
|
|
34455
|
-
locale = de$1;
|
|
34456
|
-
break;
|
|
34457
|
-
case 'es':
|
|
34458
|
-
locale = es$1;
|
|
34459
|
-
break;
|
|
34460
|
-
case 'it':
|
|
34461
|
-
locale = it$1;
|
|
34462
|
-
break;
|
|
34463
|
-
case 'nl':
|
|
34464
|
-
locale = nl$1;
|
|
34465
|
-
break;
|
|
34466
|
-
case 'pt':
|
|
34467
|
-
locale = pt$1;
|
|
34468
|
-
break;
|
|
34469
|
-
case 'sk':
|
|
34470
|
-
locale = sk$1;
|
|
34471
|
-
break;
|
|
34472
|
-
case 'en':
|
|
34473
|
-
default:
|
|
34474
|
-
locale = enUS;
|
|
34475
|
-
break;
|
|
34476
|
-
}
|
|
34477
|
-
return formatDistance(value, maintenant, {
|
|
34478
|
-
addSuffix: true,
|
|
34479
|
-
locale: locale,
|
|
34480
|
-
});
|
|
34481
|
-
}
|
|
34482
|
-
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 }); }
|
|
34483
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TimeSincePipe, isStandalone: true, name: "timeSince" }); }
|
|
34484
|
-
}
|
|
34485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TimeSincePipe, decorators: [{
|
|
34486
|
-
type: Pipe,
|
|
34487
|
-
args: [{
|
|
34488
|
-
name: 'timeSince',
|
|
34489
|
-
standalone: true,
|
|
34490
|
-
}]
|
|
34491
|
-
}], ctorParameters: () => [{ type: i1$1.TranslateService }] });
|
|
34492
|
-
|
|
34493
34609
|
class UserFeedbackItemComponent {
|
|
34494
34610
|
constructor() {
|
|
34495
34611
|
this.newUserFeedbackAnswer = new EventEmitter();
|
|
@@ -34522,7 +34638,7 @@ class UserFeedbackItemComponent {
|
|
|
34522
34638
|
this.onNewAnswerValueChange();
|
|
34523
34639
|
}
|
|
34524
34640
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserFeedbackItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34525
|
-
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
|
|
34641
|
+
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: [
|
|
34526
34642
|
provideIcons({
|
|
34527
34643
|
matSendOutline,
|
|
34528
34644
|
}),
|
|
@@ -34532,17 +34648,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34532
34648
|
type: Component,
|
|
34533
34649
|
args: [{ selector: 'gn-ui-user-feedback-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
34534
34650
|
CommonModule,
|
|
34535
|
-
TimeSincePipe,
|
|
34536
34651
|
TextAreaComponent,
|
|
34537
34652
|
TranslatePipe,
|
|
34538
34653
|
ButtonComponent,
|
|
34539
34654
|
SpinningLoaderComponent,
|
|
34655
|
+
GnUiHumanizeDateDirective,
|
|
34540
34656
|
NgIcon,
|
|
34541
34657
|
], viewProviders: [
|
|
34542
34658
|
provideIcons({
|
|
34543
34659
|
matSendOutline,
|
|
34544
34660
|
}),
|
|
34545
|
-
], 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
|
|
34661
|
+
], 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" }]
|
|
34546
34662
|
}], propDecorators: { userFeedbackParent: [{
|
|
34547
34663
|
type: Input
|
|
34548
34664
|
}], userFeedBacksAnswers: [{
|
|
@@ -38230,13 +38346,24 @@ class DataService {
|
|
|
38230
38346
|
if (!featureType) {
|
|
38231
38347
|
throw new Error('wfs.featuretype.notfound');
|
|
38232
38348
|
}
|
|
38349
|
+
const wfsVersion = endpoint.getVersion();
|
|
38350
|
+
const addSrsName = wfsVersion === '1.1.0' || wfsVersion === '2.0.0';
|
|
38351
|
+
const defaultCrs = featureType.defaultCrs;
|
|
38352
|
+
const shouldAddOutputCrs = addSrsName && defaultCrs;
|
|
38233
38353
|
return {
|
|
38234
|
-
all: featureType.outputFormats.reduce((prev, curr) =>
|
|
38235
|
-
|
|
38236
|
-
|
|
38237
|
-
|
|
38238
|
-
|
|
38239
|
-
|
|
38354
|
+
all: featureType.outputFormats.reduce((prev, curr) => {
|
|
38355
|
+
const isJsonFormat = curr.toLowerCase().includes('json');
|
|
38356
|
+
return {
|
|
38357
|
+
...prev,
|
|
38358
|
+
[curr]: endpoint.getFeatureUrl(featureType.name, {
|
|
38359
|
+
outputFormat: curr,
|
|
38360
|
+
...(shouldAddOutputCrs &&
|
|
38361
|
+
!isJsonFormat && {
|
|
38362
|
+
outputCrs: defaultCrs,
|
|
38363
|
+
}),
|
|
38364
|
+
}),
|
|
38365
|
+
};
|
|
38366
|
+
}, {}),
|
|
38240
38367
|
geojson: endpoint.supportsJson(featureType.name)
|
|
38241
38368
|
? endpoint.getFeatureUrl(featureType.name, {
|
|
38242
38369
|
asJson: true,
|
|
@@ -38911,6 +39038,8 @@ class ChartViewComponent {
|
|
|
38911
39038
|
this.chartType$.next(value);
|
|
38912
39039
|
}
|
|
38913
39040
|
set userChartConfig(config) {
|
|
39041
|
+
if (!config)
|
|
39042
|
+
return;
|
|
38914
39043
|
this.aggregation$.next(config.aggregation);
|
|
38915
39044
|
this.xProperty$.next(config.xProperty);
|
|
38916
39045
|
this.yProperty$.next(config.yProperty);
|
|
@@ -39348,6 +39477,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39348
39477
|
type: Input
|
|
39349
39478
|
}] } });
|
|
39350
39479
|
|
|
39480
|
+
class StacViewComponent {
|
|
39481
|
+
constructor() {
|
|
39482
|
+
this.currentTemporalExtent = null;
|
|
39483
|
+
this.isTemporalFilterModified = false;
|
|
39484
|
+
}
|
|
39485
|
+
onStartDateChange(date) {
|
|
39486
|
+
this.currentTemporalExtent = {
|
|
39487
|
+
...this.currentTemporalExtent,
|
|
39488
|
+
start: date,
|
|
39489
|
+
};
|
|
39490
|
+
this.isTemporalFilterModified = true;
|
|
39491
|
+
}
|
|
39492
|
+
onEndDateChange(date) {
|
|
39493
|
+
this.currentTemporalExtent = {
|
|
39494
|
+
...this.currentTemporalExtent,
|
|
39495
|
+
end: date,
|
|
39496
|
+
};
|
|
39497
|
+
this.isTemporalFilterModified = true;
|
|
39498
|
+
}
|
|
39499
|
+
onResetFilters() {
|
|
39500
|
+
this.currentTemporalExtent = this.initialTemporalExtent;
|
|
39501
|
+
this.isTemporalFilterModified = false;
|
|
39502
|
+
}
|
|
39503
|
+
ngOnInit() {
|
|
39504
|
+
this.currentTemporalExtent = this.initialTemporalExtent;
|
|
39505
|
+
}
|
|
39506
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39507
|
+
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 }); }
|
|
39508
|
+
}
|
|
39509
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, decorators: [{
|
|
39510
|
+
type: Component,
|
|
39511
|
+
args: [{ selector: 'gn-ui-stac-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
39512
|
+
CommonModule,
|
|
39513
|
+
DatePickerComponent,
|
|
39514
|
+
NgIconComponent,
|
|
39515
|
+
TranslateDirective,
|
|
39516
|
+
], 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" }]
|
|
39517
|
+
}], propDecorators: { link: [{
|
|
39518
|
+
type: Input
|
|
39519
|
+
}], initialTemporalExtent: [{
|
|
39520
|
+
type: Input
|
|
39521
|
+
}] } });
|
|
39522
|
+
|
|
39351
39523
|
/**
|
|
39352
39524
|
* The Metadata View Facade is used to render complete metadata records.
|
|
39353
39525
|
* Supply it with an incomplete record (at least containing the uuid) and the
|
|
@@ -39378,8 +39550,21 @@ class MdViewFacade {
|
|
|
39378
39550
|
this.sourceOf$ = this.store.pipe(select(getSourceOf));
|
|
39379
39551
|
this.chartConfig$ = this.store.pipe(select(getChartConfig));
|
|
39380
39552
|
this.allLinks$ = this.metadata$.pipe(map$1((record) => 'onlineResources' in record ? record.onlineResources : []), shareReplay$1(1));
|
|
39553
|
+
this.resourceDoi$ = this.metadata$.pipe(map$1((record) => {
|
|
39554
|
+
if (!record?.resourceIdentifiers?.length)
|
|
39555
|
+
return null;
|
|
39556
|
+
const doiIdentifier = record.resourceIdentifiers.find((id) => id.codeSpace?.toLowerCase().includes('doi.org') ||
|
|
39557
|
+
id.code.startsWith('10.'));
|
|
39558
|
+
if (!doiIdentifier)
|
|
39559
|
+
return null;
|
|
39560
|
+
return {
|
|
39561
|
+
code: doiIdentifier.code,
|
|
39562
|
+
url: doiIdentifier.url ? doiIdentifier.url : null,
|
|
39563
|
+
};
|
|
39564
|
+
}), shareReplay$1(1));
|
|
39381
39565
|
this.apiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.API))), shareReplay$1(1));
|
|
39382
39566
|
this.mapApiLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.MAP_API))), shareReplay$1(1));
|
|
39567
|
+
this.stacLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => link.type === 'service' && link.accessServiceProtocol === 'stac')), shareReplay$1(1));
|
|
39383
39568
|
this.downloadLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DOWNLOAD))));
|
|
39384
39569
|
this.dataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.DATA))));
|
|
39385
39570
|
this.geoDataLinks$ = this.allLinks$.pipe(map$1((links) => links.filter((link) => this.linkClassifier.hasUsage(link, LinkUsage.GEODATA))));
|
|
@@ -39537,8 +39722,9 @@ class DataViewPermalinkComponent {
|
|
|
39537
39722
|
set viewType(value) {
|
|
39538
39723
|
this.viewType$.next(value);
|
|
39539
39724
|
}
|
|
39540
|
-
constructor(config, wcEmbedderBaseUrl, facade) {
|
|
39725
|
+
constructor(config, proxyPath, wcEmbedderBaseUrl, facade) {
|
|
39541
39726
|
this.config = config;
|
|
39727
|
+
this.proxyPath = proxyPath;
|
|
39542
39728
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
39543
39729
|
this.facade = facade;
|
|
39544
39730
|
this.viewType$ = new BehaviorSubject('map');
|
|
@@ -39571,6 +39757,9 @@ class DataViewPermalinkComponent {
|
|
|
39571
39757
|
url.searchParams.append('e', `gn-dataset-view-map`);
|
|
39572
39758
|
}
|
|
39573
39759
|
url.searchParams.append('a', `api-url=${this.config.basePath}`);
|
|
39760
|
+
if (this.proxyPath) {
|
|
39761
|
+
url.searchParams.append('a', `proxy-path=${this.proxyPath}`);
|
|
39762
|
+
}
|
|
39574
39763
|
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`);
|
|
39575
39764
|
url.searchParams.append('a', `primary-color=#0f4395`);
|
|
39576
39765
|
url.searchParams.append('a', `secondary-color=#8bc832`);
|
|
@@ -39579,7 +39768,7 @@ class DataViewPermalinkComponent {
|
|
|
39579
39768
|
return url.toString();
|
|
39580
39769
|
}));
|
|
39581
39770
|
}
|
|
39582
|
-
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 }); }
|
|
39771
|
+
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 }); }
|
|
39583
39772
|
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 }); }
|
|
39584
39773
|
}
|
|
39585
39774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewPermalinkComponent, decorators: [{
|
|
@@ -39590,6 +39779,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39590
39779
|
args: [Configuration]
|
|
39591
39780
|
}] }, { type: undefined, decorators: [{
|
|
39592
39781
|
type: Optional
|
|
39782
|
+
}, {
|
|
39783
|
+
type: Inject,
|
|
39784
|
+
args: [PROXY_PATH]
|
|
39785
|
+
}] }, { type: undefined, decorators: [{
|
|
39786
|
+
type: Optional
|
|
39593
39787
|
}, {
|
|
39594
39788
|
type: Inject,
|
|
39595
39789
|
args: [WEB_COMPONENT_EMBEDDER_URL]
|
|
@@ -39698,8 +39892,9 @@ class DataViewWebComponentComponent {
|
|
|
39698
39892
|
set viewType(value) {
|
|
39699
39893
|
this.viewType$.next(value);
|
|
39700
39894
|
}
|
|
39701
|
-
constructor(config, facade) {
|
|
39895
|
+
constructor(config, proxyPath, facade) {
|
|
39702
39896
|
this.config = config;
|
|
39897
|
+
this.proxyPath = proxyPath;
|
|
39703
39898
|
this.facade = facade;
|
|
39704
39899
|
this.viewType$ = new BehaviorSubject('map');
|
|
39705
39900
|
this.webComponentHtml$ = combineLatest(this.viewType$, this.facade.chartConfig$, this.facade.metadata$).pipe(map$2(([viewType, config, metadata]) => {
|
|
@@ -39708,7 +39903,10 @@ class DataViewWebComponentComponent {
|
|
|
39708
39903
|
const { aggregation, xProperty, yProperty, chartType } = config;
|
|
39709
39904
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39710
39905
|
<gn-dataset-view-chart
|
|
39711
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39906
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39907
|
+
? `
|
|
39908
|
+
proxy-path="${this.proxyPath}"`
|
|
39909
|
+
: ''}
|
|
39712
39910
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39713
39911
|
aggregation="${aggregation}"
|
|
39714
39912
|
x-property="${xProperty}"
|
|
@@ -39727,7 +39925,10 @@ class DataViewWebComponentComponent {
|
|
|
39727
39925
|
else if (viewType === 'table') {
|
|
39728
39926
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39729
39927
|
<gn-dataset-view-table
|
|
39730
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39928
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39929
|
+
? `
|
|
39930
|
+
proxy-path="${this.proxyPath}"`
|
|
39931
|
+
: ''}
|
|
39731
39932
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39732
39933
|
primary-color="#0f4395"
|
|
39733
39934
|
secondary-color="#8bc832"
|
|
@@ -39740,7 +39941,10 @@ class DataViewWebComponentComponent {
|
|
|
39740
39941
|
else {
|
|
39741
39942
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${GEONETWORK_UI_TAG_NAME}/gn-wc.js"></script>
|
|
39742
39943
|
<gn-dataset-view-map
|
|
39743
|
-
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"
|
|
39944
|
+
api-url="${new URL(this.config.basePath, window.location.origin).toString()}"${this.proxyPath
|
|
39945
|
+
? `
|
|
39946
|
+
proxy-path="${this.proxyPath}"`
|
|
39947
|
+
: ''}
|
|
39744
39948
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
39745
39949
|
primary-color="#0f4395"
|
|
39746
39950
|
secondary-color="#8bc832"
|
|
@@ -39752,7 +39956,7 @@ class DataViewWebComponentComponent {
|
|
|
39752
39956
|
}
|
|
39753
39957
|
}));
|
|
39754
39958
|
}
|
|
39755
|
-
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 }); }
|
|
39959
|
+
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 }); }
|
|
39756
39960
|
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 }); }
|
|
39757
39961
|
}
|
|
39758
39962
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DataViewWebComponentComponent, decorators: [{
|
|
@@ -39761,6 +39965,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39761
39965
|
}], ctorParameters: () => [{ type: Configuration, decorators: [{
|
|
39762
39966
|
type: Inject,
|
|
39763
39967
|
args: [Configuration]
|
|
39968
|
+
}] }, { type: undefined, decorators: [{
|
|
39969
|
+
type: Optional
|
|
39970
|
+
}, {
|
|
39971
|
+
type: Inject,
|
|
39972
|
+
args: [PROXY_PATH]
|
|
39764
39973
|
}] }, { type: MdViewFacade }], propDecorators: { viewType: [{
|
|
39765
39974
|
type: Input
|
|
39766
39975
|
}] } });
|
|
@@ -40881,7 +41090,7 @@ const RECORD_RESOURCE_CREATED_FIELD = {
|
|
|
40881
41090
|
gridColumnSpan: 1,
|
|
40882
41091
|
};
|
|
40883
41092
|
const RESOURCE_IDENTIFIER_FIELD = {
|
|
40884
|
-
model: '
|
|
41093
|
+
model: 'resourceIdentifiers',
|
|
40885
41094
|
formFieldConfig: {
|
|
40886
41095
|
labelKey: marker('editor.record.form.field.resourceIdentifier'),
|
|
40887
41096
|
},
|
|
@@ -43395,8 +43604,28 @@ class FormFieldComponent {
|
|
|
43395
43604
|
get valueAsOnlineResources() {
|
|
43396
43605
|
return this.value;
|
|
43397
43606
|
}
|
|
43607
|
+
get valueAsResourceIdentifierCode() {
|
|
43608
|
+
const identifiers = this.value;
|
|
43609
|
+
return identifiers?.[0]?.code || '';
|
|
43610
|
+
}
|
|
43611
|
+
handleResourceIdentifierChange(code) {
|
|
43612
|
+
const identifiers = this.value;
|
|
43613
|
+
if (!code) {
|
|
43614
|
+
this.valueChange.emit(identifiers?.slice(1) || []);
|
|
43615
|
+
return;
|
|
43616
|
+
}
|
|
43617
|
+
if (identifiers?.[0]) {
|
|
43618
|
+
this.valueChange.emit([
|
|
43619
|
+
{ ...identifiers[0], code },
|
|
43620
|
+
...identifiers.slice(1),
|
|
43621
|
+
]);
|
|
43622
|
+
}
|
|
43623
|
+
else {
|
|
43624
|
+
this.valueChange.emit([{ code }]);
|
|
43625
|
+
}
|
|
43626
|
+
}
|
|
43398
43627
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43399
|
-
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 }); }
|
|
43628
|
+
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 }); }
|
|
43400
43629
|
}
|
|
43401
43630
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
43402
43631
|
type: Component,
|
|
@@ -43423,7 +43652,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43423
43652
|
FormFieldSpatialToggleComponent,
|
|
43424
43653
|
FormFieldTopicsComponent,
|
|
43425
43654
|
TextFieldModule,
|
|
43426
|
-
], 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=\"'
|
|
43655
|
+
], 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" }]
|
|
43427
43656
|
}], propDecorators: { uniqueIdentifier: [{
|
|
43428
43657
|
type: Input
|
|
43429
43658
|
}], model: [{
|
|
@@ -44240,5 +44469,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44240
44469
|
* Generated bundle index. Do not edit.
|
|
44241
44470
|
*/
|
|
44242
44471
|
|
|
44243
|
-
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 };
|
|
44472
|
+
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 };
|
|
44244
44473
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|