geonetwork-ui 2.3.0-dev.3d65a13b → 2.3.0-dev.c3722986
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/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
- package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +6 -5
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +10 -4
- package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
- package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -6
- package/esm2022/translations/de.json +10 -0
- package/esm2022/translations/en.json +10 -0
- package/esm2022/translations/es.json +10 -0
- package/esm2022/translations/fr.json +10 -0
- package/esm2022/translations/it.json +10 -0
- package/esm2022/translations/nl.json +10 -0
- package/esm2022/translations/pt.json +10 -0
- package/fesm2022/geonetwork-ui.mjs +494 -114
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
- package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +20 -20
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
- package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +2 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
- package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts +7 -5
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
- package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
- package/src/libs/data-access/gn4/src/spec.yaml +1 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +5 -3
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -1
- package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -0
- package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
- package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +7 -5
- package/translations/de.json +10 -0
- package/translations/en.json +10 -0
- package/translations/es.json +10 -0
- package/translations/fr.json +10 -0
- package/translations/it.json +10 -0
- package/translations/nl.json +10 -0
- package/translations/pt.json +10 -0
- package/translations/sk.json +10 -0
- package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
- package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
- package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common'
|
|
2
|
+
import { HttpClient } from '@angular/common/http'
|
|
3
|
+
import {
|
|
4
|
+
ChangeDetectionStrategy,
|
|
5
|
+
ChangeDetectorRef,
|
|
6
|
+
Component,
|
|
7
|
+
EventEmitter,
|
|
8
|
+
Input,
|
|
9
|
+
Output,
|
|
10
|
+
} from '@angular/core'
|
|
11
|
+
import { MatIconModule } from '@angular/material/icon'
|
|
12
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'
|
|
13
|
+
import { downgradeImage, megabytesToBytes } from '../../../../../../libs/util/shared/src'
|
|
14
|
+
import { firstValueFrom } from 'rxjs'
|
|
15
|
+
import { ButtonComponent } from '../button/button.component'
|
|
16
|
+
import { FilesDropDirective } from '../files-drop/files-drop.directive'
|
|
17
|
+
import { TranslateModule } from '@ngx-translate/core'
|
|
18
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
19
|
+
|
|
20
|
+
@Component({
|
|
21
|
+
selector: 'gn-ui-image-input',
|
|
22
|
+
templateUrl: './image-input.component.html',
|
|
23
|
+
styleUrls: ['./image-input.component.css'],
|
|
24
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
ButtonComponent,
|
|
29
|
+
MatIconModule,
|
|
30
|
+
FilesDropDirective,
|
|
31
|
+
MatProgressSpinnerModule,
|
|
32
|
+
TranslateModule,
|
|
33
|
+
],
|
|
34
|
+
})
|
|
35
|
+
export class ImageInputComponent {
|
|
36
|
+
@Input() maxSizeMB: number
|
|
37
|
+
@Input() previewUrl?: string
|
|
38
|
+
@Input() altText?: string
|
|
39
|
+
@Input() uploadProgress?: number
|
|
40
|
+
@Input() uploadError?: boolean
|
|
41
|
+
@Output() fileChange: EventEmitter<File> = new EventEmitter()
|
|
42
|
+
@Output() urlChange: EventEmitter<string> = new EventEmitter()
|
|
43
|
+
@Output() uploadCancel: EventEmitter<void> = new EventEmitter()
|
|
44
|
+
@Output() delete: EventEmitter<void> = new EventEmitter()
|
|
45
|
+
@Output() altTextChange: EventEmitter<string> = new EventEmitter()
|
|
46
|
+
|
|
47
|
+
dragFilesOver = false
|
|
48
|
+
showUrlInput = false
|
|
49
|
+
downloadError = false
|
|
50
|
+
showAltTextInput = false
|
|
51
|
+
|
|
52
|
+
urlInputValue?: string
|
|
53
|
+
lastUploadType?: 'file' | 'url'
|
|
54
|
+
lastUploadContent?: string | File
|
|
55
|
+
|
|
56
|
+
constructor(private http: HttpClient, private cd: ChangeDetectorRef) {}
|
|
57
|
+
|
|
58
|
+
getPrimaryText() {
|
|
59
|
+
if (this.uploadError) {
|
|
60
|
+
return marker('input.image.uploadErrorLabel')
|
|
61
|
+
}
|
|
62
|
+
if (this.uploadProgress) {
|
|
63
|
+
return marker('input.image.uploadProgressLabel')
|
|
64
|
+
}
|
|
65
|
+
return marker('input.image.selectFileLabel')
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
getSecondaryText() {
|
|
69
|
+
if (this.uploadError) {
|
|
70
|
+
return marker('input.image.uploadErrorRetry')
|
|
71
|
+
}
|
|
72
|
+
if (this.uploadProgress) {
|
|
73
|
+
return marker('input.image.uploadProgressCancel')
|
|
74
|
+
}
|
|
75
|
+
return marker('input.image.dropFileLabel')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
handleDragFilesOver(dragFilesOver: boolean) {
|
|
79
|
+
if (!this.showUrlInput) {
|
|
80
|
+
this.dragFilesOver = dragFilesOver
|
|
81
|
+
this.cd.markForCheck()
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
handleDropFiles(files: File[]) {
|
|
86
|
+
if (!this.showUrlInput) {
|
|
87
|
+
const validFiles = this.filterTypeImage(files)
|
|
88
|
+
if (validFiles.length > 0) {
|
|
89
|
+
this.resizeAndEmit(validFiles[0])
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
handleFileInput(event: Event) {
|
|
95
|
+
const inputFiles = Array.from((event.target as HTMLInputElement).files)
|
|
96
|
+
const validFiles = this.filterTypeImage(inputFiles)
|
|
97
|
+
if (validFiles.length > 0) {
|
|
98
|
+
this.resizeAndEmit(validFiles[0])
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
displayUrlInput() {
|
|
103
|
+
this.uploadCancel.emit()
|
|
104
|
+
this.showUrlInput = true
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
handleUrlChange(event: Event) {
|
|
108
|
+
this.downloadError = false
|
|
109
|
+
this.urlInputValue = (event.target as HTMLInputElement).value
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
async downloadUrl() {
|
|
113
|
+
const name = this.urlInputValue.split('/').pop()
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
const response = await firstValueFrom(
|
|
117
|
+
this.http.head(this.urlInputValue, { observe: 'response' })
|
|
118
|
+
)
|
|
119
|
+
if (
|
|
120
|
+
response.headers.get('content-type')?.startsWith('image/') &&
|
|
121
|
+
parseInt(response.headers.get('content-length')) <
|
|
122
|
+
megabytesToBytes(this.maxSizeMB)
|
|
123
|
+
) {
|
|
124
|
+
this.http.get(this.urlInputValue, { responseType: 'blob' }).subscribe({
|
|
125
|
+
next: (blob) => {
|
|
126
|
+
this.cd.markForCheck()
|
|
127
|
+
const file = new File([blob], name)
|
|
128
|
+
this.fileChange.emit(file)
|
|
129
|
+
},
|
|
130
|
+
error: () => {
|
|
131
|
+
this.downloadError = true
|
|
132
|
+
this.cd.markForCheck()
|
|
133
|
+
this.urlChange.emit(this.urlInputValue)
|
|
134
|
+
},
|
|
135
|
+
})
|
|
136
|
+
}
|
|
137
|
+
} catch {
|
|
138
|
+
this.downloadError = true
|
|
139
|
+
this.cd.markForCheck()
|
|
140
|
+
return
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
handleSecondaryTextClick() {
|
|
145
|
+
if (this.uploadError) {
|
|
146
|
+
this.handleRetry()
|
|
147
|
+
} else if (this.uploadProgress) {
|
|
148
|
+
this.handleCancel()
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
handleCancel() {
|
|
153
|
+
this.uploadCancel.emit()
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
handleRetry() {
|
|
157
|
+
switch (this.lastUploadType) {
|
|
158
|
+
case 'file':
|
|
159
|
+
this.fileChange.emit(this.lastUploadContent as File)
|
|
160
|
+
break
|
|
161
|
+
case 'url':
|
|
162
|
+
this.urlChange.emit(this.lastUploadContent as string)
|
|
163
|
+
break
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
handleDelete() {
|
|
168
|
+
this.delete.emit()
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
toggleAltTextInput() {
|
|
172
|
+
this.showAltTextInput = !this.showAltTextInput
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
handleAltTextChange(event: Event) {
|
|
176
|
+
const input = event.target as HTMLInputElement
|
|
177
|
+
this.altTextChange.emit(input.value)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private filterTypeImage(files: File[]) {
|
|
181
|
+
return files.filter((file) => {
|
|
182
|
+
return file.type.startsWith('image/')
|
|
183
|
+
})
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
private resizeAndEmit(imageToResize: File) {
|
|
187
|
+
const maxSizeBytes = megabytesToBytes(this.maxSizeMB)
|
|
188
|
+
downgradeImage(imageToResize, maxSizeBytes).then((resizedImage) => {
|
|
189
|
+
const fileToEmit = new File([resizedImage], imageToResize.name)
|
|
190
|
+
this.fileChange.emit(fileToEmit)
|
|
191
|
+
})
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -42,6 +42,7 @@ import { MatInputModule } from '@angular/material/input'
|
|
|
42
42
|
import { MatDatepickerModule } from '@angular/material/datepicker'
|
|
43
43
|
import { MatNativeDateModule } from '@angular/material/core'
|
|
44
44
|
import { EditableLabelDirective } from './editable-label/editable-label.directive'
|
|
45
|
+
import { ImageInputComponent } from './image-input/image-input.component'
|
|
45
46
|
|
|
46
47
|
@NgModule({
|
|
47
48
|
declarations: [
|
|
@@ -89,6 +90,7 @@ import { EditableLabelDirective } from './editable-label/editable-label.directiv
|
|
|
89
90
|
EditableLabelDirective,
|
|
90
91
|
TextAreaComponent,
|
|
91
92
|
ButtonComponent,
|
|
93
|
+
ImageInputComponent,
|
|
92
94
|
],
|
|
93
95
|
exports: [
|
|
94
96
|
DropdownSelectorComponent,
|
|
@@ -109,6 +111,7 @@ import { EditableLabelDirective } from './editable-label/editable-label.directiv
|
|
|
109
111
|
SearchInputComponent,
|
|
110
112
|
DateRangePickerComponent,
|
|
111
113
|
EditableLabelDirective,
|
|
114
|
+
ImageInputComponent,
|
|
112
115
|
],
|
|
113
116
|
})
|
|
114
117
|
export class UiInputsModule {}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export function downsizeImage(
|
|
2
|
+
blob: Blob,
|
|
3
|
+
maxWidth: number,
|
|
4
|
+
maxHeight: number
|
|
5
|
+
): Promise<Blob> {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
const image = new Image()
|
|
8
|
+
image.src = URL.createObjectURL(blob)
|
|
9
|
+
image.onload = () => {
|
|
10
|
+
let width = image.width
|
|
11
|
+
let height = image.height
|
|
12
|
+
|
|
13
|
+
if (width > maxWidth || height > maxHeight) {
|
|
14
|
+
if (width > height) {
|
|
15
|
+
height = height * (maxWidth / width)
|
|
16
|
+
width = maxWidth
|
|
17
|
+
} else {
|
|
18
|
+
width = width * (maxHeight / height)
|
|
19
|
+
height = maxHeight
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const canvas = document.createElement('canvas')
|
|
24
|
+
canvas.width = width
|
|
25
|
+
canvas.height = height
|
|
26
|
+
|
|
27
|
+
const context = canvas.getContext('2d')
|
|
28
|
+
context.drawImage(image, 0, 0, width, height)
|
|
29
|
+
|
|
30
|
+
canvas.toBlob(resolve, blob.type)
|
|
31
|
+
}
|
|
32
|
+
image.onerror = reject
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function downgradeImage(
|
|
37
|
+
blob: Blob,
|
|
38
|
+
maxSizeBytes: number
|
|
39
|
+
): Promise<Blob> {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const image = new Image()
|
|
42
|
+
image.src = URL.createObjectURL(blob)
|
|
43
|
+
image.onload = () => {
|
|
44
|
+
const width = image.width
|
|
45
|
+
const height = image.height
|
|
46
|
+
let quality = 1.0
|
|
47
|
+
|
|
48
|
+
const canvas = document.createElement('canvas')
|
|
49
|
+
canvas.width = width
|
|
50
|
+
canvas.height = height
|
|
51
|
+
|
|
52
|
+
const context = canvas.getContext('2d')
|
|
53
|
+
context.drawImage(image, 0, 0, width, height)
|
|
54
|
+
|
|
55
|
+
const compressAndResolveBlob = (blobToCompress: Blob) => {
|
|
56
|
+
if (blobToCompress.size <= maxSizeBytes) {
|
|
57
|
+
resolve(blobToCompress)
|
|
58
|
+
} else {
|
|
59
|
+
quality -= 0.1
|
|
60
|
+
if (quality >= 0) {
|
|
61
|
+
canvas.toBlob(compressAndResolveBlob, blob.type, quality)
|
|
62
|
+
} else {
|
|
63
|
+
reject('Unable to compress image below max size')
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
canvas.toBlob(compressAndResolveBlob, blob.type, quality)
|
|
69
|
+
}
|
|
70
|
+
image.onerror = reject
|
|
71
|
+
})
|
|
72
|
+
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
export * from './bytes-convert'
|
|
2
|
+
export * from './event'
|
|
3
|
+
export * from './fuzzy-filter'
|
|
4
|
+
export * from './geojson'
|
|
5
|
+
export * from './image-resize'
|
|
1
6
|
export * from './parse'
|
|
2
|
-
export * from './strip-html'
|
|
3
7
|
export * from './remove-whitespace'
|
|
4
|
-
export * from './geojson'
|
|
5
8
|
export * from './sort-by'
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './event'
|
|
8
|
-
export * from './fuzzy-filter'
|
|
9
|
+
export * from './strip-html'
|
|
9
10
|
export * from './temporal-extent-union'
|
|
11
|
+
export * from './url'
|
package/translations/de.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "Stichwort",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "Regionen",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Anmelden</a>, um auf diese Funktion zuzugreifen</div>",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Katalanisch",
|
|
163
173
|
"language.cs": "Tschechisch",
|
|
164
174
|
"language.de": "Deutsch",
|
package/translations/en.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "Tag",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "Regions",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> to access this feature</div>",
|
|
162
|
+
"input.image.altTextPlaceholder": "Image alternate text",
|
|
163
|
+
"input.image.delete": "Delete",
|
|
164
|
+
"input.image.displayAltTextInput": "Alternate text",
|
|
165
|
+
"input.image.displayUrlInput": "Enter a URL",
|
|
166
|
+
"input.image.dropFileLabel": "or drop it here",
|
|
167
|
+
"input.image.selectFileLabel": "Select an image",
|
|
168
|
+
"input.image.uploadErrorLabel": "The image could not be uploaded",
|
|
169
|
+
"input.image.uploadErrorRetry": "Retry",
|
|
170
|
+
"input.image.uploadProgressCancel": "Cancel",
|
|
171
|
+
"input.image.uploadProgressLabel": "Upload in progress...",
|
|
162
172
|
"language.ca": "Catalan",
|
|
163
173
|
"language.cs": "Czech",
|
|
164
174
|
"language.de": "German",
|
package/translations/es.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Catalán",
|
|
163
173
|
"language.cs": "Checo",
|
|
164
174
|
"language.de": "Alemán",
|
package/translations/fr.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "Tag",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "Régions",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Connectez-vous</a> pour avoir accès à cette fonctionnalité</div>",
|
|
162
|
+
"input.image.altTextPlaceholder": "Texte alternatif de l'image",
|
|
163
|
+
"input.image.delete": "Supprimer",
|
|
164
|
+
"input.image.displayAltTextInput": "Texte alternatif",
|
|
165
|
+
"input.image.displayUrlInput": "Saisir une URL",
|
|
166
|
+
"input.image.dropFileLabel": "ou la glisser ici",
|
|
167
|
+
"input.image.selectFileLabel": "Sélectionner une image",
|
|
168
|
+
"input.image.uploadErrorLabel": "L'image n'a pas pu être chargée",
|
|
169
|
+
"input.image.uploadErrorRetry": "Réessayer",
|
|
170
|
+
"input.image.uploadProgressCancel": "Annuler",
|
|
171
|
+
"input.image.uploadProgressLabel": "Chargement en cours...",
|
|
162
172
|
"language.ca": "Catalan",
|
|
163
173
|
"language.cs": "Tchèque",
|
|
164
174
|
"language.de": "Allemand",
|
package/translations/it.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "Tag",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "Regioni",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "<div><a href=' {link} '>Login</a> per accedere a questa funzionalità</div>",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Catalano",
|
|
163
173
|
"language.cs": "Ceco",
|
|
164
174
|
"language.de": "Tedesco",
|
package/translations/nl.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Catalaans",
|
|
163
173
|
"language.cs": "Tsjechisch",
|
|
164
174
|
"language.de": "Duits",
|
package/translations/pt.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Catalão",
|
|
163
173
|
"language.cs": "Tcheco",
|
|
164
174
|
"language.de": "Alemão",
|
package/translations/sk.json
CHANGED
|
@@ -159,6 +159,16 @@
|
|
|
159
159
|
"facets.block.title.tag.default": "Štítok",
|
|
160
160
|
"facets.block.title.th_regions_tree.default": "Regióny",
|
|
161
161
|
"favorite.not.authenticated.tooltip": "<div><a href='{link}'>Prihlásiť sa</a> pre prístup k tejto funkcii</div>",
|
|
162
|
+
"input.image.altTextPlaceholder": "",
|
|
163
|
+
"input.image.delete": "",
|
|
164
|
+
"input.image.displayAltTextInput": "",
|
|
165
|
+
"input.image.displayUrlInput": "",
|
|
166
|
+
"input.image.dropFileLabel": "",
|
|
167
|
+
"input.image.selectFileLabel": "",
|
|
168
|
+
"input.image.uploadErrorLabel": "",
|
|
169
|
+
"input.image.uploadErrorRetry": "",
|
|
170
|
+
"input.image.uploadProgressCancel": "",
|
|
171
|
+
"input.image.uploadProgressLabel": "",
|
|
162
172
|
"language.ca": "Catalánsky",
|
|
163
173
|
"language.cs": "Čeština",
|
|
164
174
|
"language.de": "Nemecky",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GeoNetwork 4.2.7 OpenAPI Documentation
|
|
3
|
-
* This is the description of the GeoNetwork OpenAPI. Use this API to manage your catalog.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 4.2.7
|
|
6
|
-
* Contact: geonetwork-users@lists.sourceforge.net
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lT2JqZWN0My5hcGkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMvb3BlbmFwaS9tb2RlbC9pbmxpbmVPYmplY3QzLmFwaS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW9OZXR3b3JrIDQuMi43IE9wZW5BUEkgRG9jdW1lbnRhdGlvblxuICogVGhpcyBpcyB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIEdlb05ldHdvcmsgT3BlbkFQSS4gVXNlIHRoaXMgQVBJIHRvIG1hbmFnZSB5b3VyIGNhdGFsb2cuXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDQuMi43XG4gKiBDb250YWN0OiBnZW9uZXR3b3JrLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIElubGluZU9iamVjdDNBcGlNb2RlbCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0byB1cGxvYWRcbiAgICovXG4gIGZpbGU6IEJsb2Jcbn1cbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GeoNetwork 4.2.7 OpenAPI Documentation
|
|
3
|
-
* This is the description of the GeoNetwork OpenAPI. Use this API to manage your catalog.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 4.2.7
|
|
6
|
-
* Contact: geonetwork-users@lists.sourceforge.net
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
export interface InlineObject3ApiModel {
|
|
13
|
-
/**
|
|
14
|
-
* The file to upload
|
|
15
|
-
*/
|
|
16
|
-
file: Blob;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=inlineObject3.api.model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inlineObject3.api.model.d.ts","sourceRoot":"","sources":["../../../../../../src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;CACX"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GeoNetwork 4.2.7 OpenAPI Documentation
|
|
3
|
-
* This is the description of the GeoNetwork OpenAPI. Use this API to manage your catalog.
|
|
4
|
-
*
|
|
5
|
-
* The version of the OpenAPI document: 4.2.7
|
|
6
|
-
* Contact: geonetwork-users@lists.sourceforge.net
|
|
7
|
-
*
|
|
8
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
-
* https://openapi-generator.tech
|
|
10
|
-
* Do not edit the class manually.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
export interface InlineObject3ApiModel {
|
|
14
|
-
/**
|
|
15
|
-
* The file to upload
|
|
16
|
-
*/
|
|
17
|
-
file: Blob
|
|
18
|
-
}
|