geonetwork-ui 2.4.0-dev.71a43b38 → 2.4.0-dev.8118addf
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +6 -1
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +12 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +7 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +11 -7
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +143 -60
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +4 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -4
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +9 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +29 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +15 -7
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/translations/de.json +31 -1
- package/esm2022/translations/en.json +31 -1
- package/esm2022/translations/es.json +30 -0
- package/esm2022/translations/fr.json +31 -1
- package/esm2022/translations/it.json +31 -1
- package/esm2022/translations/nl.json +30 -0
- package/esm2022/translations/pt.json +30 -0
- package/fesm2022/geonetwork-ui.mjs +617 -117
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +8 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +2 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +9 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +4 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +5 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +38 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +3 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +7 -6
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +11 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +4 -2
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +1 -0
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +4 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +8 -0
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +20 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +2 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +12 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +2 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +9 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +51 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +15 -8
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +175 -61
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +8 -4
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +2 -3
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +5 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +2 -1
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +17 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +22 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +9 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/src/libs/ui/widgets/src/index.ts +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/tailwind.base.css +2 -1
- package/translations/de.json +31 -1
- package/translations/en.json +31 -1
- package/translations/es.json +30 -0
- package/translations/fr.json +31 -1
- package/translations/it.json +31 -1
- package/translations/nl.json +30 -0
- package/translations/pt.json +30 -0
- package/translations/sk.json +31 -1
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { parseXml, XmlDocument, XmlElement, XmlText } from '@rgrove/parse-xml';
|
|
2
|
+
import GML32 from 'ol/format/GML32';
|
|
3
|
+
import GeoJSON from 'ol/format/GeoJSON';
|
|
4
|
+
import { parse as parse$1 } from 'ol/xml';
|
|
2
5
|
import format from 'date-fns/format';
|
|
3
6
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren,
|
|
7
|
+
import { InjectionToken, Injectable, Optional, Inject, NgModule, SkipSelf, Component, ChangeDetectionStrategy, Input, ViewChild, Directive, HostListener, EventEmitter, Output, TemplateRef, ElementRef, ViewChildren, ViewContainerRef, HostBinding, ContentChild, ContentChildren, Host, Pipe, inject } from '@angular/core';
|
|
5
8
|
import * as i1 from '@angular/common/http';
|
|
6
9
|
import { HttpHeaders, HttpParams, HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } from '@angular/common/http';
|
|
7
10
|
import * as i1$1 from '@ngx-translate/core';
|
|
@@ -23,7 +26,6 @@ import 'ol/Feature';
|
|
|
23
26
|
import { Circle, Fill, Stroke, Style as Style$1 } from 'ol/style';
|
|
24
27
|
import Style, { createDefaultStyle } from 'ol/style/Style';
|
|
25
28
|
import { extend, isEmpty } from 'ol/extent';
|
|
26
|
-
import GeoJSON from 'ol/format/GeoJSON';
|
|
27
29
|
import { transformExtent, fromLonLat } from 'ol/proj';
|
|
28
30
|
import ImageWMS from 'ol/source/ImageWMS';
|
|
29
31
|
import TileWMS from 'ol/source/TileWMS';
|
|
@@ -48,7 +50,7 @@ import { MVT, WFS, GeoJSON as GeoJSON$1 } from 'ol/format';
|
|
|
48
50
|
import VectorTileLayer from 'ol/layer/VectorTile';
|
|
49
51
|
import OGCMapTile from 'ol/source/OGCMapTile.js';
|
|
50
52
|
import ImageLayer from 'ol/layer/Image';
|
|
51
|
-
import * as i2$
|
|
53
|
+
import * as i2$6 from '@angular/material/tabs';
|
|
52
54
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
53
55
|
import * as i2$2 from '@angular/forms';
|
|
54
56
|
import { FormsModule, ReactiveFormsModule, UntypedFormControl, FormArray, FormControl } from '@angular/forms';
|
|
@@ -60,6 +62,7 @@ import * as i5 from 'ngx-chips';
|
|
|
60
62
|
import { TagInputModule } from 'ngx-chips';
|
|
61
63
|
import * as i1$4 from '@angular/material/progress-spinner';
|
|
62
64
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
65
|
+
import tippy from 'tippy.js';
|
|
63
66
|
import * as i3 from '@angular/material/core';
|
|
64
67
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
65
68
|
import * as i1$5 from '@angular/material/checkbox';
|
|
@@ -81,9 +84,10 @@ import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/c
|
|
|
81
84
|
import EmblaCarousel from 'embla-carousel';
|
|
82
85
|
import { formatDistance } from 'date-fns';
|
|
83
86
|
import { enUS, sk, pt as pt$1, nl as nl$1, it as it$1, es as es$1, de as de$1, fr as fr$1 } from 'date-fns/locale';
|
|
87
|
+
import * as i2$5 from '@angular/material/menu';
|
|
88
|
+
import { MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
|
|
84
89
|
import * as i1$8 from '@ngrx/effects';
|
|
85
90
|
import { createEffect, ofType, EffectsModule, Actions } from '@ngrx/effects';
|
|
86
|
-
import tippy from 'tippy.js';
|
|
87
91
|
import { valid as valid$1 } from 'geojson-validation';
|
|
88
92
|
import { Polygon } from 'ol/geom';
|
|
89
93
|
import { queryDataGouvFr, queryGeonames, queryGeoadmin } from '@geospatial-sdk/geocoding';
|
|
@@ -91,7 +95,7 @@ import { trigger, transition, animate, keyframes, style } from '@angular/animati
|
|
|
91
95
|
import { Chart, BarController, BarElement, CategoryScale, LinearScale, LineController, LineElement, PointElement, PieController, ArcElement, ScatterController, Tooltip, Colors, Legend } from 'chart.js';
|
|
92
96
|
import * as i4 from '@angular/cdk/scrolling';
|
|
93
97
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
94
|
-
import * as i2$
|
|
98
|
+
import * as i2$7 from '@angular/material/sort';
|
|
95
99
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
96
100
|
import * as i1$9 from '@angular/material/table';
|
|
97
101
|
import { MatTableModule } from '@angular/material/table';
|
|
@@ -269,6 +273,9 @@ function allChildrenElement(element) {
|
|
|
269
273
|
...element.children.filter((el) => el instanceof XmlElement),
|
|
270
274
|
];
|
|
271
275
|
}
|
|
276
|
+
function firstChildElement(element) {
|
|
277
|
+
return allChildrenElement(element)[0] ?? null;
|
|
278
|
+
}
|
|
272
279
|
/**
|
|
273
280
|
* Will return all matching elements nested according to the given
|
|
274
281
|
* names (similar to a path), starting form the input element;
|
|
@@ -427,10 +434,12 @@ function getTreeRoot(element) {
|
|
|
427
434
|
}
|
|
428
435
|
// stays on the parent element
|
|
429
436
|
// if the given elements are part of a subtree, will add the root of subtree
|
|
437
|
+
// will filter out falsy elements
|
|
430
438
|
function appendChildren(...childrenFns) {
|
|
431
439
|
return (element) => {
|
|
432
440
|
if (!element)
|
|
433
441
|
return null;
|
|
442
|
+
childrenFns = childrenFns.filter((fn) => fn);
|
|
434
443
|
element.children.push(...childrenFns.map((fn) => fn()).map(getTreeRoot));
|
|
435
444
|
element.children.forEach((el) => (el.parent = element));
|
|
436
445
|
return element;
|
|
@@ -559,6 +568,33 @@ function matchMimeType(format) {
|
|
|
559
568
|
return format || null;
|
|
560
569
|
}
|
|
561
570
|
|
|
571
|
+
function readGeometry(el) {
|
|
572
|
+
const xmlDoc = createDocument(el);
|
|
573
|
+
xmlDoc.root.attributes['xmlns'] = 'http://www.opengis.net/gml/3.2';
|
|
574
|
+
const gmlString = xmlToString(xmlDoc);
|
|
575
|
+
const doc = parse$1(gmlString);
|
|
576
|
+
// we need an intermediate node to be able to parse the GML
|
|
577
|
+
const node = document.createElement('pre');
|
|
578
|
+
node.appendChild(doc.documentElement);
|
|
579
|
+
const gml32Format = new GML32();
|
|
580
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
581
|
+
// @ts-ignore
|
|
582
|
+
const geometry = gml32Format.readGeometryFromNode(node);
|
|
583
|
+
const geojsonFormat = new GeoJSON();
|
|
584
|
+
return geojsonFormat.writeGeometryObject(geometry);
|
|
585
|
+
}
|
|
586
|
+
function writeGeometry(geometryObject) {
|
|
587
|
+
const geojsonFormat = new GeoJSON();
|
|
588
|
+
const geometry = geojsonFormat.readGeometry(geometryObject);
|
|
589
|
+
const gml32Format = new GML32();
|
|
590
|
+
const node = gml32Format.writeGeometryNode(geometry);
|
|
591
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
592
|
+
// @ts-ignore
|
|
593
|
+
const element = node.firstElementChild;
|
|
594
|
+
const gmlString = new XMLSerializer().serializeToString(element);
|
|
595
|
+
return getRootElement(parseXmlString(gmlString));
|
|
596
|
+
}
|
|
597
|
+
|
|
562
598
|
/**
|
|
563
599
|
* Parts are [firstName, lastName]
|
|
564
600
|
* Second part will be null if no separation could be done
|
|
@@ -727,6 +763,9 @@ function extractCharacterString() {
|
|
|
727
763
|
function extractDateTime() {
|
|
728
764
|
return pipe(fallback(findChildElement('gco:DateTime', false), findChildElement('gco:Date', false)), readText(), map((dateStr) => (dateStr ? new Date(dateStr) : null)));
|
|
729
765
|
}
|
|
766
|
+
function extractDecimal() {
|
|
767
|
+
return pipe(findChildElement('gco:Decimal', false), readText(), map((numberStr) => (numberStr ? Number(numberStr) : null)));
|
|
768
|
+
}
|
|
730
769
|
function extractUrl() {
|
|
731
770
|
const getUrl = pipe(findChildElement('gmd:URL', false), readText());
|
|
732
771
|
const getCharacterString = pipe(findChildElement('gco:CharacterString', false), readText());
|
|
@@ -1084,6 +1123,30 @@ function readTemporalExtents(rootEl) {
|
|
|
1084
1123
|
}
|
|
1085
1124
|
}))(rootEl);
|
|
1086
1125
|
}
|
|
1126
|
+
function readSpatialExtents(rootEl) {
|
|
1127
|
+
const extractGeometry = (rootEl) => {
|
|
1128
|
+
if (!rootEl)
|
|
1129
|
+
return null;
|
|
1130
|
+
return pipe(findChildElement('gmd:polygon', false), firstChildElement, map((el) => readGeometry(el)))(rootEl);
|
|
1131
|
+
};
|
|
1132
|
+
const extractBBox = (rootEl) => {
|
|
1133
|
+
if (!rootEl)
|
|
1134
|
+
return null;
|
|
1135
|
+
return pipe(combine(pipe(findChildElement('gmd:westBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:southBoundLatitude'), extractDecimal()), pipe(findChildElement('gmd:eastBoundLongitude'), extractDecimal()), pipe(findChildElement('gmd:northBoundLatitude'), extractDecimal())))(rootEl);
|
|
1136
|
+
};
|
|
1137
|
+
const extractDescription = (rootEl) => {
|
|
1138
|
+
if (!rootEl)
|
|
1139
|
+
return null;
|
|
1140
|
+
return pipe(findNestedElement('gmd:geographicIdentifier', 'gmd:MD_Identifier', 'gmd:code'), extractCharacterString())(rootEl);
|
|
1141
|
+
};
|
|
1142
|
+
return pipe(findIdentification(), findNestedElements('gmd:extent', 'gmd:EX_Extent', 'gmd:geographicElement'), mapArray(combine(pipe(findChildElement('gmd:EX_BoundingPolygon'), extractGeometry), pipe(findChildElement('gmd:EX_GeographicBoundingBox'), extractBBox), pipe(findChildElement('gmd:EX_GeographicDescription'), extractDescription))), mapArray(([geometry, bbox, description]) => {
|
|
1143
|
+
return {
|
|
1144
|
+
...(geometry && { geometry }),
|
|
1145
|
+
...(bbox && { bbox }),
|
|
1146
|
+
...(description && { description }),
|
|
1147
|
+
};
|
|
1148
|
+
}))(rootEl);
|
|
1149
|
+
}
|
|
1087
1150
|
|
|
1088
1151
|
function writeCharacterString(text) {
|
|
1089
1152
|
return tap(pipe(findChildOrCreate('gco:CharacterString'), setTextContent(text)));
|
|
@@ -1100,6 +1163,9 @@ function writeDateTime(date) {
|
|
|
1100
1163
|
function writeDate(date) {
|
|
1101
1164
|
return tap(pipe(findChildOrCreate('gco:Date'), setTextContent(format(date, 'yyyy-MM-dd'))));
|
|
1102
1165
|
}
|
|
1166
|
+
function writeDecimal(decimal) {
|
|
1167
|
+
return tap(pipe(findChildOrCreate('gco:Decimal'), setTextContent(decimal.toString())));
|
|
1168
|
+
}
|
|
1103
1169
|
function getProgressCode(status) {
|
|
1104
1170
|
switch (status) {
|
|
1105
1171
|
case 'completed':
|
|
@@ -1493,6 +1559,24 @@ function writeTemporalExtents(record, rootEl) {
|
|
|
1493
1559
|
? setTextContent(format(extent.start, 'yyyy-MM-dd'))
|
|
1494
1560
|
: addAttribute('indeterminatePosition', 'unknown'))))))))))(rootEl);
|
|
1495
1561
|
}
|
|
1562
|
+
function writeSpatialExtents(record, rootEl) {
|
|
1563
|
+
const appendBoundingPolygon = (geometry) => {
|
|
1564
|
+
if (!geometry)
|
|
1565
|
+
return null;
|
|
1566
|
+
return pipe(createElement('gmd:EX_BoundingPolygon'), appendChildren(pipe(createElement('gmd:polygon'), appendChildren(() => writeGeometry(geometry)))));
|
|
1567
|
+
};
|
|
1568
|
+
const appendGeographicBoundingBox = (bbox) => {
|
|
1569
|
+
if (!bbox)
|
|
1570
|
+
return null;
|
|
1571
|
+
return pipe(createElement('gmd:EX_GeographicBoundingBox'), appendChildren(pipe(createElement('gmd:westBoundLongitude'), writeDecimal(bbox[0])), pipe(createElement('gmd:eastBoundLongitude'), writeDecimal(bbox[2])), pipe(createElement('gmd:southBoundLatitude'), writeDecimal(bbox[1])), pipe(createElement('gmd:northBoundLatitude'), writeDecimal(bbox[3]))));
|
|
1572
|
+
};
|
|
1573
|
+
const appendGeographicDescription = (description) => {
|
|
1574
|
+
if (!description)
|
|
1575
|
+
return null;
|
|
1576
|
+
return pipe(createElement('gmd:EX_GeographicDescription'), createChild('gmd:geographicIdentifier'), createChild('gmd:MD_Identifier'), createChild('gmd:code'), writeCharacterString(description));
|
|
1577
|
+
};
|
|
1578
|
+
pipe(findOrCreateIdentification(), findNestedChildOrCreate('gmd:extent', 'gmd:EX_Extent'), removeChildrenByName('gmd:geographicElement'), appendChildren(...record.spatialExtents.map((extent) => pipe(createElement('gmd:geographicElement'), appendChildren(appendBoundingPolygon(extent.geometry), appendGeographicBoundingBox(extent.bbox), appendGeographicDescription(extent.description))))))(rootEl);
|
|
1579
|
+
}
|
|
1496
1580
|
|
|
1497
1581
|
class Iso19139Converter extends BaseConverter {
|
|
1498
1582
|
constructor() {
|
|
@@ -1525,8 +1609,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1525
1609
|
distributions: readDistributions$1,
|
|
1526
1610
|
onlineResources: readOnlineResources,
|
|
1527
1611
|
temporalExtents: readTemporalExtents,
|
|
1612
|
+
spatialExtents: readSpatialExtents,
|
|
1528
1613
|
// TODO
|
|
1529
|
-
spatialExtents: () => [],
|
|
1530
1614
|
extras: () => undefined,
|
|
1531
1615
|
landingPage: () => undefined,
|
|
1532
1616
|
languages: () => [],
|
|
@@ -1559,8 +1643,8 @@ class Iso19139Converter extends BaseConverter {
|
|
|
1559
1643
|
distributions: writeDistributions$1,
|
|
1560
1644
|
onlineResources: writeOnlineResources,
|
|
1561
1645
|
temporalExtents: writeTemporalExtents,
|
|
1646
|
+
spatialExtents: () => writeSpatialExtents,
|
|
1562
1647
|
// TODO
|
|
1563
|
-
spatialExtents: () => undefined,
|
|
1564
1648
|
extras: () => undefined,
|
|
1565
1649
|
landingPage: () => undefined,
|
|
1566
1650
|
languages: () => undefined,
|
|
@@ -2176,6 +2260,7 @@ const mapKeywords = (thesauri, language) => {
|
|
|
2176
2260
|
keywords.push({
|
|
2177
2261
|
label: selectTranslatedValue(keyword, language),
|
|
2178
2262
|
type: getKeywordTypeFromKeywordTypeCode(rawThesaurus.theme),
|
|
2263
|
+
...(keyword.link && { key: keyword.link }),
|
|
2179
2264
|
...(thesaurus && { thesaurus }),
|
|
2180
2265
|
});
|
|
2181
2266
|
}
|
|
@@ -8641,11 +8726,7 @@ class RecordsApiService {
|
|
|
8641
8726
|
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
8642
8727
|
}
|
|
8643
8728
|
// to determine the Content-Type header
|
|
8644
|
-
const consumes = [
|
|
8645
|
-
'application/xml',
|
|
8646
|
-
'application/json',
|
|
8647
|
-
'application/x-www-form-urlencoded',
|
|
8648
|
-
];
|
|
8729
|
+
const consumes = ['application/xml'];
|
|
8649
8730
|
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
8650
8731
|
if (httpContentTypeSelected !== undefined) {
|
|
8651
8732
|
headers = headers.set('Content-Type', httpContentTypeSelected);
|
|
@@ -17472,6 +17553,18 @@ var de = {
|
|
|
17472
17553
|
"downloads.format.unknown": "unbekannt",
|
|
17473
17554
|
"downloads.wfs.featuretype.not.found": "Der Layer wurde nicht gefunden",
|
|
17474
17555
|
dropFile: dropFile$6,
|
|
17556
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
17557
|
+
"editor.record.form.bottomButtons.next": "",
|
|
17558
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
17559
|
+
"editor.record.form.field.abstract": "",
|
|
17560
|
+
"editor.record.form.field.keywords": "Schlagwörter",
|
|
17561
|
+
"editor.record.form.field.license": "Lizenz",
|
|
17562
|
+
"editor.record.form.field.recordUpdated": "",
|
|
17563
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
17564
|
+
"editor.record.form.field.temporalExtents": "",
|
|
17565
|
+
"editor.record.form.field.title": "",
|
|
17566
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
17567
|
+
"editor.record.form.field.updateFrequency": "",
|
|
17475
17568
|
"editor.record.form.abstract": "Kurzbeschreibung",
|
|
17476
17569
|
"editor.record.form.keywords": "Schlüsselwörter",
|
|
17477
17570
|
"editor.record.form.license": "Lizenz",
|
|
@@ -17484,6 +17577,22 @@ var de = {
|
|
|
17484
17577
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17485
17578
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17486
17579
|
"editor.record.form.license.unknown": "Unbekannt oder nicht vorhanden",
|
|
17580
|
+
"editor.record.form.page.accessAndContact": "",
|
|
17581
|
+
"editor.record.form.page.description": "",
|
|
17582
|
+
"editor.record.form.page.ressources": "",
|
|
17583
|
+
"editor.record.form.section.about.description": "",
|
|
17584
|
+
"editor.record.form.section.about.label": "",
|
|
17585
|
+
"editor.record.form.section.annexes.label": "",
|
|
17586
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
17587
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
17588
|
+
"editor.record.form.section.classification.description": "",
|
|
17589
|
+
"editor.record.form.section.classification.label": "",
|
|
17590
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
17591
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
17592
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
17593
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
17594
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
17595
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
17487
17596
|
"editor.record.form.metadata.title": "Metadaten-Titel",
|
|
17488
17597
|
"editor.record.form.record.updated": "Datensatz zuletzt aktualisiert",
|
|
17489
17598
|
"editor.record.form.resourceUpdated": "Letztes Aktualisierungsdatum",
|
|
@@ -17508,6 +17617,7 @@ var de = {
|
|
|
17508
17617
|
"editor.record.saveStatus.draftWithChangesPending": "Als Entwurf gespeichert - Änderungen stehen aus",
|
|
17509
17618
|
"editor.record.saveStatus.recordUpToDate": "Datensatz ist auf dem neuesten Stand",
|
|
17510
17619
|
"editor.record.upToDate": "Dieser Datensatz ist auf dem neuesten Stand",
|
|
17620
|
+
"editor.sidebar.menu.editor": "",
|
|
17511
17621
|
"externalviewer.dataset.unnamed": "Datensatz aus dem Datahub",
|
|
17512
17622
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17513
17623
|
"facets.block.title.availableInServices": "Verfügbar für",
|
|
@@ -17585,6 +17695,7 @@ var de = {
|
|
|
17585
17695
|
"pagination.pageOf": "von",
|
|
17586
17696
|
previous: previous$6,
|
|
17587
17697
|
"record.action.download": "Herunterladen",
|
|
17698
|
+
"record.action.duplicate": "",
|
|
17588
17699
|
"record.action.view": "Anzeigen",
|
|
17589
17700
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
17590
17701
|
"record.metadata.about": "Beschreibung",
|
|
@@ -17715,7 +17826,7 @@ var de = {
|
|
|
17715
17826
|
"search.filters.resourceType": "Ressourcentyp",
|
|
17716
17827
|
"search.filters.standard": "Standard",
|
|
17717
17828
|
"search.filters.title": "Ergebnisse filtern",
|
|
17718
|
-
"search.filters.topic": "
|
|
17829
|
+
"search.filters.topic": "Themen",
|
|
17719
17830
|
"search.filters.useSpatialFilter": "Zuerst Datensätze im Interessenbereich anzeigen",
|
|
17720
17831
|
"search.filters.useSpatialFilterHelp": "Wenn diese Option aktiviert ist, werden Datensätze im Bereich des Katalogs zuerst angezeigt. Datensätze außerhalb dieses Bereichs werden nicht angezeigt.",
|
|
17721
17832
|
"share.tab.permalink": "Teilen",
|
|
@@ -17907,6 +18018,18 @@ var en = {
|
|
|
17907
18018
|
"downloads.format.unknown": "unknown",
|
|
17908
18019
|
"downloads.wfs.featuretype.not.found": "The layer was not found",
|
|
17909
18020
|
dropFile: dropFile$5,
|
|
18021
|
+
"editor.record.form.bottomButtons.comeBackLater": "Come back later",
|
|
18022
|
+
"editor.record.form.bottomButtons.next": "Next",
|
|
18023
|
+
"editor.record.form.bottomButtons.previous": "Previous",
|
|
18024
|
+
"editor.record.form.field.abstract": "Abstract",
|
|
18025
|
+
"editor.record.form.field.keywords": "Keywords",
|
|
18026
|
+
"editor.record.form.field.license": "License",
|
|
18027
|
+
"editor.record.form.field.recordUpdated": "Record Updated",
|
|
18028
|
+
"editor.record.form.field.resourceUpdated": "Resource Updated",
|
|
18029
|
+
"editor.record.form.field.temporalExtents": "Temporal extents",
|
|
18030
|
+
"editor.record.form.field.title": "Metadata title",
|
|
18031
|
+
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
18032
|
+
"editor.record.form.field.updateFrequency": "Update frequency",
|
|
17910
18033
|
"editor.record.form.abstract": "Abstract",
|
|
17911
18034
|
"editor.record.form.keywords": "Keywords",
|
|
17912
18035
|
"editor.record.form.license": "License",
|
|
@@ -17919,6 +18042,22 @@ var en = {
|
|
|
17919
18042
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
17920
18043
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
17921
18044
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
18045
|
+
"editor.record.form.page.accessAndContact": "Access and contact",
|
|
18046
|
+
"editor.record.form.page.description": "Resource description",
|
|
18047
|
+
"editor.record.form.page.ressources": "Resources",
|
|
18048
|
+
"editor.record.form.section.about.description": "This section describes the resource.",
|
|
18049
|
+
"editor.record.form.section.about.label": "About the resource",
|
|
18050
|
+
"editor.record.form.section.annexes.label": "Annexes",
|
|
18051
|
+
"editor.record.form.section.associatedResources.description": "Drop files here to associate them with the resource.",
|
|
18052
|
+
"editor.record.form.section.associatedResources.label": "Associated resources",
|
|
18053
|
+
"editor.record.form.section.classification.description": "The classification has an impact on the access to the data.",
|
|
18054
|
+
"editor.record.form.section.classification.label": "Classification",
|
|
18055
|
+
"editor.record.form.section.dataManagers.description": "The data managers are responsible for the data.",
|
|
18056
|
+
"editor.record.form.section.dataManagers.label": "Data managers",
|
|
18057
|
+
"editor.record.form.section.dataPointOfContact.description": "This information concerns the metadata.",
|
|
18058
|
+
"editor.record.form.section.dataPointOfContact.label": "Data point of contact",
|
|
18059
|
+
"editor.record.form.section.geographicalCoverage.label": "Geographical coverage",
|
|
18060
|
+
"editor.record.form.section.useAndAccessConditions.label": "Use and access conditions",
|
|
17922
18061
|
"editor.record.form.metadata.title": "Metadata title",
|
|
17923
18062
|
"editor.record.form.record.updated": "Record updated",
|
|
17924
18063
|
"editor.record.form.resourceUpdated": "Last update date",
|
|
@@ -17943,6 +18082,7 @@ var en = {
|
|
|
17943
18082
|
"editor.record.saveStatus.draftWithChangesPending": "Saved as draft - changes are pending",
|
|
17944
18083
|
"editor.record.saveStatus.recordUpToDate": "Record is up to date",
|
|
17945
18084
|
"editor.record.upToDate": "This record is up to date",
|
|
18085
|
+
"editor.sidebar.menu.editor": "Editor",
|
|
17946
18086
|
"externalviewer.dataset.unnamed": "Datahub layer",
|
|
17947
18087
|
"facets.block.title.OrgForResource": "Organisation",
|
|
17948
18088
|
"facets.block.title.availableInServices": "Available for",
|
|
@@ -18020,6 +18160,7 @@ var en = {
|
|
|
18020
18160
|
"pagination.pageOf": "of",
|
|
18021
18161
|
previous: previous$5,
|
|
18022
18162
|
"record.action.download": "Download",
|
|
18163
|
+
"record.action.duplicate": "Duplicate",
|
|
18023
18164
|
"record.action.view": "View",
|
|
18024
18165
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
18025
18166
|
"record.metadata.about": "Description",
|
|
@@ -18150,7 +18291,7 @@ var en = {
|
|
|
18150
18291
|
"search.filters.resourceType": "Resource type",
|
|
18151
18292
|
"search.filters.standard": "Standard",
|
|
18152
18293
|
"search.filters.title": "Filter your results",
|
|
18153
|
-
"search.filters.topic": "
|
|
18294
|
+
"search.filters.topic": "Topics",
|
|
18154
18295
|
"search.filters.useSpatialFilter": "Show records in the area of interest first",
|
|
18155
18296
|
"search.filters.useSpatialFilterHelp": "When this is enabled, records situated in the catalog's area of interest are shown first; records outside of this area will not show up.",
|
|
18156
18297
|
"share.tab.permalink": "Share",
|
|
@@ -18342,6 +18483,18 @@ var es = {
|
|
|
18342
18483
|
"downloads.format.unknown": "",
|
|
18343
18484
|
"downloads.wfs.featuretype.not.found": "",
|
|
18344
18485
|
dropFile: dropFile$4,
|
|
18486
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
18487
|
+
"editor.record.form.bottomButtons.next": "",
|
|
18488
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
18489
|
+
"editor.record.form.field.abstract": "",
|
|
18490
|
+
"editor.record.form.field.keywords": "",
|
|
18491
|
+
"editor.record.form.field.license": "",
|
|
18492
|
+
"editor.record.form.field.recordUpdated": "",
|
|
18493
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
18494
|
+
"editor.record.form.field.temporalExtents": "",
|
|
18495
|
+
"editor.record.form.field.title": "",
|
|
18496
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
18497
|
+
"editor.record.form.field.updateFrequency": "",
|
|
18345
18498
|
"editor.record.form.abstract": "",
|
|
18346
18499
|
"editor.record.form.keywords": "",
|
|
18347
18500
|
"editor.record.form.license": "",
|
|
@@ -18354,6 +18507,22 @@ var es = {
|
|
|
18354
18507
|
"editor.record.form.license.odc-by": "",
|
|
18355
18508
|
"editor.record.form.license.pddl": "",
|
|
18356
18509
|
"editor.record.form.license.unknown": "",
|
|
18510
|
+
"editor.record.form.page.accessAndContact": "",
|
|
18511
|
+
"editor.record.form.page.description": "",
|
|
18512
|
+
"editor.record.form.page.ressources": "",
|
|
18513
|
+
"editor.record.form.section.about.description": "",
|
|
18514
|
+
"editor.record.form.section.about.label": "",
|
|
18515
|
+
"editor.record.form.section.annexes.label": "",
|
|
18516
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
18517
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
18518
|
+
"editor.record.form.section.classification.description": "",
|
|
18519
|
+
"editor.record.form.section.classification.label": "",
|
|
18520
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
18521
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
18522
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
18523
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
18524
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
18525
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
18357
18526
|
"editor.record.form.metadata.title": "",
|
|
18358
18527
|
"editor.record.form.record.updated": "",
|
|
18359
18528
|
"editor.record.form.resourceUpdated": "",
|
|
@@ -18378,6 +18547,7 @@ var es = {
|
|
|
18378
18547
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
18379
18548
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
18380
18549
|
"editor.record.upToDate": "",
|
|
18550
|
+
"editor.sidebar.menu.editor": "",
|
|
18381
18551
|
"externalviewer.dataset.unnamed": "",
|
|
18382
18552
|
"facets.block.title.OrgForResource": "",
|
|
18383
18553
|
"facets.block.title.availableInServices": "",
|
|
@@ -18455,6 +18625,7 @@ var es = {
|
|
|
18455
18625
|
"pagination.pageOf": "",
|
|
18456
18626
|
previous: previous$4,
|
|
18457
18627
|
"record.action.download": "",
|
|
18628
|
+
"record.action.duplicate": "",
|
|
18458
18629
|
"record.action.view": "",
|
|
18459
18630
|
"record.externalViewer.open": "",
|
|
18460
18631
|
"record.metadata.about": "",
|
|
@@ -18777,6 +18948,18 @@ var fr = {
|
|
|
18777
18948
|
"downloads.format.unknown": "inconnu",
|
|
18778
18949
|
"downloads.wfs.featuretype.not.found": "La couche n'a pas été retrouvée",
|
|
18779
18950
|
dropFile: dropFile$3,
|
|
18951
|
+
"editor.record.form.bottomButtons.comeBackLater": "Revenir plus tard",
|
|
18952
|
+
"editor.record.form.bottomButtons.next": "Suivant",
|
|
18953
|
+
"editor.record.form.bottomButtons.previous": "Précédent",
|
|
18954
|
+
"editor.record.form.field.abstract": "Résumé",
|
|
18955
|
+
"editor.record.form.field.keywords": "Mots-clés",
|
|
18956
|
+
"editor.record.form.field.license": "Licence",
|
|
18957
|
+
"editor.record.form.field.recordUpdated": "Date de dernière révision",
|
|
18958
|
+
"editor.record.form.field.resourceUpdated": "Date de dernière révision",
|
|
18959
|
+
"editor.record.form.field.temporalExtents": "Étendue temporelle",
|
|
18960
|
+
"editor.record.form.field.title": "Titre",
|
|
18961
|
+
"editor.record.form.field.uniqueIdentifier": "Identifiant unique",
|
|
18962
|
+
"editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
|
|
18780
18963
|
"editor.record.form.abstract": "",
|
|
18781
18964
|
"editor.record.form.keywords": "",
|
|
18782
18965
|
"editor.record.form.license": "Licence",
|
|
@@ -18789,6 +18972,22 @@ var fr = {
|
|
|
18789
18972
|
"editor.record.form.license.odc-by": "",
|
|
18790
18973
|
"editor.record.form.license.pddl": "",
|
|
18791
18974
|
"editor.record.form.license.unknown": "Non-reconnue ou absente",
|
|
18975
|
+
"editor.record.form.page.accessAndContact": "Acces et contact",
|
|
18976
|
+
"editor.record.form.page.description": "Description de la ressource",
|
|
18977
|
+
"editor.record.form.page.ressources": "Ressources",
|
|
18978
|
+
"editor.record.form.section.about.description": "Ces informations concernent la donnée.",
|
|
18979
|
+
"editor.record.form.section.about.label": "A propos de la ressource",
|
|
18980
|
+
"editor.record.form.section.annexes.label": "Annexes",
|
|
18981
|
+
"editor.record.form.section.associatedResources.description": "Déposez les jeux de données associées à cette fiche de métadonnée.",
|
|
18982
|
+
"editor.record.form.section.associatedResources.label": "Ressources associees",
|
|
18983
|
+
"editor.record.form.section.classification.description": "La classification a un impact sur la recherche du jeux de données.",
|
|
18984
|
+
"editor.record.form.section.classification.label": "Classification",
|
|
18985
|
+
"editor.record.form.section.dataManagers.description": "Cette information concerne la donnée.",
|
|
18986
|
+
"editor.record.form.section.dataManagers.label": "Responsables de la donnee",
|
|
18987
|
+
"editor.record.form.section.dataPointOfContact.description": "Cette information concerne la fiche de métadonnée.",
|
|
18988
|
+
"editor.record.form.section.dataPointOfContact.label": "Point de contact de la metadonee",
|
|
18989
|
+
"editor.record.form.section.geographicalCoverage.label": "Couverture geographique",
|
|
18990
|
+
"editor.record.form.section.useAndAccessConditions.label": "Conditions d'acces et usage",
|
|
18792
18991
|
"editor.record.form.metadata.title": "",
|
|
18793
18992
|
"editor.record.form.record.updated": "",
|
|
18794
18993
|
"editor.record.form.resourceUpdated": "Date de dernière révision",
|
|
@@ -18813,6 +19012,7 @@ var fr = {
|
|
|
18813
19012
|
"editor.record.saveStatus.draftWithChangesPending": "Brouillon enregistré - modifications en cours",
|
|
18814
19013
|
"editor.record.saveStatus.recordUpToDate": "La fiche publiée est à jour",
|
|
18815
19014
|
"editor.record.upToDate": "",
|
|
19015
|
+
"editor.sidebar.menu.editor": "",
|
|
18816
19016
|
"externalviewer.dataset.unnamed": "Couche du datahub",
|
|
18817
19017
|
"facets.block.title.OrgForResource": "Organisation",
|
|
18818
19018
|
"facets.block.title.availableInServices": "Disponible pour",
|
|
@@ -18890,6 +19090,7 @@ var fr = {
|
|
|
18890
19090
|
"pagination.pageOf": "sur",
|
|
18891
19091
|
previous: previous$3,
|
|
18892
19092
|
"record.action.download": "Télécharger",
|
|
19093
|
+
"record.action.duplicate": "Dupliquer",
|
|
18893
19094
|
"record.action.view": "Voir",
|
|
18894
19095
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
18895
19096
|
"record.metadata.about": "Description",
|
|
@@ -19020,7 +19221,7 @@ var fr = {
|
|
|
19020
19221
|
"search.filters.resourceType": "Type de ressource",
|
|
19021
19222
|
"search.filters.standard": "Standard",
|
|
19022
19223
|
"search.filters.title": "Affiner votre recherche",
|
|
19023
|
-
"search.filters.topic": "
|
|
19224
|
+
"search.filters.topic": "Thèmes",
|
|
19024
19225
|
"search.filters.useSpatialFilter": "Mettre en avant les résultats sur la zone d'intérêt",
|
|
19025
19226
|
"search.filters.useSpatialFilterHelp": "Si cette option est activée, les fiches portant sur la zone d'intérêt du catalogue seront montrées en premier; les fiches en dehors de cette zone n'apparaîtront pas dans les résultats.",
|
|
19026
19227
|
"share.tab.permalink": "Partager",
|
|
@@ -19212,6 +19413,18 @@ var it = {
|
|
|
19212
19413
|
"downloads.format.unknown": "sconosciuto",
|
|
19213
19414
|
"downloads.wfs.featuretype.not.found": "Il layer non è stato trovato",
|
|
19214
19415
|
dropFile: dropFile$2,
|
|
19416
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
19417
|
+
"editor.record.form.bottomButtons.next": "",
|
|
19418
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
19419
|
+
"editor.record.form.field.abstract": "",
|
|
19420
|
+
"editor.record.form.field.keywords": "",
|
|
19421
|
+
"editor.record.form.field.license": "Licenza",
|
|
19422
|
+
"editor.record.form.field.recordUpdated": "",
|
|
19423
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
19424
|
+
"editor.record.form.field.temporalExtents": "",
|
|
19425
|
+
"editor.record.form.field.title": "",
|
|
19426
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
19427
|
+
"editor.record.form.field.updateFrequency": "",
|
|
19215
19428
|
"editor.record.form.abstract": "",
|
|
19216
19429
|
"editor.record.form.keywords": "",
|
|
19217
19430
|
"editor.record.form.license": "Licenza",
|
|
@@ -19224,6 +19437,22 @@ var it = {
|
|
|
19224
19437
|
"editor.record.form.license.odc-by": "",
|
|
19225
19438
|
"editor.record.form.license.pddl": "",
|
|
19226
19439
|
"editor.record.form.license.unknown": "Non riconosciuta o assente",
|
|
19440
|
+
"editor.record.form.page.accessAndContact": "",
|
|
19441
|
+
"editor.record.form.page.description": "",
|
|
19442
|
+
"editor.record.form.page.ressources": "",
|
|
19443
|
+
"editor.record.form.section.about.description": "",
|
|
19444
|
+
"editor.record.form.section.about.label": "",
|
|
19445
|
+
"editor.record.form.section.annexes.label": "",
|
|
19446
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
19447
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
19448
|
+
"editor.record.form.section.classification.description": "",
|
|
19449
|
+
"editor.record.form.section.classification.label": "",
|
|
19450
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
19451
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
19452
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
19453
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
19454
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
19455
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
19227
19456
|
"editor.record.form.metadata.title": "",
|
|
19228
19457
|
"editor.record.form.record.updated": "",
|
|
19229
19458
|
"editor.record.form.resourceUpdated": "",
|
|
@@ -19248,6 +19477,7 @@ var it = {
|
|
|
19248
19477
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
19249
19478
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
19250
19479
|
"editor.record.upToDate": "",
|
|
19480
|
+
"editor.sidebar.menu.editor": "",
|
|
19251
19481
|
"externalviewer.dataset.unnamed": "Layer del datahub",
|
|
19252
19482
|
"facets.block.title.OrgForResource": "Organizzazione",
|
|
19253
19483
|
"facets.block.title.availableInServices": "Disponibile per",
|
|
@@ -19325,6 +19555,7 @@ var it = {
|
|
|
19325
19555
|
"pagination.pageOf": "di",
|
|
19326
19556
|
previous: previous$2,
|
|
19327
19557
|
"record.action.download": "Scarica",
|
|
19558
|
+
"record.action.duplicate": "",
|
|
19328
19559
|
"record.action.view": "Visualizza",
|
|
19329
19560
|
"record.externalViewer.open": "Apri nell'visualizzatore esterno",
|
|
19330
19561
|
"record.metadata.about": "Descrizione",
|
|
@@ -19455,7 +19686,7 @@ var it = {
|
|
|
19455
19686
|
"search.filters.resourceType": "Tipo di risorsa",
|
|
19456
19687
|
"search.filters.standard": "Standard",
|
|
19457
19688
|
"search.filters.title": "Affina la sua ricerca",
|
|
19458
|
-
"search.filters.topic": "
|
|
19689
|
+
"search.filters.topic": "Argomenti",
|
|
19459
19690
|
"search.filters.useSpatialFilter": "Evidenzia i risultati nell'area di interesse",
|
|
19460
19691
|
"search.filters.useSpatialFilterHelp": "Se attivata, le schede relative all'area di interesse del catalogo saranno mostrate per prime; le schede al di fuori di questa area non appariranno nei risultati.",
|
|
19461
19692
|
"share.tab.permalink": "Condividere",
|
|
@@ -19647,6 +19878,18 @@ var nl = {
|
|
|
19647
19878
|
"downloads.format.unknown": "",
|
|
19648
19879
|
"downloads.wfs.featuretype.not.found": "",
|
|
19649
19880
|
dropFile: dropFile$1,
|
|
19881
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
19882
|
+
"editor.record.form.bottomButtons.next": "",
|
|
19883
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
19884
|
+
"editor.record.form.field.abstract": "",
|
|
19885
|
+
"editor.record.form.field.keywords": "",
|
|
19886
|
+
"editor.record.form.field.license": "",
|
|
19887
|
+
"editor.record.form.field.recordUpdated": "",
|
|
19888
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
19889
|
+
"editor.record.form.field.temporalExtents": "",
|
|
19890
|
+
"editor.record.form.field.title": "",
|
|
19891
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
19892
|
+
"editor.record.form.field.updateFrequency": "",
|
|
19650
19893
|
"editor.record.form.abstract": "",
|
|
19651
19894
|
"editor.record.form.keywords": "",
|
|
19652
19895
|
"editor.record.form.license": "",
|
|
@@ -19659,6 +19902,22 @@ var nl = {
|
|
|
19659
19902
|
"editor.record.form.license.odc-by": "",
|
|
19660
19903
|
"editor.record.form.license.pddl": "",
|
|
19661
19904
|
"editor.record.form.license.unknown": "",
|
|
19905
|
+
"editor.record.form.page.accessAndContact": "",
|
|
19906
|
+
"editor.record.form.page.description": "",
|
|
19907
|
+
"editor.record.form.page.ressources": "",
|
|
19908
|
+
"editor.record.form.section.about.description": "",
|
|
19909
|
+
"editor.record.form.section.about.label": "",
|
|
19910
|
+
"editor.record.form.section.annexes.label": "",
|
|
19911
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
19912
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
19913
|
+
"editor.record.form.section.classification.description": "",
|
|
19914
|
+
"editor.record.form.section.classification.label": "",
|
|
19915
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
19916
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
19917
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
19918
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
19919
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
19920
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
19662
19921
|
"editor.record.form.metadata.title": "",
|
|
19663
19922
|
"editor.record.form.record.updated": "",
|
|
19664
19923
|
"editor.record.form.resourceUpdated": "",
|
|
@@ -19683,6 +19942,7 @@ var nl = {
|
|
|
19683
19942
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
19684
19943
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
19685
19944
|
"editor.record.upToDate": "",
|
|
19945
|
+
"editor.sidebar.menu.editor": "",
|
|
19686
19946
|
"externalviewer.dataset.unnamed": "",
|
|
19687
19947
|
"facets.block.title.OrgForResource": "",
|
|
19688
19948
|
"facets.block.title.availableInServices": "",
|
|
@@ -19760,6 +20020,7 @@ var nl = {
|
|
|
19760
20020
|
"pagination.pageOf": "",
|
|
19761
20021
|
previous: previous$1,
|
|
19762
20022
|
"record.action.download": "",
|
|
20023
|
+
"record.action.duplicate": "",
|
|
19763
20024
|
"record.action.view": "",
|
|
19764
20025
|
"record.externalViewer.open": "",
|
|
19765
20026
|
"record.metadata.about": "",
|
|
@@ -20082,6 +20343,18 @@ var pt = {
|
|
|
20082
20343
|
"downloads.format.unknown": "",
|
|
20083
20344
|
"downloads.wfs.featuretype.not.found": "",
|
|
20084
20345
|
dropFile: dropFile,
|
|
20346
|
+
"editor.record.form.bottomButtons.comeBackLater": "",
|
|
20347
|
+
"editor.record.form.bottomButtons.next": "",
|
|
20348
|
+
"editor.record.form.bottomButtons.previous": "",
|
|
20349
|
+
"editor.record.form.field.abstract": "",
|
|
20350
|
+
"editor.record.form.field.keywords": "",
|
|
20351
|
+
"editor.record.form.field.license": "",
|
|
20352
|
+
"editor.record.form.field.recordUpdated": "",
|
|
20353
|
+
"editor.record.form.field.resourceUpdated": "",
|
|
20354
|
+
"editor.record.form.field.temporalExtents": "",
|
|
20355
|
+
"editor.record.form.field.title": "",
|
|
20356
|
+
"editor.record.form.field.uniqueIdentifier": "",
|
|
20357
|
+
"editor.record.form.field.updateFrequency": "",
|
|
20085
20358
|
"editor.record.form.abstract": "",
|
|
20086
20359
|
"editor.record.form.keywords": "",
|
|
20087
20360
|
"editor.record.form.license": "",
|
|
@@ -20094,6 +20367,22 @@ var pt = {
|
|
|
20094
20367
|
"editor.record.form.license.odc-by": "",
|
|
20095
20368
|
"editor.record.form.license.pddl": "",
|
|
20096
20369
|
"editor.record.form.license.unknown": "",
|
|
20370
|
+
"editor.record.form.page.accessAndContact": "",
|
|
20371
|
+
"editor.record.form.page.description": "",
|
|
20372
|
+
"editor.record.form.page.ressources": "",
|
|
20373
|
+
"editor.record.form.section.about.description": "",
|
|
20374
|
+
"editor.record.form.section.about.label": "",
|
|
20375
|
+
"editor.record.form.section.annexes.label": "",
|
|
20376
|
+
"editor.record.form.section.associatedResources.description": "",
|
|
20377
|
+
"editor.record.form.section.associatedResources.label": "",
|
|
20378
|
+
"editor.record.form.section.classification.description": "",
|
|
20379
|
+
"editor.record.form.section.classification.label": "",
|
|
20380
|
+
"editor.record.form.section.dataManagers.description": "",
|
|
20381
|
+
"editor.record.form.section.dataManagers.label": "",
|
|
20382
|
+
"editor.record.form.section.dataPointOfContact.description": "",
|
|
20383
|
+
"editor.record.form.section.dataPointOfContact.label": "",
|
|
20384
|
+
"editor.record.form.section.geographicalCoverage.label": "",
|
|
20385
|
+
"editor.record.form.section.useAndAccessConditions.label": "",
|
|
20097
20386
|
"editor.record.form.metadata.title": "",
|
|
20098
20387
|
"editor.record.form.record.updated": "",
|
|
20099
20388
|
"editor.record.form.resourceUpdated": "",
|
|
@@ -20118,6 +20407,7 @@ var pt = {
|
|
|
20118
20407
|
"editor.record.saveStatus.draftWithChangesPending": "",
|
|
20119
20408
|
"editor.record.saveStatus.recordUpToDate": "",
|
|
20120
20409
|
"editor.record.upToDate": "",
|
|
20410
|
+
"editor.sidebar.menu.editor": "",
|
|
20121
20411
|
"externalviewer.dataset.unnamed": "",
|
|
20122
20412
|
"facets.block.title.OrgForResource": "",
|
|
20123
20413
|
"facets.block.title.availableInServices": "",
|
|
@@ -20195,6 +20485,7 @@ var pt = {
|
|
|
20195
20485
|
"pagination.pageOf": "",
|
|
20196
20486
|
previous: previous,
|
|
20197
20487
|
"record.action.download": "",
|
|
20488
|
+
"record.action.duplicate": "",
|
|
20198
20489
|
"record.action.view": "",
|
|
20199
20490
|
"record.externalViewer.open": "",
|
|
20200
20491
|
"record.metadata.about": "",
|
|
@@ -21327,6 +21618,17 @@ class Gn4Repository {
|
|
|
21327
21618
|
.then((record) => [record, xml, isSavedAlready]);
|
|
21328
21619
|
}));
|
|
21329
21620
|
}
|
|
21621
|
+
openRecordForDuplication(uniqueIdentifier) {
|
|
21622
|
+
return this.loadRecordAsXml(uniqueIdentifier).pipe(switchMap(async (recordAsXml) => {
|
|
21623
|
+
const converter = findConverterForDocument(recordAsXml);
|
|
21624
|
+
const record = await converter.readRecord(recordAsXml);
|
|
21625
|
+
record.uniqueIdentifier = `TEMP-ID-${Date.now()}`;
|
|
21626
|
+
record.title = `${record.title} (Copy)`;
|
|
21627
|
+
const xml = await converter.writeRecord(record, recordAsXml);
|
|
21628
|
+
window.localStorage.setItem(this.getLocalStorageKeyForRecord(record.uniqueIdentifier), xml);
|
|
21629
|
+
return [record, xml, false];
|
|
21630
|
+
}));
|
|
21631
|
+
}
|
|
21330
21632
|
serializeRecordToXml(record, referenceRecordSource) {
|
|
21331
21633
|
// if there's a reference record, use that standard; otherwise, use iso19139
|
|
21332
21634
|
const converter = referenceRecordSource
|
|
@@ -23100,10 +23402,9 @@ class MapUtilsService {
|
|
|
23100
23402
|
if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
|
|
23101
23403
|
return null;
|
|
23102
23404
|
}
|
|
23103
|
-
//
|
|
23405
|
+
// extend all the spatial extents bbox into an including bbox
|
|
23104
23406
|
const totalExtent = record.spatialExtents.reduce((prev, curr) => {
|
|
23105
|
-
|
|
23106
|
-
return extend(prev, geom.getExtent());
|
|
23407
|
+
return extend(prev, curr.bbox);
|
|
23107
23408
|
}, [Infinity, Infinity, -Infinity, -Infinity]);
|
|
23108
23409
|
return transformExtent(totalExtent, 'EPSG:4326', 'EPSG:3857');
|
|
23109
23410
|
}
|
|
@@ -24689,6 +24990,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
24689
24990
|
}]
|
|
24690
24991
|
}] });
|
|
24691
24992
|
|
|
24993
|
+
class PopoverComponent {
|
|
24994
|
+
constructor(viewContainerRef, renderer) {
|
|
24995
|
+
this.viewContainerRef = viewContainerRef;
|
|
24996
|
+
this.renderer = renderer;
|
|
24997
|
+
}
|
|
24998
|
+
getContent() {
|
|
24999
|
+
if (this.content instanceof TemplateRef) {
|
|
25000
|
+
if (this.view) {
|
|
25001
|
+
this.view.destroy();
|
|
25002
|
+
}
|
|
25003
|
+
this.view = this.viewContainerRef.createEmbeddedView(this.content);
|
|
25004
|
+
this.view.detectChanges();
|
|
25005
|
+
const wrapper = this.renderer.createElement('div'); // Create a wrapper div
|
|
25006
|
+
this.view.rootNodes.forEach((node) => {
|
|
25007
|
+
this.renderer.appendChild(wrapper, node); // Append each root node to the wrapper
|
|
25008
|
+
});
|
|
25009
|
+
return wrapper;
|
|
25010
|
+
}
|
|
25011
|
+
return this.content;
|
|
25012
|
+
}
|
|
25013
|
+
ngAfterViewInit() {
|
|
25014
|
+
this.tippyInstance = tippy(this.popoverContent.nativeElement, {
|
|
25015
|
+
content: this.getContent(),
|
|
25016
|
+
allowHTML: true,
|
|
25017
|
+
theme: this.theme,
|
|
25018
|
+
});
|
|
25019
|
+
}
|
|
25020
|
+
ngOnChanges(changes) {
|
|
25021
|
+
if (changes['theme']) {
|
|
25022
|
+
this.theme = changes['theme'].currentValue;
|
|
25023
|
+
if (this.tippyInstance) {
|
|
25024
|
+
this.tippyInstance.setProps({ theme: this.theme });
|
|
25025
|
+
}
|
|
25026
|
+
}
|
|
25027
|
+
if (changes['content']) {
|
|
25028
|
+
this.content = changes['content'].currentValue;
|
|
25029
|
+
if (this.tippyInstance) {
|
|
25030
|
+
this.tippyInstance.setContent(this.getContent());
|
|
25031
|
+
}
|
|
25032
|
+
}
|
|
25033
|
+
}
|
|
25034
|
+
ngOnDestroy() {
|
|
25035
|
+
if (this.tippyInstance) {
|
|
25036
|
+
this.tippyInstance.destroy();
|
|
25037
|
+
}
|
|
25038
|
+
if (this.view) {
|
|
25039
|
+
this.view.destroy();
|
|
25040
|
+
}
|
|
25041
|
+
}
|
|
25042
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25043
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, isStandalone: true, selector: "gn-ui-popover", inputs: { content: "content", theme: "theme" }, viewQueries: [{ propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
25044
|
+
}
|
|
25045
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
25046
|
+
type: Component,
|
|
25047
|
+
args: [{ selector: 'gn-ui-popover', standalone: true, imports: [CommonModule], template: "<span #popoverContent>\n <ng-content></ng-content>\n</span>\n" }]
|
|
25048
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; }, propDecorators: { popoverContent: [{
|
|
25049
|
+
type: ViewChild,
|
|
25050
|
+
args: ['popoverContent', { static: false }]
|
|
25051
|
+
}], content: [{
|
|
25052
|
+
type: Input
|
|
25053
|
+
}], theme: [{
|
|
25054
|
+
type: Input
|
|
25055
|
+
}] } });
|
|
25056
|
+
|
|
24692
25057
|
class PopupAlertComponent {
|
|
24693
25058
|
constructor(changeDetector) {
|
|
24694
25059
|
this.changeDetector = changeDetector;
|
|
@@ -26803,11 +27168,11 @@ class MetadataQualityItemComponent {
|
|
|
26803
27168
|
return `record.metadata.quality.${this.name}.${this.value ? 'success' : 'failed'}`;
|
|
26804
27169
|
}
|
|
26805
27170
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27171
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: { name: "name", value: "value" }, ngImport: i0, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26807
27172
|
}
|
|
26808
27173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityItemComponent, decorators: [{
|
|
26809
27174
|
type: Component,
|
|
26810
|
-
args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
|
|
27175
|
+
args: [{ selector: 'gn-ui-metadata-quality-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-4 flex flex-row\">\n <mat-icon class=\"material-symbols-outlined min-w-fit\">{{ icon }}</mat-icon>\n <p class=\"ml-2 text\">{{ labelKey | translate }}</p>\n</div>\n" }]
|
|
26811
27176
|
}], propDecorators: { name: [{
|
|
26812
27177
|
type: Input
|
|
26813
27178
|
}], value: [{
|
|
@@ -26818,7 +27183,6 @@ class MetadataQualityComponent {
|
|
|
26818
27183
|
constructor() {
|
|
26819
27184
|
this.smaller = false;
|
|
26820
27185
|
this.items = [];
|
|
26821
|
-
this.isMenuShown = false;
|
|
26822
27186
|
}
|
|
26823
27187
|
get qualityScore() {
|
|
26824
27188
|
const qualityScore = this.metadata?.extras?.qualityScore;
|
|
@@ -26829,12 +27193,6 @@ class MetadataQualityComponent {
|
|
|
26829
27193
|
get calculatedQualityScore() {
|
|
26830
27194
|
return Math.round((this.items.filter(({ value }) => value).length * 100) / this.items.length);
|
|
26831
27195
|
}
|
|
26832
|
-
showMenu() {
|
|
26833
|
-
this.isMenuShown = true;
|
|
26834
|
-
}
|
|
26835
|
-
hideMenu() {
|
|
26836
|
-
this.isMenuShown = false;
|
|
26837
|
-
}
|
|
26838
27196
|
add(name, value) {
|
|
26839
27197
|
if (this.metadataQualityDisplay?.[name] !== false) {
|
|
26840
27198
|
this.items.push({ name, value });
|
|
@@ -26858,11 +27216,11 @@ class MetadataQualityComponent {
|
|
|
26858
27216
|
}
|
|
26859
27217
|
}
|
|
26860
27218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26861
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div
|
|
27219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MetadataQualityComponent, selector: "gn-ui-metadata-quality", inputs: { metadata: "metadata", smaller: "smaller", metadataQualityDisplay: "metadataQualityDisplay" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ProgressBarComponent, selector: "gn-ui-progress-bar", inputs: ["value", "type"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PopoverComponent, selector: "gn-ui-popover", inputs: ["content", "theme"] }, { kind: "component", type: MetadataQualityItemComponent, selector: "gn-ui-metadata-quality-item", inputs: ["name", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26862
27220
|
}
|
|
26863
27221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MetadataQualityComponent, decorators: [{
|
|
26864
27222
|
type: Component,
|
|
26865
|
-
args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
27223
|
+
args: [{ selector: 'gn-ui-metadata-quality', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"metadataQualityDisplay\" class=\"mb-6 metadata-quality\">\n <gn-ui-popover [content]=\"popoverItems\" theme=\"light-border\">\n <div class=\"min-w-[200px]\" [class]=\"smaller ? 'leading-[8px]' : ''\">\n <gn-ui-progress-bar\n tabindex=\"0\"\n [value]=\"qualityScore\"\n type=\"primary\"\n ></gn-ui-progress-bar>\n </div>\n </gn-ui-popover>\n</div>\n<ng-template #popoverItems>\n <div class=\"p-2 py-4\">\n <div class=\"mb-4 font-bold\" translate>record.metadata.quality.details</div>\n <gn-ui-metadata-quality-item\n *ngFor=\"let e of items\"\n [name]=\"e.name\"\n [value]=\"e.value\"\n ></gn-ui-metadata-quality-item>\n </div>\n</ng-template>\n", styles: [":host gn-ui-progress-bar{--progress-bar-font-weight: \"normal\"}\n"] }]
|
|
26866
27224
|
}], propDecorators: { metadata: [{
|
|
26867
27225
|
type: Input
|
|
26868
27226
|
}], smaller: [{
|
|
@@ -28316,11 +28674,11 @@ class UserPreviewComponent {
|
|
|
28316
28674
|
return (this.user.name + ' ' + this.user.surname).trim();
|
|
28317
28675
|
}
|
|
28318
28676
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-
|
|
28677
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UserPreviewComponent, selector: "gn-ui-user-preview", inputs: { user: "user", avatarPlaceholder: "avatarPlaceholder" }, ngImport: i0, template: "<figure class=\"text-center\">\n <div\n class=\"w-10 h-10 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n", dependencies: [{ kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: AvatarComponent, selector: "gn-ui-avatar", inputs: ["avatarUrl", "avatarPlaceholder"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28320
28678
|
}
|
|
28321
28679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreviewComponent, decorators: [{
|
|
28322
28680
|
type: Component,
|
|
28323
|
-
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div\n class=\"w-
|
|
28681
|
+
args: [{ selector: 'gn-ui-user-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<figure class=\"text-center\">\n <div\n class=\"w-10 h-10 border border-primary rounded-full capitalize\"\n [matTooltip]=\"userFullName\"\n >\n <gn-ui-avatar\n [avatarUrl]=\"user.profileIcon\"\n [avatarPlaceholder]=\"avatarPlaceholder\"\n ></gn-ui-avatar>\n </div>\n</figure>\n" }]
|
|
28324
28682
|
}], propDecorators: { user: [{
|
|
28325
28683
|
type: Input
|
|
28326
28684
|
}], avatarPlaceholder: [{
|
|
@@ -28460,6 +28818,7 @@ class UiElementsModule {
|
|
|
28460
28818
|
UiInputsModule,
|
|
28461
28819
|
FormsModule,
|
|
28462
28820
|
NgOptimizedImage,
|
|
28821
|
+
PopoverComponent,
|
|
28463
28822
|
MarkdownParserComponent,
|
|
28464
28823
|
ThumbnailComponent,
|
|
28465
28824
|
TimeSincePipe,
|
|
@@ -28494,6 +28853,7 @@ class UiElementsModule {
|
|
|
28494
28853
|
RouterModule,
|
|
28495
28854
|
UiInputsModule,
|
|
28496
28855
|
FormsModule,
|
|
28856
|
+
PopoverComponent,
|
|
28497
28857
|
ThumbnailComponent,
|
|
28498
28858
|
BadgeComponent,
|
|
28499
28859
|
MaxLinesComponent] }); }
|
|
@@ -28513,6 +28873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28513
28873
|
UiInputsModule,
|
|
28514
28874
|
FormsModule,
|
|
28515
28875
|
NgOptimizedImage,
|
|
28876
|
+
PopoverComponent,
|
|
28516
28877
|
MarkdownParserComponent,
|
|
28517
28878
|
ThumbnailComponent,
|
|
28518
28879
|
TimeSincePipe,
|
|
@@ -28669,6 +29030,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28669
29030
|
}]
|
|
28670
29031
|
}] });
|
|
28671
29032
|
|
|
29033
|
+
class ActionMenuComponent {
|
|
29034
|
+
constructor() {
|
|
29035
|
+
this.duplicate = new EventEmitter();
|
|
29036
|
+
}
|
|
29037
|
+
openMenu() {
|
|
29038
|
+
this.trigger.openMenu();
|
|
29039
|
+
}
|
|
29040
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29041
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActionMenuComponent, isStandalone: true, selector: "gn-ui-action-menu", outputs: { duplicate: "duplicate" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<gn-ui-button\n type=\"outline\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n</mat-menu>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2$5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
29042
|
+
}
|
|
29043
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionMenuComponent, decorators: [{
|
|
29044
|
+
type: Component,
|
|
29045
|
+
args: [{ selector: 'gn-ui-action-menu', standalone: true, imports: [MatIconModule, ButtonComponent, MatMenuModule, TranslateModule], template: "<gn-ui-button\n type=\"outline\"\n [matMenuTriggerFor]=\"menu\"\n (buttonClick)=\"openMenu()\"\n data-test=\"record-menu-button\"\n>\n <mat-icon class=\"material-symbols-outlined\">more_vert</mat-icon>\n</gn-ui-button>\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"duplicate.emit()\"\n data-test=\"record-menu-duplicate-button\"\n >\n <span translate>record.action.duplicate</span>\n </button>\n</mat-menu>\n" }]
|
|
29046
|
+
}], propDecorators: { duplicate: [{
|
|
29047
|
+
type: Output
|
|
29048
|
+
}], trigger: [{
|
|
29049
|
+
type: ViewChild,
|
|
29050
|
+
args: [MatMenuTrigger]
|
|
29051
|
+
}] } });
|
|
29052
|
+
|
|
28672
29053
|
class ResultsTableComponent {
|
|
28673
29054
|
constructor() {
|
|
28674
29055
|
this.records = [];
|
|
@@ -28678,6 +29059,7 @@ class ResultsTableComponent {
|
|
|
28678
29059
|
// emits the column (field) as well as the order
|
|
28679
29060
|
this.sortByChange = new EventEmitter();
|
|
28680
29061
|
this.recordClick = new EventEmitter();
|
|
29062
|
+
this.duplicateRecord = new EventEmitter();
|
|
28681
29063
|
this.recordsSelectedChange = new EventEmitter();
|
|
28682
29064
|
}
|
|
28683
29065
|
dateToString(date) {
|
|
@@ -28712,6 +29094,9 @@ class ResultsTableComponent {
|
|
|
28712
29094
|
handleRecordClick(item) {
|
|
28713
29095
|
this.recordClick.emit(item);
|
|
28714
29096
|
}
|
|
29097
|
+
handleDuplicate(item) {
|
|
29098
|
+
this.duplicateRecord.emit(item);
|
|
29099
|
+
}
|
|
28715
29100
|
setSortBy(col, order) {
|
|
28716
29101
|
this.sortByChange.emit([col, order]);
|
|
28717
29102
|
}
|
|
@@ -28747,7 +29132,7 @@ class ResultsTableComponent {
|
|
|
28747
29132
|
return !allSelected && someSelected;
|
|
28748
29133
|
}
|
|
28749
29134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28750
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
29135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", inputs: { records: "records", selectedRecordsIdentifiers: "selectedRecordsIdentifiers", sortOrder: "sortOrder", recordHasDraft: "recordHasDraft" }, outputs: { sortByChange: "sortByChange", recordClick: "recordClick", duplicateRecord: "duplicateRecord", recordsSelectedChange: "recordsSelectedChange" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu (duplicate)=\"handleDuplicate(item)\">\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", outputs: ["duplicate"] }] }); }
|
|
28751
29136
|
}
|
|
28752
29137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
28753
29138
|
type: Component,
|
|
@@ -28759,7 +29144,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28759
29144
|
MatIconModule,
|
|
28760
29145
|
TranslateModule,
|
|
28761
29146
|
BadgeComponent,
|
|
28762
|
-
|
|
29147
|
+
ActionMenuComponent,
|
|
29148
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isSomeSelected()\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item)\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword')\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n <div class=\"flex flex-row items-center gap-2 max-w-full\">\n <span class=\"overflow-hidden text-ellipsis\">{{ item.title }}</span>\n <gn-ui-badge\n *ngIf=\"recordHasDraft(item)\"\n [style.--gn-ui-badge-padding]=\"'0.4em 0.6em'\"\n [style.--gn-ui-badge-text-color]=\"'#3d2006'\"\n [style.--gn-ui-badge-background-color]=\"'#ffbc7b'\"\n [style.--gn-ui-badge-rounded]=\"'4px'\"\n >\n <span translate>dashboard.records.hasDraft</span>\n </gn-ui-badge>\n </div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner')\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate')\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- ACTION MENU COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header> </ng-template>\n <ng-template #cell let-item>\n <gn-ui-action-menu (duplicate)=\"handleDuplicate(item)\">\n </gn-ui-action-menu>\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
28763
29149
|
}], propDecorators: { records: [{
|
|
28764
29150
|
type: Input
|
|
28765
29151
|
}], selectedRecordsIdentifiers: [{
|
|
@@ -28772,6 +29158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28772
29158
|
type: Output
|
|
28773
29159
|
}], recordClick: [{
|
|
28774
29160
|
type: Output
|
|
29161
|
+
}], duplicateRecord: [{
|
|
29162
|
+
type: Output
|
|
28775
29163
|
}], recordsSelectedChange: [{
|
|
28776
29164
|
type: Output
|
|
28777
29165
|
}] } });
|
|
@@ -30753,6 +31141,7 @@ class ResultsTableContainerComponent {
|
|
|
30753
31141
|
this.selectionService = selectionService;
|
|
30754
31142
|
this.recordsRepository = recordsRepository;
|
|
30755
31143
|
this.recordClick = new EventEmitter();
|
|
31144
|
+
this.duplicateRecord = new EventEmitter();
|
|
30756
31145
|
this.records$ = this.searchFacade.results$;
|
|
30757
31146
|
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
30758
31147
|
this.sortBy$ = this.searchFacade.sortBy$;
|
|
@@ -30761,6 +31150,9 @@ class ResultsTableContainerComponent {
|
|
|
30761
31150
|
handleRecordClick(item) {
|
|
30762
31151
|
this.recordClick.emit(item);
|
|
30763
31152
|
}
|
|
31153
|
+
handleDuplicateRecord(item) {
|
|
31154
|
+
this.duplicateRecord.emit(item);
|
|
31155
|
+
}
|
|
30764
31156
|
handleSortByChange(col, order) {
|
|
30765
31157
|
this.searchService.setSortBy([order, col]);
|
|
30766
31158
|
}
|
|
@@ -30773,13 +31165,15 @@ class ResultsTableContainerComponent {
|
|
|
30773
31165
|
}
|
|
30774
31166
|
}
|
|
30775
31167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, deps: [{ token: SearchFacade }, { token: SearchService }, { token: SelectionService }, { token: RecordsRepositoryInterface }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30776
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "recordsSelectedChange"] }] }); }
|
|
31168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResultsTableContainerComponent, isStandalone: true, selector: "gn-ui-results-table-container", outputs: { recordClick: "recordClick", duplicateRecord: "duplicateRecord" }, ngImport: i0, template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ResultsTableComponent, selector: "gn-ui-results-table", inputs: ["records", "selectedRecordsIdentifiers", "sortOrder", "recordHasDraft"], outputs: ["sortByChange", "recordClick", "duplicateRecord", "recordsSelectedChange"] }] }); }
|
|
30777
31169
|
}
|
|
30778
31170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResultsTableContainerComponent, decorators: [{
|
|
30779
31171
|
type: Component,
|
|
30780
|
-
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
31172
|
+
args: [{ selector: 'gn-ui-results-table-container', standalone: true, imports: [CommonModule, ResultsTableComponent], template: "<gn-ui-results-table\n [records]=\"records$ | async\"\n [recordHasDraft]=\"hasDraft\"\n [selectedRecordsIdentifiers]=\"selectedRecords$ | async\"\n [sortOrder]=\"sortBy$ | async\"\n (recordClick)=\"handleRecordClick($event)\"\n (duplicateRecord)=\"handleDuplicateRecord($event)\"\n (recordsSelectedChange)=\"handleRecordsSelectedChange($event[0], $event[1])\"\n (sortByChange)=\"handleSortByChange($event[0], $event[1])\"\n></gn-ui-results-table>\n" }]
|
|
30781
31173
|
}], ctorParameters: function () { return [{ type: SearchFacade }, { type: SearchService }, { type: SelectionService }, { type: RecordsRepositoryInterface }]; }, propDecorators: { recordClick: [{
|
|
30782
31174
|
type: Output
|
|
31175
|
+
}], duplicateRecord: [{
|
|
31176
|
+
type: Output
|
|
30783
31177
|
}] } });
|
|
30784
31178
|
|
|
30785
31179
|
class AddLayerRecordPreviewComponent extends RecordPreviewComponent {
|
|
@@ -31079,7 +31473,7 @@ class LayersPanelComponent {
|
|
|
31079
31473
|
this.mapFacade.addLayer(layer);
|
|
31080
31474
|
}
|
|
31081
31475
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, deps: [{ token: MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31082
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$
|
|
31476
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wfs></gn-ui-add-layer-from-wfs>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.ogc.api' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-ogc-api\n [ogcUrl]=\"ogcUrl\"\n (layerAdded)=\"addLayer($event)\"\n ></gn-ui-add-layer-from-ogc-api>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-file></gn-ui-add-layer-from-file>\n </div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$6.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$6.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: AddLayerFromOgcApiComponent, selector: "gn-ui-add-layer-from-ogc-api", inputs: ["ogcUrl"], outputs: ["layerAdded"] }, { kind: "component", type: AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "component", type: AddLayerFromFileComponent, selector: "gn-ui-add-layer-from-file" }, { kind: "component", type: AddLayerFromWfsComponent, selector: "gn-ui-add-layer-from-wfs" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31083
31477
|
}
|
|
31084
31478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayersPanelComponent, decorators: [{
|
|
31085
31479
|
type: Component,
|
|
@@ -31821,7 +32215,7 @@ class TableComponent {
|
|
|
31821
32215
|
return rowIdPrefix + id;
|
|
31822
32216
|
}
|
|
31823
32217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31824
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$
|
|
32218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, isStandalone: true, selector: "gn-ui-table", inputs: { data: "data", activeId: "activeId" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"border border-gray-300 rounded-lg overflow-hidden bg-white h-full\">\n <cdk-virtual-scroll-viewport\n tvsItemSize=\"48\"\n headerHeight=\"56\"\n style=\"height: calc(100% - 37px)\"\n >\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z8\" matSort>\n <ng-container *ngFor=\"let prop of properties\" [matColumnDef]=\"prop\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n class=\"text-sm text-black bg-white\"\n >\n {{ prop }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"whitespace-nowrap pr-1 truncate\"\n >\n {{ element[prop] }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"properties; sticky: true\"></tr>\n <tr\n [id]=\"getRowEltId(row.id)\"\n mat-row\n *matRowDef=\"let row; columns: properties\"\n (click)=\"selected.emit(row)\"\n [class.active]=\"row.id === activeId\"\n ></tr>\n </table>\n </cdk-virtual-scroll-viewport>\n <div class=\"text-gray-900 border-t border-gray-300 px-4 py-2 text-sm\">\n <span class=\"count font-extrabold text-primary\">{{ count }}</span\n > <span translate>table.object.count</span>.\n </div>\n</div>\n", styles: ["table{width:100%;background:white}th.mat-mdc-header-cell,td.mat-mdc-cell,td.mat-mdc-footer-cell{padding-right:20px}tr.mat-mdc-row,tr.mat-mdc-footer-row{height:36px}tr:hover{background:whitesmoke}tr.mat-mdc-header-row{height:48px}[mat-header-cell]{color:#0000008a;font-size:12px;font-weight:500}tr{cursor:pointer}.active .mat-mdc-cell{color:var(--color-primary)}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i1$9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i1$9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2$7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: TableVirtualScrollModule }, { kind: "directive", type: i3$2.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31825
32219
|
}
|
|
31826
32220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
|
|
31827
32221
|
type: Component,
|
|
@@ -34120,7 +34514,7 @@ class DataViewShareComponent {
|
|
|
34120
34514
|
this.wcEmbedderBaseUrl = wcEmbedderBaseUrl;
|
|
34121
34515
|
}
|
|
34122
34516
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, deps: [{ token: WEB_COMPONENT_EMBEDDER_URL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$
|
|
34517
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataViewShareComponent, selector: "gn-ui-data-view-share", inputs: { viewType: "viewType" }, ngImport: i0, template: "<div class=\"container-lg px-5 my-1 lg:mx-auto\">\n <mat-tab-group\n [selectedIndex]=\"0\"\n animationDuration=\"0ms\"\n mat-stretch-tabs=\"false\"\n mat-align-tabs=\"start\"\n [disableRipple]=\"!wcEmbedderBaseUrl\"\n >\n <mat-tab *ngIf=\"wcEmbedderBaseUrl\">\n <ng-template mat-tab-label>\n <span class=\"tab-header-label-gray\" translate>share.tab.permalink</span>\n </ng-template>\n <gn-ui-data-view-permalink\n [viewType]=\"viewType\"\n ></gn-ui-data-view-permalink>\n </mat-tab>\n <mat-tab>\n <ng-template mat-tab-label>\n <span\n [class]=\"\n wcEmbedderBaseUrl\n ? 'tab-header-label-gray'\n : 'single-tab-header-label-gray'\n \"\n translate\n >share.tab.webComponent</span\n >\n </ng-template>\n <gn-ui-data-view-web-component\n [viewType]=\"viewType\"\n ></gn-ui-data-view-web-component>\n </mat-tab>\n </mat-tab-group>\n</div>\n", styles: ["::ng-deep .mat-mdc-tab.mdc-tab.mdc-tab--active .tab-header-label-gray{opacity:100%;font-weight:700}.tab-header-label-gray{@apply text-sm text-gray-700 opacity-75 hover:text-gray-900;}.single-tab-header-label-gray{@apply text-sm text-gray-900;}\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$6.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i2$6.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2$6.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: DataViewPermalinkComponent, selector: "gn-ui-data-view-permalink", inputs: ["viewType"] }, { kind: "component", type: DataViewWebComponentComponent, selector: "gn-ui-data-view-web-component", inputs: ["viewType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34124
34518
|
}
|
|
34125
34519
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataViewShareComponent, decorators: [{
|
|
34126
34520
|
type: Component,
|
|
@@ -34222,75 +34616,159 @@ const saveRecord = createAction('[Editor] Save record');
|
|
|
34222
34616
|
const saveRecordSuccess = createAction('[Editor] Save record success');
|
|
34223
34617
|
const saveRecordFailure = createAction('[Editor] Save record failure', props());
|
|
34224
34618
|
const draftSaveSuccess = createAction('[Editor] Draft save success');
|
|
34619
|
+
const setCurrentPage = createAction('[Editor] Set current page', props());
|
|
34225
34620
|
|
|
34226
|
-
|
|
34227
|
-
|
|
34228
|
-
|
|
34229
|
-
|
|
34230
|
-
|
|
34231
|
-
|
|
34232
|
-
|
|
34621
|
+
/**
|
|
34622
|
+
* This file contains the configuration of the fields that will be displayed in the editor.
|
|
34623
|
+
* To add a new field, you need to create a new EditorField object in the fields part of this file.
|
|
34624
|
+
* Then add it to the corresponding section in the sections part of this file.
|
|
34625
|
+
* Finally, add the section to the corresponding page in the pages part of this file.
|
|
34626
|
+
*/
|
|
34627
|
+
/************************************************************
|
|
34628
|
+
*************** FIELDS *****************
|
|
34629
|
+
************************************************************
|
|
34630
|
+
*/
|
|
34631
|
+
const RECORD_LICENSE_FIELD = {
|
|
34632
|
+
model: 'licenses',
|
|
34633
|
+
formFieldConfig: {
|
|
34634
|
+
labelKey: marker('editor.record.form.field.license'),
|
|
34233
34635
|
},
|
|
34234
|
-
|
|
34235
|
-
|
|
34236
|
-
|
|
34237
|
-
|
|
34238
|
-
|
|
34239
|
-
},
|
|
34636
|
+
};
|
|
34637
|
+
const RECORD_KEYWORDS_FIELD = {
|
|
34638
|
+
model: 'keywords',
|
|
34639
|
+
formFieldConfig: {
|
|
34640
|
+
labelKey: marker('editor.record.form.field.keywords'),
|
|
34240
34641
|
},
|
|
34241
|
-
|
|
34242
|
-
|
|
34243
|
-
|
|
34244
|
-
|
|
34245
|
-
|
|
34246
|
-
|
|
34247
|
-
},
|
|
34642
|
+
};
|
|
34643
|
+
const RECORD_UNIQUE_IDENTIFIER_FIELD = {
|
|
34644
|
+
model: 'uniqueIdentifier',
|
|
34645
|
+
formFieldConfig: {
|
|
34646
|
+
labelKey: marker('editor.record.form.field.uniqueIdentifier'),
|
|
34647
|
+
locked: true,
|
|
34248
34648
|
},
|
|
34249
|
-
|
|
34250
|
-
|
|
34251
|
-
|
|
34252
|
-
|
|
34253
|
-
|
|
34254
|
-
locked: true,
|
|
34255
|
-
},
|
|
34256
|
-
onSaveProcess: '${dateNow()}',
|
|
34649
|
+
};
|
|
34650
|
+
const RECORD_RESOURCE_UPDATED_FIELD = {
|
|
34651
|
+
model: 'resourceUpdated',
|
|
34652
|
+
formFieldConfig: {
|
|
34653
|
+
labelKey: marker('editor.record.form.field.resourceUpdated'),
|
|
34257
34654
|
},
|
|
34258
|
-
|
|
34259
|
-
|
|
34260
|
-
|
|
34261
|
-
|
|
34262
|
-
|
|
34263
|
-
|
|
34655
|
+
};
|
|
34656
|
+
const RECORD_UPDATED_FIELD = {
|
|
34657
|
+
model: 'recordUpdated',
|
|
34658
|
+
formFieldConfig: {
|
|
34659
|
+
labelKey: marker('editor.record.form.field.recordUpdated'),
|
|
34660
|
+
locked: true,
|
|
34264
34661
|
},
|
|
34265
|
-
{
|
|
34266
|
-
|
|
34267
|
-
|
|
34268
|
-
|
|
34269
|
-
|
|
34270
|
-
|
|
34662
|
+
onSaveProcess: '${dateNow()}',
|
|
34663
|
+
};
|
|
34664
|
+
const RECORD_UPDATE_FREQUENCY_FIELD = {
|
|
34665
|
+
model: 'updateFrequency',
|
|
34666
|
+
formFieldConfig: {
|
|
34667
|
+
labelKey: marker('editor.record.form.field.updateFrequency'),
|
|
34271
34668
|
},
|
|
34272
|
-
|
|
34273
|
-
|
|
34274
|
-
|
|
34275
|
-
|
|
34276
|
-
|
|
34277
|
-
},
|
|
34669
|
+
};
|
|
34670
|
+
const RECORD_TEMPORAL_EXTENTS_FIELD = {
|
|
34671
|
+
model: 'temporalExtents',
|
|
34672
|
+
formFieldConfig: {
|
|
34673
|
+
labelKey: marker('editor.record.form.field.temporalExtents'),
|
|
34278
34674
|
},
|
|
34279
|
-
|
|
34280
|
-
|
|
34281
|
-
|
|
34282
|
-
|
|
34283
|
-
|
|
34284
|
-
},
|
|
34675
|
+
};
|
|
34676
|
+
const RECORD_TITLE_FIELD = {
|
|
34677
|
+
model: 'title',
|
|
34678
|
+
formFieldConfig: {
|
|
34679
|
+
labelKey: marker('editor.record.form.field.title'),
|
|
34285
34680
|
},
|
|
34286
|
-
|
|
34287
|
-
|
|
34288
|
-
|
|
34289
|
-
|
|
34290
|
-
|
|
34291
|
-
},
|
|
34681
|
+
};
|
|
34682
|
+
const RECORD_ABSTRACT_FIELD = {
|
|
34683
|
+
model: 'abstract',
|
|
34684
|
+
formFieldConfig: {
|
|
34685
|
+
labelKey: marker('editor.record.form.field.abstract'),
|
|
34292
34686
|
},
|
|
34293
|
-
|
|
34687
|
+
};
|
|
34688
|
+
/************************************************************
|
|
34689
|
+
*************** SECTIONS *****************
|
|
34690
|
+
************************************************************
|
|
34691
|
+
*/
|
|
34692
|
+
const TITLE_SECTION = {
|
|
34693
|
+
hidden: false,
|
|
34694
|
+
fields: [RECORD_TITLE_FIELD, RECORD_ABSTRACT_FIELD],
|
|
34695
|
+
};
|
|
34696
|
+
const ABOUT_SECTION = {
|
|
34697
|
+
labelKey: marker('editor.record.form.section.about.label'),
|
|
34698
|
+
descriptionKey: marker('editor.record.form.section.about.description'),
|
|
34699
|
+
hidden: false,
|
|
34700
|
+
fields: [
|
|
34701
|
+
RECORD_UNIQUE_IDENTIFIER_FIELD,
|
|
34702
|
+
RECORD_RESOURCE_UPDATED_FIELD,
|
|
34703
|
+
RECORD_UPDATED_FIELD,
|
|
34704
|
+
RECORD_UPDATE_FREQUENCY_FIELD,
|
|
34705
|
+
RECORD_TEMPORAL_EXTENTS_FIELD,
|
|
34706
|
+
],
|
|
34707
|
+
};
|
|
34708
|
+
const GEOGRAPHICAL_COVERAGE_SECTION = {
|
|
34709
|
+
labelKey: marker('editor.record.form.section.geographicalCoverage.label'),
|
|
34710
|
+
hidden: false,
|
|
34711
|
+
fields: [],
|
|
34712
|
+
};
|
|
34713
|
+
const ASSOCIATED_RESOURCES_SECTION = {
|
|
34714
|
+
labelKey: marker('editor.record.form.section.associatedResources.label'),
|
|
34715
|
+
descriptionKey: marker('editor.record.form.section.associatedResources.description'),
|
|
34716
|
+
hidden: false,
|
|
34717
|
+
fields: [],
|
|
34718
|
+
};
|
|
34719
|
+
const ANNEXES_SECTION = {
|
|
34720
|
+
labelKey: marker('editor.record.form.section.annexes.label'),
|
|
34721
|
+
hidden: false,
|
|
34722
|
+
fields: [],
|
|
34723
|
+
};
|
|
34724
|
+
const CLASSIFICATION_SECTION = {
|
|
34725
|
+
labelKey: marker('editor.record.form.section.classification.label'),
|
|
34726
|
+
descriptionKey: marker('editor.record.form.section.classification.description'),
|
|
34727
|
+
hidden: false,
|
|
34728
|
+
fields: [RECORD_KEYWORDS_FIELD],
|
|
34729
|
+
};
|
|
34730
|
+
const USE_AND_ACCESS_CONDITIONS_SECTION = {
|
|
34731
|
+
labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
|
|
34732
|
+
hidden: false,
|
|
34733
|
+
fields: [RECORD_LICENSE_FIELD],
|
|
34734
|
+
};
|
|
34735
|
+
const DATA_MANAGERS_SECTION = {
|
|
34736
|
+
labelKey: marker('editor.record.form.section.dataManagers.label'),
|
|
34737
|
+
descriptionKey: marker('editor.record.form.section.dataManagers.description'),
|
|
34738
|
+
hidden: false,
|
|
34739
|
+
fields: [],
|
|
34740
|
+
};
|
|
34741
|
+
const DATA_POINT_OF_CONTACT_SECTION = {
|
|
34742
|
+
labelKey: marker('editor.record.form.section.dataPointOfContact.label'),
|
|
34743
|
+
descriptionKey: marker('editor.record.form.section.dataPointOfContact.description'),
|
|
34744
|
+
hidden: false,
|
|
34745
|
+
fields: [],
|
|
34746
|
+
};
|
|
34747
|
+
/************************************************************
|
|
34748
|
+
*************** PAGES *****************
|
|
34749
|
+
************************************************************
|
|
34750
|
+
*/
|
|
34751
|
+
const DEFAULT_CONFIGURATION = {
|
|
34752
|
+
pages: [
|
|
34753
|
+
{
|
|
34754
|
+
labelKey: marker('editor.record.form.page.description'),
|
|
34755
|
+
sections: [TITLE_SECTION, ABOUT_SECTION, GEOGRAPHICAL_COVERAGE_SECTION],
|
|
34756
|
+
},
|
|
34757
|
+
{
|
|
34758
|
+
labelKey: marker('editor.record.form.page.ressources'),
|
|
34759
|
+
sections: [ASSOCIATED_RESOURCES_SECTION, ANNEXES_SECTION],
|
|
34760
|
+
},
|
|
34761
|
+
{
|
|
34762
|
+
labelKey: marker('editor.record.form.page.accessAndContact'),
|
|
34763
|
+
sections: [
|
|
34764
|
+
CLASSIFICATION_SECTION,
|
|
34765
|
+
USE_AND_ACCESS_CONDITIONS_SECTION,
|
|
34766
|
+
DATA_MANAGERS_SECTION,
|
|
34767
|
+
DATA_POINT_OF_CONTACT_SECTION,
|
|
34768
|
+
],
|
|
34769
|
+
},
|
|
34770
|
+
],
|
|
34771
|
+
};
|
|
34294
34772
|
|
|
34295
34773
|
const EDITOR_FEATURE_KEY = 'editor';
|
|
34296
34774
|
const initialEditorState = {
|
|
@@ -34300,7 +34778,8 @@ const initialEditorState = {
|
|
|
34300
34778
|
saving: false,
|
|
34301
34779
|
saveError: null,
|
|
34302
34780
|
changedSinceSave: false,
|
|
34303
|
-
|
|
34781
|
+
editorConfig: DEFAULT_CONFIGURATION,
|
|
34782
|
+
currentPage: 0,
|
|
34304
34783
|
};
|
|
34305
34784
|
const reducer = createReducer(initialEditorState, on(openRecord, (state, { record, recordSource, alreadySavedOnce }) => ({
|
|
34306
34785
|
...state,
|
|
@@ -34330,6 +34809,9 @@ const reducer = createReducer(initialEditorState, on(openRecord, (state, { recor
|
|
|
34330
34809
|
})), on(markRecordAsChanged, (state) => ({
|
|
34331
34810
|
...state,
|
|
34332
34811
|
changedSinceSave: true,
|
|
34812
|
+
})), on(setCurrentPage, (state, { page }) => ({
|
|
34813
|
+
...state,
|
|
34814
|
+
currentPage: page,
|
|
34333
34815
|
})));
|
|
34334
34816
|
function editorReducer(state, action) {
|
|
34335
34817
|
return reducer(state, action);
|
|
@@ -34342,11 +34824,21 @@ const selectRecordSaving = createSelector(selectEditorState, (state) => state.sa
|
|
|
34342
34824
|
const selectRecordSaveError = createSelector(selectEditorState, (state) => state.saveError);
|
|
34343
34825
|
const selectRecordChangedSinceSave = createSelector(selectEditorState, (state) => state.changedSinceSave);
|
|
34344
34826
|
const selectRecordAlreadySavedOnce = createSelector(selectEditorState, (state) => state.alreadySavedOnce);
|
|
34345
|
-
const
|
|
34346
|
-
const
|
|
34347
|
-
|
|
34348
|
-
|
|
34349
|
-
|
|
34827
|
+
const selectEditorConfig = createSelector(selectEditorState, (state) => state.editorConfig);
|
|
34828
|
+
const selectCurrentPage = createSelector(selectEditorState, (state) => state.currentPage);
|
|
34829
|
+
const selectRecordSections = createSelector(selectEditorState, (state) => {
|
|
34830
|
+
const currentPage = state.editorConfig.pages[state.currentPage];
|
|
34831
|
+
if (!currentPage) {
|
|
34832
|
+
return [];
|
|
34833
|
+
}
|
|
34834
|
+
return currentPage.sections.map((section) => ({
|
|
34835
|
+
...section,
|
|
34836
|
+
fieldsWithValues: section.fields.map((fieldConfig) => ({
|
|
34837
|
+
config: fieldConfig,
|
|
34838
|
+
value: state.record?.[fieldConfig.model] ?? null,
|
|
34839
|
+
})),
|
|
34840
|
+
}));
|
|
34841
|
+
});
|
|
34350
34842
|
|
|
34351
34843
|
class EditorFacade {
|
|
34352
34844
|
constructor() {
|
|
@@ -34359,8 +34851,10 @@ class EditorFacade {
|
|
|
34359
34851
|
this.saveError$ = this.store.pipe(select(selectRecordSaveError), filter$1((error) => !!error));
|
|
34360
34852
|
this.saveSuccess$ = this.actions$.pipe(ofType(saveRecordSuccess));
|
|
34361
34853
|
this.changedSinceSave$ = this.store.pipe(select(selectRecordChangedSinceSave));
|
|
34362
|
-
this.
|
|
34854
|
+
this.currentSections$ = this.store.pipe(select(selectRecordSections));
|
|
34363
34855
|
this.draftSaveSuccess$ = this.actions$.pipe(ofType(draftSaveSuccess));
|
|
34856
|
+
this.currentPage$ = this.store.pipe(select(selectCurrentPage));
|
|
34857
|
+
this.editorConfig$ = this.store.pipe(select(selectEditorConfig));
|
|
34364
34858
|
}
|
|
34365
34859
|
openRecord(record, recordSource, alreadySavedOnce) {
|
|
34366
34860
|
this.store.dispatch(openRecord({ record, recordSource, alreadySavedOnce }));
|
|
@@ -34371,6 +34865,9 @@ class EditorFacade {
|
|
|
34371
34865
|
updateRecordField(field, value) {
|
|
34372
34866
|
this.store.dispatch(updateRecordField({ field, value }));
|
|
34373
34867
|
}
|
|
34868
|
+
setCurrentPage(page) {
|
|
34869
|
+
this.store.dispatch(setCurrentPage({ page }));
|
|
34870
|
+
}
|
|
34374
34871
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34375
34872
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EditorFacade }); }
|
|
34376
34873
|
}
|
|
@@ -34398,12 +34895,13 @@ class EditorService {
|
|
|
34398
34895
|
// returns the record as it was when saved, alongside its source
|
|
34399
34896
|
saveRecord(record, fieldsConfig, generateNewUniqueIdentifier = false) {
|
|
34400
34897
|
const savedRecord = { ...record };
|
|
34898
|
+
const fields = fieldsConfig.pages.flatMap((page) => page.sections.flatMap((section) => section.fields));
|
|
34401
34899
|
// run onSave processes
|
|
34402
|
-
for (const field of
|
|
34900
|
+
for (const field of fields) {
|
|
34403
34901
|
if (field.onSaveProcess && field.model) {
|
|
34404
34902
|
const evaluator = evaluate(field.onSaveProcess);
|
|
34405
34903
|
savedRecord[field.model] = evaluator({
|
|
34406
|
-
|
|
34904
|
+
model: field.model,
|
|
34407
34905
|
value: record[field.model],
|
|
34408
34906
|
});
|
|
34409
34907
|
}
|
|
@@ -34440,7 +34938,7 @@ class EditorEffects {
|
|
|
34440
34938
|
this.editorService = inject(EditorService);
|
|
34441
34939
|
this.recordsRepository = inject(RecordsRepositoryInterface);
|
|
34442
34940
|
this.store = inject(Store);
|
|
34443
|
-
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(
|
|
34941
|
+
this.saveRecord$ = createEffect(() => this.actions$.pipe(ofType(saveRecord), withLatestFrom$1(this.store.select(selectRecord), this.store.select(selectEditorConfig), this.store.select(selectRecordAlreadySavedOnce)), switchMap$1(([, record, fieldsConfig, alreadySavedOnce]) => this.editorService
|
|
34444
34942
|
.saveRecord(record, fieldsConfig, !alreadySavedOnce)
|
|
34445
34943
|
.pipe(switchMap$1(([record, recordSource]) => of(saveRecordSuccess(), openRecord({
|
|
34446
34944
|
record,
|
|
@@ -35393,7 +35891,7 @@ class FormFieldComponent {
|
|
|
35393
35891
|
return this.model === 'title' || this.model === 'abstract';
|
|
35394
35892
|
}
|
|
35395
35893
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35396
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <
|
|
35894
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "gn-ui-form-field", inputs: { model: "model", config: "config", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey! | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: EditableLabelDirective, selector: "[gnUiEditableLabel]", inputs: ["gnUiEditableLabel"], outputs: ["editableLabelChanged"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: FormFieldWrapperComponent, selector: "gn-ui-form-field-wrapper", inputs: ["label", "hint"] }, { kind: "component", type: FormFieldLicenseComponent, selector: "gn-ui-form-field-license", inputs: ["control", "label"] }, { kind: "component", type: FormFieldResourceUpdatedComponent, selector: "gn-ui-form-field-resource-updated", inputs: ["control"] }, { kind: "component", type: FormFieldUpdateFrequencyComponent, selector: "gn-ui-form-field-update-frequency", inputs: ["control"] }, { kind: "component", type: FormFieldTemporalExtentsComponent, selector: "gn-ui-form-field-temporal-extents", inputs: ["control"] }, { kind: "component", type: FormFieldSimpleComponent, selector: "gn-ui-form-field-simple", inputs: ["type", "control", "readonly", "invalid", "placeholder", "options"] }, { kind: "component", type: FormFieldRichComponent, selector: "gn-ui-form-field-rich", inputs: ["control", "label", "hint", "helperText", "placeholder"] }, { kind: "component", type: FormFieldSpatialExtentComponent, selector: "gn-ui-form-field-spatial-extent" }, { kind: "component", type: FormFieldKeywordsComponent, selector: "gn-ui-form-field-keywords", inputs: ["control"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35397
35895
|
}
|
|
35398
35896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
35399
35897
|
type: Component,
|
|
@@ -35416,7 +35914,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35416
35914
|
FormFieldArrayComponent,
|
|
35417
35915
|
FormFieldKeywordsComponent,
|
|
35418
35916
|
TranslateModule,
|
|
35419
|
-
], template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey | translate\"\n [hint]=\"config.hintKey | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <
|
|
35917
|
+
], template: "<div class=\"flex flex-col h-full\">\n <ng-container *ngIf=\"withoutWrapper; else withGenericWrapper\">\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </ng-container>\n <ng-template #withGenericWrapper>\n <gn-ui-form-field-wrapper\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n >\n <ng-container *ngTemplateOutlet=\"fieldContent\"></ng-container>\n </gn-ui-form-field-wrapper>\n </ng-template>\n</div>\n\n<ng-template #fieldContent>\n <ng-container *ngIf=\"isTitle\">\n <div class=\"flex justify-between items-center gap-3\">\n <span\n #titleInput\n class=\"grow font-title text-3xl font-normal\"\n [gnUiEditableLabel]=\"true\"\n (editableLabelChanged)=\"formControl.setValue($event)\"\n >\n {{ formControl.value }}\n </span>\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2 cursor-pointer\"\n (click)=\"focusTitleInput()\"\n >edit</span\n >\n <span\n class=\"material-symbols-outlined gn-ui-icon-small m-2\"\n [matTooltip]=\"config.hintKey! | translate\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isAbstract\">\n <gn-ui-form-field-rich\n class=\"h-[8rem]\"\n [control]=\"formControl\"\n [label]=\"config.labelKey! | translate\"\n [hint]=\"config.hintKey! | translate\"\n ></gn-ui-form-field-rich>\n </ng-container>\n <ng-container *ngIf=\"isLicenses\">\n <gn-ui-form-field-license\n [control]=\"formControl\"\n [label]=\"config.labelKey! | translate\"\n ></gn-ui-form-field-license>\n </ng-container>\n <ng-container *ngIf=\"isResourceUpdated\">\n <gn-ui-form-field-resource-updated\n [control]=\"formControl\"\n ></gn-ui-form-field-resource-updated>\n </ng-container>\n <ng-container *ngIf=\"isUpdateFrequency\">\n <gn-ui-form-field-update-frequency\n [control]=\"formControl\"\n ></gn-ui-form-field-update-frequency>\n </ng-container>\n <ng-container *ngIf=\"isTemporalExtents\">\n <gn-ui-form-field-temporal-extents\n [control]=\"formControl\"\n ></gn-ui-form-field-temporal-extents>\n </ng-container>\n <ng-container *ngIf=\"isSimpleField\">\n <gn-ui-form-field-simple\n type=\"text\"\n [control]=\"formControl\"\n [readonly]=\"isReadOnly\"\n ></gn-ui-form-field-simple>\n </ng-container>\n <ng-container *ngIf=\"isSpatialExtentField\">\n <gn-ui-form-field-spatial-extent></gn-ui-form-field-spatial-extent>\n </ng-container>\n <ng-container *ngIf=\"isKeywords\">\n <gn-ui-form-field-keywords\n [control]=\"formControl\"\n ></gn-ui-form-field-keywords>\n </ng-container>\n</ng-template>\n" }]
|
|
35420
35918
|
}], ctorParameters: function () { return []; }, propDecorators: { model: [{
|
|
35421
35919
|
type: Input
|
|
35422
35920
|
}], config: [{
|
|
@@ -35433,23 +35931,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35433
35931
|
class RecordFormComponent {
|
|
35434
35932
|
constructor(facade) {
|
|
35435
35933
|
this.facade = facade;
|
|
35436
|
-
this.fields$ = this.facade.recordFields$;
|
|
35437
35934
|
}
|
|
35438
|
-
handleFieldValueChange(
|
|
35439
|
-
if (!
|
|
35935
|
+
handleFieldValueChange(model, newValue) {
|
|
35936
|
+
if (!model) {
|
|
35440
35937
|
return;
|
|
35441
35938
|
}
|
|
35442
|
-
this.facade.updateRecordField(
|
|
35939
|
+
this.facade.updateRecordField(model, newValue);
|
|
35443
35940
|
}
|
|
35444
35941
|
fieldTracker(index, field) {
|
|
35445
35942
|
return field.config.model;
|
|
35446
35943
|
}
|
|
35944
|
+
sectionTracker(index, section) {
|
|
35945
|
+
return section.labelKey;
|
|
35946
|
+
}
|
|
35447
35947
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, deps: [{ token: EditorFacade }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35448
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<div class=\"flex flex-col gap-6 p-
|
|
35948
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecordFormComponent, isStandalone: true, selector: "gn-ui-record-form", ngImport: i0, template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-petrona text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [model]=\"field.config.model!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldComponent, selector: "gn-ui-form-field", inputs: ["model", "config", "value"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35449
35949
|
}
|
|
35450
35950
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecordFormComponent, decorators: [{
|
|
35451
35951
|
type: Component,
|
|
35452
|
-
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent], template: "<div class=\"flex flex-col gap-6 p-
|
|
35952
|
+
args: [{ selector: 'gn-ui-record-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormFieldComponent, TranslateModule], template: "<ng-container>\n <div class=\"flex flex-col gap-6 p-8\">\n <ng-container\n *ngFor=\"\n let section of facade.currentSections$ | async;\n trackBy: sectionTracker\n \"\n >\n <ng-container *ngIf=\"!section.hidden\">\n <div class=\"flex flex-col gap-8 border p-8 rounded-[8px] shadow\">\n <div\n class=\"flex flex-col gap-2\"\n [ngClass]=\"section.labelKey ? 'mb-4' : 'hidden'\"\n >\n <div\n *ngIf=\"section.labelKey\"\n class=\"text-2xl font-petrona text-secondary\"\n translate\n >\n {{ section.labelKey }}\n </div>\n <div\n *ngIf=\"section.descriptionKey\"\n class=\"text-secondary-lightest\"\n translate\n >\n {{ section.descriptionKey }}\n </div>\n </div>\n <ng-container\n *ngFor=\"\n let field of section.fieldsWithValues;\n trackBy: fieldTracker\n \"\n >\n <ng-container *ngIf=\"!field.config.hidden\">\n <gn-ui-form-field\n [model]=\"field.config.model!\"\n [config]=\"field.config.formFieldConfig\"\n [value]=\"field.value\"\n (valueChange)=\"\n handleFieldValueChange(field.config.model!, $event)\n \"\n ></gn-ui-form-field>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
|
|
35453
35953
|
}], ctorParameters: function () { return [{ type: EditorFacade }]; } });
|
|
35454
35954
|
|
|
35455
35955
|
const ROUTER_STATE_KEY = 'router';
|
|
@@ -35832,5 +36332,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35832
36332
|
* Generated bundle index. Do not edit.
|
|
35833
36333
|
*/
|
|
35834
36334
|
|
|
35835
|
-
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_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_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave,
|
|
36335
|
+
export { ADD_RESULTS, ADD_SEARCH, AbstractAction, AbstractSearchField, AddLayerFromCatalogComponent, AddLayerRecordPreviewComponent, AddResults, AddSearch, AnchorLinkDirective, ApiCardComponent, AuthService, AutocompleteComponent, AvatarComponent, AvatarServiceInterface, BLOCK_MODEL_FIXTURE, BadgeComponent, BaseConverter, BaseReader, BlockListComponent, ButtonComponent, CLEAR_ERROR, CLEAR_RESULTS, CONFIG_MALFORMED, CONFIG_MINIMAL, CONFIG_MISSING_MANDATORY, CONFIG_OK, CONFIG_UNRECOGNIZED_KEYS, CONFIG_WITH_TRANSLATIONS, CONFIG_WRONG_LANGUAGE_CODE, CarouselComponent, CatalogTitleComponent, ChartComponent, ChartViewComponent, CheckToggleComponent, CheckboxComponent, ChipsInputComponent, ClearError, ClearResults, ColorScaleComponent, ContentGhostComponent, CopyTextButtonComponent, DEFAULT_BASELAYER_CONTEXT, DEFAULT_GN4_LOGIN_URL, DEFAULT_LANG, DEFAULT_PAGE_SIZE, DEFAULT_RESULTS_LAYOUT_CONFIG, DEFAULT_SEARCH_KEY, DEFAULT_STYLE_FIXTURE, DEFAULT_STYLE_HL_FIXTURE, DEFAULT_VIEW, DataService, DataViewComponent, DataViewPermalinkComponent, DataViewShareComponent, DataViewWebComponentComponent, DatePickerComponent, DateRangePickerComponent, DefaultRouterModule, DownloadItemComponent, DownloadsListComponent, DragAndDropFileInputComponent, DropdownMultiselectComponent, DropdownSelectorComponent, EDITOR_FEATURE_KEY, EMPTY_BLOCK_MODEL_FIXTURE, ES_QUERY_FIELDS_PRIORITY, ES_RESOURCES_VALUES, ES_SOURCE_SUMMARY, EditableLabelDirective, EditorFacade, EditorService, ElasticsearchService, EmbeddedTranslateLoader, ErrorComponent, ErrorType, ExpandablePanelButtonComponent, ExpandablePanelComponent, ExternalViewerButtonComponent, FACET_ITEM_FIXTURE, FEATURE_MAP_OPTIONS, FIELDS_BRIEF, FIELDS_SUMMARY, FILTER_GEOMETRY, FORMATS, FacetBlockComponent, FacetBlockStubComponent, FacetItemComponent, FacetItemStubComponent, FacetListComponent, FacetsContainerComponent, FacetsModule, FavoriteStarComponent, FavoritesService, FeatureAuthModule, FeatureCatalogModule, FeatureDatavizModule, FeatureDetailComponent, FeatureEditorModule, FeatureInfoService, FeatureMapModule, FeatureNotificationsModule, FeatureRecordModule, FeatureSearchModule, FetchError, FieldsService, FigureComponent, FigureContainerComponent, FileTranslateLoader, FilterDropdownComponent, FormFieldWrapperComponent, FullTextSearchField, FuzzySearchComponent, GN_UI_VERSION, GeoTableViewComponent, GeocodingComponent, Gn4Converter, Gn4PlatformMapper, Gn4PlatformService, Gn4Repository, Gn4SettingsService, GravatarService, HttpLoaderFactory, I18nInterceptor, ImageFallbackDirective, ImageOverlayPreviewComponent, InteractiveTableColumnComponent, InteractiveTableComponent, IsSpatialSearchField, Iso191153Converter, Iso19139Converter, LANGUAGES_LIST, LANGUAGE_NAMES, LANGUAGE_STORAGE_KEY, LANG_2_TO_3_MAPPER, LANG_3_TO_2_MAPPER, LOGIN_URL, LONLAT_CRS_CODES, LangService, LanguageSwitcherComponent, LayersPanelComponent, LicenseSearchField, LinkCardComponent, LinkClassifierService, LinkUsage, LoadingMaskComponent, LogService, MAP_CONFIG_FIXTURE, MAP_FEATURE_KEY, METADATA_LANGUAGE, MY_FORMATS, MapComponent, MapContainerComponent, MapContextComponent, MapContextLayerTypeEnum, MapContextService, MapFacade, MapInstanceDirective, MapManagerService, MapStyleService, MapUtilsService, MapViewComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxLinesComponent, mdview_actions as MdViewActions, MdViewFacade, MetadataCatalogComponent, MetadataContactComponent, MetadataInfoComponent, MetadataLinkType, MetadataMapperContext, MetadataQualityComponent, MetadataQualityItemComponent, MultilingualSearchField, MyOrgService, NavigationButtonComponent, NotificationComponent, NotificationsContainerComponent, NotificationsService, ORGANIZATIONS_STRATEGY, ORGANIZATION_PAGE_URL_TOKEN, ORGANIZATION_URL_TOKEN, OrganisationPreviewComponent, OrganisationsComponent, OrganisationsFilterComponent, OrganisationsResultComponent, OrganizationSearchField, OrganizationsFromGroupsService, OrganizationsFromMetadataService, OwnerSearchField, PAGINATE, PARSE_DELIMITER, PATCH_RESULTS_AGGREGATIONS, PROXY_PATH, Paginate, PaginationButtonsComponent, PaginationComponent, PatchResultsAggregations, PopoverComponent, PopupAlertComponent, PreviousNextButtonsComponent, ProgressBarComponent, ProxyService, QUERY_FIELDS, RECORD_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_SEARCH, ROUTER_STATE_KEY, ROUTE_PARAMS, RecordApiFormComponent, RecordFormComponent, RecordMetricComponent, RecordPreviewCardComponent, RecordPreviewComponent, RecordPreviewFeedComponent, RecordPreviewListComponent, RecordPreviewRowComponent, RecordPreviewTextComponent, RecordPreviewTitleComponent, RecordsMetricsComponent, RecordsService, RelatedRecordCardComponent, RequestMoreOnAggregation, RequestMoreResults, RequestNewResults, ResultsHitsContainerComponent, ResultsHitsNumberComponent, ResultsLayoutComponent, ResultsLayoutConfigItem, ResultsListComponent, ResultsListContainerComponent, ResultsListItemComponent, ResultsTableComponent, ResultsTableContainerComponent, RouterEffects, RouterFacade, RouterService, SEARCH_FEATURE_KEY, SET_CONFIG_AGGREGATIONS, SET_CONFIG_FILTERS, SET_CONFIG_REQUEST_FIELDS, SET_ERROR, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_RESULTS_AGGREGATIONS, SET_RESULTS_HITS, SET_RESULTS_LAYOUT, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SearchEffects, SearchFacade, SearchInputComponent, SearchRouterContainerDirective, SearchService, SearchStateContainerDirective, SelectionService, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetError, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsAggregations, SetResultsHits, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, SimpleSearchField, SiteTitleComponent, SortByComponent, SortableListComponent, SourceLabelComponent, SourcesService, SpinningLoaderComponent, StarToggleComponent, StepBarComponent, StickyHeaderComponent, SupportedTypes, TABLE_ITEM_FIXTURE, TABLE_ITEM_FIXTURE_HAB, THUMBNAIL_PLACEHOLDER, TRANSLATE_DEFAULT_CONFIG, TRANSLATE_WITH_OVERRIDES_CONFIG, TableComponent, TableViewComponent, TextAreaComponent, TextInputComponent, ThemeService, ThumbnailComponent, TranslatedSearchField, UPDATE_CONFIG_AGGREGATIONS, UPDATE_FILTERS, UPDATE_REQUEST_AGGREGATION_TERM, UiCatalogModule, UiDatavizModule, UiElementsModule, FacetsModule$1 as UiFacetsModule, UiInputsModule, UiLayoutModule, UiMapModule, UiSearchModule, UiWidgetsModule, UpdateConfigAggregations, UpdateFilters, UserPreviewComponent, UtilI18nModule, UtilSharedModule, ViewportIntersectorComponent, WEB_COMPONENT_EMBEDDER_URL, WFS_MAX_FEATURES, WizardComponent, WizardFieldComponent, WizardFieldType, WizardService, WizardSummarizeComponent, _reset, addLayer, changeLayerOrder, checkFileFormat, clearLayerError, createFuzzyFilter, currentPage, defaultMapOptions, downgradeImage, downsizeImage, draftSaveSuccess, dragPanCondition, dropEmptyTranslations, editorReducer, findConverterForDocument, getArrayItem, getAsArray, getAsUrl, getBadgeColor, getCustomTranslations, getError, getFavoritesOnly, getFileFormat, getFileFormatFromServiceOutput, getFirstValue, getFormatPriority, getGeometryFromGeoJSON, getGlobalConfig, getJsonDataItemsProxy, getLangFromBrowser, getLinkLabel, getLinkPriority, getMapLayers, getMapState, getMetadataQualityConfig, getMimeTypeForFormat, getOptionalMapConfig, getOptionalSearchConfig, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSearchState, getSearchStateSearch, getSpatialFilterEnabled, getTemporalRangeUnion, getThemeConfig, initSearch, initialEditorState, initialMapState, initialState, isBeginningOfResults, isConfigLoaded, isEndOfResults, isFormatInQueryParam, loadAppConfig, mapContact, mapKeywords, mapLogo, mapOrganization, mapReducer, markRecordAsChanged, megabytesToBytes, mimeTypeToFormat, mouseWheelZoomCondition, openDataset, openRecord, parse, placeholder, propagateToDocumentOnly, provideGn4, provideRepositoryUrl, readDataset, readDatasetHeaders, reducer$2 as reducer, reducerSearch, removeLayer, removeSearchParams, removeWhitespace, saveRecord, saveRecordFailure, saveRecordSuccess, selectCurrentPage, selectEditorConfig, selectEditorState, selectFallback, selectFallbackFields, selectField, selectRecord, selectRecordAlreadySavedOnce, selectRecordChangedSinceSave, selectRecordSaveError, selectRecordSaving, selectRecordSections, selectRecordSource, selectTranslatedField, selectTranslatedValue, setCurrentPage, setLayerError, sortByFromString, sortByToString, sortByToStrings, stripHtml, toDate, totalPages, updateLayer, updateRecordField };
|
|
35836
36336
|
//# sourceMappingURL=geonetwork-ui.mjs.map
|