geonetwork-ui 2.6.0-dev.502fa026d → 2.6.0-dev.582b4530a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +5 -1
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +5 -1
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/index.mjs +2 -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/internal-link-card/internal-link-card.component.mjs +163 -0
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +29 -7
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +3 -2
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +21 -19
- package/esm2022/translations/de.json +8 -0
- package/esm2022/translations/en.json +9 -1
- package/esm2022/translations/es.json +8 -0
- package/esm2022/translations/fr.json +8 -0
- package/esm2022/translations/it.json +8 -1
- package/esm2022/translations/nl.json +8 -0
- package/esm2022/translations/pt.json +8 -0
- package/fesm2022/geonetwork-ui.mjs +340 -55
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +1 -0
- package/libs/ui/elements/src/index.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/internal-link-card/internal-link-card.component.d.ts +43 -0
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
- 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/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
- package/libs/ui/elements/src/lib/ui-elements.module.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/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +6 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +4 -0
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +4 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +1 -1
- package/src/libs/ui/elements/src/index.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 +7 -6
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +156 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +190 -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/elements/src/lib/metadata-catalog/metadata-catalog.component.html +1 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +4 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -1
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -4
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +2 -2
- package/src/libs/util/shared/src/lib/links/link-utils.ts +20 -18
- package/tailwind.base.css +34 -1
- package/translations/de.json +8 -0
- package/translations/en.json +9 -1
- package/translations/es.json +8 -0
- package/translations/fr.json +8 -0
- package/translations/it.json +8 -1
- package/translations/nl.json +8 -0
- package/translations/pt.json +8 -0
- package/translations/sk.json +8 -0
|
@@ -1,39 +1,37 @@
|
|
|
1
1
|
<a
|
|
2
2
|
[href]="link.url"
|
|
3
3
|
target="_blank"
|
|
4
|
-
class="flex flex-
|
|
5
|
-
[ngClass]="
|
|
4
|
+
class="group flex flex-row justify-between card-shadow cursor-pointer rounded overflow-hidden"
|
|
5
|
+
[ngClass]="cardClass"
|
|
6
6
|
[title]="title"
|
|
7
7
|
>
|
|
8
|
-
<
|
|
9
|
-
<div class="
|
|
10
|
-
|
|
11
|
-
class="font-title font-medium text-21 text-black break-words mb-1 line-clamp-2"
|
|
12
|
-
>
|
|
13
|
-
{{ link.name }}
|
|
14
|
-
</p>
|
|
15
|
-
<p class="font-medium text-sm break-words">
|
|
16
|
-
{{ link.description }}
|
|
17
|
-
</p>
|
|
18
|
-
<p
|
|
19
|
-
*ngIf="!link.name && !link.description"
|
|
20
|
-
class="font-medium text-sm break-words truncate"
|
|
21
|
-
>
|
|
22
|
-
{{ link.url }}
|
|
23
|
-
</p>
|
|
8
|
+
<div class="flex flex-col justify-between">
|
|
9
|
+
<div class="gn-ui-card-title">
|
|
10
|
+
{{ link.description || link.name }}
|
|
24
11
|
</div>
|
|
25
|
-
<div>
|
|
26
|
-
|
|
12
|
+
<div class="gn-ui-card-detail">
|
|
13
|
+
{{ link.name }}
|
|
27
14
|
</div>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
15
|
+
<p *ngIf="!link.name && !link.description" class="gn-ui-card-title">
|
|
16
|
+
{{ link.url }}
|
|
17
|
+
</p>
|
|
18
|
+
<div class="pt-1">
|
|
19
|
+
<span
|
|
20
|
+
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"
|
|
21
|
+
[style.background-color]="getLinkColor(link)"
|
|
22
|
+
data-cy="download-format"
|
|
23
|
+
>{{
|
|
24
|
+
getLinkFormat(link) || ('downloads.format.unknown' | translate)
|
|
25
|
+
}}</span
|
|
33
26
|
>
|
|
34
|
-
{{ link.name || link.description }}
|
|
35
|
-
</p>
|
|
36
|
-
<ng-icon class="card-icon flex-shrink-0" name="matOpenInNew"></ng-icon>
|
|
37
27
|
</div>
|
|
38
|
-
</
|
|
28
|
+
</div>
|
|
29
|
+
<div class="flex" [ngClass]="size === 'S' ? 'items-end' : 'items-center'">
|
|
30
|
+
<div class="gn-ui-card-icon">
|
|
31
|
+
<ng-icon
|
|
32
|
+
class="inline-block card-icon align-middle"
|
|
33
|
+
name="matOpenInNew"
|
|
34
|
+
></ng-icon>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
39
37
|
</a>
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
DatasetDownloadDistribution,
|
|
4
|
+
DatasetOnlineResource,
|
|
5
|
+
DatasetServiceDistribution,
|
|
6
|
+
} from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
3
7
|
import { CommonModule } from '@angular/common'
|
|
4
8
|
import {
|
|
5
9
|
NgIconComponent,
|
|
@@ -7,14 +11,17 @@ import {
|
|
|
7
11
|
provideNgIconsConfig,
|
|
8
12
|
} from '@ng-icons/core'
|
|
9
13
|
import { matOpenInNew } from '@ng-icons/material-icons/baseline'
|
|
14
|
+
import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src'
|
|
15
|
+
import { TranslateModule } from '@ngx-translate/core'
|
|
10
16
|
|
|
17
|
+
type CardSize = 'L' | 'M' | 'S' | 'XS'
|
|
11
18
|
@Component({
|
|
12
19
|
selector: 'gn-ui-link-card',
|
|
13
20
|
templateUrl: './link-card.component.html',
|
|
14
21
|
styleUrls: ['./link-card.component.css'],
|
|
15
22
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
23
|
standalone: true,
|
|
17
|
-
imports: [CommonModule, NgIconComponent],
|
|
24
|
+
imports: [CommonModule, NgIconComponent, TranslateModule],
|
|
18
25
|
providers: [
|
|
19
26
|
provideIcons({
|
|
20
27
|
matOpenInNew,
|
|
@@ -23,8 +30,23 @@ import { matOpenInNew } from '@ng-icons/material-icons/baseline'
|
|
|
23
30
|
],
|
|
24
31
|
})
|
|
25
32
|
export class LinkCardComponent {
|
|
33
|
+
private _size: 'L' | 'M' | 'S' | 'XS'
|
|
26
34
|
@Input() link: DatasetOnlineResource
|
|
27
|
-
|
|
35
|
+
private readonly sizeClassMap: Record<CardSize, string> = {
|
|
36
|
+
L: 'gn-ui-card-l py-2 px-5',
|
|
37
|
+
M: 'gn-ui-card-m py-2 px-5',
|
|
38
|
+
S: 'gn-ui-card-s p-4',
|
|
39
|
+
XS: 'gn-ui-card-xs py-2 px-5',
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Input() set size(value: CardSize) {
|
|
43
|
+
this._size = value
|
|
44
|
+
this.cardClass = this.sizeClassMap[value]
|
|
45
|
+
}
|
|
46
|
+
get size(): 'L' | 'M' | 'S' | 'XS' {
|
|
47
|
+
return this._size
|
|
48
|
+
}
|
|
49
|
+
cardClass = ''
|
|
28
50
|
|
|
29
51
|
get title() {
|
|
30
52
|
if (this.link.name && this.link.description) {
|
|
@@ -32,4 +54,12 @@ export class LinkCardComponent {
|
|
|
32
54
|
}
|
|
33
55
|
return this.link.name || this.link.description || ''
|
|
34
56
|
}
|
|
57
|
+
|
|
58
|
+
getLinkFormat(link: any) {
|
|
59
|
+
return getFileFormat(link)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getLinkColor(link: any) {
|
|
63
|
+
return getBadgeColor(getFileFormat(link))
|
|
64
|
+
}
|
|
35
65
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
<div *ngIf="metadataQualityDisplay" class="
|
|
1
|
+
<div *ngIf="metadataQualityDisplay" class="metadata-quality">
|
|
2
2
|
<div
|
|
3
3
|
class="flex items-center"
|
|
4
|
-
[class]="
|
|
4
|
+
[class]="
|
|
5
|
+
smaller ? 'leading-[8px] min-w-[120px] m-h-[120px]' : 'min-w-[200px]'
|
|
6
|
+
"
|
|
5
7
|
>
|
|
6
8
|
<gn-ui-progress-bar
|
|
7
9
|
tabindex="0"
|
|
@@ -162,7 +162,7 @@ export class RecordApiFormComponent {
|
|
|
162
162
|
limit: limit !== '-1' ? Number(limit) : -1,
|
|
163
163
|
offset: offset !== '' ? Number(offset) : undefined,
|
|
164
164
|
outputCrs:
|
|
165
|
-
format
|
|
165
|
+
format.toLowerCase().indexOf('json') > -1 ? 'EPSG:4326' : undefined,
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
if (this.endpoint instanceof WfsEndpoint) {
|
|
@@ -170,6 +170,7 @@ export class RecordApiFormComponent {
|
|
|
170
170
|
options.maxFeatures = limit !== '-1' ? Number(limit) : undefined
|
|
171
171
|
return this.endpoint.getFeatureUrl(this.apiFeatureType, options)
|
|
172
172
|
} else {
|
|
173
|
+
delete options.outputCrs
|
|
173
174
|
return await this.endpoint.getCollectionItemsUrl(
|
|
174
175
|
this.apiFeatureType,
|
|
175
176
|
options
|
|
@@ -20,6 +20,7 @@ import { ThumbnailComponent } from './thumbnail/thumbnail.component'
|
|
|
20
20
|
import { TimeSincePipe } from './user-feedback-item/time-since.pipe'
|
|
21
21
|
import { UserPreviewComponent } from './user-preview/user-preview.component'
|
|
22
22
|
import { ApplicationBannerComponent } from './application-banner/application-banner.component'
|
|
23
|
+
import { InternalLinkCardComponent } from './internal-link-card/internal-link-card.component'
|
|
23
24
|
|
|
24
25
|
@NgModule({
|
|
25
26
|
imports: [
|
|
@@ -42,6 +43,7 @@ import { ApplicationBannerComponent } from './application-banner/application-ban
|
|
|
42
43
|
TextInputComponent,
|
|
43
44
|
ImageInputComponent,
|
|
44
45
|
ApplicationBannerComponent,
|
|
46
|
+
InternalLinkCardComponent,
|
|
45
47
|
],
|
|
46
48
|
providers: [
|
|
47
49
|
provideNgIconsConfig({
|
|
@@ -56,6 +58,7 @@ import { ApplicationBannerComponent } from './application-banner/application-ban
|
|
|
56
58
|
MarkdownParserComponent,
|
|
57
59
|
ImageInputComponent,
|
|
58
60
|
ApplicationBannerComponent,
|
|
61
|
+
InternalLinkCardComponent,
|
|
59
62
|
],
|
|
60
63
|
})
|
|
61
64
|
export class UiElementsModule {}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
>
|
|
9
9
|
{{ progress }}%
|
|
10
10
|
</div>
|
|
11
|
-
<div class="flex-grow h-[
|
|
11
|
+
<div class="flex-grow h-[4px] w-[52px] {{ color.outerBar }} rounded-full">
|
|
12
12
|
<div
|
|
13
13
|
[style.width.%]="progress"
|
|
14
14
|
class="{{ color.innerBar }} transition-width duration-500
|
|
15
|
-
ease-in-out rounded-full shadow-sm h-
|
|
15
|
+
ease-in-out rounded-full shadow-sm w-[52px] h-[4px]"
|
|
16
16
|
></div>
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
@@ -16,7 +16,7 @@ export const FORMATS = {
|
|
|
16
16
|
csv: {
|
|
17
17
|
extensions: ['csv'],
|
|
18
18
|
priority: 1,
|
|
19
|
-
color: '#
|
|
19
|
+
color: '#F6A924',
|
|
20
20
|
mimeTypes: ['text/csv', 'application/csv'],
|
|
21
21
|
},
|
|
22
22
|
excel: {
|
|
@@ -28,7 +28,7 @@ export const FORMATS = {
|
|
|
28
28
|
'openxmlformats-officedocument',
|
|
29
29
|
],
|
|
30
30
|
priority: 2,
|
|
31
|
-
color: '#
|
|
31
|
+
color: '#FFDE10',
|
|
32
32
|
mimeTypes: [
|
|
33
33
|
'application/vnd.ms-excel',
|
|
34
34
|
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
@@ -37,31 +37,31 @@ export const FORMATS = {
|
|
|
37
37
|
geojson: {
|
|
38
38
|
extensions: ['geojson'],
|
|
39
39
|
priority: 3,
|
|
40
|
-
color: '#
|
|
40
|
+
color: '#293C6F',
|
|
41
41
|
mimeTypes: ['application/geo+json', 'application/vnd.geo+json'],
|
|
42
42
|
},
|
|
43
43
|
json: {
|
|
44
44
|
extensions: ['json'],
|
|
45
45
|
priority: 3,
|
|
46
|
-
color: '#
|
|
46
|
+
color: '#84D0F0',
|
|
47
47
|
mimeTypes: ['application/json'],
|
|
48
48
|
},
|
|
49
49
|
shp: {
|
|
50
50
|
extensions: ['shp', 'shape', 'zipped-shapefile'],
|
|
51
51
|
priority: 4,
|
|
52
|
-
color: '#
|
|
52
|
+
color: '#009036',
|
|
53
53
|
mimeTypes: ['x-gis/x-shapefile'],
|
|
54
54
|
},
|
|
55
55
|
gml: {
|
|
56
56
|
extensions: ['gml'],
|
|
57
57
|
priority: 5,
|
|
58
|
-
color: '#
|
|
58
|
+
color: '#E75113',
|
|
59
59
|
mimeTypes: ['application/gml+xml', 'text/xml; subtype=gml'],
|
|
60
60
|
},
|
|
61
61
|
kml: {
|
|
62
62
|
extensions: ['kml', 'kmz'],
|
|
63
63
|
priority: 6,
|
|
64
|
-
color: '#
|
|
64
|
+
color: '#F4B5D0',
|
|
65
65
|
mimeTypes: [
|
|
66
66
|
'application/vnd.google-earth.kml+xml',
|
|
67
67
|
'application/vnd.google-earth.kmz',
|
|
@@ -70,55 +70,55 @@ export const FORMATS = {
|
|
|
70
70
|
gpkg: {
|
|
71
71
|
extensions: ['gpkg', 'geopackage'],
|
|
72
72
|
priority: 7,
|
|
73
|
-
color: '#
|
|
73
|
+
color: '#7D5D9F',
|
|
74
74
|
mimeTypes: ['application/geopackage+sqlite3'],
|
|
75
75
|
},
|
|
76
76
|
zip: {
|
|
77
77
|
extensions: ['zip', 'tar.gz'],
|
|
78
78
|
priority: 8,
|
|
79
|
-
color: '#
|
|
79
|
+
color: '#B0CB52',
|
|
80
80
|
mimeTypes: ['application/zip', 'application/x-zip'],
|
|
81
81
|
},
|
|
82
82
|
pdf: {
|
|
83
83
|
extensions: ['pdf'],
|
|
84
84
|
priority: 9,
|
|
85
|
-
color: '#
|
|
85
|
+
color: '#49579E',
|
|
86
86
|
mimeTypes: ['application/pdf'],
|
|
87
87
|
},
|
|
88
88
|
jpg: {
|
|
89
89
|
extensions: ['jpg', 'jpeg', 'jfif', 'pjpeg', 'pjp'],
|
|
90
90
|
priority: 9,
|
|
91
|
-
color: '#
|
|
91
|
+
color: '#C4A98F',
|
|
92
92
|
mimeTypes: ['image/jpg'],
|
|
93
93
|
},
|
|
94
94
|
svg: {
|
|
95
95
|
extensions: ['svg'],
|
|
96
96
|
priority: 10,
|
|
97
|
-
color: '#
|
|
97
|
+
color: '#EB6D82',
|
|
98
98
|
mimeTypes: ['image/svg+xml'],
|
|
99
99
|
},
|
|
100
100
|
dxf: {
|
|
101
101
|
extensions: ['dxf'],
|
|
102
102
|
priority: 11,
|
|
103
|
-
color: '#
|
|
103
|
+
color: '#DCCD00',
|
|
104
104
|
mimeTypes: ['application/x-dxf', 'image/x-dxf'],
|
|
105
105
|
},
|
|
106
106
|
html: {
|
|
107
107
|
extensions: ['html', 'htm'],
|
|
108
108
|
priority: 12,
|
|
109
|
-
color: '#
|
|
109
|
+
color: '#C0C9B6',
|
|
110
110
|
mimeTypes: ['text/html'],
|
|
111
111
|
},
|
|
112
112
|
fgb: {
|
|
113
113
|
extensions: ['fgb', 'flatgeobuf'],
|
|
114
114
|
priority: 13,
|
|
115
|
-
color: '#
|
|
115
|
+
color: '#A8111C',
|
|
116
116
|
mimeTypes: ['application/flatgeobuf'],
|
|
117
117
|
},
|
|
118
118
|
jsonfg: {
|
|
119
119
|
extensions: ['jsonfg', 'jsonfgc'],
|
|
120
120
|
priority: 14,
|
|
121
|
-
color: '#
|
|
121
|
+
color: '#009EE0',
|
|
122
122
|
mimeTypes: [
|
|
123
123
|
'application/vnd.ogc.fg+json',
|
|
124
124
|
'application/vnd.ogc.fg+json;compatibility=geojson',
|
|
@@ -207,9 +207,11 @@ export function checkFileFormat(
|
|
|
207
207
|
format: FileFormat
|
|
208
208
|
): boolean {
|
|
209
209
|
return (
|
|
210
|
-
('name' in link &&
|
|
210
|
+
('name' in link &&
|
|
211
|
+
new RegExp(`[./]${format}`, 'i').test(link.name.toLowerCase())) ||
|
|
211
212
|
('url' in link &&
|
|
212
|
-
new RegExp(`[./]${format}`, 'i').test(link.url.toString()))
|
|
213
|
+
new RegExp(`[./]${format}`, 'i').test(link.url.toString())) ||
|
|
214
|
+
('name' in link && link.name.toLowerCase().includes(format))
|
|
213
215
|
)
|
|
214
216
|
}
|
|
215
217
|
|
package/tailwind.base.css
CHANGED
|
@@ -129,6 +129,34 @@
|
|
|
129
129
|
border border-white focus:ring-4 focus:ring-gray-300;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
.gn-ui-card-xs {
|
|
133
|
+
@apply min-h-[68px] md:w-[487px];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.gn-ui-card-s {
|
|
137
|
+
@apply min-h-[135px] md:w-80;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.gn-ui-card-m {
|
|
141
|
+
@apply min-h-[68px] md:w-[487px];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.gn-ui-card-l {
|
|
145
|
+
@apply min-h-[68px] md:w-[992px];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.gn-ui-card-title {
|
|
149
|
+
@apply font-title font-medium text-black text-ellipsis overflow-hidden break-words line-clamp-3;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.gn-ui-card-icon {
|
|
153
|
+
@apply flex border border-gray-300 rounded-lg py-1 px-2 align-middle;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.gn-ui-card-detail {
|
|
157
|
+
@apply font-medium text-gray-500 text-ellipsis break-words text-sm;
|
|
158
|
+
}
|
|
159
|
+
|
|
132
160
|
/* DROPDOWN MULTISELECT CLASS */
|
|
133
161
|
.gn-ui-multiselect-counter {
|
|
134
162
|
--text-color: var(--gn-ui-multiselect-counter-text-color, white);
|
|
@@ -186,7 +214,7 @@
|
|
|
186
214
|
|
|
187
215
|
/* TODO: add prefix */
|
|
188
216
|
.card-icon {
|
|
189
|
-
@apply text-
|
|
217
|
+
@apply text-black group-hover:text-primary-darkest transition-colors;
|
|
190
218
|
}
|
|
191
219
|
|
|
192
220
|
/* makes spinners appear in the right color */
|
|
@@ -194,6 +222,11 @@
|
|
|
194
222
|
mat-progress-spinner circle {
|
|
195
223
|
stroke: currentColor !important;
|
|
196
224
|
}
|
|
225
|
+
|
|
226
|
+
/* Section title */
|
|
227
|
+
.gn-ui-section-title {
|
|
228
|
+
@apply text-title font-medium pt-9 text-[28px] container-lg px-4 lg:mx-auto;
|
|
229
|
+
}
|
|
197
230
|
}
|
|
198
231
|
|
|
199
232
|
html {
|
package/translations/de.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "",
|
|
5
6
|
"catalog.figures.datasets": "{count, plural, =0{Datensätze} one{Datensatz} other{Datensätze}}",
|
|
6
7
|
"catalog.figures.organizations": "{count, plural, =0{Organisationen} one{Organisation} other{Organisationen}}",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"dataset.error.http": "Die Daten konnten aufgrund eines HTTP-Fehlers nicht geladen werden: \"{ info }\"",
|
|
73
74
|
"dataset.error.network": "Die Daten konnten aufgrund eines Netzwerkfehlers oder CORS-Beschränkungen nicht geladen werden: \"{ info }\"",
|
|
74
75
|
"dataset.error.parse": "Die Daten wurden geladen, konnten aber nicht gelesen werden: \"{ info }\"",
|
|
76
|
+
"dataset.error.restrictedAccess": "",
|
|
75
77
|
"dataset.error.unknown": "Die Daten können nicht angezeigt werden: \"{ info }\"",
|
|
76
78
|
"dataset.error.unsupportedType": "Der folgende Inhaltstyp wird nicht unterstützt: \"{ info }\"",
|
|
77
79
|
"domain.contact.role.author": "",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "",
|
|
355
357
|
"record.action.rollback": "",
|
|
356
358
|
"record.action.view": "Anzeigen",
|
|
359
|
+
"record.card.metadata.contact": "",
|
|
357
360
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
358
361
|
"record.feature.limit": "Die Vorschau wurde aufgrund zu vieler Elemente deaktiviert",
|
|
362
|
+
"record.kind.dataset": "",
|
|
363
|
+
"record.kind.reuse": "",
|
|
364
|
+
"record.kind.service": "",
|
|
359
365
|
"record.metadata.about": "Beschreibung",
|
|
360
366
|
"record.metadata.api": "API",
|
|
361
367
|
"record.metadata.api.form.closeButton": "Schließen",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben",
|
|
427
433
|
"record.metadata.related": "Ähnliche Datensätze",
|
|
434
|
+
"record.metadata.related.contents": "Verwandte Inhalte",
|
|
435
|
+
"record.metadata.ressources.and.links": "Ressourcen und Links",
|
|
428
436
|
"record.metadata.sheet": "Weitere Informationen verfügbar unter:",
|
|
429
437
|
"record.metadata.status": "Status",
|
|
430
438
|
"record.metadata.status.notPublished": "",
|
package/translations/en.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "Log in",
|
|
5
6
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
6
7
|
"catalog.figures.organizations": "{count, plural, =0{organizations} one{organization} other{organizations}}",
|
|
@@ -66,12 +67,13 @@
|
|
|
66
67
|
"datahub.search.back": "Back",
|
|
67
68
|
"datahub.search.filter.all": "All",
|
|
68
69
|
"datahub.search.filter.generatedByAPI": "Generated by an API",
|
|
69
|
-
"datahub.search.filter.generatedByWfs": "",
|
|
70
|
+
"datahub.search.filter.generatedByWfs": "Generated by a WFS",
|
|
70
71
|
"datahub.search.filter.others": "Others",
|
|
71
72
|
"dataset.error.forbidden": "Access to this resource is restricted",
|
|
72
73
|
"dataset.error.http": "The data could not be loaded because of an HTTP error: \"{ info }\"",
|
|
73
74
|
"dataset.error.network": "The data could not be loaded because of a network error or CORS limitations: \"{ info }\"",
|
|
74
75
|
"dataset.error.parse": "The data was loaded but could not be parsed: \"{ info }\"",
|
|
76
|
+
"dataset.error.restrictedAccess": "Access to this resource is restricted",
|
|
75
77
|
"dataset.error.unknown": "The data cannot be displayed: \"{ info }\"",
|
|
76
78
|
"dataset.error.unsupportedType": "The following content type is unsupported: \"{ info }\"",
|
|
77
79
|
"domain.contact.role.author": "Author",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "Duplicating...",
|
|
355
357
|
"record.action.rollback": "Rollback",
|
|
356
358
|
"record.action.view": "View",
|
|
359
|
+
"record.card.metadata.contact": "Metadata Contact",
|
|
357
360
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
358
361
|
"record.feature.limit": "Preview disabled due to too many elements",
|
|
362
|
+
"record.kind.dataset": "Data",
|
|
363
|
+
"record.kind.reuse": "Reuse",
|
|
364
|
+
"record.kind.service": "Service",
|
|
359
365
|
"record.metadata.about": "Description",
|
|
360
366
|
"record.metadata.api": "API",
|
|
361
367
|
"record.metadata.api.form.closeButton": "Close",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "Update frequency is not specified",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "Update frequency is specified",
|
|
427
433
|
"record.metadata.related": "Related datasets",
|
|
434
|
+
"record.metadata.related.contents": "Related contents",
|
|
435
|
+
"record.metadata.ressources.and.links": "Resources and links",
|
|
428
436
|
"record.metadata.sheet": "Original metadata",
|
|
429
437
|
"record.metadata.status": "Status",
|
|
430
438
|
"record.metadata.status.notPublished": "Not published",
|
package/translations/es.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "",
|
|
5
6
|
"catalog.figures.datasets": "conjuntos de datos",
|
|
6
7
|
"catalog.figures.organizations": "organizaciones",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"dataset.error.http": "",
|
|
73
74
|
"dataset.error.network": "",
|
|
74
75
|
"dataset.error.parse": "",
|
|
76
|
+
"dataset.error.restrictedAccess": "",
|
|
75
77
|
"dataset.error.unknown": "",
|
|
76
78
|
"dataset.error.unsupportedType": "",
|
|
77
79
|
"domain.contact.role.author": "",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "",
|
|
355
357
|
"record.action.rollback": "",
|
|
356
358
|
"record.action.view": "",
|
|
359
|
+
"record.card.metadata.contact": "",
|
|
357
360
|
"record.externalViewer.open": "",
|
|
358
361
|
"record.feature.limit": "",
|
|
362
|
+
"record.kind.dataset": "",
|
|
363
|
+
"record.kind.reuse": "",
|
|
364
|
+
"record.kind.service": "",
|
|
359
365
|
"record.metadata.about": "",
|
|
360
366
|
"record.metadata.api": "",
|
|
361
367
|
"record.metadata.api.form.closeButton": "",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "",
|
|
427
433
|
"record.metadata.related": "",
|
|
434
|
+
"record.metadata.related.contents": "Contenidos relacionados",
|
|
435
|
+
"record.metadata.ressources.and.links": "Recursos y enlaces",
|
|
428
436
|
"record.metadata.sheet": "",
|
|
429
437
|
"record.metadata.status": "",
|
|
430
438
|
"record.metadata.status.notPublished": "",
|
package/translations/fr.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "Se connecter",
|
|
5
6
|
"catalog.figures.datasets": "{count, plural, =0{données} one{donnée} other{données}}",
|
|
6
7
|
"catalog.figures.organizations": "{count, plural, =0{organisations} one{organisation} other{organisations}}",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"dataset.error.http": "Le chargement des données a échoué en raison d'une erreur HTTP: \"{ info }\"",
|
|
73
74
|
"dataset.error.network": "Le chargement des données a échoué en raison d'une erreur réseau ou de limitations CORS: \"{ info }\"",
|
|
74
75
|
"dataset.error.parse": "Les données ont été chargées mais leur décodage a échoué: \"{ info }\"",
|
|
76
|
+
"dataset.error.restrictedAccess": "L’accès à cette ressource est restreint",
|
|
75
77
|
"dataset.error.unknown": "Les données ne peuvent être affichées: \"{ info }\"",
|
|
76
78
|
"dataset.error.unsupportedType": "Le type de contenu suivant n'est pas pris en charge: \"{ info }\"",
|
|
77
79
|
"domain.contact.role.author": "Auteur",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "Duplication...",
|
|
355
357
|
"record.action.rollback": "Restaurer",
|
|
356
358
|
"record.action.view": "Voir",
|
|
359
|
+
"record.card.metadata.contact": "Contact de la métadonnée ",
|
|
357
360
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
358
361
|
"record.feature.limit": "L’aperçu a été désactivé en raison d’un trop grand nombre d'éléments",
|
|
362
|
+
"record.kind.dataset": "Donnée",
|
|
363
|
+
"record.kind.reuse": "Réutilisation",
|
|
364
|
+
"record.kind.service": "Service",
|
|
359
365
|
"record.metadata.about": "Description",
|
|
360
366
|
"record.metadata.api": "API",
|
|
361
367
|
"record.metadata.api.form.closeButton": "Fermer",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "La fréquence de mise à jour n'est pas renseignée",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "La fréquence de mise à jour est renseignée",
|
|
427
433
|
"record.metadata.related": "Voir aussi",
|
|
434
|
+
"record.metadata.related.contents": "Contenus associés",
|
|
435
|
+
"record.metadata.ressources.and.links": "Ressources et liens",
|
|
428
436
|
"record.metadata.sheet": "Fiche de métadonnées d'origine",
|
|
429
437
|
"record.metadata.status": "Statut",
|
|
430
438
|
"record.metadata.status.notPublished": "Non publié",
|
package/translations/it.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "Login",
|
|
5
6
|
"catalog.figures.datasets": "{count, plural, =0{datasets} one{dataset} other{datasets}}",
|
|
6
7
|
"catalog.figures.organizations": "{count, plural, =0{organizzazioni} one{organizzazione} other{organizzazioni}}",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"dataset.error.http": "Il caricamento dei dati non è riuscito a causa di un errore HTTP: \"{info}\"",
|
|
73
74
|
"dataset.error.network": "Il caricamento dei dati non è riuscito a causa di un errore di rete o di limitazioni CORS: \"{info}\"",
|
|
74
75
|
"dataset.error.parse": "I dati sono stati caricati ma la decodifica non è riuscita: \"{info}\"",
|
|
76
|
+
"dataset.error.restrictedAccess": "",
|
|
75
77
|
"dataset.error.unknown": "Impossibile visualizzare i dati: \"{info}\"",
|
|
76
78
|
"dataset.error.unsupportedType": "Il seguente tipo di contenuto non è supportato: \"{info}\"",
|
|
77
79
|
"domain.contact.role.author": "Autore",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "Duplicazione",
|
|
355
357
|
"record.action.rollback": "Annulla",
|
|
356
358
|
"record.action.view": "Visualizza",
|
|
359
|
+
"record.card.metadata.contact": "",
|
|
357
360
|
"record.externalViewer.open": "Aprire nel visualizzatore esterno",
|
|
358
361
|
"record.feature.limit": "La visualizzazione è stata disabilitata a causa di troppi elementi ",
|
|
362
|
+
"record.kind.dataset": "",
|
|
363
|
+
"record.kind.reuse": "",
|
|
364
|
+
"record.kind.service": "",
|
|
359
365
|
"record.metadata.about": "Descrizione",
|
|
360
366
|
"record.metadata.api": "API",
|
|
361
367
|
"record.metadata.api.form.closeButton": "Chiude",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata",
|
|
427
433
|
"record.metadata.related": "Vedi anche",
|
|
434
|
+
"record.metadata.related.contents": "Contenuti correlati",
|
|
435
|
+
"record.metadata.ressources.and.links": "Risorse e collegamenti",
|
|
428
436
|
"record.metadata.sheet": "Origine del metadata",
|
|
429
437
|
"record.metadata.status": "Stato",
|
|
430
438
|
"record.metadata.status.notPublished": "Non pubblicato",
|
|
@@ -532,7 +540,6 @@
|
|
|
532
540
|
"tooltip.url.open": "Aprire l'URL",
|
|
533
541
|
"ui.readLess": "Ridurre",
|
|
534
542
|
"ui.readMore": "Leggere di più",
|
|
535
|
-
"wfs.aggregations.notsupported": "Aggregazioni non supportate per i servizi WFS",
|
|
536
543
|
"wfs.feature.limit": "Troppi oggetti per visualizzare il WFS layer!",
|
|
537
544
|
"wfs.featuretype.notfound": "La classe di oggetto non è stata trovata nel servizio",
|
|
538
545
|
"wfs.geojsongml.notsupported": "Il servizio non supporta il formato GeoJSON o GML",
|
package/translations/nl.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"": "",
|
|
3
3
|
"Add Layer As": "",
|
|
4
|
+
"Enter to search": "",
|
|
4
5
|
"button.login": "",
|
|
5
6
|
"catalog.figures.datasets": "datasets",
|
|
6
7
|
"catalog.figures.organizations": "organisaties",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"dataset.error.http": "",
|
|
73
74
|
"dataset.error.network": "",
|
|
74
75
|
"dataset.error.parse": "",
|
|
76
|
+
"dataset.error.restrictedAccess": "",
|
|
75
77
|
"dataset.error.unknown": "",
|
|
76
78
|
"dataset.error.unsupportedType": "",
|
|
77
79
|
"domain.contact.role.author": "",
|
|
@@ -354,8 +356,12 @@
|
|
|
354
356
|
"record.action.duplicating": "",
|
|
355
357
|
"record.action.rollback": "",
|
|
356
358
|
"record.action.view": "",
|
|
359
|
+
"record.card.metadata.contact": "",
|
|
357
360
|
"record.externalViewer.open": "",
|
|
358
361
|
"record.feature.limit": "",
|
|
362
|
+
"record.kind.dataset": "",
|
|
363
|
+
"record.kind.reuse": "",
|
|
364
|
+
"record.kind.service": "",
|
|
359
365
|
"record.metadata.about": "",
|
|
360
366
|
"record.metadata.api": "",
|
|
361
367
|
"record.metadata.api.form.closeButton": "",
|
|
@@ -425,6 +431,8 @@
|
|
|
425
431
|
"record.metadata.quality.updateFrequency.failed": "",
|
|
426
432
|
"record.metadata.quality.updateFrequency.success": "",
|
|
427
433
|
"record.metadata.related": "",
|
|
434
|
+
"record.metadata.related.contents": "Gerelateerde inhoud",
|
|
435
|
+
"record.metadata.ressources.and.links": "Bronnen en links",
|
|
428
436
|
"record.metadata.sheet": "",
|
|
429
437
|
"record.metadata.status": "",
|
|
430
438
|
"record.metadata.status.notPublished": "",
|