geonetwork-ui 2.8.0-dev.749c3ea3b → 2.8.0-dev.82b7031fa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +6 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -1
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
- package/esm2022/libs/feature/record/src/lib/stac-view/stac-view.component.mjs +140 -48
- package/esm2022/libs/feature/record/src/lib/stac-view/utils.mjs +26 -0
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +36 -22
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +3 -3
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +86 -32
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +1 -1
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +3 -3
- package/esm2022/translations/de.json +2 -0
- package/esm2022/translations/en.json +2 -0
- package/esm2022/translations/es.json +2 -0
- package/esm2022/translations/fr.json +2 -0
- package/esm2022/translations/it.json +2 -0
- package/esm2022/translations/nl.json +2 -0
- package/esm2022/translations/pt.json +2 -0
- package/esm2022/translations/sk.json +2 -0
- package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs → geonetwork-ui-date-locales-DhlIiWpT.mjs} +2 -2
- package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs.map → geonetwork-ui-date-locales-DhlIiWpT.mjs.map} +1 -1
- package/fesm2022/geonetwork-ui.mjs +345 -137
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts +12 -5
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +3 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts +25 -7
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/stac-view/utils.d.ts +7 -0
- package/libs/feature/record/src/lib/stac-view/utils.d.ts.map +1 -0
- package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +24 -14
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +11 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +11 -3
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -1
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +10 -8
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +1 -1
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -2
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -2
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.css +5 -0
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.html +27 -8
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.ts +201 -52
- package/src/libs/feature/record/src/lib/stac-view/utils.ts +57 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -1
- package/src/libs/feature/search/src/lib/constants.ts +1 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +1 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +37 -33
- package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.html +3 -3
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.html +16 -14
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +144 -65
- package/translations/de.json +2 -0
- package/translations/en.json +2 -0
- package/translations/es.json +2 -0
- package/translations/fr.json +2 -0
- package/translations/it.json +2 -0
- package/translations/nl.json +2 -0
- package/translations/pt.json +2 -0
- package/translations/sk.json +2 -0
|
@@ -7,11 +7,11 @@ 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,
|
|
10
|
+
import { InjectionToken, Optional, Inject, Injectable, SkipSelf, NgModule, APP_INITIALIZER, makeEnvironmentProviders, HostListener, Input, Directive, EventEmitter, inject, DestroyRef, Output, ViewChild, ChangeDetectionStrategy, Component, ViewEncapsulation, HostBinding, TemplateRef, ElementRef, ViewChildren, ContentChild, ContentChildren, Host, ViewContainerRef } from '@angular/core';
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
12
|
-
import { HttpHeaders, HttpParams, HttpClient, provideHttpClient,
|
|
12
|
+
import { HttpHeaders, HttpParams, HttpClient, provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi, HttpEventType } from '@angular/common/http';
|
|
13
13
|
import * as i1$1 from '@ngx-translate/core';
|
|
14
|
-
import {
|
|
14
|
+
import { TranslateLoader, TranslateCompiler, TranslateDefaultParser, TranslateParser, TranslateService, provideTranslateService, TranslateDirective, TranslatePipe, TranslateModule } from '@ngx-translate/core';
|
|
15
15
|
import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
|
|
16
16
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
17
17
|
import { map as map$1, shareReplay as shareReplay$1, catchError, tap as tap$1, filter as filter$1, startWith as startWith$1, withLatestFrom, switchMap as switchMap$1, take, mergeMap, delay, distinctUntilChanged, debounceTime, finalize, throttleTime, first as first$1, pairwise as pairwise$1, share, defaultIfEmpty, toArray } from 'rxjs/operators';
|
|
@@ -29,32 +29,34 @@ import { LineString, Polygon } from 'ol/geom';
|
|
|
29
29
|
import * as i1$3 from '@ngrx/store';
|
|
30
30
|
import { createAction, props, createReducer, on, createFeatureSelector, createSelector, select, StoreModule, Store } from '@ngrx/store';
|
|
31
31
|
import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
32
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
33
|
+
import { FeaturesClickEventType, FeaturesHoverEventType, MapClickEventType, MapExtentChangeEventType, SourceLoadErrorType, computeMapContextDiff, createViewFromLayer } from '@geospatial-sdk/core';
|
|
34
|
+
import { createMapFromContext, applyContextDiffToMap, listen } from '@geospatial-sdk/openlayers';
|
|
35
|
+
import { NgIconComponent, provideIcons, provideNgIconsConfig, NgIcon } from '@ng-icons/core';
|
|
36
|
+
import { matSwipeOutline, matErrorOutlineOutline, matComputerOutline, matLocationSearchingOutline, matLocationOnOutline, matCallOutline, matMailOutline as matMailOutline$1, matInfoOutline, matCloseOutline, matWarningAmberOutline, matSendOutline, matHomeWorkOutline, matCloudDownloadOutline, matMapOutline, matAddCircleOutlineOutline, matLayersOutline, matDeleteOutline, matMoreHorizOutline } from '@ng-icons/material-icons/outline';
|
|
37
|
+
import { transformExtent } from 'ol/proj';
|
|
36
38
|
import { createLegendFromLayer } from '@geospatial-sdk/legend';
|
|
37
39
|
import { defaults, DragPan, MouseWheelZoom } from 'ol/interaction';
|
|
38
40
|
import { mouseOnly, noModifierKeys, primaryAction, platformModifierKeyOnly } from 'ol/events/condition';
|
|
39
41
|
import { extend } from 'ol/extent';
|
|
40
42
|
import * as TOML from '@ltd/j-toml';
|
|
41
|
-
import { Style,
|
|
43
|
+
import { Style, Stroke, Fill, Circle } from 'ol/style';
|
|
42
44
|
import CircleStyle from 'ol/style/Circle';
|
|
43
45
|
import EmblaCarousel from 'embla-carousel';
|
|
44
|
-
import { iconoirNavArrowRight,
|
|
46
|
+
import { iconoirNavArrowLeft, iconoirNavArrowRight, iconoirLongArrowDownLeft, iconoirSearch, iconoirCalendar, iconoirArrowUp, iconoirLink, iconoirFramePlusIn, iconoirCloudUpload, iconoirReduce, iconoirNavArrowUp, iconoirNavArrowDown, iconoirExpand, iconoirSettings, iconoirDownload, iconoirPlus, iconoirBin, iconoirMediaImageXmark, iconoirMediaImage, iconoirAppWindow, iconoirCode, iconoirDatabase, iconoirAppleWallet, iconoirBank, iconoirList, iconoirTranslate, iconoirLock, iconoirUser, iconoirArrowLeft, iconoirLightBulbOn, iconoirImport, iconoirAttachment, iconoirRefresh, iconoirCircle, iconoirCheckCircle, iconoirBadgeCheck, iconoirSystemShut } from '@ng-icons/iconoir';
|
|
45
47
|
import { MatButtonModule } from '@angular/material/button';
|
|
46
48
|
import * as i1$8 from '@angular/cdk/overlay';
|
|
47
|
-
import {
|
|
49
|
+
import { OverlayModule, CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
48
50
|
import * as i2 from '@angular/forms';
|
|
49
51
|
import { UntypedFormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
50
52
|
import * as i1$5 from '@angular/material/autocomplete';
|
|
51
|
-
import { MatAutocompleteTrigger, MatAutocomplete
|
|
53
|
+
import { MatAutocompleteModule, MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';
|
|
52
54
|
import tippy from 'tippy.js';
|
|
53
55
|
import * as i1$4 from '@angular/material/progress-spinner';
|
|
54
56
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
55
|
-
import { matClose, matContentCopy,
|
|
57
|
+
import { matClose, matContentCopy, matExpandLess, matExpandMore, matSearch, matStarBorder, matStar, matRemove, matAdd, matChevronRight, matChevronLeft, matArrowForwardIos, matArrowBackIos, matMoodBad, matQuestionMark, matFace, matZoomOutMap, matOpenInNew, matPersonOutline, matMailOutline, matWarningAmber, matCheck, matCheckCircleOutline, matWarning, matMoreVert } from '@ng-icons/material-icons/baseline';
|
|
56
58
|
import * as i1$6 from '@angular/material/core';
|
|
57
|
-
import {
|
|
59
|
+
import { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
58
60
|
import * as i1$7 from '@angular/material/checkbox';
|
|
59
61
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
60
62
|
import * as i2$1 from '@angular/material/tooltip';
|
|
@@ -76,9 +78,9 @@ import { valid as valid$1 } from 'geojson-validation';
|
|
|
76
78
|
import * as basicLightbox from 'basiclightbox';
|
|
77
79
|
import { marked } from 'marked';
|
|
78
80
|
import * as i2$3 from '@angular/cdk/scrolling';
|
|
79
|
-
import {
|
|
81
|
+
import { ScrollingModule, CdkScrollable } from '@angular/cdk/scrolling';
|
|
80
82
|
import Duration from 'duration-relativetimeformat';
|
|
81
|
-
import {
|
|
83
|
+
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
82
84
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
83
85
|
import { trigger, transition, animate, keyframes, style } from '@angular/animations';
|
|
84
86
|
import * as Papa from 'papaparse';
|
|
@@ -87,11 +89,11 @@ import { parseISO } from 'date-fns/parseISO';
|
|
|
87
89
|
import { WFS, GeoJSON as GeoJSON$1 } from 'ol/format';
|
|
88
90
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
89
91
|
import * as i3 from '@angular/material/sort';
|
|
90
|
-
import {
|
|
92
|
+
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
91
93
|
import * as i2$5 from '@angular/material/table';
|
|
92
94
|
import { MatTableModule } from '@angular/material/table';
|
|
93
95
|
import * as i4 from '@angular/material/paginator';
|
|
94
|
-
import { MatPaginatorIntl,
|
|
96
|
+
import { MatPaginatorIntl, MatPaginatorModule, MatPaginator } from '@angular/material/paginator';
|
|
95
97
|
import { LetDirective } from '@ngrx/component';
|
|
96
98
|
import axios from 'axios';
|
|
97
99
|
import * as i1$e from '@angular/platform-browser';
|
|
@@ -102,7 +104,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|
|
102
104
|
import * as i3$1 from '@angular/cdk/text-field';
|
|
103
105
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
104
106
|
import * as i3$2 from '@ngrx/router-store';
|
|
105
|
-
import { getRouterSelectors,
|
|
107
|
+
import { getRouterSelectors, StoreRouterConnectingModule, routerReducer, FullRouterStateSerializer } from '@ngrx/router-store';
|
|
106
108
|
import { navigation } from '@ngrx/router-store/data-persistence';
|
|
107
109
|
|
|
108
110
|
class MetadataMapperContext {
|
|
@@ -1078,10 +1080,12 @@ const PossibleResourceTypes = {
|
|
|
1078
1080
|
'map-interactive': 'reuse', // new index field since Oct 10, 2024
|
|
1079
1081
|
'map-static': 'reuse', // new index field
|
|
1080
1082
|
mapDigital: 'reuse',
|
|
1083
|
+
mapHardcopy: 'reuse',
|
|
1081
1084
|
series: 'dataset',
|
|
1082
1085
|
service: 'service',
|
|
1083
1086
|
staticMap: 'reuse',
|
|
1084
1087
|
};
|
|
1088
|
+
const ReusePresentationForms = ['mapDigital', 'mapHardcopy'];
|
|
1085
1089
|
const PossibleResourceTypesDefinition = Object.entries(PossibleResourceTypes).reduce((acc, [key, val]) => ((acc[val] ??= []).push(key), acc), {});
|
|
1086
1090
|
function getResourceType(type) {
|
|
1087
1091
|
return (PossibleResourceTypes[type] ||
|
|
@@ -1104,6 +1108,9 @@ function getReuseType(type) {
|
|
|
1104
1108
|
? possibleReuseTypes[type] || 'other'
|
|
1105
1109
|
: undefined;
|
|
1106
1110
|
}
|
|
1111
|
+
function getReusePresentationForm(presentationForms) {
|
|
1112
|
+
return presentationForms?.find((presentationForm) => ReusePresentationForms.includes(presentationForm));
|
|
1113
|
+
}
|
|
1107
1114
|
function kindToCodeListValue(record) {
|
|
1108
1115
|
return record.kind === 'reuse' ? record.reuseType : record.kind;
|
|
1109
1116
|
}
|
|
@@ -19349,6 +19356,7 @@ var de = {
|
|
|
19349
19356
|
"search.filters.producerOrg": "",
|
|
19350
19357
|
"search.filters.publicationYear": "Veröffentlichungsjahr",
|
|
19351
19358
|
"search.filters.publisherOrg": "",
|
|
19359
|
+
"search.filters.recordKind": "Type",
|
|
19352
19360
|
"search.filters.recordKind.all": "Alle",
|
|
19353
19361
|
"search.filters.recordKind.dataset": "Datensätze",
|
|
19354
19362
|
"search.filters.recordKind.reuse": "Wiederverwendungen",
|
|
@@ -19387,6 +19395,7 @@ var de = {
|
|
|
19387
19395
|
"service.metadata.spatialExtent": "",
|
|
19388
19396
|
"share.tab.permalink": "Teilen",
|
|
19389
19397
|
"share.tab.webComponent": "Integrieren",
|
|
19398
|
+
"stac.filter.enable": "",
|
|
19390
19399
|
"stac.filter.reset": "",
|
|
19391
19400
|
"stac.results.noResults": "Ihre Suchfilter lieferten keine Ergebnisse",
|
|
19392
19401
|
"table.loading.data": "Daten werden geladen...",
|
|
@@ -20016,6 +20025,7 @@ var en = {
|
|
|
20016
20025
|
"search.filters.producerOrg": "Producer",
|
|
20017
20026
|
"search.filters.publicationYear": "Publication year",
|
|
20018
20027
|
"search.filters.publisherOrg": "Publisher",
|
|
20028
|
+
"search.filters.recordKind": "Type",
|
|
20019
20029
|
"search.filters.recordKind.all": "All",
|
|
20020
20030
|
"search.filters.recordKind.dataset": "Datasets",
|
|
20021
20031
|
"search.filters.recordKind.reuse": "Reuses",
|
|
@@ -20054,6 +20064,7 @@ var en = {
|
|
|
20054
20064
|
"service.metadata.spatialExtent": "Spatial extent",
|
|
20055
20065
|
"share.tab.permalink": "Share",
|
|
20056
20066
|
"share.tab.webComponent": "Integrate",
|
|
20067
|
+
"stac.filter.enable": "Enable dynamic filter on spatial extent",
|
|
20057
20068
|
"stac.filter.reset": "Reset filters",
|
|
20058
20069
|
"stac.results.noResults": "Your search filters did not match any items",
|
|
20059
20070
|
"table.loading.data": "Loading data...",
|
|
@@ -20683,6 +20694,7 @@ var es = {
|
|
|
20683
20694
|
"search.filters.producerOrg": "",
|
|
20684
20695
|
"search.filters.publicationYear": "",
|
|
20685
20696
|
"search.filters.publisherOrg": "",
|
|
20697
|
+
"search.filters.recordKind": "Typo",
|
|
20686
20698
|
"search.filters.recordKind.all": "Todos",
|
|
20687
20699
|
"search.filters.recordKind.dataset": "",
|
|
20688
20700
|
"search.filters.recordKind.reuse": "",
|
|
@@ -20721,6 +20733,7 @@ var es = {
|
|
|
20721
20733
|
"service.metadata.spatialExtent": "",
|
|
20722
20734
|
"share.tab.permalink": "",
|
|
20723
20735
|
"share.tab.webComponent": "",
|
|
20736
|
+
"stac.filter.enable": "",
|
|
20724
20737
|
"stac.filter.reset": "",
|
|
20725
20738
|
"stac.results.noResults": "",
|
|
20726
20739
|
"table.loading.data": "",
|
|
@@ -21350,6 +21363,7 @@ var fr = {
|
|
|
21350
21363
|
"search.filters.producerOrg": "Producteur",
|
|
21351
21364
|
"search.filters.publicationYear": "Année de publication",
|
|
21352
21365
|
"search.filters.publisherOrg": "Distributeur",
|
|
21366
|
+
"search.filters.recordKind": "Type",
|
|
21353
21367
|
"search.filters.recordKind.all": "Tous",
|
|
21354
21368
|
"search.filters.recordKind.dataset": "Jeux de données",
|
|
21355
21369
|
"search.filters.recordKind.reuse": "Réutilisations",
|
|
@@ -21388,6 +21402,7 @@ var fr = {
|
|
|
21388
21402
|
"service.metadata.spatialExtent": "Etendue spatiale",
|
|
21389
21403
|
"share.tab.permalink": "Partager",
|
|
21390
21404
|
"share.tab.webComponent": "Intégrer",
|
|
21405
|
+
"stac.filter.enable": "Activer le filtre dynamique sur l’emprise spatiale",
|
|
21391
21406
|
"stac.filter.reset": "Réinitialiser les filtres",
|
|
21392
21407
|
"stac.results.noResults": "Vos filtres ne permettent pas d’afficher de résultats",
|
|
21393
21408
|
"table.loading.data": "Chargement des données...",
|
|
@@ -22017,6 +22032,7 @@ var it = {
|
|
|
22017
22032
|
"search.filters.producerOrg": "Produttore",
|
|
22018
22033
|
"search.filters.publicationYear": "Anno di pubblicazione",
|
|
22019
22034
|
"search.filters.publisherOrg": "Distributore",
|
|
22035
|
+
"search.filters.recordKind": "",
|
|
22020
22036
|
"search.filters.recordKind.all": "Tutti",
|
|
22021
22037
|
"search.filters.recordKind.dataset": "Dataset",
|
|
22022
22038
|
"search.filters.recordKind.reuse": "Riutilizzi",
|
|
@@ -22055,6 +22071,7 @@ var it = {
|
|
|
22055
22071
|
"service.metadata.spatialExtent": "Estensione spaziale",
|
|
22056
22072
|
"share.tab.permalink": "Condividere",
|
|
22057
22073
|
"share.tab.webComponent": "Incorporare",
|
|
22074
|
+
"stac.filter.enable": "",
|
|
22058
22075
|
"stac.filter.reset": "",
|
|
22059
22076
|
"stac.results.noResults": "",
|
|
22060
22077
|
"table.loading.data": "Caricamento dei dati...",
|
|
@@ -22684,6 +22701,7 @@ var nl = {
|
|
|
22684
22701
|
"search.filters.producerOrg": "",
|
|
22685
22702
|
"search.filters.publicationYear": "",
|
|
22686
22703
|
"search.filters.publisherOrg": "",
|
|
22704
|
+
"search.filters.recordKind": "",
|
|
22687
22705
|
"search.filters.recordKind.all": "Alles",
|
|
22688
22706
|
"search.filters.recordKind.dataset": "",
|
|
22689
22707
|
"search.filters.recordKind.reuse": "",
|
|
@@ -22722,6 +22740,7 @@ var nl = {
|
|
|
22722
22740
|
"service.metadata.spatialExtent": "",
|
|
22723
22741
|
"share.tab.permalink": "",
|
|
22724
22742
|
"share.tab.webComponent": "",
|
|
22743
|
+
"stac.filter.enable": "",
|
|
22725
22744
|
"stac.filter.reset": "",
|
|
22726
22745
|
"stac.results.noResults": "",
|
|
22727
22746
|
"table.loading.data": "",
|
|
@@ -23351,6 +23370,7 @@ var pt = {
|
|
|
23351
23370
|
"search.filters.producerOrg": "",
|
|
23352
23371
|
"search.filters.publicationYear": "",
|
|
23353
23372
|
"search.filters.publisherOrg": "",
|
|
23373
|
+
"search.filters.recordKind": "",
|
|
23354
23374
|
"search.filters.recordKind.all": "Todos",
|
|
23355
23375
|
"search.filters.recordKind.dataset": "",
|
|
23356
23376
|
"search.filters.recordKind.reuse": "",
|
|
@@ -23389,6 +23409,7 @@ var pt = {
|
|
|
23389
23409
|
"service.metadata.spatialExtent": "",
|
|
23390
23410
|
"share.tab.permalink": "",
|
|
23391
23411
|
"share.tab.webComponent": "",
|
|
23412
|
+
"stac.filter.enable": "",
|
|
23392
23413
|
"stac.filter.reset": "",
|
|
23393
23414
|
"stac.results.noResults": "",
|
|
23394
23415
|
"table.loading.data": "",
|
|
@@ -24018,6 +24039,7 @@ var sk = {
|
|
|
24018
24039
|
"search.filters.producerOrg": "",
|
|
24019
24040
|
"search.filters.publicationYear": "Rok zverejnenia",
|
|
24020
24041
|
"search.filters.publisherOrg": "",
|
|
24042
|
+
"search.filters.recordKind": "",
|
|
24021
24043
|
"search.filters.recordKind.all": "Všetky",
|
|
24022
24044
|
"search.filters.recordKind.dataset": "",
|
|
24023
24045
|
"search.filters.recordKind.reuse": "",
|
|
@@ -24056,6 +24078,7 @@ var sk = {
|
|
|
24056
24078
|
"service.metadata.spatialExtent": "",
|
|
24057
24079
|
"share.tab.permalink": "Zdieľať",
|
|
24058
24080
|
"share.tab.webComponent": "Integrovať",
|
|
24081
|
+
"stac.filter.enable": "",
|
|
24059
24082
|
"stac.filter.reset": "",
|
|
24060
24083
|
"stac.results.noResults": "",
|
|
24061
24084
|
"table.loading.data": "Načítanie údajov...",
|
|
@@ -24313,8 +24336,10 @@ class Gn4FieldMapper {
|
|
|
24313
24336
|
}, output),
|
|
24314
24337
|
resourceType: (output, source) => {
|
|
24315
24338
|
const resourceType = getFirstValue(selectField(source, 'resourceType'));
|
|
24316
|
-
const
|
|
24317
|
-
const
|
|
24339
|
+
const presentationForms = getAsArray(selectField(source, 'cl_presentationForm')).map((presentationForm) => presentationForm.key);
|
|
24340
|
+
const type = getReusePresentationForm(presentationForms) || resourceType;
|
|
24341
|
+
const kind = getResourceType(type);
|
|
24342
|
+
const reuseType = getReuseType(type);
|
|
24318
24343
|
return {
|
|
24319
24344
|
...output,
|
|
24320
24345
|
kind,
|
|
@@ -24618,6 +24643,7 @@ const ES_SOURCE_SUMMARY = [
|
|
|
24618
24643
|
'userSavedCount',
|
|
24619
24644
|
'cl_topic',
|
|
24620
24645
|
'cl_maintenanceAndUpdateFrequency',
|
|
24646
|
+
'cl_presentationForm',
|
|
24621
24647
|
'MD_LegalConstraints*Object',
|
|
24622
24648
|
'qualityScore',
|
|
24623
24649
|
'allKeywords',
|
|
@@ -24798,7 +24824,7 @@ const DEFAULT_LANGUAGE = 'en';
|
|
|
24798
24824
|
class DateService {
|
|
24799
24825
|
constructor(translateService) {
|
|
24800
24826
|
this.translateService = translateService;
|
|
24801
|
-
this.dateLocales = import('./geonetwork-ui-date-locales-
|
|
24827
|
+
this.dateLocales = import('./geonetwork-ui-date-locales-DhlIiWpT.mjs').then((obj) => obj.default);
|
|
24802
24828
|
}
|
|
24803
24829
|
getDateObject(date) {
|
|
24804
24830
|
if (typeof date === 'string') {
|
|
@@ -25627,13 +25653,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25627
25653
|
}] } });
|
|
25628
25654
|
|
|
25629
25655
|
var name = "geonetwork-ui";
|
|
25630
|
-
var version = "2.8.0-dev.
|
|
25656
|
+
var version = "2.8.0-dev.82b7031fa";
|
|
25631
25657
|
var engines = {
|
|
25632
25658
|
node: ">=20"
|
|
25633
25659
|
};
|
|
25634
25660
|
var main = "./index.ts";
|
|
25635
25661
|
var type = "module";
|
|
25636
|
-
var exports = {
|
|
25662
|
+
var exports$1 = {
|
|
25637
25663
|
"./tailwind.base.config.js": "./tailwind.base.config.js",
|
|
25638
25664
|
"./style.css": "./style.css"
|
|
25639
25665
|
};
|
|
@@ -25668,10 +25694,10 @@ var peerDependencies = {
|
|
|
25668
25694
|
var dependencies = {
|
|
25669
25695
|
"@biesbjerg/ngx-translate-extract-marker": "~1.0.0",
|
|
25670
25696
|
"@camptocamp/ogc-client": "1.3.1-dev.edb3244",
|
|
25671
|
-
"@geospatial-sdk/core": "0.0.5-dev.
|
|
25672
|
-
"@geospatial-sdk/geocoding": "0.0.5-dev.
|
|
25673
|
-
"@geospatial-sdk/legend": "0.0.5-dev.
|
|
25674
|
-
"@geospatial-sdk/openlayers": "0.0.5-dev.
|
|
25697
|
+
"@geospatial-sdk/core": "0.0.5-dev.40",
|
|
25698
|
+
"@geospatial-sdk/geocoding": "0.0.5-dev.40",
|
|
25699
|
+
"@geospatial-sdk/legend": "0.0.5-dev.40",
|
|
25700
|
+
"@geospatial-sdk/openlayers": "0.0.5-dev.40",
|
|
25675
25701
|
"@ltd/j-toml": "~1.35.2",
|
|
25676
25702
|
"@messageformat/core": "^3.0.1",
|
|
25677
25703
|
"@ng-icons/core": "29.10.0",
|
|
@@ -25716,7 +25742,7 @@ var packageJson = {
|
|
|
25716
25742
|
engines: engines,
|
|
25717
25743
|
main: main,
|
|
25718
25744
|
type: type,
|
|
25719
|
-
exports: exports,
|
|
25745
|
+
exports: exports$1,
|
|
25720
25746
|
repository: repository,
|
|
25721
25747
|
peerDependencies: peerDependencies,
|
|
25722
25748
|
dependencies: dependencies
|
|
@@ -27748,8 +27774,8 @@ const DEFAULT_VIEW = {
|
|
|
27748
27774
|
class MapContainerComponent {
|
|
27749
27775
|
get featuresClick() {
|
|
27750
27776
|
if (!this._featuresClick) {
|
|
27751
|
-
this.
|
|
27752
|
-
|
|
27777
|
+
this.setupEventListener(FeaturesClickEventType, (event) => {
|
|
27778
|
+
this._featuresClick.emit(event.features);
|
|
27753
27779
|
});
|
|
27754
27780
|
this._featuresClick = new EventEmitter();
|
|
27755
27781
|
}
|
|
@@ -27757,8 +27783,8 @@ class MapContainerComponent {
|
|
|
27757
27783
|
}
|
|
27758
27784
|
get featuresHover() {
|
|
27759
27785
|
if (!this._featuresHover) {
|
|
27760
|
-
this.
|
|
27761
|
-
|
|
27786
|
+
this.setupEventListener(FeaturesHoverEventType, (event) => {
|
|
27787
|
+
this._featuresHover.emit(event.features);
|
|
27762
27788
|
});
|
|
27763
27789
|
this._featuresHover = new EventEmitter();
|
|
27764
27790
|
}
|
|
@@ -27766,22 +27792,37 @@ class MapContainerComponent {
|
|
|
27766
27792
|
}
|
|
27767
27793
|
get mapClick() {
|
|
27768
27794
|
if (!this._mapClick) {
|
|
27769
|
-
this.
|
|
27770
|
-
|
|
27795
|
+
this.setupEventListener(MapClickEventType, (event) => {
|
|
27796
|
+
this._mapClick.emit(event.coordinate);
|
|
27771
27797
|
});
|
|
27772
27798
|
this._mapClick = new EventEmitter();
|
|
27773
27799
|
}
|
|
27774
27800
|
return this._mapClick;
|
|
27775
27801
|
}
|
|
27802
|
+
get extentChange() {
|
|
27803
|
+
if (!this._extentChange) {
|
|
27804
|
+
this.setupEventListener(MapExtentChangeEventType, (event) => {
|
|
27805
|
+
this._extentChange.emit(event.extent);
|
|
27806
|
+
});
|
|
27807
|
+
this._extentChange = new EventEmitter();
|
|
27808
|
+
}
|
|
27809
|
+
return this._extentChange;
|
|
27810
|
+
}
|
|
27776
27811
|
get sourceLoadError() {
|
|
27777
27812
|
if (!this._sourceLoadError) {
|
|
27778
|
-
this.
|
|
27779
|
-
|
|
27813
|
+
this.setupEventListener(SourceLoadErrorType, (event) => {
|
|
27814
|
+
this._sourceLoadError.emit(event);
|
|
27780
27815
|
});
|
|
27781
27816
|
this._sourceLoadError = new EventEmitter();
|
|
27782
27817
|
}
|
|
27783
27818
|
return this._sourceLoadError;
|
|
27784
27819
|
}
|
|
27820
|
+
get resolvedExtentChange() {
|
|
27821
|
+
if (!this._resolvedExtentChange) {
|
|
27822
|
+
this._resolvedExtentChange = new EventEmitter();
|
|
27823
|
+
}
|
|
27824
|
+
return this._resolvedExtentChange;
|
|
27825
|
+
}
|
|
27785
27826
|
constructor(doNotUseDefaultBasemap, basemapLayers, mapViewConstraints) {
|
|
27786
27827
|
this.doNotUseDefaultBasemap = doNotUseDefaultBasemap;
|
|
27787
27828
|
this.basemapLayers = basemapLayers;
|
|
@@ -27789,31 +27830,59 @@ class MapContainerComponent {
|
|
|
27789
27830
|
this.openlayersMap = new Promise((resolve) => {
|
|
27790
27831
|
this.olMapResolver = resolve;
|
|
27791
27832
|
});
|
|
27833
|
+
// These events only get registered on the map if they are used
|
|
27834
|
+
this._featuresClick = null;
|
|
27835
|
+
this._featuresHover = null;
|
|
27836
|
+
this._mapClick = null;
|
|
27837
|
+
this._extentChange = null;
|
|
27838
|
+
this._sourceLoadError = null;
|
|
27839
|
+
this._resolvedExtentChange = null;
|
|
27840
|
+
this.destroyRef = inject(DestroyRef);
|
|
27841
|
+
}
|
|
27842
|
+
calculateCurrentMapExtent() {
|
|
27843
|
+
const extent = this.olMap.getView().calculateExtent(this.olMap.getSize());
|
|
27844
|
+
const reprojectedExtent = transformExtent(extent, this.olMap.getView().getProjection(), 'EPSG:4326');
|
|
27845
|
+
return reprojectedExtent;
|
|
27792
27846
|
}
|
|
27793
27847
|
async ngAfterViewInit() {
|
|
27794
27848
|
this.olMap = await createMapFromContext(this.processContext(this.context), this.container.nativeElement);
|
|
27795
|
-
|
|
27796
|
-
|
|
27797
|
-
|
|
27849
|
+
if (this._resolvedExtentChange) {
|
|
27850
|
+
this._resolvedExtentChange.emit(this.calculateCurrentMapExtent());
|
|
27851
|
+
}
|
|
27852
|
+
this.setupDisplayMessageObservable();
|
|
27798
27853
|
this.olMapResolver(this.olMap);
|
|
27799
27854
|
}
|
|
27800
27855
|
async ngOnChanges(changes) {
|
|
27801
27856
|
if ('context' in changes && !changes['context'].isFirstChange()) {
|
|
27802
27857
|
const diff = computeMapContextDiff(this.processContext(changes['context'].currentValue), this.processContext(changes['context'].previousValue));
|
|
27803
27858
|
await applyContextDiffToMap(this.olMap, diff);
|
|
27859
|
+
if (this._resolvedExtentChange && diff.viewChanges) {
|
|
27860
|
+
this._resolvedExtentChange.emit(this.calculateCurrentMapExtent());
|
|
27861
|
+
}
|
|
27804
27862
|
}
|
|
27805
27863
|
}
|
|
27806
|
-
|
|
27864
|
+
setupEventListener(eventType, handler) {
|
|
27865
|
+
this.openlayersMap.then((olMap) => {
|
|
27866
|
+
listen(olMap, eventType, handler);
|
|
27867
|
+
});
|
|
27868
|
+
}
|
|
27869
|
+
setupDisplayMessageObservable() {
|
|
27870
|
+
this.displayMessage$ = merge(fromEvent(this.olMap, 'mapmuted').pipe(map$1(() => true)), fromEvent(this.olMap, 'movestart').pipe(map$1(() => false)), fromEvent(this.olMap, 'singleclick').pipe(map$1(() => false))).pipe(switchMap$1((muted) => muted
|
|
27871
|
+
? timer(2000).pipe(map$1(() => false), startWith$1(true), delay(400))
|
|
27872
|
+
: of(false)), takeUntilDestroyed(this.destroyRef));
|
|
27873
|
+
}
|
|
27807
27874
|
processContext(context) {
|
|
27808
27875
|
const processed = context
|
|
27809
27876
|
? { ...context, view: context.view ?? DEFAULT_VIEW }
|
|
27810
27877
|
: { layers: [], view: DEFAULT_VIEW };
|
|
27878
|
+
// Prepend with default basemap and basemap layers
|
|
27811
27879
|
if (this.basemapLayers.length) {
|
|
27812
27880
|
processed.layers = [...this.basemapLayers, ...processed.layers];
|
|
27813
27881
|
}
|
|
27814
27882
|
if (!this.doNotUseDefaultBasemap) {
|
|
27815
27883
|
processed.layers = [DEFAULT_BASEMAP_LAYER, ...processed.layers];
|
|
27816
27884
|
}
|
|
27885
|
+
// Apply view constraints
|
|
27817
27886
|
if (this.mapViewConstraints.maxZoom) {
|
|
27818
27887
|
processed.view = {
|
|
27819
27888
|
maxZoom: this.mapViewConstraints.maxZoom,
|
|
@@ -27827,27 +27896,32 @@ class MapContainerComponent {
|
|
|
27827
27896
|
};
|
|
27828
27897
|
}
|
|
27829
27898
|
if (processed.view &&
|
|
27830
|
-
|
|
27831
|
-
|
|
27832
|
-
|
|
27833
|
-
|
|
27834
|
-
|
|
27835
|
-
|
|
27836
|
-
|
|
27837
|
-
|
|
27838
|
-
|
|
27839
|
-
|
|
27840
|
-
|
|
27899
|
+
'zoom' in processed.view &&
|
|
27900
|
+
'center' in processed.view) {
|
|
27901
|
+
return processed;
|
|
27902
|
+
}
|
|
27903
|
+
if (processed.view && 'extent' in processed.view) {
|
|
27904
|
+
return processed;
|
|
27905
|
+
}
|
|
27906
|
+
// Ensure valid view
|
|
27907
|
+
if (this.mapViewConstraints.maxExtent) {
|
|
27908
|
+
processed.view = {
|
|
27909
|
+
extent: this.mapViewConstraints.maxExtent,
|
|
27910
|
+
...processed.view,
|
|
27911
|
+
};
|
|
27912
|
+
}
|
|
27913
|
+
else {
|
|
27914
|
+
processed.view = { ...DEFAULT_VIEW, ...processed.view };
|
|
27841
27915
|
}
|
|
27842
27916
|
return processed;
|
|
27843
27917
|
}
|
|
27844
27918
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapContainerComponent, deps: [{ token: DO_NOT_USE_DEFAULT_BASEMAP }, { token: BASEMAP_LAYERS }, { token: MAP_VIEW_CONSTRAINTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27845
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick", sourceLoadError: "sourceLoadError" }, providers: [
|
|
27919
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapContainerComponent, isStandalone: true, selector: "gn-ui-map-container", inputs: { context: "context" }, outputs: { featuresClick: "featuresClick", featuresHover: "featuresHover", mapClick: "mapClick", extentChange: "extentChange", sourceLoadError: "sourceLoadError", resolvedExtentChange: "resolvedExtentChange" }, providers: [
|
|
27846
27920
|
provideIcons({ matSwipeOutline }),
|
|
27847
27921
|
provideNgIconsConfig({
|
|
27848
27922
|
size: '1.5em',
|
|
27849
27923
|
}),
|
|
27850
|
-
], viewQueries: [{ propertyName: "container", first: true, predicate: ["map"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"h-full w-full\" #map></
|
|
27924
|
+
], viewQueries: [{ propertyName: "container", first: true, predicate: ["map"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"relative h-full w-full\" #map>\n <ng-content></ng-content>\n <div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n >\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27851
27925
|
}
|
|
27852
27926
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapContainerComponent, decorators: [{
|
|
27853
27927
|
type: Component,
|
|
@@ -27856,7 +27930,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27856
27930
|
provideNgIconsConfig({
|
|
27857
27931
|
size: '1.5em',
|
|
27858
27932
|
}),
|
|
27859
|
-
], template: "<div class=\"h-full w-full\" #map></
|
|
27933
|
+
], template: "<div class=\"relative h-full w-full\" #map>\n <ng-content></ng-content>\n <div\n class=\"absolute inset-0 p-2 rounded z-40 transition-all flex flex-col justify-center items-center text-primary font-sans pointer-events-none\"\n [ngClass]=\"\n (displayMessage$ | async) ? 'visible opacity-100' : 'invisible opacity-0'\n \"\n >\n <div\n class=\"absolute z-[-1] inset-0 bg-gradient-to-b from-white to-primary-lightest opacity-60\"\n ></div>\n <ng-icon\n class=\"!w-16 !h-16 text-[64px] mb-4\"\n name=\"matSwipeOutline\"\n ></ng-icon>\n <p translate>map.navigation.message</p>\n </div>\n</div>\n" }]
|
|
27860
27934
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
27861
27935
|
type: Inject,
|
|
27862
27936
|
args: [DO_NOT_USE_DEFAULT_BASEMAP]
|
|
@@ -27868,17 +27942,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27868
27942
|
args: [MAP_VIEW_CONSTRAINTS]
|
|
27869
27943
|
}] }], propDecorators: { context: [{
|
|
27870
27944
|
type: Input
|
|
27945
|
+
}], container: [{
|
|
27946
|
+
type: ViewChild,
|
|
27947
|
+
args: ['map']
|
|
27871
27948
|
}], featuresClick: [{
|
|
27872
27949
|
type: Output
|
|
27873
27950
|
}], featuresHover: [{
|
|
27874
27951
|
type: Output
|
|
27875
27952
|
}], mapClick: [{
|
|
27876
27953
|
type: Output
|
|
27954
|
+
}], extentChange: [{
|
|
27955
|
+
type: Output
|
|
27877
27956
|
}], sourceLoadError: [{
|
|
27878
27957
|
type: Output
|
|
27879
|
-
}],
|
|
27880
|
-
type:
|
|
27881
|
-
args: ['map']
|
|
27958
|
+
}], resolvedExtentChange: [{
|
|
27959
|
+
type: Output
|
|
27882
27960
|
}] } });
|
|
27883
27961
|
|
|
27884
27962
|
const geometryKeys = ['geometry', 'the_geom'];
|
|
@@ -28051,7 +28129,7 @@ class SpatialExtentComponent {
|
|
|
28051
28129
|
return new GeoJSON().writeGeometryObject(geometry);
|
|
28052
28130
|
}
|
|
28053
28131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28054
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }] }); }
|
|
28132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SpatialExtentComponent, isStandalone: true, selector: "gn-ui-spatial-extent", inputs: { spatialExtents: "spatialExtents" }, ngImport: i0, template: "<gn-ui-map-container\n class=\"h-full w-full\"\n [context]=\"mapContext$ | async\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }] }); }
|
|
28055
28133
|
}
|
|
28056
28134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SpatialExtentComponent, decorators: [{
|
|
28057
28135
|
type: Component,
|
|
@@ -28073,7 +28151,7 @@ class MapStateContainerComponent {
|
|
|
28073
28151
|
this.mapFacade.selectFeatures(features);
|
|
28074
28152
|
}
|
|
28075
28153
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapStateContainerComponent, deps: [{ token: MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28076
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapStateContainerComponent, isStandalone: true, selector: "gn-ui-map-state-container", ngImport: i0, template: "<gn-ui-map-container\n [context]=\"context$ | async\"\n (featuresClick)=\"handleFeaturesClicked($event)\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28154
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapStateContainerComponent, isStandalone: true, selector: "gn-ui-map-state-container", ngImport: i0, template: "<gn-ui-map-container\n [context]=\"context$ | async\"\n (featuresClick)=\"handleFeaturesClicked($event)\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28077
28155
|
}
|
|
28078
28156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapStateContainerComponent, decorators: [{
|
|
28079
28157
|
type: Component,
|
|
@@ -29063,11 +29141,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29063
29141
|
|
|
29064
29142
|
class LoadingMaskComponent {
|
|
29065
29143
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingMaskComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29066
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoadingMaskComponent, isStandalone: true, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent
|
|
29144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LoadingMaskComponent, isStandalone: true, selector: "gn-ui-loading-mask", inputs: { message: "message" }, ngImport: i0, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;backdrop-filter:blur(4px)}}.background{opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i1$4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29067
29145
|
}
|
|
29068
29146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingMaskComponent, decorators: [{
|
|
29069
29147
|
type: Component,
|
|
29070
|
-
args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatProgressSpinnerModule], standalone: true, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent
|
|
29148
|
+
args: [{ selector: 'gn-ui-loading-mask', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatProgressSpinnerModule], standalone: true, template: "<div class=\"h-full flex flex-col justify-center items-center relative backdrop\">\n <div class=\"absolute background bg-white inset-0\"></div>\n <mat-spinner [diameter]=\"28\" class=\"relative\"></mat-spinner>\n <span class=\"text-sm text-gray-700 mt-3 relative\">{{ message }}</span>\n</div>\n", styles: ["::ng-deep .mat-spinner circle{stroke:var(--color-gray-700);opacity:.5}.backdrop{background-color:#fff6}@supports (-webkit-backdrop-filter: blur()) or (backdrop-filter: blur()){.backdrop{background-color:transparent;backdrop-filter:blur(4px)}}.background{opacity:.7}\n"] }]
|
|
29071
29149
|
}], propDecorators: { message: [{
|
|
29072
29150
|
type: Input
|
|
29073
29151
|
}] } });
|
|
@@ -29519,11 +29597,11 @@ class CheckToggleComponent {
|
|
|
29519
29597
|
this.toggled.emit(value);
|
|
29520
29598
|
}
|
|
29521
29599
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29522
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label\n class=\"
|
|
29600
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckToggleComponent, isStandalone: true, selector: "gn-ui-check-toggle", inputs: { title: "title", label: "label", value: "value", color: "color" }, outputs: { toggled: "toggled" }, ngImport: i0, template: "<label\n class=\"flex relative items-center cursor-pointer w-full\"\n [title]=\"title || label\"\n>\n <span class=\"shrink-0 relative\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium flex-1\">{{ label }}</span>\n</label>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29523
29601
|
}
|
|
29524
29602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckToggleComponent, decorators: [{
|
|
29525
29603
|
type: Component,
|
|
29526
|
-
args: [{ selector: 'gn-ui-check-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<label\n class=\"
|
|
29604
|
+
args: [{ selector: 'gn-ui-check-toggle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<label\n class=\"flex relative items-center cursor-pointer w-full\"\n [title]=\"title || label\"\n>\n <span class=\"shrink-0 relative\">\n <input\n type=\"checkbox\"\n class=\"sr-only peer\"\n [ngModel]=\"value\"\n (ngModelChange)=\"toggle($event)\"\n />\n <div\n class=\"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-2 rounded-full peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all\"\n [class]=\"\n color === 'secondary'\n ? 'peer-focus:ring-secondary-lighter peer-checked:bg-secondary'\n : 'peer-focus:ring-primary-lighter peer-checked:bg-primary'\n \"\n ></div>\n </span>\n <span class=\"ml-3 mt-[2px] text-sm font-medium flex-1\">{{ label }}</span>\n</label>\n" }]
|
|
29527
29605
|
}], propDecorators: { title: [{
|
|
29528
29606
|
type: Input
|
|
29529
29607
|
}], label: [{
|
|
@@ -29657,7 +29735,7 @@ class DateRangeDropdownComponent {
|
|
|
29657
29735
|
matExpandMore,
|
|
29658
29736
|
matExpandLess,
|
|
29659
29737
|
}),
|
|
29660
|
-
], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n (buttonClick)=\"picker.open()\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n </div>\n <ng-icon\n [name]=\"isPickerDisplayed ? 'matExpandLess' : 'matExpandMore'\"\n class=\"shrink-0 opacity-40\"\n >\n </ng-icon>\n</gn-ui-button>\n<!--date range input is just present for output events and hidden from the DOM-->\n<mat-date-range-input [rangePicker]=\"picker\">\n <input\n matStartDate\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n</mat-date-range-input>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host
|
|
29738
|
+
], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n (buttonClick)=\"picker.open()\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n </div>\n <ng-icon\n [name]=\"isPickerDisplayed ? 'matExpandLess' : 'matExpandMore'\"\n class=\"shrink-0 opacity-40\"\n >\n </ng-icon>\n</gn-ui-button>\n<!--date range input is just present for output events and hidden from the DOM-->\n<mat-date-range-input [rangePicker]=\"picker\">\n <input\n matStartDate\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n</mat-date-range-input>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{.mat-date-range-input-container{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }] }); }
|
|
29661
29739
|
}
|
|
29662
29740
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeDropdownComponent, decorators: [{
|
|
29663
29741
|
type: Component,
|
|
@@ -29672,7 +29750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29672
29750
|
matExpandMore,
|
|
29673
29751
|
matExpandLess,
|
|
29674
29752
|
}),
|
|
29675
|
-
], template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n (buttonClick)=\"picker.open()\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n </div>\n <ng-icon\n [name]=\"isPickerDisplayed ? 'matExpandLess' : 'matExpandMore'\"\n class=\"shrink-0 opacity-40\"\n >\n </ng-icon>\n</gn-ui-button>\n<!--date range input is just present for output events and hidden from the DOM-->\n<mat-date-range-input [rangePicker]=\"picker\">\n <input\n matStartDate\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n</mat-date-range-input>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host
|
|
29753
|
+
], template: "<gn-ui-button\n type=\"outline\"\n extraClass=\"bg-background w-full !p-[8px] !pl-[16px]\"\n (buttonClick)=\"picker.open()\"\n>\n <div class=\"grow flex items-center mr-2 gap-2 overflow-hidden\">\n <div class=\"text-left font-medium truncate py-1\">\n {{ title }}\n </div>\n </div>\n <ng-icon\n [name]=\"isPickerDisplayed ? 'matExpandLess' : 'matExpandMore'\"\n class=\"shrink-0 opacity-40\"\n >\n </ng-icon>\n</gn-ui-button>\n<!--date range input is just present for output events and hidden from the DOM-->\n<mat-date-range-input [rangePicker]=\"picker\">\n <input\n matStartDate\n [value]=\"startDate\"\n (dateInput)=\"startDateChange.emit($event.value)\"\n />\n <input\n matEndDate\n [value]=\"endDate\"\n (dateInput)=\"endDateChange.emit($event.value)\"\n />\n</mat-date-range-input>\n<mat-date-range-picker #picker></mat-date-range-picker>\n", styles: [":host{.mat-date-range-input-container{display:none}}\n"] }]
|
|
29676
29754
|
}], ctorParameters: () => [{ type: i1$8.OverlayContainer }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
|
|
29677
29755
|
type: Input
|
|
29678
29756
|
}], startDate: [{
|
|
@@ -32036,6 +32114,7 @@ const FIELDS_SUMMARY = [
|
|
|
32036
32114
|
'userSavedCount',
|
|
32037
32115
|
'cl_topic',
|
|
32038
32116
|
'cl_maintenanceAndUpdateFrequency',
|
|
32117
|
+
'cl_presentationForm',
|
|
32039
32118
|
'MD_LegalConstraints*Object',
|
|
32040
32119
|
'qualityScore',
|
|
32041
32120
|
'allKeywords',
|
|
@@ -33049,31 +33128,33 @@ class RecordKindField extends SimpleSearchField {
|
|
|
33049
33128
|
constructor(injector) {
|
|
33050
33129
|
super('resourceType', injector, 'asc');
|
|
33051
33130
|
this.TYPE_MAPPING = {
|
|
33052
|
-
dataset: ['dataset', 'series', 'featureCatalog'],
|
|
33131
|
+
dataset: ['dataset', 'series', 'featureCatalog', 'document'],
|
|
33053
33132
|
service: ['service'],
|
|
33054
|
-
reuse:
|
|
33055
|
-
.
|
|
33056
|
-
|
|
33133
|
+
reuse: [
|
|
33134
|
+
...Object.entries(PossibleResourceTypes)
|
|
33135
|
+
.filter(([_, v]) => v === 'reuse')
|
|
33136
|
+
.map(([k]) => k), // = ['application', 'map', 'staticMap', 'interactiveMap', ...]
|
|
33137
|
+
'dataset', // allow datasets and documents to be filtered as 'reuse' by cl_presentationForm
|
|
33138
|
+
'document',
|
|
33139
|
+
],
|
|
33057
33140
|
};
|
|
33058
33141
|
}
|
|
33059
33142
|
getAvailableValues() {
|
|
33060
|
-
|
|
33061
|
-
|
|
33062
|
-
|
|
33063
|
-
|
|
33064
|
-
|
|
33065
|
-
|
|
33066
|
-
|
|
33067
|
-
|
|
33068
|
-
|
|
33069
|
-
|
|
33070
|
-
|
|
33071
|
-
|
|
33072
|
-
|
|
33073
|
-
|
|
33074
|
-
|
|
33075
|
-
}));
|
|
33076
|
-
}));
|
|
33143
|
+
// simplified as available values now depend on 'resourceType' and 'cl_presentationForm' fields
|
|
33144
|
+
return of([
|
|
33145
|
+
{
|
|
33146
|
+
label: 'dataset',
|
|
33147
|
+
value: 'dataset',
|
|
33148
|
+
},
|
|
33149
|
+
{
|
|
33150
|
+
label: 'service',
|
|
33151
|
+
value: 'service',
|
|
33152
|
+
},
|
|
33153
|
+
{
|
|
33154
|
+
label: 'reuse',
|
|
33155
|
+
value: 'reuse',
|
|
33156
|
+
},
|
|
33157
|
+
]);
|
|
33077
33158
|
}
|
|
33078
33159
|
getFiltersForValues(values) {
|
|
33079
33160
|
const filters = {
|
|
@@ -33085,6 +33166,18 @@ class RecordKindField extends SimpleSearchField {
|
|
|
33085
33166
|
return acc;
|
|
33086
33167
|
}, {}),
|
|
33087
33168
|
};
|
|
33169
|
+
const presentationFormFilter = {};
|
|
33170
|
+
if (values.includes('reuse') && !values.includes('dataset')) {
|
|
33171
|
+
presentationFormFilter['mapDigital'] = true;
|
|
33172
|
+
presentationFormFilter['mapHardcopy'] = true;
|
|
33173
|
+
}
|
|
33174
|
+
else if (values.includes('dataset') && !values.includes('reuse')) {
|
|
33175
|
+
presentationFormFilter['mapDigital'] = false;
|
|
33176
|
+
presentationFormFilter['mapHardcopy'] = false;
|
|
33177
|
+
}
|
|
33178
|
+
if (Object.keys(presentationFormFilter).length > 0) {
|
|
33179
|
+
filters['cl_presentationForm.key'] = presentationFormFilter;
|
|
33180
|
+
}
|
|
33088
33181
|
return of(filters);
|
|
33089
33182
|
}
|
|
33090
33183
|
getValuesForFilter(filters) {
|
|
@@ -33109,6 +33202,7 @@ marker('search.filters.publicationYear');
|
|
|
33109
33202
|
marker('search.filters.organization');
|
|
33110
33203
|
marker('search.filters.representationType');
|
|
33111
33204
|
marker('search.filters.resourceType');
|
|
33205
|
+
marker('search.filters.recordKind');
|
|
33112
33206
|
marker('search.filters.standard');
|
|
33113
33207
|
marker('search.filters.topic');
|
|
33114
33208
|
marker('search.filters.contact');
|
|
@@ -39455,7 +39549,7 @@ class GeoTableViewComponent {
|
|
|
39455
39549
|
this.subscription.unsubscribe();
|
|
39456
39550
|
}
|
|
39457
39551
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoTableViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39458
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoTableViewComponent, isStandalone: true, selector: "gn-ui-geo-table-view", inputs: { dataset: "dataset" }, viewQueries: [{ propertyName: "uiTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-row h-full overflow-auto\">\n <gn-ui-data-table\n #table\n class=\"w-1/2 overflow-auto\"\n [dataset]=\"dataset\"\n [activeId]=\"selectionId\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-map-container\n #mapContainer\n class=\"w-1/2 h-full\"\n [context]=\"mapContext\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <gn-ui-feature-detail\n style=\"width: 300px\"\n class=\"p-3 shrink-0 overflow-auto\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["featureAttributes", "dataset", "activeId"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: GeoTableViewComponent, isStandalone: true, selector: "gn-ui-geo-table-view", inputs: { dataset: "dataset" }, viewQueries: [{ propertyName: "uiTable", first: true, predicate: ["table"], descendants: true }, { propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-row h-full overflow-auto\">\n <gn-ui-data-table\n #table\n class=\"w-1/2 overflow-auto\"\n [dataset]=\"dataset\"\n [activeId]=\"selectionId\"\n (selected)=\"onTableSelect($event)\"\n ></gn-ui-data-table>\n <gn-ui-map-container\n #mapContainer\n class=\"w-1/2 h-full\"\n [context]=\"mapContext\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n ></gn-ui-map-container>\n <gn-ui-feature-detail\n style=\"width: 300px\"\n class=\"p-3 shrink-0 overflow-auto\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: DataTableComponent, selector: "gn-ui-data-table", inputs: ["featureAttributes", "dataset", "activeId"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39459
39553
|
}
|
|
39460
39554
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GeoTableViewComponent, decorators: [{
|
|
39461
39555
|
type: Component,
|
|
@@ -39703,7 +39797,7 @@ class MdViewEffects {
|
|
|
39703
39797
|
*/
|
|
39704
39798
|
this.loadRelatedRecords$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSimilarRecords(full)), map$1((related) => {
|
|
39705
39799
|
return setRelated({ related });
|
|
39706
|
-
}), catchError((
|
|
39800
|
+
}), catchError(() => of(setRelated({ related: null })))));
|
|
39707
39801
|
this.loadSources$ = createEffect(() => this.actions$.pipe(ofType(loadFullMetadataSuccess), switchMap$1(({ full }) => this.recordsRepository.getSources(full)), map$1((sources) => {
|
|
39708
39802
|
return setSources({ sources });
|
|
39709
39803
|
}), catchError(() => of(setSources({ sources: null })))));
|
|
@@ -40283,21 +40377,21 @@ class GpfApiDlComponent {
|
|
|
40283
40377
|
this.choices = await this.getCapabilities();
|
|
40284
40378
|
const tempZone = this.choices.zone.map((bucket) => ({
|
|
40285
40379
|
value: bucket.term,
|
|
40286
|
-
label: bucket.label,
|
|
40380
|
+
label: String(bucket.label),
|
|
40287
40381
|
}));
|
|
40288
40382
|
tempZone.sort((a, b) => (a.label > b.label ? 1 : -1));
|
|
40289
40383
|
tempZone.unshift({ value: 'null', label: 'ZONE' });
|
|
40290
40384
|
this.bucketPromisesZone = tempZone;
|
|
40291
40385
|
const tempFormat = this.choices.format.map((bucket) => ({
|
|
40292
40386
|
value: bucket.term,
|
|
40293
|
-
label: bucket.label,
|
|
40387
|
+
label: String(bucket.label),
|
|
40294
40388
|
}));
|
|
40295
40389
|
tempFormat.sort((a, b) => (a.label > b.label ? 1 : -1));
|
|
40296
40390
|
tempFormat.unshift({ value: 'null', label: 'FORMAT' });
|
|
40297
40391
|
this.bucketPromisesFormat = tempFormat;
|
|
40298
40392
|
const tempCrs = this.choices.category.map((bucket) => ({
|
|
40299
40393
|
value: bucket.term,
|
|
40300
|
-
label: bucket.label,
|
|
40394
|
+
label: String(bucket.label),
|
|
40301
40395
|
}));
|
|
40302
40396
|
tempCrs.sort((a, b) => (a.label > b.label ? 1 : -1));
|
|
40303
40397
|
tempCrs.unshift({ value: 'null', label: 'CRS' });
|
|
@@ -40600,7 +40694,7 @@ class MapViewComponent {
|
|
|
40600
40694
|
this.changeRef.detectChanges();
|
|
40601
40695
|
}
|
|
40602
40696
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, deps: [{ token: MdViewFacade }, { token: MapUtilsService }, { token: DataService }, { token: i0.ChangeDetectorRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40603
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", selectedView: "selectedView", datavizConfig: "datavizConfig", displaySource: "displaySource" }, outputs: { linkSelected: "linkSelected", styleSelected: "styleSelected" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n [selected]=\"_selectedChoice\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [selected]=\"_styleFromConfig\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\" translate>map.legend.title</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n
|
|
40697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", selectedView: "selectedView", datavizConfig: "datavizConfig", displaySource: "displaySource" }, outputs: { linkSelected: "linkSelected", styleSelected: "styleSelected" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n [selected]=\"_selectedChoice\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [selected]=\"_styleFromConfig\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\" translate>map.legend.title</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n {{ 'map.legend.title' | translate }}\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link", "extraClass"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: MapLegendComponent, selector: "gn-ui-map-legend", inputs: ["context"], outputs: ["legendStatusChange"] }], viewProviders: [
|
|
40604
40698
|
provideIcons({ matClose }),
|
|
40605
40699
|
provideNgIconsConfig({
|
|
40606
40700
|
size: '1.5em',
|
|
@@ -40627,7 +40721,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40627
40721
|
provideNgIconsConfig({
|
|
40628
40722
|
size: '1.5em',
|
|
40629
40723
|
}),
|
|
40630
|
-
], template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n [selected]=\"_selectedChoice\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [selected]=\"_styleFromConfig\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\" translate>map.legend.title</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n
|
|
40724
|
+
], template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n [selected]=\"_selectedChoice\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [selected]=\"_styleFromConfig\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\" translate>map.legend.title</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n {{ 'map.legend.title' | translate }}\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n" }]
|
|
40631
40725
|
}], ctorParameters: () => [{ type: MdViewFacade }, { type: MapUtilsService }, { type: DataService }, { type: i0.ChangeDetectorRef }, { type: i1$1.TranslateService }], propDecorators: { exceedsLimit: [{
|
|
40632
40726
|
type: Input
|
|
40633
40727
|
}], selectedView: [{
|
|
@@ -40687,33 +40781,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40687
40781
|
type: Input
|
|
40688
40782
|
}] } });
|
|
40689
40783
|
|
|
40784
|
+
function areTemporalExtentsEqual(previous, current) {
|
|
40785
|
+
const previousStartTime = previous?.start?.getTime() ?? null;
|
|
40786
|
+
const previousEndTime = previous?.end?.getTime() ?? null;
|
|
40787
|
+
const currentStartTime = current?.start?.getTime() ?? null;
|
|
40788
|
+
const currentEndTime = current?.end?.getTime() ?? null;
|
|
40789
|
+
return (previousStartTime === currentStartTime && previousEndTime === currentEndTime);
|
|
40790
|
+
}
|
|
40791
|
+
function areSpatialExtentsEqual(previous, current) {
|
|
40792
|
+
return (previous?.[0] === current?.[0] &&
|
|
40793
|
+
previous?.[1] === current?.[1] &&
|
|
40794
|
+
previous?.[2] === current?.[2] &&
|
|
40795
|
+
previous?.[3] === current?.[3]);
|
|
40796
|
+
}
|
|
40797
|
+
function areFilterStatesEqual(previous, current) {
|
|
40798
|
+
const sameTemporalExtents = areTemporalExtentsEqual(previous.temporalExtent, current.temporalExtent);
|
|
40799
|
+
const sameSpatialExtents = !current.isSpatialExtentFilterEnabled ||
|
|
40800
|
+
areSpatialExtentsEqual(previous.spatialExtent, current.spatialExtent);
|
|
40801
|
+
const sameIsSpatialExtentFilterEnabled = previous.isSpatialExtentFilterEnabled ===
|
|
40802
|
+
current.isSpatialExtentFilterEnabled;
|
|
40803
|
+
const samePageUrl = previous.pageUrl === current.pageUrl;
|
|
40804
|
+
return (sameTemporalExtents &&
|
|
40805
|
+
sameSpatialExtents &&
|
|
40806
|
+
sameIsSpatialExtentFilterEnabled &&
|
|
40807
|
+
samePageUrl);
|
|
40808
|
+
}
|
|
40809
|
+
|
|
40690
40810
|
const STAC_ITEMS_PER_PAGE = 12;
|
|
40691
40811
|
const DEBOUNCE_TIME_MS = 500;
|
|
40692
40812
|
class StacViewComponent {
|
|
40693
|
-
constructor(dataService, metadataViewFacade, translateService) {
|
|
40813
|
+
constructor(dataService, metadataViewFacade, mapUtils, translateService) {
|
|
40694
40814
|
this.dataService = dataService;
|
|
40695
40815
|
this.metadataViewFacade = metadataViewFacade;
|
|
40816
|
+
this.mapUtils = mapUtils;
|
|
40696
40817
|
this.translateService = translateService;
|
|
40697
|
-
this.isFilterModified = false;
|
|
40698
|
-
this.error = null;
|
|
40699
40818
|
this.initialTemporalExtent = null;
|
|
40700
|
-
this.
|
|
40701
|
-
this.
|
|
40702
|
-
this.
|
|
40703
|
-
|
|
40704
|
-
|
|
40705
|
-
|
|
40706
|
-
|
|
40707
|
-
|
|
40708
|
-
|
|
40709
|
-
|
|
40710
|
-
|
|
40711
|
-
|
|
40712
|
-
|
|
40713
|
-
|
|
40714
|
-
|
|
40819
|
+
this.initialSpatialExtent = null;
|
|
40820
|
+
this.resolvedInitialSpatialExtent = null;
|
|
40821
|
+
this.error$ = new BehaviorSubject(null);
|
|
40822
|
+
this.mapContext$ = new BehaviorSubject({
|
|
40823
|
+
layers: [],
|
|
40824
|
+
view: null,
|
|
40825
|
+
});
|
|
40826
|
+
this.filterState$ = new BehaviorSubject({
|
|
40827
|
+
temporalExtent: null,
|
|
40828
|
+
spatialExtent: null,
|
|
40829
|
+
isSpatialExtentFilterEnabled: true,
|
|
40830
|
+
pageUrl: null,
|
|
40831
|
+
});
|
|
40832
|
+
this.isFilterModified$ = this.filterState$.pipe(map$2((filterState) => {
|
|
40833
|
+
const isTemporalModified = !areTemporalExtentsEqual(filterState.temporalExtent, this.initialTemporalExtent);
|
|
40834
|
+
const isSpatialModified = this.resolvedInitialSpatialExtent &&
|
|
40835
|
+
filterState.spatialExtent !== null &&
|
|
40836
|
+
filterState.isSpatialExtentFilterEnabled &&
|
|
40837
|
+
!areSpatialExtentsEqual(filterState.spatialExtent, this.resolvedInitialSpatialExtent);
|
|
40838
|
+
return isTemporalModified || isSpatialModified;
|
|
40839
|
+
}), shareReplay({ bufferSize: 1, refCount: false }));
|
|
40840
|
+
this.items$ = this.filterState$.pipe(debounceTime$1(DEBOUNCE_TIME_MS), distinctUntilChanged$1((prev, curr) => areFilterStatesEqual(prev, curr)), switchMap((filterState) => {
|
|
40841
|
+
if (filterState.pageUrl === null) {
|
|
40842
|
+
return of([]);
|
|
40715
40843
|
}
|
|
40716
|
-
|
|
40844
|
+
this.error$.next(null);
|
|
40845
|
+
return from(this.dataService.getItemsFromStacApi(filterState.pageUrl, this.buildRequestOptions(filterState))).pipe(tap$2((stacDocument) => {
|
|
40717
40846
|
this.previousPageUrl =
|
|
40718
40847
|
stacDocument.links.find((link) => link.rel === 'previous')?.href ||
|
|
40719
40848
|
null;
|
|
@@ -40723,7 +40852,7 @@ class StacViewComponent {
|
|
|
40723
40852
|
this.handleError(err);
|
|
40724
40853
|
return of([]);
|
|
40725
40854
|
}));
|
|
40726
|
-
}));
|
|
40855
|
+
}), shareReplay({ bufferSize: 1, refCount: false }));
|
|
40727
40856
|
}
|
|
40728
40857
|
ngOnInit() {
|
|
40729
40858
|
this.metadataViewFacade.metadata$
|
|
@@ -40731,49 +40860,116 @@ class StacViewComponent {
|
|
|
40731
40860
|
const temporalExtents = metadata?.kind === 'dataset'
|
|
40732
40861
|
? metadata.temporalExtents
|
|
40733
40862
|
: [];
|
|
40734
|
-
|
|
40863
|
+
const temporalExtent = temporalExtents.length > 0
|
|
40735
40864
|
? temporalExtents[0]
|
|
40736
40865
|
: {
|
|
40737
40866
|
start: null,
|
|
40738
40867
|
end: null,
|
|
40739
40868
|
};
|
|
40869
|
+
const spatialExtent = this.mapUtils.getRecordExtent(metadata);
|
|
40870
|
+
return { temporalExtent, spatialExtent };
|
|
40740
40871
|
}))
|
|
40741
|
-
.subscribe((
|
|
40742
|
-
this.initialTemporalExtent =
|
|
40743
|
-
this.
|
|
40872
|
+
.subscribe(({ temporalExtent, spatialExtent }) => {
|
|
40873
|
+
this.initialTemporalExtent = temporalExtent;
|
|
40874
|
+
this.initialSpatialExtent = spatialExtent;
|
|
40875
|
+
this.filterState$.next({
|
|
40876
|
+
...this.filterState$.value,
|
|
40877
|
+
temporalExtent: this.initialTemporalExtent,
|
|
40878
|
+
});
|
|
40879
|
+
this.mapContext$.next({
|
|
40880
|
+
...this.mapContext$.value,
|
|
40881
|
+
view: {
|
|
40882
|
+
extent: spatialExtent,
|
|
40883
|
+
},
|
|
40884
|
+
});
|
|
40744
40885
|
});
|
|
40745
40886
|
this.metadataViewFacade.stacLinks$
|
|
40746
40887
|
.pipe(take$1(1), map$2((links) => (links && links.length > 0 ? links[0] : null)))
|
|
40747
40888
|
.subscribe((link) => {
|
|
40748
40889
|
if (link) {
|
|
40749
40890
|
this.initialPageUrl = link.url.href;
|
|
40750
|
-
this.
|
|
40891
|
+
this.filterState$.next({
|
|
40892
|
+
...this.filterState$.value,
|
|
40893
|
+
pageUrl: link.url.href,
|
|
40894
|
+
});
|
|
40751
40895
|
}
|
|
40752
40896
|
});
|
|
40753
40897
|
}
|
|
40898
|
+
async ngAfterViewInit() {
|
|
40899
|
+
const map = await this.mapContainer.openlayersMap;
|
|
40900
|
+
prioritizePageScroll(map.getInteractions());
|
|
40901
|
+
}
|
|
40754
40902
|
onTemporalExtentChange(extent) {
|
|
40755
|
-
this.
|
|
40756
|
-
|
|
40757
|
-
|
|
40758
|
-
|
|
40903
|
+
this.filterState$.next({
|
|
40904
|
+
...this.filterState$.value,
|
|
40905
|
+
temporalExtent: extent,
|
|
40906
|
+
pageUrl: this.initialPageUrl,
|
|
40907
|
+
});
|
|
40908
|
+
}
|
|
40909
|
+
onSpatialExtentChange(extent) {
|
|
40910
|
+
this.filterState$.next({
|
|
40911
|
+
...this.filterState$.value,
|
|
40912
|
+
spatialExtent: extent,
|
|
40913
|
+
pageUrl: this.initialPageUrl,
|
|
40914
|
+
});
|
|
40915
|
+
}
|
|
40916
|
+
onResolvedMapExtentChange(extent) {
|
|
40917
|
+
this.resolvedInitialSpatialExtent = extent;
|
|
40918
|
+
}
|
|
40919
|
+
onSpatialFilterToggle(enabled) {
|
|
40920
|
+
this.filterState$.next({
|
|
40921
|
+
...this.filterState$.value,
|
|
40922
|
+
isSpatialExtentFilterEnabled: enabled,
|
|
40923
|
+
pageUrl: this.initialPageUrl,
|
|
40924
|
+
});
|
|
40759
40925
|
}
|
|
40760
40926
|
onResetFilters() {
|
|
40761
|
-
this.
|
|
40762
|
-
|
|
40927
|
+
this.mapContext$.next({
|
|
40928
|
+
...this.mapContext$.value,
|
|
40929
|
+
view: {
|
|
40930
|
+
extent: this.initialSpatialExtent,
|
|
40931
|
+
},
|
|
40932
|
+
});
|
|
40933
|
+
this.filterState$.next({
|
|
40934
|
+
temporalExtent: this.initialTemporalExtent,
|
|
40935
|
+
spatialExtent: this.resolvedInitialSpatialExtent,
|
|
40936
|
+
isSpatialExtentFilterEnabled: true,
|
|
40937
|
+
pageUrl: this.initialPageUrl,
|
|
40938
|
+
});
|
|
40939
|
+
}
|
|
40940
|
+
buildRequestOptions(filterState) {
|
|
40941
|
+
const options = {
|
|
40942
|
+
limit: STAC_ITEMS_PER_PAGE,
|
|
40943
|
+
};
|
|
40944
|
+
if (filterState.temporalExtent &&
|
|
40945
|
+
(filterState.temporalExtent.start || filterState.temporalExtent.end)) {
|
|
40946
|
+
options.datetime = {
|
|
40947
|
+
...(filterState.temporalExtent.start && {
|
|
40948
|
+
start: filterState.temporalExtent.start,
|
|
40949
|
+
}),
|
|
40950
|
+
...(filterState.temporalExtent.end && {
|
|
40951
|
+
end: filterState.temporalExtent.end,
|
|
40952
|
+
}),
|
|
40953
|
+
};
|
|
40954
|
+
}
|
|
40955
|
+
if (filterState.isSpatialExtentFilterEnabled && filterState.spatialExtent) {
|
|
40956
|
+
options.bbox = filterState.spatialExtent;
|
|
40957
|
+
}
|
|
40958
|
+
return options;
|
|
40763
40959
|
}
|
|
40764
40960
|
handleError(error) {
|
|
40765
40961
|
if (error instanceof FetchError) {
|
|
40766
|
-
this.error
|
|
40962
|
+
this.error$.next(this.translateService.instant(`dataset.error.${error.type}`, {
|
|
40767
40963
|
info: error.info,
|
|
40768
|
-
});
|
|
40964
|
+
}));
|
|
40769
40965
|
console.warn(error.message);
|
|
40770
40966
|
}
|
|
40771
40967
|
else if (error instanceof Error) {
|
|
40772
|
-
this.error
|
|
40968
|
+
this.error$.next(this.translateService.instant(error.message));
|
|
40773
40969
|
console.warn(error.stack || error);
|
|
40774
40970
|
}
|
|
40775
40971
|
else {
|
|
40776
|
-
this.error
|
|
40972
|
+
this.error$.next(this.translateService.instant(error));
|
|
40777
40973
|
console.warn(error);
|
|
40778
40974
|
}
|
|
40779
40975
|
}
|
|
@@ -40785,13 +40981,19 @@ class StacViewComponent {
|
|
|
40785
40981
|
return this.nextPageUrl == null;
|
|
40786
40982
|
}
|
|
40787
40983
|
goToNextPage() {
|
|
40788
|
-
this.
|
|
40984
|
+
this.filterState$.next({
|
|
40985
|
+
...this.filterState$.value,
|
|
40986
|
+
pageUrl: this.nextPageUrl,
|
|
40987
|
+
});
|
|
40789
40988
|
}
|
|
40790
40989
|
goToPrevPage() {
|
|
40791
|
-
this.
|
|
40990
|
+
this.filterState$.next({
|
|
40991
|
+
...this.filterState$.value,
|
|
40992
|
+
pageUrl: this.previousPageUrl,
|
|
40993
|
+
});
|
|
40792
40994
|
}
|
|
40793
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, deps: [{ token: DataService }, { token: MdViewFacade }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40794
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StacViewComponent, isStandalone: true, selector: "gn-ui-stac-view", ngImport: i0, template: "<div class=\"mt-6 bg-white border border-gray-300 overflow-hidden rounded-lg\">\n <div\n class=\"w-full
|
|
40995
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, deps: [{ token: DataService }, { token: MdViewFacade }, { token: MapUtilsService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40996
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StacViewComponent, isStandalone: true, selector: "gn-ui-stac-view", viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"mt-6 bg-white border border-gray-300 overflow-hidden rounded-lg\">\n <div\n class=\"w-full h-[700px] md:h-[366px] flex md:flex-row flex-col border-b border-gray-300\"\n >\n @let filterState = filterState$ | async;\n\n <div class=\"w-full md:w-5/12 h-[366px] flex flex-col\">\n <gn-ui-date-range-inputs\n [temporalExtent]=\"filterState.temporalExtent\"\n (temporalExtentChange)=\"onTemporalExtentChange($event)\"\n ></gn-ui-date-range-inputs>\n\n <div class=\"mt-auto mb-8 mx-8\" *ngIf=\"isFilterModified$ | async\">\n <gn-ui-button\n id=\"reset-filters-button\"\n type=\"light\"\n (buttonClick)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon name=\"matDeleteOutline\" class=\"ml-2\"></ng-icon>\n </gn-ui-button>\n </div>\n </div>\n\n <div class=\"w-full md:w-7/12 h-[334px] md:h-[366px] flex flex-col\">\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (extentChange)=\"onSpatialExtentChange($event)\"\n (resolvedExtentChange)=\"onResolvedMapExtentChange($event)\"\n class=\"w-full h-full\"\n >\n <div\n class=\"bg-white rounded-xl shadow-xl absolute left-1/2 transform -translate-x-1/2 bottom-0 mb-2.5 px-4 py-2 z-10 max-w-[90%] w-max\"\n >\n <gn-ui-check-toggle\n [value]=\"filterState.isSpatialExtentFilterEnabled\"\n (toggled)=\"onSpatialFilterToggle($event)\"\n [label]=\"'stac.filter.enable' | translate\"\n [color]=\"'primary'\"\n ></gn-ui-check-toggle>\n </div>\n </gn-ui-map-container>\n </div>\n </div>\n <div\n class=\"relative mx-5 my-[30px] min-h-[274px] flex items-center justify-center flex-col\"\n >\n <!-- Keep grid outside ngIf to keep items$ observable alive -->\n <gn-ui-stac-items-result-grid\n [items]=\"items$ | async\"\n ></gn-ui-stac-items-result-grid>\n <div\n *ngIf=\"(items$ | async)?.length > 0; else noResultsOrError\"\n class=\"mt-[20px] mx-auto flex justify-center\"\n >\n <gn-ui-previous-next-buttons\n [listComponent]=\"this\"\n [displayLabels]=\"true\"\n ></gn-ui-previous-next-buttons>\n </div>\n <ng-template #noResultsOrError>\n <gn-ui-popup-alert\n *ngIf=\"error$ | async as error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute left-0 top-0 w-full block\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n <div\n *ngIf=\"(error$ | async) === null\"\n class=\"flex items-center justify-center flex-col h-full gap-[10px]\"\n >\n <h2 class=\"text-center text-xl\" translate>stac.results.noResults</h2>\n <gn-ui-button\n id=\"no-results-button\"\n type=\"secondary\"\n (buttonClick)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon name=\"matDeleteOutline\" class=\"ml-2\"></ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [":host{--gn-ui-button-padding: 7px 8px}::ng-deep .ol-overlaycontainer-stopevent{z-index:11!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: StacItemsResultGridComponent, selector: "gn-ui-stac-items-result-grid", inputs: ["items"] }, { kind: "component", type: DateRangeInputsComponent, selector: "gn-ui-date-range-inputs", inputs: ["temporalExtent"], outputs: ["temporalExtentChange"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent", "displayLabels"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }], viewProviders: [provideIcons({ matDeleteOutline })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40795
40997
|
}
|
|
40796
40998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StacViewComponent, decorators: [{
|
|
40797
40999
|
type: Component,
|
|
@@ -40799,13 +41001,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40799
41001
|
CommonModule,
|
|
40800
41002
|
NgIconComponent,
|
|
40801
41003
|
TranslateDirective,
|
|
41004
|
+
TranslatePipe,
|
|
40802
41005
|
StacItemsResultGridComponent,
|
|
40803
41006
|
DateRangeInputsComponent,
|
|
41007
|
+
MapContainerComponent,
|
|
41008
|
+
CheckToggleComponent,
|
|
40804
41009
|
PreviousNextButtonsComponent,
|
|
40805
41010
|
PopupAlertComponent,
|
|
40806
41011
|
ButtonComponent,
|
|
40807
|
-
], viewProviders: [provideIcons({ matDeleteOutline })], template: "<div class=\"mt-6 bg-white border border-gray-300 overflow-hidden rounded-lg\">\n <div\n class=\"w-full
|
|
40808
|
-
}], ctorParameters: () => [{ type: DataService }, { type: MdViewFacade }, { type: i1$1.TranslateService }]
|
|
41012
|
+
], viewProviders: [provideIcons({ matDeleteOutline })], template: "<div class=\"mt-6 bg-white border border-gray-300 overflow-hidden rounded-lg\">\n <div\n class=\"w-full h-[700px] md:h-[366px] flex md:flex-row flex-col border-b border-gray-300\"\n >\n @let filterState = filterState$ | async;\n\n <div class=\"w-full md:w-5/12 h-[366px] flex flex-col\">\n <gn-ui-date-range-inputs\n [temporalExtent]=\"filterState.temporalExtent\"\n (temporalExtentChange)=\"onTemporalExtentChange($event)\"\n ></gn-ui-date-range-inputs>\n\n <div class=\"mt-auto mb-8 mx-8\" *ngIf=\"isFilterModified$ | async\">\n <gn-ui-button\n id=\"reset-filters-button\"\n type=\"light\"\n (buttonClick)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon name=\"matDeleteOutline\" class=\"ml-2\"></ng-icon>\n </gn-ui-button>\n </div>\n </div>\n\n <div class=\"w-full md:w-7/12 h-[334px] md:h-[366px] flex flex-col\">\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (extentChange)=\"onSpatialExtentChange($event)\"\n (resolvedExtentChange)=\"onResolvedMapExtentChange($event)\"\n class=\"w-full h-full\"\n >\n <div\n class=\"bg-white rounded-xl shadow-xl absolute left-1/2 transform -translate-x-1/2 bottom-0 mb-2.5 px-4 py-2 z-10 max-w-[90%] w-max\"\n >\n <gn-ui-check-toggle\n [value]=\"filterState.isSpatialExtentFilterEnabled\"\n (toggled)=\"onSpatialFilterToggle($event)\"\n [label]=\"'stac.filter.enable' | translate\"\n [color]=\"'primary'\"\n ></gn-ui-check-toggle>\n </div>\n </gn-ui-map-container>\n </div>\n </div>\n <div\n class=\"relative mx-5 my-[30px] min-h-[274px] flex items-center justify-center flex-col\"\n >\n <!-- Keep grid outside ngIf to keep items$ observable alive -->\n <gn-ui-stac-items-result-grid\n [items]=\"items$ | async\"\n ></gn-ui-stac-items-result-grid>\n <div\n *ngIf=\"(items$ | async)?.length > 0; else noResultsOrError\"\n class=\"mt-[20px] mx-auto flex justify-center\"\n >\n <gn-ui-previous-next-buttons\n [listComponent]=\"this\"\n [displayLabels]=\"true\"\n ></gn-ui-previous-next-buttons>\n </div>\n <ng-template #noResultsOrError>\n <gn-ui-popup-alert\n *ngIf=\"error$ | async as error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute left-0 top-0 w-full block\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n <div\n *ngIf=\"(error$ | async) === null\"\n class=\"flex items-center justify-center flex-col h-full gap-[10px]\"\n >\n <h2 class=\"text-center text-xl\" translate>stac.results.noResults</h2>\n <gn-ui-button\n id=\"no-results-button\"\n type=\"secondary\"\n (buttonClick)=\"onResetFilters()\"\n >\n <span translate>stac.filter.reset</span>\n <ng-icon name=\"matDeleteOutline\" class=\"ml-2\"></ng-icon>\n </gn-ui-button>\n </div>\n </ng-template>\n </div>\n</div>\n", styles: [":host{--gn-ui-button-padding: 7px 8px}::ng-deep .ol-overlaycontainer-stopevent{z-index:11!important}\n"] }]
|
|
41013
|
+
}], ctorParameters: () => [{ type: DataService }, { type: MdViewFacade }, { type: MapUtilsService }, { type: i1$1.TranslateService }], propDecorators: { mapContainer: [{
|
|
41014
|
+
type: ViewChild,
|
|
41015
|
+
args: ['mapContainer']
|
|
41016
|
+
}] } });
|
|
40809
41017
|
|
|
40810
41018
|
// expects the replacement key ${name}
|
|
40811
41019
|
const ORGANIZATION_PAGE_URL_TOKEN = new InjectionToken('organization-page-url-token');
|
|
@@ -44078,7 +44286,7 @@ class MultilingualPanelComponent {
|
|
|
44078
44286
|
provideNgIconsConfig({
|
|
44079
44287
|
size: '1.25em',
|
|
44080
44288
|
}),
|
|
44081
|
-
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
44289
|
+
], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n [attr.data-test-lang]=\"lang\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
|
|
44082
44290
|
}
|
|
44083
44291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
|
|
44084
44292
|
type: Component,
|
|
@@ -44100,7 +44308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44100
44308
|
provideNgIconsConfig({
|
|
44101
44309
|
size: '1.25em',
|
|
44102
44310
|
}),
|
|
44103
|
-
], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
|
|
44311
|
+
], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n [attr.data-test-lang]=\"lang\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
|
|
44104
44312
|
}], ctorParameters: () => [{ type: EditorFacade }, { type: i1$b.MatDialog }, { type: i1$1.TranslateService }, { type: RecordsRepositoryInterface }, { type: i1$8.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { record: [{
|
|
44105
44313
|
type: Input
|
|
44106
44314
|
}], actionMenuButtons: [{
|
|
@@ -44627,5 +44835,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44627
44835
|
* Generated bundle index. Do not edit.
|
|
44628
44836
|
*/
|
|
44629
44837
|
|
|
44630
|
-
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, DateRangeInputsComponent, 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, StacItemsResultGridComponent, 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 };
|
|
44838
|
+
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, DateRangeInputsComponent, 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, ReusePresentationForms, 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, StacItemsResultGridComponent, 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, getReusePresentationForm, 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 };
|
|
44631
44839
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|