geonetwork-ui 2.9.0-dev.1e955ff0e → 2.9.0-dev.27de12f92
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/fesm2022/geonetwork-ui.mjs +21 -10
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +3 -3
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +3 -4
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +5 -3
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +1 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/translations/de.json +1 -0
- package/translations/en.json +1 -0
- package/translations/es.json +1 -0
- package/translations/fr.json +1 -0
- package/translations/it.json +1 -0
- package/translations/nl.json +1 -0
- package/translations/pt.json +1 -0
- package/translations/sk.json +1 -0
|
@@ -92,7 +92,6 @@ import { MatTableModule } from '@angular/material/table';
|
|
|
92
92
|
import * as i3 from '@angular/material/paginator';
|
|
93
93
|
import { MatPaginatorIntl, MatPaginatorModule, MatPaginator } from '@angular/material/paginator';
|
|
94
94
|
import { LetDirective } from '@ngrx/component';
|
|
95
|
-
import axios from 'axios';
|
|
96
95
|
import { Meta } from '@angular/platform-browser';
|
|
97
96
|
import { tablerFolderOpen } from '@ng-icons/tabler-icons';
|
|
98
97
|
import * as i3$1 from '@angular/material/radio';
|
|
@@ -18626,6 +18625,7 @@ var de = {
|
|
|
18626
18625
|
"dashboard.records.username": "Benutzername",
|
|
18627
18626
|
"dashboard.records.users": "{count, plural, =1{Benutzer} other{Benutzer}}",
|
|
18628
18627
|
"datahub.header.datasets": "Katalog",
|
|
18628
|
+
"datahub.header.edit.url.open": "",
|
|
18629
18629
|
"datahub.header.lastRecords": "Die neuesten",
|
|
18630
18630
|
"datahub.header.myfavorites": "Meine Favoriten",
|
|
18631
18631
|
"datahub.header.news": "Startseite",
|
|
@@ -19299,6 +19299,7 @@ var en = {
|
|
|
19299
19299
|
"dashboard.records.username": "Username",
|
|
19300
19300
|
"dashboard.records.users": "{count, plural, =1{user} other{users}}",
|
|
19301
19301
|
"datahub.header.datasets": "Catalog",
|
|
19302
|
+
"datahub.header.edit.url.open": "Edit",
|
|
19302
19303
|
"datahub.header.lastRecords": "The latest",
|
|
19303
19304
|
"datahub.header.myfavorites": "My favorites",
|
|
19304
19305
|
"datahub.header.news": "Home",
|
|
@@ -19972,6 +19973,7 @@ var es = {
|
|
|
19972
19973
|
"dashboard.records.username": "",
|
|
19973
19974
|
"dashboard.records.users": "",
|
|
19974
19975
|
"datahub.header.datasets": "Catálogo",
|
|
19976
|
+
"datahub.header.edit.url.open": "",
|
|
19975
19977
|
"datahub.header.lastRecords": "",
|
|
19976
19978
|
"datahub.header.myfavorites": "",
|
|
19977
19979
|
"datahub.header.news": "",
|
|
@@ -20645,6 +20647,7 @@ var fr = {
|
|
|
20645
20647
|
"dashboard.records.username": "Nom d'utilisateur",
|
|
20646
20648
|
"dashboard.records.users": "{count, plural, =1{utilisateur} other{utilisateurs}}",
|
|
20647
20649
|
"datahub.header.datasets": "Catalogue",
|
|
20650
|
+
"datahub.header.edit.url.open": "Editer",
|
|
20648
20651
|
"datahub.header.lastRecords": "Les plus récentes",
|
|
20649
20652
|
"datahub.header.myfavorites": "Mes favoris",
|
|
20650
20653
|
"datahub.header.news": "Accueil",
|
|
@@ -21318,6 +21321,7 @@ var it = {
|
|
|
21318
21321
|
"dashboard.records.username": "Nome utente",
|
|
21319
21322
|
"dashboard.records.users": "utenti",
|
|
21320
21323
|
"datahub.header.datasets": "Catalogo",
|
|
21324
|
+
"datahub.header.edit.url.open": "",
|
|
21321
21325
|
"datahub.header.lastRecords": "Ultimi",
|
|
21322
21326
|
"datahub.header.myfavorites": "Miei preferiti",
|
|
21323
21327
|
"datahub.header.news": "Home",
|
|
@@ -21991,6 +21995,7 @@ var nl = {
|
|
|
21991
21995
|
"dashboard.records.username": "",
|
|
21992
21996
|
"dashboard.records.users": "",
|
|
21993
21997
|
"datahub.header.datasets": "Catalog",
|
|
21998
|
+
"datahub.header.edit.url.open": "",
|
|
21994
21999
|
"datahub.header.lastRecords": "",
|
|
21995
22000
|
"datahub.header.myfavorites": "",
|
|
21996
22001
|
"datahub.header.news": "",
|
|
@@ -22664,6 +22669,7 @@ var pt = {
|
|
|
22664
22669
|
"dashboard.records.username": "",
|
|
22665
22670
|
"dashboard.records.users": "",
|
|
22666
22671
|
"datahub.header.datasets": "Catálogo",
|
|
22672
|
+
"datahub.header.edit.url.open": "",
|
|
22667
22673
|
"datahub.header.lastRecords": "",
|
|
22668
22674
|
"datahub.header.myfavorites": "",
|
|
22669
22675
|
"datahub.header.news": "",
|
|
@@ -23337,6 +23343,7 @@ var sk = {
|
|
|
23337
23343
|
"dashboard.records.username": "Užívateľské meno",
|
|
23338
23344
|
"dashboard.records.users": "{count, plural, =1{užívateľ} other{užívatelia}}",
|
|
23339
23345
|
"datahub.header.datasets": "Katalóg",
|
|
23346
|
+
"datahub.header.edit.url.open": "",
|
|
23340
23347
|
"datahub.header.lastRecords": "Najnovšie",
|
|
23341
23348
|
"datahub.header.myfavorites": "Moje obľúbené",
|
|
23342
23349
|
"datahub.header.news": "Domov",
|
|
@@ -25519,7 +25526,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
25519
25526
|
}] } });
|
|
25520
25527
|
|
|
25521
25528
|
var name = "geonetwork-ui";
|
|
25522
|
-
var version = "2.9.0-dev.
|
|
25529
|
+
var version = "2.9.0-dev.27de12f92";
|
|
25523
25530
|
var engines = {
|
|
25524
25531
|
node: ">=20"
|
|
25525
25532
|
};
|
|
@@ -25573,7 +25580,6 @@ var dependencies = {
|
|
|
25573
25580
|
"@nx/angular": "22.0.4",
|
|
25574
25581
|
"@rgrove/parse-xml": "4.2.0",
|
|
25575
25582
|
alasql: "4.6.0",
|
|
25576
|
-
axios: "1.12.0",
|
|
25577
25583
|
basiclightbox: "^5.0.4",
|
|
25578
25584
|
"chart.js": "4.4.7",
|
|
25579
25585
|
"chroma-js": "3.1.2",
|
|
@@ -26457,7 +26463,8 @@ class Gn4Repository {
|
|
|
26457
26463
|
}));
|
|
26458
26464
|
}
|
|
26459
26465
|
canEdit(record, allowEditHarvested) {
|
|
26460
|
-
return (
|
|
26466
|
+
return (this.platformService.supportsAuthentication() &&
|
|
26467
|
+
record.kind === 'dataset' &&
|
|
26461
26468
|
record.extras['edit'] &&
|
|
26462
26469
|
(!record.extras['isHarvested'] || allowEditHarvested));
|
|
26463
26470
|
}
|
|
@@ -28197,6 +28204,7 @@ function loadAppConfig(configUrl = 'assets/configuration/default.toml') {
|
|
|
28197
28204
|
const warnings = [];
|
|
28198
28205
|
let parsedGlobalSection = parseConfigSection(parsed, 'global', ['geonetwork4_api_url'], [
|
|
28199
28206
|
'datahub_url',
|
|
28207
|
+
'edit_url_template',
|
|
28200
28208
|
'proxy_path',
|
|
28201
28209
|
'metadata_language',
|
|
28202
28210
|
'login_url',
|
|
@@ -28216,6 +28224,7 @@ function loadAppConfig(configUrl = 'assets/configuration/default.toml') {
|
|
|
28216
28224
|
: {
|
|
28217
28225
|
GN4_API_URL: parsedGlobalSection.geonetwork4_api_url,
|
|
28218
28226
|
DATAHUB_URL: parsedGlobalSection.datahub_url,
|
|
28227
|
+
EDIT_URL_TEMPLATE: parsedGlobalSection.edit_url_template,
|
|
28219
28228
|
PROXY_PATH: parsedGlobalSection.proxy_path,
|
|
28220
28229
|
METADATA_LANGUAGE: parsedGlobalSection.metadata_language
|
|
28221
28230
|
? parsedGlobalSection.metadata_language.toLowerCase()
|
|
@@ -29919,7 +29928,7 @@ class DropdownSelectorComponent {
|
|
|
29919
29928
|
return this.title.toLowerCase().replace(/[^a-z]+/g, '-');
|
|
29920
29929
|
}
|
|
29921
29930
|
getChoiceLabel() {
|
|
29922
|
-
return this.selectedChoice?.label;
|
|
29931
|
+
return this.selectedChoice?.label ?? '\u00A0';
|
|
29923
29932
|
}
|
|
29924
29933
|
ngOnInit() {
|
|
29925
29934
|
if (!this.maxRows)
|
|
@@ -33317,10 +33326,12 @@ class DownloadsListComponent {
|
|
|
33317
33326
|
}
|
|
33318
33327
|
removeDuplicateFormats(links) {
|
|
33319
33328
|
const preferredLinks = new Map();
|
|
33320
|
-
links.forEach((link) => {
|
|
33329
|
+
links.forEach((link, index) => {
|
|
33321
33330
|
const format = getFileFormat(link);
|
|
33322
33331
|
const withoutNameSpace = (link.name || link.description || '').replace(/^.*?:/, '');
|
|
33323
|
-
const uniqueKey =
|
|
33332
|
+
const uniqueKey = link.accessServiceProtocol
|
|
33333
|
+
? `${format}-${withoutNameSpace}`
|
|
33334
|
+
: index.toString(); // direct download links should not be deduplicated
|
|
33324
33335
|
if (!preferredLinks.has(uniqueKey)) {
|
|
33325
33336
|
preferredLinks.set(uniqueKey, link);
|
|
33326
33337
|
}
|
|
@@ -39166,7 +39177,7 @@ class ChartViewComponent {
|
|
|
39166
39177
|
this.changeDetector.detectChanges();
|
|
39167
39178
|
}
|
|
39168
39179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ChartViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { featureCatalog: "featureCatalog", cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType", userChartConfig: "userChartConfig" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n @if (yChoices$ | async; as yChoices) {\n <gn-ui-dropdown-selector\n class=\"basis-1/4 select-y-prop\"\n [choices]=\"yChoices\"\n [disabled]=\"isCountAggregation\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n ></gn-ui-dropdown-selector>\n }\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n
|
|
39180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { featureCatalog: "featureCatalog", cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType", userChartConfig: "userChartConfig" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n @if (yChoices$ | async; as yChoices) {\n <gn-ui-dropdown-selector\n class=\"basis-1/4 flex items-center select-y-prop\"\n [choices]=\"yChoices\"\n [disabled]=\"isCountAggregation\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n ></gn-ui-dropdown-selector>\n }\n <gn-ui-dropdown-selector\n class=\"basis-1/4 aggregation-choices\"\n [choices]=\"aggregationChoices\"\n [disabled]=\"!yProperty$.value\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n @if (!error) {\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [prettyLabel]=\"prettyLabel$ | async\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n }\n @if (loading) {\n <gn-ui-loading-mask\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n }\n @if (error) {\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "prettyLabel", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39170
39181
|
}
|
|
39171
39182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ChartViewComponent, decorators: [{
|
|
39172
39183
|
type: Component,
|
|
@@ -39177,7 +39188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
39177
39188
|
LoadingMaskComponent,
|
|
39178
39189
|
PopupAlertComponent,
|
|
39179
39190
|
TranslatePipe,
|
|
39180
|
-
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n @if (yChoices$ | async; as yChoices) {\n <gn-ui-dropdown-selector\n class=\"basis-1/4 select-y-prop\"\n [choices]=\"yChoices\"\n [disabled]=\"isCountAggregation\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n ></gn-ui-dropdown-selector>\n }\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n
|
|
39191
|
+
], standalone: true, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n @if (yChoices$ | async; as yChoices) {\n <gn-ui-dropdown-selector\n class=\"basis-1/4 flex items-center select-y-prop\"\n [choices]=\"yChoices\"\n [disabled]=\"isCountAggregation\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n ></gn-ui-dropdown-selector>\n }\n <gn-ui-dropdown-selector\n class=\"basis-1/4 aggregation-choices\"\n [choices]=\"aggregationChoices\"\n [disabled]=\"!yProperty$.value\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n @if (!error) {\n <gn-ui-chart\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [prettyLabel]=\"prettyLabel$ | async\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n }\n @if (loading) {\n <gn-ui-loading-mask\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n }\n @if (error) {\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n }\n </div>\n</div>\n" }]
|
|
39181
39192
|
}], propDecorators: { featureCatalog: [{
|
|
39182
39193
|
type: Input
|
|
39183
39194
|
}], cacheActive: [{
|
|
@@ -40125,7 +40136,7 @@ class GpfApiDlComponent {
|
|
|
40125
40136
|
let choicesTest = undefined;
|
|
40126
40137
|
let pageCount = 1;
|
|
40127
40138
|
while (choicesTest === undefined && pageCount > page) {
|
|
40128
|
-
const response = await
|
|
40139
|
+
const response = await fetch(this.url.concat(`&limit=200&page=${page}`)).then((resp) => resp.json());
|
|
40129
40140
|
choicesTest = response.data.entry.filter((element) => element['id'] == this.apiBaseUrl)[0];
|
|
40130
40141
|
page += 1;
|
|
40131
40142
|
pageCount = response.data.pagecount;
|