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.
@@ -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.1e955ff0e";
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 (record.kind === 'dataset' &&
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 = `${format}-${withoutNameSpace}`;
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 class=\"aggregation-choices\"\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 }); }
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 class=\"aggregation-choices\"\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" }]
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 axios.get(this.url.concat(`&limit=200&page=${page}`));
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;