geonetwork-ui 2.2.0 → 2.3.0-dev.179fba83
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/index.mjs +5 -5
- package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +15 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.converter.mjs +52 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +7 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/index.mjs +4 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +123 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +116 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +138 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +242 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +58 -62
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.mjs +48 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +18 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.mjs +64 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +75 -58
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +76 -14
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +4 -4
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- 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/feature/dataviz/src/lib/service/data.service.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +8 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -2
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +72 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -3
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +12 -7
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +52 -25
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +12 -49
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +6 -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 +12 -0
- package/esm2022/translations/en.json +12 -0
- package/esm2022/translations/es.json +12 -0
- package/esm2022/translations/fr.json +12 -0
- package/esm2022/translations/it.json +12 -0
- package/esm2022/translations/nl.json +12 -0
- package/esm2022/translations/pt.json +12 -0
- package/fesm2022/geonetwork-ui.mjs +3910 -2866
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +4 -4
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/{metadata-base.mapper.d.ts → base.converter.d.ts} +3 -3
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.d.ts → gn4.converter.d.ts} +5 -5
- package/libs/api/metadata-converter/src/lib/gn4/gn4.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/index.d.ts +4 -0
- package/libs/api/metadata-converter/src/lib/gn4/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts +9 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +20 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +21 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/iso19139/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts +11 -0
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +34 -6
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts +8 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/keyword.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/role.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/update-frequency.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +39 -3
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +14 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +2 -2
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +6 -4
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.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/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +23 -0
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -1
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +2 -0
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +10 -5
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -3
- package/libs/feature/map/src/lib/utils/map-utils.service.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/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 +2 -2
- package/src/libs/api/metadata-converter/src/index.ts +4 -4
- package/src/libs/api/metadata-converter/src/lib/{metadata-base.mapper.ts → base.converter.ts} +2 -2
- package/src/libs/api/metadata-converter/src/lib/find-converter.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +32 -5
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +11 -4
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +33 -7
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +580 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/{gn4.metadata.mapper.ts → gn4.converter.ts} +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +8 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/index.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +176 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +329 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +513 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +327 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +121 -82
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/individual-name.ts +20 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +175 -95
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +84 -16
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +9 -4
- 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/dataviz/src/lib/service/data.service.ts +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/feature/editor/src/lib/services/editor.service.ts +27 -16
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +36 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +80 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +8 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +5 -0
- package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +10 -3
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +60 -32
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +17 -61
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -1
- 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 +12 -0
- package/translations/en.json +12 -0
- package/translations/es.json +12 -0
- package/translations/fr.json +12 -0
- package/translations/it.json +12 -0
- package/translations/nl.json +12 -0
- package/translations/pt.json +12 -0
- package/translations/sk.json +12 -0
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +0 -52
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +0 -14
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.mjs +0 -48
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.mjs +0 -18
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.mjs +0 -64
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +0 -130
- package/esm2022/libs/api/metadata-converter/src/lib/metadata-base.mapper.mjs +0 -14
- package/esm2022/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.mjs +0 -13
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/role.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/status.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/update-frequency.mapper.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts +0 -4
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +0 -1
- package/libs/api/metadata-converter/src/lib/metadata-base.mapper.d.ts.map +0 -1
- 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/api/metadata-converter/src/lib/iso19139/converter.ts +0 -196
- package/src/libs/data-access/gn4/src/openapi/model/inlineObject3.api.model.ts +0 -18
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/keyword.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.d.ts +0 -0
- /package/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.d.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/keyword.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/role.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/status.mapper.ts +0 -0
- /package/src/libs/api/metadata-converter/src/lib/iso19139/{codelists → utils}/update-frequency.mapper.ts +0 -0
|
@@ -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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "Eine Ebene hinzufügen",
|
|
178
188
|
"map.add.layer.catalog": "Aus dem Katalog",
|
|
179
189
|
"map.add.layer.file": "Aus einer Datei",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "Aus WFS",
|
|
181
192
|
"map.add.layer.wms": "Aus WMS",
|
|
182
193
|
"map.addFromFile.placeholder": "Klicke hier oder ziehe eine Datei herein",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "Kartendaten werden geladen...",
|
|
189
200
|
"map.loading.service": "Dienst wird geladen...",
|
|
190
201
|
"map.navigation.message": "Bitte verwenden Sie STRG + Maus (oder zwei Finger auf einem Mobilgerät), um die Karte zu navigieren",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "Datenquelle",
|
|
192
204
|
"map.wfs.urlInput.hint": "Geben Sie die WFS URL ein",
|
|
193
205
|
"map.wms.urlInput.hint": "Geben Sie die WMS URL ein",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "Add a layer",
|
|
178
188
|
"map.add.layer.catalog": "From the catalog",
|
|
179
189
|
"map.add.layer.file": "From a file",
|
|
190
|
+
"map.add.layer.ogc.api": "From OGC API",
|
|
180
191
|
"map.add.layer.wfs": "From WFS",
|
|
181
192
|
"map.add.layer.wms": "From WMS",
|
|
182
193
|
"map.addFromFile.placeholder": "Click or drop a file here",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "Loading map data...",
|
|
189
200
|
"map.loading.service": "Loading service...",
|
|
190
201
|
"map.navigation.message": "Please use CTRL + mouse (or two fingers on mobile) to navigate the map",
|
|
202
|
+
"map.ogc.urlInput.hint": "Enter OGC API service URL",
|
|
191
203
|
"map.select.layer": "Data source",
|
|
192
204
|
"map.wfs.urlInput.hint": "Enter WFS service URL",
|
|
193
205
|
"map.wms.urlInput.hint": "Enter WMS service URL",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "",
|
|
178
188
|
"map.add.layer.catalog": "",
|
|
179
189
|
"map.add.layer.file": "",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "",
|
|
181
192
|
"map.add.layer.wms": "",
|
|
182
193
|
"map.addFromFile.placeholder": "",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "",
|
|
189
200
|
"map.loading.service": "",
|
|
190
201
|
"map.navigation.message": "",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "",
|
|
192
204
|
"map.wfs.urlInput.hint": "",
|
|
193
205
|
"map.wms.urlInput.hint": "",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "Ajouter une couche",
|
|
178
188
|
"map.add.layer.catalog": "Du catalogue",
|
|
179
189
|
"map.add.layer.file": "À partir d'un fichier",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "Depuis un service WFS",
|
|
181
192
|
"map.add.layer.wms": "Depuis un service WMS",
|
|
182
193
|
"map.addFromFile.placeholder": "Cliquez ou déposez un fichier ici",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "Chargement des données...",
|
|
189
200
|
"map.loading.service": "Chargement du service...",
|
|
190
201
|
"map.navigation.message": "Veuillez utiliser CTRL + souris (ou deux doigts sur mobile) pour naviguer sur la carte",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "Source de données",
|
|
192
204
|
"map.wfs.urlInput.hint": "Entrez l'URL du service WFS",
|
|
193
205
|
"map.wms.urlInput.hint": "Entrez l'URL du service WMS",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "Aggiungere un layer",
|
|
178
188
|
"map.add.layer.catalog": "Dal catalogo",
|
|
179
189
|
"map.add.layer.file": "Da un file",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "Da un WFS",
|
|
181
192
|
"map.add.layer.wms": "Da un WMS",
|
|
182
193
|
"map.addFromFile.placeholder": "Clicca o trascina un file qui",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "Caricamento dati...",
|
|
189
200
|
"map.loading.service": "Caricamento del servizio...",
|
|
190
201
|
"map.navigation.message": "Si prega di utilizzare CTRL + mouse (o due dita su mobile) per navigare sulla mappa",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "Sorgente dati",
|
|
192
204
|
"map.wfs.urlInput.hint": "Inserisci URL del servizio WFS",
|
|
193
205
|
"map.wms.urlInput.hint": "Inserisci URL del servizio WMS",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "",
|
|
178
188
|
"map.add.layer.catalog": "",
|
|
179
189
|
"map.add.layer.file": "",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "",
|
|
181
192
|
"map.add.layer.wms": "",
|
|
182
193
|
"map.addFromFile.placeholder": "",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "",
|
|
189
200
|
"map.loading.service": "",
|
|
190
201
|
"map.navigation.message": "",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "",
|
|
192
204
|
"map.wfs.urlInput.hint": "",
|
|
193
205
|
"map.wms.urlInput.hint": "",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "",
|
|
178
188
|
"map.add.layer.catalog": "",
|
|
179
189
|
"map.add.layer.file": "",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "",
|
|
181
192
|
"map.add.layer.wms": "",
|
|
182
193
|
"map.addFromFile.placeholder": "",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "",
|
|
189
200
|
"map.loading.service": "",
|
|
190
201
|
"map.navigation.message": "",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "",
|
|
192
204
|
"map.wfs.urlInput.hint": "",
|
|
193
205
|
"map.wms.urlInput.hint": "",
|
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",
|
|
@@ -177,6 +187,7 @@
|
|
|
177
187
|
"map.add.layer": "Pridať vrstvu",
|
|
178
188
|
"map.add.layer.catalog": "Z katalógu",
|
|
179
189
|
"map.add.layer.file": "Zo súboru",
|
|
190
|
+
"map.add.layer.ogc.api": "",
|
|
180
191
|
"map.add.layer.wfs": "Z WFS",
|
|
181
192
|
"map.add.layer.wms": "Z WMS",
|
|
182
193
|
"map.addFromFile.placeholder": "Kliknite na tlačidlo alebo sem vložte súbor",
|
|
@@ -188,6 +199,7 @@
|
|
|
188
199
|
"map.loading.data": "Načítavanie dát mapy...",
|
|
189
200
|
"map.loading.service": "Načítavanie služieb...",
|
|
190
201
|
"map.navigation.message": "Použite prosím CTRL + myš (alebo dva prsty na mobilnom zariadení) na navigáciu po mape",
|
|
202
|
+
"map.ogc.urlInput.hint": "",
|
|
191
203
|
"map.select.layer": "Zdroj dát",
|
|
192
204
|
"map.wfs.urlInput.hint": "Zadajte URL adresu služby WFS",
|
|
193
205
|
"map.wms.urlInput.hint": "Zadajte URL adresu služby WMS",
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Gn4FieldMapper } from './gn4.field.mapper';
|
|
2
|
-
import { lastValueFrom } from 'rxjs';
|
|
3
|
-
import { OrganizationsServiceInterface } from '../../../../../../libs/common/domain/src/lib/organizations.service.interface';
|
|
4
|
-
import { MetadataBaseMapper } from '../metadata-base.mapper';
|
|
5
|
-
import { Injectable } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./gn4.field.mapper";
|
|
8
|
-
import * as i2 from "../../../../../../libs/common/domain/src/lib/organizations.service.interface";
|
|
9
|
-
export class Gn4MetadataMapper extends MetadataBaseMapper {
|
|
10
|
-
constructor(fieldMapper, orgsService) {
|
|
11
|
-
super();
|
|
12
|
-
this.fieldMapper = fieldMapper;
|
|
13
|
-
this.orgsService = orgsService;
|
|
14
|
-
}
|
|
15
|
-
readRecord(document) {
|
|
16
|
-
const { _source } = document;
|
|
17
|
-
const emptyRecord = {
|
|
18
|
-
kind: 'dataset',
|
|
19
|
-
status: null,
|
|
20
|
-
lineage: null,
|
|
21
|
-
recordUpdated: null,
|
|
22
|
-
recordPublished: null,
|
|
23
|
-
ownerOrganization: null,
|
|
24
|
-
licenses: [],
|
|
25
|
-
legalConstraints: [],
|
|
26
|
-
securityConstraints: [],
|
|
27
|
-
otherConstraints: [],
|
|
28
|
-
contacts: [],
|
|
29
|
-
contactsForResource: [],
|
|
30
|
-
keywords: [],
|
|
31
|
-
topics: [],
|
|
32
|
-
spatialExtents: [],
|
|
33
|
-
temporalExtents: [],
|
|
34
|
-
overviews: [],
|
|
35
|
-
languages: [],
|
|
36
|
-
};
|
|
37
|
-
const record = Object.keys(_source).reduce((prev, fieldName) => this.fieldMapper.getMappingFn(fieldName)(prev, _source), emptyRecord);
|
|
38
|
-
return lastValueFrom(this.orgsService.addOrganizationToRecordFromSource(_source, record));
|
|
39
|
-
}
|
|
40
|
-
writeRecord(record) {
|
|
41
|
-
throw new Error('not implemented');
|
|
42
|
-
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4MetadataMapper, deps: [{ token: i1.Gn4FieldMapper }, { token: i2.OrganizationsServiceInterface }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4MetadataMapper, providedIn: 'root' }); }
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: Gn4MetadataMapper, decorators: [{
|
|
47
|
-
type: Injectable,
|
|
48
|
-
args: [{
|
|
49
|
-
providedIn: 'root',
|
|
50
|
-
}]
|
|
51
|
-
}], ctorParameters: function () { return [{ type: i1.Gn4FieldMapper }, { type: i2.OrganizationsServiceInterface }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240Lm1ldGFkYXRhLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMvbGliL2duNC9nbjQubWV0YWRhdGEubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3BDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFBO0FBRTVILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7QUFNMUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUE2QjtJQUNsRSxZQUNVLFdBQTJCLEVBQzNCLFdBQTBDO1FBRWxELEtBQUssRUFBRSxDQUFBO1FBSEMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUErQjtJQUdwRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQW1CO1FBQzVCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7UUFDNUIsTUFBTSxXQUFXLEdBQTJCO1lBQzFDLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLElBQUk7WUFDWixPQUFPLEVBQUUsSUFBSTtZQUNiLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsUUFBUSxFQUFFLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixRQUFRLEVBQUUsRUFBRTtZQUNaLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsUUFBUSxFQUFFLEVBQUU7WUFDWixNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFBO1FBQ0QsTUFBTSxNQUFNLEdBQWtCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUN2RCxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQ3pELFdBQVcsQ0FDWixDQUFBO1FBQ0QsT0FBTyxhQUFhLENBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsaUNBQWlDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUNwRSxDQUFBO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFxQjtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDcEMsQ0FBQzs4R0ExQ1UsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEduNEZpZWxkTWFwcGVyIH0gZnJvbSAnLi9nbjQuZmllbGQubWFwcGVyJ1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgTWV0YWRhdGFCYXNlTWFwcGVyIH0gZnJvbSAnLi4vbWV0YWRhdGEtYmFzZS5tYXBwZXInXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEduNFJlY29yZCB9IGZyb20gJy4vdHlwZXMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHbjRNZXRhZGF0YU1hcHBlciBleHRlbmRzIE1ldGFkYXRhQmFzZU1hcHBlcjxHbjRSZWNvcmQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaWVsZE1hcHBlcjogR240RmllbGRNYXBwZXIsXG4gICAgcHJpdmF0ZSBvcmdzU2VydmljZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2VcbiAgKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgcmVhZFJlY29yZChkb2N1bWVudDogR240UmVjb3JkKTogUHJvbWlzZTxDYXRhbG9nUmVjb3JkPiB7XG4gICAgY29uc3QgeyBfc291cmNlIH0gPSBkb2N1bWVudFxuICAgIGNvbnN0IGVtcHR5UmVjb3JkOiBQYXJ0aWFsPENhdGFsb2dSZWNvcmQ+ID0ge1xuICAgICAga2luZDogJ2RhdGFzZXQnLFxuICAgICAgc3RhdHVzOiBudWxsLFxuICAgICAgbGluZWFnZTogbnVsbCxcbiAgICAgIHJlY29yZFVwZGF0ZWQ6IG51bGwsXG4gICAgICByZWNvcmRQdWJsaXNoZWQ6IG51bGwsXG4gICAgICBvd25lck9yZ2FuaXphdGlvbjogbnVsbCxcbiAgICAgIGxpY2Vuc2VzOiBbXSxcbiAgICAgIGxlZ2FsQ29uc3RyYWludHM6IFtdLFxuICAgICAgc2VjdXJpdHlDb25zdHJhaW50czogW10sXG4gICAgICBvdGhlckNvbnN0cmFpbnRzOiBbXSxcbiAgICAgIGNvbnRhY3RzOiBbXSxcbiAgICAgIGNvbnRhY3RzRm9yUmVzb3VyY2U6IFtdLFxuICAgICAga2V5d29yZHM6IFtdLFxuICAgICAgdG9waWNzOiBbXSxcbiAgICAgIHNwYXRpYWxFeHRlbnRzOiBbXSxcbiAgICAgIHRlbXBvcmFsRXh0ZW50czogW10sXG4gICAgICBvdmVydmlld3M6IFtdLFxuICAgICAgbGFuZ3VhZ2VzOiBbXSxcbiAgICB9XG4gICAgY29uc3QgcmVjb3JkOiBDYXRhbG9nUmVjb3JkID0gT2JqZWN0LmtleXMoX3NvdXJjZSkucmVkdWNlKFxuICAgICAgKHByZXYsIGZpZWxkTmFtZSkgPT5cbiAgICAgICAgdGhpcy5maWVsZE1hcHBlci5nZXRNYXBwaW5nRm4oZmllbGROYW1lKShwcmV2LCBfc291cmNlKSxcbiAgICAgIGVtcHR5UmVjb3JkXG4gICAgKVxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5vcmdzU2VydmljZS5hZGRPcmdhbml6YXRpb25Ub1JlY29yZEZyb21Tb3VyY2UoX3NvdXJjZSwgcmVjb3JkKVxuICAgIClcbiAgfVxuXG4gIHdyaXRlUmVjb3JkKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IFByb21pc2U8R240UmVjb3JkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKVxuICB9XG59XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function getKeywordTypeFromKeywordTypeCode(typeCode) {
|
|
2
|
-
if (!typeCode)
|
|
3
|
-
return 'other';
|
|
4
|
-
switch (typeCode) {
|
|
5
|
-
case 'theme':
|
|
6
|
-
case 'place':
|
|
7
|
-
case 'temporal':
|
|
8
|
-
case 'other':
|
|
9
|
-
return typeCode;
|
|
10
|
-
default:
|
|
11
|
-
return 'other';
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5d29yZC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjL2xpYi9pc28xOTEzOS9jb2RlbGlzdHMva2V5d29yZC5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGlDQUFpQyxDQUMvQyxRQUFnQjtJQUVoQixJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sT0FBTyxDQUFBO0lBQzdCLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLE9BQU87WUFDVixPQUFPLFFBQVEsQ0FBQTtRQUNqQjtZQUNFLE9BQU8sT0FBTyxDQUFBO0tBQ2pCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleXdvcmRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5d29yZFR5cGVGcm9tS2V5d29yZFR5cGVDb2RlKFxuICB0eXBlQ29kZTogc3RyaW5nXG4pOiBLZXl3b3JkVHlwZSB7XG4gIGlmICghdHlwZUNvZGUpIHJldHVybiAnb3RoZXInXG4gIHN3aXRjaCAodHlwZUNvZGUpIHtcbiAgICBjYXNlICd0aGVtZSc6XG4gICAgY2FzZSAncGxhY2UnOlxuICAgIGNhc2UgJ3RlbXBvcmFsJzpcbiAgICBjYXNlICdvdGhlcic6XG4gICAgICByZXR1cm4gdHlwZUNvZGVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdvdGhlcidcbiAgfVxufVxuIl19
|