geonetwork-ui 2.8.2-dev.c7f35f0e1 → 2.8.2-dev.ea71d3725
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 +12 -10
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +13 -3
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +1 -1
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +3 -3
|
@@ -25519,7 +25519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
25519
25519
|
}] } });
|
|
25520
25520
|
|
|
25521
25521
|
var name = "geonetwork-ui";
|
|
25522
|
-
var version = "2.8.2-dev.
|
|
25522
|
+
var version = "2.8.2-dev.ea71d3725";
|
|
25523
25523
|
var engines = {
|
|
25524
25524
|
node: ">=20"
|
|
25525
25525
|
};
|
|
@@ -34018,9 +34018,9 @@ class MetadataContactComponent {
|
|
|
34018
34018
|
return this.metadata.ownerOrganization;
|
|
34019
34019
|
}
|
|
34020
34020
|
get contacts() {
|
|
34021
|
-
return ((this.metadata.kind === '
|
|
34022
|
-
? this.metadata.
|
|
34023
|
-
: this.metadata.
|
|
34021
|
+
return ((this.metadata.kind === 'service'
|
|
34022
|
+
? this.metadata.contacts
|
|
34023
|
+
: this.metadata.contactsForResource) || []);
|
|
34024
34024
|
}
|
|
34025
34025
|
get address() {
|
|
34026
34026
|
const addressParts = this.contacts[0].address
|
|
@@ -34032,7 +34032,7 @@ class MetadataContactComponent {
|
|
|
34032
34032
|
this.organizationClick.emit(this.shownOrganization);
|
|
34033
34033
|
}
|
|
34034
34034
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34035
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: MetadataContactComponent, isStandalone: true, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n @if (shownOrganization?.logoUrl?.href) {\n <div\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n }\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n @if (shownOrganization?.website) {\n <div>\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n }\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n @if (contacts[0]?.phone) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.email) {\n <div>\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n @if (contacts.length) {\n <a\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n }\n </div>\n </div>\n }\n @if (contacts[0]?.firstName || contacts[0]?.lastName) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.address) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n @for (addressPart of address; track addressPart) {\n <p class=\"text-sm\">\n {{ addressPart }}\n </p>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], viewProviders: [
|
|
34035
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: MetadataContactComponent, isStandalone: true, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n @if (shownOrganization?.logoUrl?.href) {\n <div\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n }\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n @if (shownOrganization?.website) {\n <div>\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n }\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n @if (contacts[0]?.phone) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.email) {\n <div>\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n @if (contacts.length) {\n <a\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n }\n </div>\n </div>\n }\n @if (contacts[0]?.firstName || contacts[0]?.lastName) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\" data-cy=\"contact-full-name\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.address) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n @for (addressPart of address; track addressPart) {\n <p class=\"text-sm\">\n {{ addressPart }}\n </p>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"], outputs: ["placeholderShown"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], viewProviders: [
|
|
34036
34036
|
provideIcons({
|
|
34037
34037
|
matOpenInNew,
|
|
34038
34038
|
matCallOutline,
|
|
@@ -34052,7 +34052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
34052
34052
|
matPersonOutline,
|
|
34053
34053
|
matLocationOnOutline,
|
|
34054
34054
|
}),
|
|
34055
|
-
], template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n @if (shownOrganization?.logoUrl?.href) {\n <div\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n }\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n @if (shownOrganization?.website) {\n <div>\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n }\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n @if (contacts[0]?.phone) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.email) {\n <div>\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n @if (contacts.length) {\n <a\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n }\n </div>\n </div>\n }\n @if (contacts[0]?.firstName || contacts[0]?.lastName) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.address) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n @for (addressPart of address; track addressPart) {\n <p class=\"text-sm\">\n {{ addressPart }}\n </p>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
|
|
34055
|
+
], template: "<div\n class=\"py-5 px-5 rounded bg-gray-100 text-black\"\n data-cy=\"metadata-organization\"\n>\n <div class=\"grid gap-3 overflow-hidden\">\n <div>\n <p class=\"text-base font-medium\" translate>record.metadata.contact</p>\n </div>\n @if (shownOrganization?.logoUrl?.href) {\n <div\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n }\n <div class=\"grid grid-cols-1 gap-1\">\n <div class=\"flex\">\n <div\n class=\"font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name-link\"\n >\n {{ shownOrganization?.name }}\n </div>\n </div>\n @if (shownOrganization?.website) {\n <div>\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <ng-icon\n class=\"!w-[12px] !h-[12px] opacity-75 shrink-0\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </a>\n </div>\n }\n </div>\n <div class=\"grid grid-cols-1 gap-5 py-3 overflow-hidden\">\n @if (contacts[0]?.phone) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matCallOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.email) {\n <div>\n <div class=\"flex gap-2\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matMailOutline\"\n ></ng-icon>\n @if (contacts.length) {\n <a\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"break-all text-sm hover:underline\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n }\n </div>\n </div>\n }\n @if (contacts[0]?.firstName || contacts[0]?.lastName) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matPersonOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\" data-cy=\"contact-full-name\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n }\n @if (contacts[0]?.address) {\n <div>\n <div class=\"flex\">\n <ng-icon\n class=\"!w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n name=\"matLocationOnOutline\"\n ></ng-icon>\n <div class=\"flex flex-col ml-2\">\n @for (addressPart of address; track addressPart) {\n <p class=\"text-sm\">\n {{ addressPart }}\n </p>\n }\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
|
|
34056
34056
|
}], propDecorators: { metadata: [{
|
|
34057
34057
|
type: Input
|
|
34058
34058
|
}], organizationClick: [{
|
|
@@ -38378,12 +38378,12 @@ class DataService {
|
|
|
38378
38378
|
throw new Error(`ogc.unreachable.unknown`);
|
|
38379
38379
|
});
|
|
38380
38380
|
}
|
|
38381
|
-
async getItemsFromOgcApi(url) {
|
|
38381
|
+
async getItemsFromOgcApi(url, limit) {
|
|
38382
38382
|
const endpoint = new OgcApiEndpoint(url);
|
|
38383
38383
|
return await endpoint.featureCollections
|
|
38384
38384
|
.then((collections) => {
|
|
38385
38385
|
return collections.length
|
|
38386
|
-
? endpoint.getCollectionItems(collections[0])
|
|
38386
|
+
? endpoint.getCollectionItems(collections[0], limit)
|
|
38387
38387
|
: null;
|
|
38388
38388
|
})
|
|
38389
38389
|
.catch(() => {
|
|
@@ -38479,7 +38479,9 @@ class DataService {
|
|
|
38479
38479
|
if (!geojsonUrl) {
|
|
38480
38480
|
return throwError(() => 'ogc.geojson.notsupported');
|
|
38481
38481
|
}
|
|
38482
|
-
|
|
38482
|
+
const urlWithoutLimit = new URL(geojsonUrl);
|
|
38483
|
+
urlWithoutLimit.searchParams.delete('limit');
|
|
38484
|
+
return openDataset(urlWithoutLimit.toString(), 'geojson', undefined, cacheActive);
|
|
38483
38485
|
}));
|
|
38484
38486
|
}
|
|
38485
38487
|
return throwError(() => 'protocol not supported');
|
|
@@ -39480,7 +39482,7 @@ class MdViewFacade {
|
|
|
39480
39482
|
if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
|
|
39481
39483
|
if (link.type === 'service' &&
|
|
39482
39484
|
link.accessServiceProtocol === 'ogcFeatures') {
|
|
39483
|
-
return from(this.dataService.getItemsFromOgcApi(link.url.href)).pipe(map$1((collectionRecords) => {
|
|
39485
|
+
return from(this.dataService.getItemsFromOgcApi(link.url.href, 1)).pipe(map$1((collectionRecords) => {
|
|
39484
39486
|
return collectionRecords &&
|
|
39485
39487
|
collectionRecords[0] &&
|
|
39486
39488
|
collectionRecords[0].geometry
|