geonetwork-ui 2.6.0-dev.502fa026d → 2.6.0-dev.ed41ee824
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/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +27 -6
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +22 -6
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +21 -19
- package/esm2022/translations/en.json +1 -1
- package/fesm2022/geonetwork-ui.mjs +98 -40
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +16 -16
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +1 -0
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +26 -2
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +17 -17
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +20 -2
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +1 -0
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +27 -29
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +33 -3
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -4
- package/src/libs/util/shared/src/lib/links/link-utils.ts +20 -18
- package/tailwind.base.css +29 -1
- package/translations/en.json +1 -1
|
@@ -26,8 +26,8 @@ import { createAction, props, createReducer, on, createFeatureSelector, createSe
|
|
|
26
26
|
import EmblaCarousel from 'embla-carousel';
|
|
27
27
|
import * as i2$2 from '@ng-icons/core';
|
|
28
28
|
import { provideIcons, NgIcon, NgIconComponent, provideNgIconsConfig, NgIconsModule } from '@ng-icons/core';
|
|
29
|
-
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
30
|
-
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber,
|
|
29
|
+
import { iconoirNavArrowRight, iconoirNavArrowLeft, iconoirNavArrowDown, iconoirNavArrowUp, iconoirSearch, iconoirLongArrowDownLeft, iconoirCalendar, iconoirLink, iconoirArrowUp, iconoirCloudUpload, iconoirFramePlusIn, iconoirSettings, iconoirDownload, iconoirMediaImage, iconoirMediaImageXmark, iconoirBin, iconoirPlus, iconoirUser, iconoirLock, iconoirImport, iconoirLightBulbOn, iconoirArrowLeft, iconoirAttachment, iconoirRefresh } from '@ng-icons/iconoir';
|
|
30
|
+
import { matExpandMore, matExpandLess, matAdd, matRemove, matClose, matContentCopy, matSearch, matStar, matStarBorder, matChevronLeft, matChevronRight, matArrowForward, matArrowBack, matCheck, matWarningAmber, matFace, matQuestionMark, matMoodBad, matZoomOutMap, matOpenInNew, matMailOutline, matPersonOutline, matCheckCircleOutline, matWarning, matMoreVert, matCorporateFare } from '@ng-icons/material-icons/baseline';
|
|
31
31
|
import * as i1$4 from '@angular/material/tooltip';
|
|
32
32
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
33
33
|
import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
@@ -41,7 +41,7 @@ import { TagInputModule } from 'ngx-chips';
|
|
|
41
41
|
import * as i1$5 from '@angular/material/progress-spinner';
|
|
42
42
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
43
43
|
import tippy from 'tippy.js';
|
|
44
|
-
import { matErrorOutlineOutline, matInfoOutline,
|
|
44
|
+
import { matErrorOutlineOutline, matInfoOutline, matComputerOutline, matCallOutline, matLocationOnOutline, matMailOutline as matMailOutline$1, matWarningAmberOutline, matCloseOutline, matSendOutline, matMapOutline, matCloudDownloadOutline, matHomeWorkOutline, matSwipeOutline, matLayersOutline, matAddCircleOutlineOutline } from '@ng-icons/material-icons/outline';
|
|
45
45
|
import * as i2 from '@angular/material/core';
|
|
46
46
|
import { MatNativeDateModule, MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
|
47
47
|
import * as i1$7 from '@angular/material/checkbox';
|
|
@@ -19213,7 +19213,7 @@ var en = {
|
|
|
19213
19213
|
"datahub.search.back": "Back",
|
|
19214
19214
|
"datahub.search.filter.all": "All",
|
|
19215
19215
|
"datahub.search.filter.generatedByAPI": "Generated by an API",
|
|
19216
|
-
"datahub.search.filter.generatedByWfs": "",
|
|
19216
|
+
"datahub.search.filter.generatedByWfs": "Generated by a WFS",
|
|
19217
19217
|
"datahub.search.filter.others": "Others",
|
|
19218
19218
|
"dataset.error.forbidden": "Access to this resource is restricted",
|
|
19219
19219
|
"dataset.error.http": "The data could not be loaded because of an HTTP error: \"{ info }\"",
|
|
@@ -24765,7 +24765,7 @@ const FORMATS = {
|
|
|
24765
24765
|
csv: {
|
|
24766
24766
|
extensions: ['csv'],
|
|
24767
24767
|
priority: 1,
|
|
24768
|
-
color: '#
|
|
24768
|
+
color: '#F6A924',
|
|
24769
24769
|
mimeTypes: ['text/csv', 'application/csv'],
|
|
24770
24770
|
},
|
|
24771
24771
|
excel: {
|
|
@@ -24777,7 +24777,7 @@ const FORMATS = {
|
|
|
24777
24777
|
'openxmlformats-officedocument',
|
|
24778
24778
|
],
|
|
24779
24779
|
priority: 2,
|
|
24780
|
-
color: '#
|
|
24780
|
+
color: '#FFDE10',
|
|
24781
24781
|
mimeTypes: [
|
|
24782
24782
|
'application/vnd.ms-excel',
|
|
24783
24783
|
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
@@ -24786,31 +24786,31 @@ const FORMATS = {
|
|
|
24786
24786
|
geojson: {
|
|
24787
24787
|
extensions: ['geojson'],
|
|
24788
24788
|
priority: 3,
|
|
24789
|
-
color: '#
|
|
24789
|
+
color: '#293C6F',
|
|
24790
24790
|
mimeTypes: ['application/geo+json', 'application/vnd.geo+json'],
|
|
24791
24791
|
},
|
|
24792
24792
|
json: {
|
|
24793
24793
|
extensions: ['json'],
|
|
24794
24794
|
priority: 3,
|
|
24795
|
-
color: '#
|
|
24795
|
+
color: '#84D0F0',
|
|
24796
24796
|
mimeTypes: ['application/json'],
|
|
24797
24797
|
},
|
|
24798
24798
|
shp: {
|
|
24799
24799
|
extensions: ['shp', 'shape', 'zipped-shapefile'],
|
|
24800
24800
|
priority: 4,
|
|
24801
|
-
color: '#
|
|
24801
|
+
color: '#009036',
|
|
24802
24802
|
mimeTypes: ['x-gis/x-shapefile'],
|
|
24803
24803
|
},
|
|
24804
24804
|
gml: {
|
|
24805
24805
|
extensions: ['gml'],
|
|
24806
24806
|
priority: 5,
|
|
24807
|
-
color: '#
|
|
24807
|
+
color: '#E75113',
|
|
24808
24808
|
mimeTypes: ['application/gml+xml', 'text/xml; subtype=gml'],
|
|
24809
24809
|
},
|
|
24810
24810
|
kml: {
|
|
24811
24811
|
extensions: ['kml', 'kmz'],
|
|
24812
24812
|
priority: 6,
|
|
24813
|
-
color: '#
|
|
24813
|
+
color: '#F4B5D0',
|
|
24814
24814
|
mimeTypes: [
|
|
24815
24815
|
'application/vnd.google-earth.kml+xml',
|
|
24816
24816
|
'application/vnd.google-earth.kmz',
|
|
@@ -24819,55 +24819,55 @@ const FORMATS = {
|
|
|
24819
24819
|
gpkg: {
|
|
24820
24820
|
extensions: ['gpkg', 'geopackage'],
|
|
24821
24821
|
priority: 7,
|
|
24822
|
-
color: '#
|
|
24822
|
+
color: '#7D5D9F',
|
|
24823
24823
|
mimeTypes: ['application/geopackage+sqlite3'],
|
|
24824
24824
|
},
|
|
24825
24825
|
zip: {
|
|
24826
24826
|
extensions: ['zip', 'tar.gz'],
|
|
24827
24827
|
priority: 8,
|
|
24828
|
-
color: '#
|
|
24828
|
+
color: '#B0CB52',
|
|
24829
24829
|
mimeTypes: ['application/zip', 'application/x-zip'],
|
|
24830
24830
|
},
|
|
24831
24831
|
pdf: {
|
|
24832
24832
|
extensions: ['pdf'],
|
|
24833
24833
|
priority: 9,
|
|
24834
|
-
color: '#
|
|
24834
|
+
color: '#49579E',
|
|
24835
24835
|
mimeTypes: ['application/pdf'],
|
|
24836
24836
|
},
|
|
24837
24837
|
jpg: {
|
|
24838
24838
|
extensions: ['jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp'],
|
|
24839
24839
|
priority: 9,
|
|
24840
|
-
color: '#
|
|
24840
|
+
color: '#C4A98F',
|
|
24841
24841
|
mimeTypes: ['image/jpg'],
|
|
24842
24842
|
},
|
|
24843
24843
|
svg: {
|
|
24844
24844
|
extensions: ['svg'],
|
|
24845
24845
|
priority: 10,
|
|
24846
|
-
color: '#
|
|
24846
|
+
color: '#EB6D82',
|
|
24847
24847
|
mimeTypes: ['image/svg+xml'],
|
|
24848
24848
|
},
|
|
24849
24849
|
dxf: {
|
|
24850
24850
|
extensions: ['dxf'],
|
|
24851
24851
|
priority: 11,
|
|
24852
|
-
color: '#
|
|
24852
|
+
color: '#DCCD00',
|
|
24853
24853
|
mimeTypes: ['application/x-dxf', 'image/x-dxf'],
|
|
24854
24854
|
},
|
|
24855
24855
|
html: {
|
|
24856
24856
|
extensions: ['html', 'htm'],
|
|
24857
24857
|
priority: 12,
|
|
24858
|
-
color: '#
|
|
24858
|
+
color: '#C0C9B6',
|
|
24859
24859
|
mimeTypes: ['text/html'],
|
|
24860
24860
|
},
|
|
24861
24861
|
fgb: {
|
|
24862
24862
|
extensions: ['fgb', 'flatgeobuf'],
|
|
24863
24863
|
priority: 13,
|
|
24864
|
-
color: '#
|
|
24864
|
+
color: '#A8111C',
|
|
24865
24865
|
mimeTypes: ['application/flatgeobuf'],
|
|
24866
24866
|
},
|
|
24867
24867
|
jsonfg: {
|
|
24868
24868
|
extensions: ['jsonfg', 'jsonfgc'],
|
|
24869
24869
|
priority: 14,
|
|
24870
|
-
color: '#
|
|
24870
|
+
color: '#009EE0',
|
|
24871
24871
|
mimeTypes: [
|
|
24872
24872
|
'application/vnd.ogc.fg+json',
|
|
24873
24873
|
'application/vnd.ogc.fg+json;compatibility=geojson',
|
|
@@ -24938,9 +24938,11 @@ function mimeTypeToFormat(mimeType) {
|
|
|
24938
24938
|
return null;
|
|
24939
24939
|
}
|
|
24940
24940
|
function checkFileFormat(link, format) {
|
|
24941
|
-
return (('name' in link &&
|
|
24941
|
+
return (('name' in link &&
|
|
24942
|
+
new RegExp(`[./]${format}`, 'i').test(link.name.toLowerCase())) ||
|
|
24942
24943
|
('url' in link &&
|
|
24943
|
-
new RegExp(`[./]${format}`, 'i').test(link.url.toString()))
|
|
24944
|
+
new RegExp(`[./]${format}`, 'i').test(link.url.toString())) ||
|
|
24945
|
+
('name' in link && link.name.toLowerCase().includes(format)));
|
|
24944
24946
|
}
|
|
24945
24947
|
function getBadgeColor(linkFormat) {
|
|
24946
24948
|
for (const format in FORMATS) {
|
|
@@ -25493,11 +25495,11 @@ class CarouselComponent {
|
|
|
25493
25495
|
.on('select', this.refreshSteps);
|
|
25494
25496
|
}
|
|
25495
25497
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25496
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CarouselComponent, isStandalone: true, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, outputs: { currentStepChange: "currentStepChange" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host
|
|
25498
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CarouselComponent, isStandalone: true, selector: "gn-ui-carousel", inputs: { containerClass: "containerClass", stepsContainerClass: "stepsContainerClass" }, outputs: { currentStepChange: "currentStepChange" }, viewQueries: [{ propertyName: "carouselOverflowContainer", first: true, predicate: ["carouselOverflowContainer"], descendants: true }], ngImport: i0, template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative;display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: PaginationDotsComponent, selector: "gn-ui-pagination-dots", inputs: ["listComponent", "containerClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25497
25499
|
}
|
|
25498
25500
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
25499
25501
|
type: Component,
|
|
25500
|
-
args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host
|
|
25502
|
+
args: [{ selector: 'gn-ui-carousel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, PaginationDotsComponent], template: "<div #carouselOverflowContainer class=\"w-full\">\n <div class=\"carousel-container flex\" [ngClass]=\"containerClass\">\n <ng-content></ng-content>\n </div>\n</div>\n<gn-ui-pagination-dots\n [containerClass]=\"'absolute ' + stepsContainerClass\"\n [listComponent]=\"this\"\n></gn-ui-pagination-dots>\n", styles: [":host{position:relative;display:block}\n"] }]
|
|
25501
25503
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { carouselOverflowContainer: [{
|
|
25502
25504
|
type: ViewChild,
|
|
25503
25505
|
args: ['carouselOverflowContainer']
|
|
@@ -28653,9 +28655,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28653
28655
|
|
|
28654
28656
|
class ApiCardComponent {
|
|
28655
28657
|
constructor() {
|
|
28658
|
+
this.sizeClassMap = {
|
|
28659
|
+
L: 'gn-ui-card-l py-2 px-5 flex-row',
|
|
28660
|
+
M: 'gn-ui-card-m py-2 px-5 flex-row',
|
|
28661
|
+
S: 'gn-ui-card-s p-4 flex-col',
|
|
28662
|
+
XS: 'gn-ui-card-xs py-2 px-5 flex-row',
|
|
28663
|
+
};
|
|
28664
|
+
this.cardClass = '';
|
|
28656
28665
|
this.currentlyActive = false;
|
|
28657
28666
|
this.openRecordApiForm = new EventEmitter();
|
|
28658
28667
|
}
|
|
28668
|
+
set size(value) {
|
|
28669
|
+
this._size = value;
|
|
28670
|
+
this.cardClass = this.sizeClassMap[value];
|
|
28671
|
+
}
|
|
28672
|
+
get size() {
|
|
28673
|
+
return this._size;
|
|
28674
|
+
}
|
|
28675
|
+
get generatedText() {
|
|
28676
|
+
return this.link.accessServiceProtocol === 'wfs'
|
|
28677
|
+
? 'datahub.search.filter.generatedByWfs'
|
|
28678
|
+
: 'datahub.search.filter.generatedByAPI';
|
|
28679
|
+
}
|
|
28659
28680
|
ngOnInit() {
|
|
28660
28681
|
this.displayApiFormButton =
|
|
28661
28682
|
this.link.accessServiceProtocol === 'ogcFeatures' ||
|
|
@@ -28673,9 +28694,9 @@ class ApiCardComponent {
|
|
|
28673
28694
|
}
|
|
28674
28695
|
}
|
|
28675
28696
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28676
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex
|
|
28697
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApiCardComponent, isStandalone: true, selector: "gn-ui-api-card", inputs: { link: "link", currentLink: "currentLink", size: "size" }, outputs: { openRecordApiForm: "openRecordApiForm" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div>\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: CopyTextButtonComponent, selector: "gn-ui-copy-text-button", inputs: ["text", "tooltipText", "displayText", "rows"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
|
|
28677
28698
|
provideIcons({
|
|
28678
|
-
|
|
28699
|
+
iconoirSettings,
|
|
28679
28700
|
}),
|
|
28680
28701
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28681
28702
|
}
|
|
@@ -28689,13 +28710,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28689
28710
|
NgIcon,
|
|
28690
28711
|
], viewProviders: [
|
|
28691
28712
|
provideIcons({
|
|
28692
|
-
|
|
28713
|
+
iconoirSettings,
|
|
28693
28714
|
}),
|
|
28694
|
-
], template: "<div\n class=\"group flex
|
|
28715
|
+
], template: "<div\n class=\"group flex justify-between rounded filter overflow-hidden\"\n [ngClass]=\"cardClass\"\n>\n <ng-container *ngIf=\"size !== 'S'\">\n <div>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <div class=\"flex items-center\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #buttons>\n <div class=\"flex flex-row gap-2\">\n <gn-ui-copy-text-button\n [text]=\"link.url\"\n [tooltipText]=\"'tooltip.url.copy' | translate\"\n [displayText]=\"false\"\n class=\"border border-gray-300 rounded-lg pt-1 px-2 h-[34px]\"\n ></gn-ui-copy-text-button>\n <button\n *ngIf=\"displayApiFormButton\"\n type=\"button\"\n class=\"gn-ui-card-icon\"\n [ngClass]=\"{\n 'py-2 px-4 rounded-r-md bg-gray-400 hover:bg-gray-600 focus:bg-gray-800 text-white':\n displayText,\n }\"\n [matTooltip]=\"\n !currentlyActive\n ? ('record.metadata.api.form.openForm' | translate)\n : ('record.metadata.api.form.closeForm' | translate)\n \"\n matTooltipPosition=\"above\"\n (click)=\"openRecordApiFormPanel()\"\n >\n <ng-icon\n class=\"pointer-events-none align-middle card-icon\"\n name=\"iconoirSettings\"\n [ngClass]=\"{\n 'text-secondary opacity-100': currentlyActive,\n }\"\n ></ng-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div>\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n </div>\n <div class=\"flex flex-row justify-between\">\n <div class=\"flex flex-row gap-2.5 items-center pt-1\">\n <span\n *ngIf=\"link.accessServiceProtocol !== 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n >{{ link.accessServiceProtocol }}</span\n >\n <span\n *ngIf=\"link.accessServiceProtocol === 'GPFDL'\"\n class=\"bg-primary-opacity-50 uppercase inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded text-primary-lightest group-hover:bg-primary transition-colors\"\n [ngClass]=\"{\n '!bg-primary': currentlyActive,\n }\"\n translate\n >\n record.metadata.api.gpfdl</span\n >\n </div>\n <div *ngIf=\"size === 'S'\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
|
|
28695
28716
|
}], propDecorators: { link: [{
|
|
28696
28717
|
type: Input
|
|
28697
28718
|
}], currentLink: [{
|
|
28698
28719
|
type: Input
|
|
28720
|
+
}], size: [{
|
|
28721
|
+
type: Input
|
|
28699
28722
|
}], openRecordApiForm: [{
|
|
28700
28723
|
type: Output
|
|
28701
28724
|
}] } });
|
|
@@ -28756,15 +28779,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28756
28779
|
|
|
28757
28780
|
class DownloadItemComponent {
|
|
28758
28781
|
constructor() {
|
|
28782
|
+
this.sizeClassMap = {
|
|
28783
|
+
L: 'gn-ui-card-l py-2 px-5',
|
|
28784
|
+
M: 'gn-ui-card-m py-2 px-5',
|
|
28785
|
+
S: 'gn-ui-card-s p-4',
|
|
28786
|
+
XS: 'gn-ui-card-xs py-2 px-5',
|
|
28787
|
+
};
|
|
28788
|
+
this.cardClass = '';
|
|
28759
28789
|
this.exportUrl = new EventEmitter();
|
|
28760
28790
|
}
|
|
28791
|
+
set size(value) {
|
|
28792
|
+
this._size = value;
|
|
28793
|
+
this.cardClass = this.sizeClassMap[value];
|
|
28794
|
+
}
|
|
28795
|
+
get size() {
|
|
28796
|
+
return this._size;
|
|
28797
|
+
}
|
|
28761
28798
|
openUrl() {
|
|
28762
28799
|
this.exportUrl.emit(this.link.url.toString());
|
|
28763
28800
|
}
|
|
28764
28801
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28765
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadItemComponent, isStandalone: true, selector: "gn-ui-download-item", inputs: { link: "link", color: "color", format: "format", isFromApi: "isFromApi" }, outputs: { exportUrl: "exportUrl" }, ngImport: i0, template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex justify-between card-shadow
|
|
28802
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadItemComponent, isStandalone: true, selector: "gn-ui-download-item", inputs: { link: "link", color: "color", format: "format", isFromApi: "isFromApi", size: "size" }, outputs: { exportUrl: "exportUrl" }, ngImport: i0, template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n rel=\"noopener\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\" [title]=\"link.description || link.name\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <div class=\"flex flex-row gap-2 items-center pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span class=\"text-gray-800 text-xs\" *ngIf=\"isFromApi\" translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDownload\"\n >\n </ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], viewProviders: [
|
|
28766
28803
|
provideIcons({
|
|
28767
|
-
|
|
28804
|
+
iconoirDownload,
|
|
28768
28805
|
}),
|
|
28769
28806
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28770
28807
|
}
|
|
@@ -28772,9 +28809,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28772
28809
|
type: Component,
|
|
28773
28810
|
args: [{ selector: 'gn-ui-download-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateModule, NgIcon], standalone: true, viewProviders: [
|
|
28774
28811
|
provideIcons({
|
|
28775
|
-
|
|
28812
|
+
iconoirDownload,
|
|
28776
28813
|
}),
|
|
28777
|
-
], template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex justify-between card-shadow
|
|
28814
|
+
], template: "<a\n href=\"{{ link.url }}\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n rel=\"noopener\"\n [ngClass]=\"cardClass\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\" [title]=\"link.description || link.name\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <div class=\"flex flex-row gap-2 items-center pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"color\"\n data-cy=\"download-format\"\n >{{ format || ('downloads.format.unknown' | translate) }}</span\n >\n <span class=\"text-gray-800 text-xs\" *ngIf=\"isFromApi\" translate=\"\"\n >datahub.search.filter.generatedByAPI</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"iconoirDownload\"\n >\n </ng-icon>\n </div>\n </div>\n</a>\n" }]
|
|
28778
28815
|
}], propDecorators: { link: [{
|
|
28779
28816
|
type: Input
|
|
28780
28817
|
}], color: [{
|
|
@@ -28783,6 +28820,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28783
28820
|
type: Input
|
|
28784
28821
|
}], isFromApi: [{
|
|
28785
28822
|
type: Input
|
|
28823
|
+
}], size: [{
|
|
28824
|
+
type: Input
|
|
28786
28825
|
}], exportUrl: [{
|
|
28787
28826
|
type: Output
|
|
28788
28827
|
}] } });
|
|
@@ -28873,7 +28912,7 @@ class DownloadsListComponent {
|
|
|
28873
28912
|
link.accessServiceProtocol === 'ogcFeatures'));
|
|
28874
28913
|
}
|
|
28875
28914
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28876
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi"], outputs: ["exportUrl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28915
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"L\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28877
28916
|
}
|
|
28878
28917
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
|
|
28879
28918
|
type: Component,
|
|
@@ -28882,7 +28921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28882
28921
|
ButtonComponent,
|
|
28883
28922
|
DownloadItemComponent,
|
|
28884
28923
|
TranslateModule,
|
|
28885
|
-
], template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
|
|
28924
|
+
], template: "<div\n class=\"flex flex-wrap justify-between mt-8 mb-6 sm:mt-12 sm:mb-2\"\n *ngIf=\"links && links.length > 0\"\n>\n <p\n class=\"font-title text-[28px] text-title font-medium mr-4 pb-4 text-center sm:text-left\"\n translate\n >\n record.metadata.download\n </p>\n <div\n class=\"flex flex-wrap justify-start sm:justify-end sm:pb-4\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-50')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n<div class=\"mb-2 sm:mb-3\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"L\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
|
|
28886
28925
|
}], ctorParameters: () => [{ type: i1$1.TranslateService }], propDecorators: { links: [{
|
|
28887
28926
|
type: Input
|
|
28888
28927
|
}] } });
|
|
@@ -29166,7 +29205,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
29166
29205
|
|
|
29167
29206
|
class LinkCardComponent {
|
|
29168
29207
|
constructor() {
|
|
29169
|
-
this.
|
|
29208
|
+
this.sizeClassMap = {
|
|
29209
|
+
L: 'gn-ui-card-l py-2 px-5',
|
|
29210
|
+
M: 'gn-ui-card-m py-2 px-5',
|
|
29211
|
+
S: 'gn-ui-card-s p-4',
|
|
29212
|
+
XS: 'gn-ui-card-xs py-2 px-5',
|
|
29213
|
+
};
|
|
29214
|
+
this.cardClass = '';
|
|
29215
|
+
}
|
|
29216
|
+
set size(value) {
|
|
29217
|
+
this._size = value;
|
|
29218
|
+
this.cardClass = this.sizeClassMap[value];
|
|
29219
|
+
}
|
|
29220
|
+
get size() {
|
|
29221
|
+
return this._size;
|
|
29170
29222
|
}
|
|
29171
29223
|
get title() {
|
|
29172
29224
|
if (this.link.name && this.link.description) {
|
|
@@ -29174,25 +29226,31 @@ class LinkCardComponent {
|
|
|
29174
29226
|
}
|
|
29175
29227
|
return this.link.name || this.link.description || '';
|
|
29176
29228
|
}
|
|
29229
|
+
getLinkFormat(link) {
|
|
29230
|
+
return getFileFormat(link);
|
|
29231
|
+
}
|
|
29232
|
+
getLinkColor(link) {
|
|
29233
|
+
return getBadgeColor(getFileFormat(link));
|
|
29234
|
+
}
|
|
29177
29235
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link",
|
|
29236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LinkCardComponent, isStandalone: true, selector: "gn-ui-link-card", inputs: { link: "link", size: "size" }, providers: [
|
|
29179
29237
|
provideIcons({
|
|
29180
29238
|
matOpenInNew,
|
|
29181
29239
|
}),
|
|
29182
29240
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
29183
|
-
], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-
|
|
29241
|
+
], ngImport: i0, template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29184
29242
|
}
|
|
29185
29243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LinkCardComponent, decorators: [{
|
|
29186
29244
|
type: Component,
|
|
29187
|
-
args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent], providers: [
|
|
29245
|
+
args: [{ selector: 'gn-ui-link-card', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, NgIconComponent, TranslateModule], providers: [
|
|
29188
29246
|
provideIcons({
|
|
29189
29247
|
matOpenInNew,
|
|
29190
29248
|
}),
|
|
29191
29249
|
provideNgIconsConfig({ size: '1.5em' }),
|
|
29192
|
-
], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"flex flex-
|
|
29250
|
+
], template: "<a\n [href]=\"link.url\"\n target=\"_blank\"\n class=\"group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden\"\n [ngClass]=\"cardClass\"\n [title]=\"title\"\n>\n <div class=\"flex flex-col justify-between\">\n <div class=\"gn-ui-card-title\">\n {{ link.description || link.name }}\n </div>\n <div class=\"gn-ui-card-detail\">\n {{ link.name }}\n </div>\n <p *ngIf=\"!link.name && !link.description\" class=\"gn-ui-card-title\">\n {{ link.url }}\n </p>\n <div class=\"pt-1\">\n <span\n class=\"inline-flex items-center justify-center px-2 py-1 text-13 font-medium leading-none text-white rounded transition-opacity opacity-70 group-hover:opacity-100\"\n [style.background-color]=\"getLinkColor(link)\"\n data-cy=\"download-format\"\n >{{\n getLinkFormat(link) || ('downloads.format.unknown' | translate)\n }}</span\n >\n </div>\n </div>\n <div class=\"flex\" [ngClass]=\"size === 'S' ? 'items-end' : 'items-center'\">\n <div class=\"gn-ui-card-icon\">\n <ng-icon\n class=\"inline-block card-icon align-middle\"\n name=\"matOpenInNew\"\n ></ng-icon>\n </div>\n </div>\n</a>\n" }]
|
|
29193
29251
|
}], propDecorators: { link: [{
|
|
29194
29252
|
type: Input
|
|
29195
|
-
}],
|
|
29253
|
+
}], size: [{
|
|
29196
29254
|
type: Input
|
|
29197
29255
|
}] } });
|
|
29198
29256
|
|