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.
Files changed (72) hide show
  1. package/esm2022/libs/data-access/gn4/src/openapi/api/records.api.service.mjs +35 -7
  2. package/esm2022/libs/data-access/gn4/src/openapi/model/models.mjs +1 -2
  3. package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
  4. package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +3 -3
  5. package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +4 -3
  6. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +6 -5
  7. package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -1
  8. package/esm2022/libs/ui/inputs/src/lib/files-drop/files-drop.directive.mjs +59 -0
  9. package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +183 -0
  10. package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +10 -4
  11. package/esm2022/libs/util/shared/src/lib/utils/bytes-convert.mjs +4 -0
  12. package/esm2022/libs/util/shared/src/lib/utils/image-resize.mjs +60 -0
  13. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +8 -6
  14. package/esm2022/translations/de.json +10 -0
  15. package/esm2022/translations/en.json +10 -0
  16. package/esm2022/translations/es.json +10 -0
  17. package/esm2022/translations/fr.json +10 -0
  18. package/esm2022/translations/it.json +10 -0
  19. package/esm2022/translations/nl.json +10 -0
  20. package/esm2022/translations/pt.json +10 -0
  21. package/fesm2022/geonetwork-ui.mjs +494 -114
  22. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  23. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts +9 -5
  24. package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
  25. package/libs/data-access/gn4/src/openapi/model/models.d.ts +0 -1
  26. package/libs/data-access/gn4/src/openapi/model/models.d.ts.map +1 -1
  27. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +1 -1
  28. package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
  29. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +20 -20
  30. package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
  31. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts +14 -0
  32. package/libs/ui/inputs/src/lib/files-drop/files-drop.directive.d.ts.map +1 -0
  33. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +44 -0
  34. package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -0
  35. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +2 -1
  36. package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
  37. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts +2 -0
  38. package/libs/util/shared/src/lib/utils/bytes-convert.d.ts.map +1 -0
  39. package/libs/util/shared/src/lib/utils/image-resize.d.ts +3 -0
  40. package/libs/util/shared/src/lib/utils/image-resize.d.ts.map +1 -0
  41. package/libs/util/shared/src/lib/utils/index.d.ts +7 -5
  42. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +43 -12
  45. package/src/libs/data-access/gn4/src/openapi/model/models.ts +0 -1
  46. package/src/libs/data-access/gn4/src/spec.yaml +1 -1
  47. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.css +0 -0
  48. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +8 -0
  49. package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +70 -0
  50. package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +5 -3
  51. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +1 -1
  52. package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -1
  53. package/src/libs/ui/inputs/src/lib/files-drop/files-drop.directive.ts +45 -0
  54. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.css +0 -0
  55. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +146 -0
  56. package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +193 -0
  57. package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +3 -0
  58. package/src/libs/util/shared/src/lib/utils/bytes-convert.ts +3 -0
  59. package/src/libs/util/shared/src/lib/utils/image-resize.ts +72 -0
  60. package/src/libs/util/shared/src/lib/utils/index.ts +7 -5
  61. package/translations/de.json +10 -0
  62. package/translations/en.json +10 -0
  63. package/translations/es.json +10 -0
  64. package/translations/fr.json +10 -0
  65. package/translations/it.json +10 -0
  66. package/translations/nl.json +10 -0
  67. package/translations/pt.json +10 -0
  68. package/translations/sk.json +10 -0
  69. package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
  70. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts +0 -18
  71. package/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.d.ts.map +0 -1
  72. 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,3 @@
1
+ export function megabytesToBytes(megabytes) {
2
+ return megabytes * 1048576
3
+ }
@@ -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 './url'
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'
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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",
@@ -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
- }