geonetwork-ui 2.7.0-dev.dbe423d28 → 2.7.0-dev.e3a54608e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -1
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +47 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +32 -4
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +76 -27
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
- package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -46
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +5 -1
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/shared/src/index.mjs +2 -2
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
- package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
- package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +45 -0
- package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
- package/esm2022/translations/de.json +18 -1
- package/esm2022/translations/en.json +18 -1
- package/esm2022/translations/es.json +18 -1
- package/esm2022/translations/fr.json +19 -2
- package/esm2022/translations/it.json +18 -1
- package/esm2022/translations/nl.json +18 -1
- package/esm2022/translations/pt.json +18 -1
- package/esm2022/translations/sk.json +18 -1
- package/fesm2022/geonetwork-ui.mjs +2802 -2329
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +3 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -7
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +2 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +1 -1
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record/index.d.ts +3 -0
- package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
- package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
- package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
- package/package.json +11 -10
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -0
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +50 -3
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +38 -4
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +15 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +0 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +2 -0
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +70 -23
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -58
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +4 -0
- package/src/libs/util/app-config/src/lib/model.ts +2 -0
- package/src/libs/util/shared/src/index.ts +1 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
- package/src/libs/util/shared/src/lib/record/index.ts +2 -0
- package/src/libs/util/shared/src/lib/record/quality-score.util.ts +68 -0
- package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
- package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- package/translations/de.json +18 -1
- package/translations/en.json +18 -1
- package/translations/es.json +18 -1
- package/translations/fr.json +19 -2
- package/translations/it.json +18 -1
- package/translations/nl.json +18 -1
- package/translations/pt.json +18 -1
- package/translations/sk.json +18 -1
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
- package/libs/util/shared/src/lib/record.util.d.ts +0 -3
- package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { DatasetFeatureCatalog } from '../../../../../../libs/common/domain/src/
|
|
|
6
6
|
import { FormsModule } from '@angular/forms'
|
|
7
7
|
import { of } from 'rxjs'
|
|
8
8
|
import { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators'
|
|
9
|
-
import { createFuzzyFilter } from '../../../../../../libs/util/shared/src'
|
|
9
|
+
import { createFuzzyFilter, getIsMobile } from '../../../../../../libs/util/shared/src'
|
|
10
10
|
import { iconoirSearch } from '@ng-icons/iconoir'
|
|
11
11
|
|
|
12
12
|
@Component({
|
|
@@ -39,6 +39,8 @@ export class SearchFeatureCatalogComponent {
|
|
|
39
39
|
return this._featureCatalog
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
isMobile$ = getIsMobile()
|
|
43
|
+
|
|
42
44
|
@Output() filteredFeatureCatalogChange =
|
|
43
45
|
new EventEmitter<DatasetFeatureCatalog>()
|
|
44
46
|
filteredFeatureCatalog: DatasetFeatureCatalog
|
|
@@ -102,6 +102,7 @@ export function loadAppConfig() {
|
|
|
102
102
|
'web_component_embedder_url',
|
|
103
103
|
'languages',
|
|
104
104
|
'contact_email',
|
|
105
|
+
'reuse_form_url',
|
|
105
106
|
],
|
|
106
107
|
warnings,
|
|
107
108
|
errors
|
|
@@ -131,6 +132,7 @@ export function loadAppConfig() {
|
|
|
131
132
|
parsedGlobalSection.web_component_embedder_url,
|
|
132
133
|
LANGUAGES: parsedGlobalSection.languages,
|
|
133
134
|
CONTACT_EMAIL: parsedGlobalSection.contact_email,
|
|
135
|
+
REUSE_FORM_URL: parsedGlobalSection.reuse_form_url,
|
|
134
136
|
} as GlobalConfig)
|
|
135
137
|
|
|
136
138
|
const parsedLayersSections = parseMultiConfigSection(
|
|
@@ -229,6 +231,7 @@ export function loadAppConfig() {
|
|
|
229
231
|
'filter_geometry_url',
|
|
230
232
|
'search_preset',
|
|
231
233
|
'advanced_filters',
|
|
234
|
+
'limit',
|
|
232
235
|
],
|
|
233
236
|
warnings,
|
|
234
237
|
errors
|
|
@@ -255,6 +258,7 @@ export function loadAppConfig() {
|
|
|
255
258
|
filters: param.filters,
|
|
256
259
|
})),
|
|
257
260
|
ADVANCED_FILTERS: parsedSearchSection.advanced_filters,
|
|
261
|
+
LIMIT: parsedSearchSection.limit,
|
|
258
262
|
} as SearchConfig)
|
|
259
263
|
|
|
260
264
|
const parsedMetadataQualitySection = parseConfigSection(
|
|
@@ -11,6 +11,7 @@ export interface GlobalConfig {
|
|
|
11
11
|
WEB_COMPONENT_EMBEDDER_URL?: string
|
|
12
12
|
LANGUAGES?: string[]
|
|
13
13
|
CONTACT_EMAIL?: string
|
|
14
|
+
REUSE_FORM_URL?: string
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export interface LayerConfig {
|
|
@@ -59,6 +60,7 @@ export interface SearchConfig {
|
|
|
59
60
|
FILTER_GEOMETRY_DATA?: string
|
|
60
61
|
SEARCH_PRESET?: SearchPreset[]
|
|
61
62
|
ADVANCED_FILTERS?: []
|
|
63
|
+
LIMIT?: number
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
export interface MetadataQualityConfig {
|
|
@@ -23,8 +23,8 @@ export const FORMATS = {
|
|
|
23
23
|
excel: {
|
|
24
24
|
extensions: [
|
|
25
25
|
'excel',
|
|
26
|
-
'xls',
|
|
27
26
|
'xlsx',
|
|
27
|
+
'xls',
|
|
28
28
|
'ms-excel',
|
|
29
29
|
'openxmlformats-officedocument',
|
|
30
30
|
],
|
|
@@ -190,6 +190,7 @@ export function isFormatInQueryParam(
|
|
|
190
190
|
alias: string
|
|
191
191
|
): boolean {
|
|
192
192
|
const queryParams = link.url.searchParams
|
|
193
|
+
if (!queryParams) return false
|
|
193
194
|
for (const [key, value] of queryParams.entries()) {
|
|
194
195
|
if (key === 'format' || key === 'f') {
|
|
195
196
|
return value === alias
|
|
@@ -230,6 +231,15 @@ export function getBadgeColor(linkFormat: FileFormat): string {
|
|
|
230
231
|
return 'var(--color-gray-700)' // Default color ?
|
|
231
232
|
}
|
|
232
233
|
|
|
234
|
+
export function getLinkId(link: DatasetOnlineResource): string {
|
|
235
|
+
const href = link.url.href ?? link.url
|
|
236
|
+
return `${getLinkLabel(link)
|
|
237
|
+
.replace(/é/g, 'e')
|
|
238
|
+
.replace(/è/g, 'e')
|
|
239
|
+
.normalize('NFD')
|
|
240
|
+
.replace(/[\u0300-\u036f]/g, '')}-${href}`
|
|
241
|
+
}
|
|
242
|
+
|
|
233
243
|
export function getLinkLabel(
|
|
234
244
|
link: DatasetOnlineResource | ServiceOnlineResource
|
|
235
245
|
): string {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CatalogRecord,
|
|
3
|
+
RecordKind,
|
|
4
|
+
} from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
5
|
+
|
|
6
|
+
type TValidatorMapper = {
|
|
7
|
+
[key: string]: (metadata: Partial<CatalogRecord>) => boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const ValidatorMapper: TValidatorMapper = {
|
|
11
|
+
title: (record) => !!record?.title,
|
|
12
|
+
abstract: (record) => !!record?.abstract,
|
|
13
|
+
keywords: (record) => (record?.keywords?.length ?? 0) > 0,
|
|
14
|
+
legalConstraints: (record) => (record?.legalConstraints?.length ?? 0) > 0,
|
|
15
|
+
contacts: (record) =>
|
|
16
|
+
!!record?.contacts?.[0]?.email &&
|
|
17
|
+
record.contacts[0].email !== 'missing@missing.com',
|
|
18
|
+
updateFrequency: (record) =>
|
|
19
|
+
!!record?.updateFrequency && record.updateFrequency !== 'unknown',
|
|
20
|
+
topics: (record) => (record?.topics?.length ?? 0) > 0,
|
|
21
|
+
organisation: (record) => !!record?.contacts?.[0]?.organization?.name,
|
|
22
|
+
source: (record) => !!record?.extras?.sourcesIdentifiers,
|
|
23
|
+
} as const
|
|
24
|
+
|
|
25
|
+
export type ValidatorMapperKeys = keyof typeof ValidatorMapper & string
|
|
26
|
+
|
|
27
|
+
export function getAllKeysValidator() {
|
|
28
|
+
return Object.keys(ValidatorMapper)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function getMappersFromKind(kind: RecordKind) {
|
|
32
|
+
let kindKeys = <ValidatorMapperKeys[]>[]
|
|
33
|
+
const commonsKeys = <ValidatorMapperKeys[]>[
|
|
34
|
+
'title',
|
|
35
|
+
'abstract',
|
|
36
|
+
'keywords',
|
|
37
|
+
'legalConstraints',
|
|
38
|
+
'contacts',
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
switch (kind) {
|
|
42
|
+
case 'reuse':
|
|
43
|
+
kindKeys = ['topics', 'organisation', 'source']
|
|
44
|
+
break
|
|
45
|
+
case 'service':
|
|
46
|
+
kindKeys = []
|
|
47
|
+
break
|
|
48
|
+
case 'dataset':
|
|
49
|
+
default:
|
|
50
|
+
kindKeys = ['updateFrequency', 'topics', 'organisation']
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return [...commonsKeys, ...kindKeys]
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function getQualityValidators(
|
|
57
|
+
record: Partial<CatalogRecord>,
|
|
58
|
+
propsToValidate: ValidatorMapperKeys[]
|
|
59
|
+
) {
|
|
60
|
+
const filteredProps = propsToValidate.filter((prop) =>
|
|
61
|
+
getMappersFromKind(record.kind).includes(prop)
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
return filteredProps.map((name) => ({
|
|
65
|
+
name,
|
|
66
|
+
validator: () => ValidatorMapper[name](record),
|
|
67
|
+
}))
|
|
68
|
+
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { Feature, FeatureCollection, Geometry } from 'geojson'
|
|
1
|
+
import type { Feature, FeatureCollection, Geometry, Position } from 'geojson'
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* @returns The geometry if available, otherwise null.
|
|
5
|
+
*/
|
|
3
6
|
export function getGeometryFromGeoJSON(
|
|
4
7
|
data: FeatureCollection | Feature | Geometry
|
|
5
|
-
): Geometry {
|
|
8
|
+
): Geometry | null {
|
|
6
9
|
if (data.type === 'FeatureCollection') {
|
|
7
10
|
return data?.features?.[0]?.geometry || null
|
|
8
11
|
}
|
|
@@ -24,3 +27,70 @@ export function getGeometryFromGeoJSON(
|
|
|
24
27
|
}
|
|
25
28
|
return null
|
|
26
29
|
}
|
|
30
|
+
|
|
31
|
+
// FIXME: this type should be more generic across the project
|
|
32
|
+
export type BoundingBox = [number, number, number, number]
|
|
33
|
+
|
|
34
|
+
export function getGeometryBoundingBox(geometry: Geometry): BoundingBox {
|
|
35
|
+
// use the bounding box if specified in the GeoJSON object
|
|
36
|
+
if (geometry.bbox) {
|
|
37
|
+
return geometry.bbox.length > 4
|
|
38
|
+
? [geometry.bbox[0], geometry.bbox[1], geometry.bbox[3], geometry.bbox[4]]
|
|
39
|
+
: (geometry.bbox as BoundingBox)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const coordinatesReducer = (prev: BoundingBox, coords: Position) =>
|
|
43
|
+
[
|
|
44
|
+
Math.min(prev[0], coords[0]),
|
|
45
|
+
Math.min(prev[1], coords[1]),
|
|
46
|
+
Math.max(prev[2], coords[0]),
|
|
47
|
+
Math.max(prev[3], coords[1]),
|
|
48
|
+
] as BoundingBox
|
|
49
|
+
const coordinatesArrayReducer = (
|
|
50
|
+
prev: BoundingBox,
|
|
51
|
+
coordsArray: Position[]
|
|
52
|
+
) => {
|
|
53
|
+
const bbox = coordsArray.reduce(coordinatesReducer, emptyExtent)
|
|
54
|
+
return [
|
|
55
|
+
Math.min(prev[0], bbox[0]),
|
|
56
|
+
Math.min(prev[1], bbox[1]),
|
|
57
|
+
Math.max(prev[2], bbox[2]),
|
|
58
|
+
Math.max(prev[3], bbox[3]),
|
|
59
|
+
] as BoundingBox
|
|
60
|
+
}
|
|
61
|
+
const emptyExtent = [Infinity, Infinity, -Infinity, -Infinity] as BoundingBox
|
|
62
|
+
|
|
63
|
+
switch (geometry.type) {
|
|
64
|
+
case 'MultiPolygon':
|
|
65
|
+
return geometry.coordinates.reduce((prev, polygonCoords) => {
|
|
66
|
+
const bbox = polygonCoords.reduce(coordinatesArrayReducer, emptyExtent)
|
|
67
|
+
return [
|
|
68
|
+
Math.min(prev[0], bbox[0]),
|
|
69
|
+
Math.min(prev[1], bbox[1]),
|
|
70
|
+
Math.max(prev[2], bbox[2]),
|
|
71
|
+
Math.max(prev[3], bbox[3]),
|
|
72
|
+
] as BoundingBox
|
|
73
|
+
}, emptyExtent)
|
|
74
|
+
case 'GeometryCollection':
|
|
75
|
+
return geometry.geometries.reduce((prev, geom) => {
|
|
76
|
+
const bbox = getGeometryBoundingBox(geom)
|
|
77
|
+
return [
|
|
78
|
+
Math.min(prev[0], bbox[0]),
|
|
79
|
+
Math.min(prev[1], bbox[1]),
|
|
80
|
+
Math.max(prev[2], bbox[2]),
|
|
81
|
+
Math.max(prev[3], bbox[3]),
|
|
82
|
+
] as BoundingBox
|
|
83
|
+
}, emptyExtent)
|
|
84
|
+
case 'Polygon':
|
|
85
|
+
case 'MultiLineString':
|
|
86
|
+
return geometry.coordinates.reduce(coordinatesArrayReducer, emptyExtent)
|
|
87
|
+
case 'LineString':
|
|
88
|
+
case 'MultiPoint':
|
|
89
|
+
return geometry.coordinates.reduce<BoundingBox>(
|
|
90
|
+
coordinatesReducer,
|
|
91
|
+
emptyExtent
|
|
92
|
+
)
|
|
93
|
+
case 'Point':
|
|
94
|
+
return coordinatesReducer(emptyExtent, geometry.coordinates)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { fromEvent, startWith, map, shareReplay } from 'rxjs'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This returns true when the screen size is under 768px, which is the mobile threshold.
|
|
5
|
+
*/
|
|
6
|
+
const MOBILE_MAX_WIDTH = 768
|
|
7
|
+
|
|
8
|
+
export function getIsMobile() {
|
|
9
|
+
return fromEvent(window, 'resize').pipe(
|
|
10
|
+
startWith(window.innerWidth),
|
|
11
|
+
map(() => window.innerWidth < MOBILE_MAX_WIDTH),
|
|
12
|
+
shareReplay({ bufferSize: 1, refCount: true })
|
|
13
|
+
)
|
|
14
|
+
}
|
package/translations/de.json
CHANGED
|
@@ -86,7 +86,9 @@
|
|
|
86
86
|
"domain.record.status.completed": "Abgeschlossen",
|
|
87
87
|
"domain.record.status.deprecated": "Veraltet",
|
|
88
88
|
"domain.record.status.ongoing": "Kontinuierliche Aktualisierung",
|
|
89
|
+
"domain.record.status.planned": "",
|
|
89
90
|
"domain.record.status.removed": "Entfernt",
|
|
91
|
+
"domain.record.status.required": "",
|
|
90
92
|
"domain.record.status.under_development": "In Erstellung",
|
|
91
93
|
"domain.record.updateFrequency.annually": "Daten werden jedes Jahr aktualisiert",
|
|
92
94
|
"domain.record.updateFrequency.asNeeded": "Daten werden nach Bedarf aktualisiert",
|
|
@@ -142,6 +144,7 @@
|
|
|
142
144
|
"editor.record.form.draft.updateAlert": "",
|
|
143
145
|
"editor.record.form.field.abstract": "Kurzbeschreibung",
|
|
144
146
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
147
|
+
"editor.record.form.field.contacts": "Ansprechpartner - Email",
|
|
145
148
|
"editor.record.form.field.contacts.noContact": "",
|
|
146
149
|
"editor.record.form.field.contacts.placeholder": "",
|
|
147
150
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -166,6 +169,7 @@
|
|
|
166
169
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
167
170
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
168
171
|
"editor.record.form.field.onlineResources": "",
|
|
172
|
+
"editor.record.form.field.organisation": "Ansprechpartner - Organisation",
|
|
169
173
|
"editor.record.form.field.otherConstraints": "Allgemeine Einschränkung",
|
|
170
174
|
"editor.record.form.field.overviews": "",
|
|
171
175
|
"editor.record.form.field.recordUpdated": "Datensatz zuletzt aktualisiert",
|
|
@@ -177,6 +181,7 @@
|
|
|
177
181
|
"editor.record.form.field.temporalExtents": "Zeitlicher Umfang",
|
|
178
182
|
"editor.record.form.field.title": "Metadaten-Titel",
|
|
179
183
|
"editor.record.form.field.title.placeholder": "Geben Sie einen Titel ein",
|
|
184
|
+
"editor.record.form.field.topics": "Kategorien",
|
|
180
185
|
"editor.record.form.field.uniqueIdentifier": "Eindeutige Kennung (ID)",
|
|
181
186
|
"editor.record.form.field.updateFrequency": "Aktualisierungshäufigkeit",
|
|
182
187
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -191,6 +196,8 @@
|
|
|
191
196
|
"editor.record.form.license.odc-by": "",
|
|
192
197
|
"editor.record.form.license.pddl": "",
|
|
193
198
|
"editor.record.form.license.unknown": "",
|
|
199
|
+
"editor.record.form.metadataQuality.open": "Öffnen Sie das Panel zur Metadatenqualität",
|
|
200
|
+
"editor.record.form.metadataQuality.title": "Vollständigkeit",
|
|
194
201
|
"editor.record.form.multilingual.activate": "",
|
|
195
202
|
"editor.record.form.multilingual.default": "",
|
|
196
203
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -374,7 +381,6 @@
|
|
|
374
381
|
"record.action.rollback": "",
|
|
375
382
|
"record.action.switchLang": "",
|
|
376
383
|
"record.action.view": "Anzeigen",
|
|
377
|
-
"record.card.metadata.contact": "",
|
|
378
384
|
"record.externalViewer.open": "In externem Kartenviewer öffnen",
|
|
379
385
|
"record.feature.catalog.number.total.attribute": "",
|
|
380
386
|
"record.feature.catalog.number.total.object": "",
|
|
@@ -384,6 +390,16 @@
|
|
|
384
390
|
"record.kind.service": "",
|
|
385
391
|
"record.metadata.about": "Beschreibung",
|
|
386
392
|
"record.metadata.api": "API",
|
|
393
|
+
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
394
|
+
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
395
|
+
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
396
|
+
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
397
|
+
"record.metadata.api.accessServiceProtocol.other": "",
|
|
398
|
+
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
399
|
+
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
400
|
+
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
401
|
+
"record.metadata.api.accessServiceProtocol.wmts": "",
|
|
402
|
+
"record.metadata.api.accessServiceProtocol.wps": "",
|
|
387
403
|
"record.metadata.api.form.closeButton": "Schließen",
|
|
388
404
|
"record.metadata.api.form.closeForm": "Formular schließen",
|
|
389
405
|
"record.metadata.api.form.create": "Ihre Anfrage erstellen",
|
|
@@ -580,6 +596,7 @@
|
|
|
580
596
|
"service.metadata.filter.noLayers": "",
|
|
581
597
|
"service.metadata.other": "",
|
|
582
598
|
"service.metadata.question": "",
|
|
599
|
+
"service.metadata.reuse": "",
|
|
583
600
|
"service.metadata.search": "",
|
|
584
601
|
"service.metadata.search.clear": "",
|
|
585
602
|
"service.metadata.spatialExtent": "",
|
package/translations/en.json
CHANGED
|
@@ -86,7 +86,9 @@
|
|
|
86
86
|
"domain.record.status.completed": "Completed",
|
|
87
87
|
"domain.record.status.deprecated": "Deprecated",
|
|
88
88
|
"domain.record.status.ongoing": "Ongoing",
|
|
89
|
+
"domain.record.status.planned": "Planned",
|
|
89
90
|
"domain.record.status.removed": "Removed",
|
|
91
|
+
"domain.record.status.required": "Required",
|
|
90
92
|
"domain.record.status.under_development": "Under development",
|
|
91
93
|
"domain.record.updateFrequency.annually": "Data is updated every year",
|
|
92
94
|
"domain.record.updateFrequency.asNeeded": "Data is updated as deemed necessary",
|
|
@@ -142,6 +144,7 @@
|
|
|
142
144
|
"editor.record.form.draft.updateAlert": "Since you created this draft, the dataset has been updated on { date } by { user }. Publishing your draft might erase their edits. To avoid this, you need to either cancel your changes or knowingly publish your own version.",
|
|
143
145
|
"editor.record.form.field.abstract": "Abstract",
|
|
144
146
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
147
|
+
"editor.record.form.field.contacts": "Point of contact - Email",
|
|
145
148
|
"editor.record.form.field.contacts.noContact": "Please provide at least one point of contact.",
|
|
146
149
|
"editor.record.form.field.contacts.placeholder": "Choose a contact",
|
|
147
150
|
"editor.record.form.field.contactsForResource.noContact": "Please provide at least one point of contact responsible for the data.",
|
|
@@ -166,6 +169,7 @@
|
|
|
166
169
|
"editor.record.form.field.onlineResource.toggle.dataset": "Link to a file",
|
|
167
170
|
"editor.record.form.field.onlineResource.toggle.service": "Link to a service",
|
|
168
171
|
"editor.record.form.field.onlineResources": "Distribution",
|
|
172
|
+
"editor.record.form.field.organisation": "Point of contact - Organization",
|
|
169
173
|
"editor.record.form.field.otherConstraints": "Other constraint",
|
|
170
174
|
"editor.record.form.field.overviews": "Overview",
|
|
171
175
|
"editor.record.form.field.recordUpdated": "Record updated",
|
|
@@ -177,6 +181,7 @@
|
|
|
177
181
|
"editor.record.form.field.temporalExtents": "Temporal extents",
|
|
178
182
|
"editor.record.form.field.title": "Metadata title",
|
|
179
183
|
"editor.record.form.field.title.placeholder": "Enter a title",
|
|
184
|
+
"editor.record.form.field.topics": "Categories",
|
|
180
185
|
"editor.record.form.field.uniqueIdentifier": "Unique identifier",
|
|
181
186
|
"editor.record.form.field.updateFrequency": "Update frequency",
|
|
182
187
|
"editor.record.form.keywords.place.placeholder": "Search for place keywords",
|
|
@@ -191,6 +196,8 @@
|
|
|
191
196
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
192
197
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
193
198
|
"editor.record.form.license.unknown": "Unknown or absent",
|
|
199
|
+
"editor.record.form.metadataQuality.open": "Open the metadata quality panel",
|
|
200
|
+
"editor.record.form.metadataQuality.title": "Completeness",
|
|
194
201
|
"editor.record.form.multilingual.activate": "Activate the languages",
|
|
195
202
|
"editor.record.form.multilingual.default": "Default",
|
|
196
203
|
"editor.record.form.multilingual.enable": "Multilingual Mode",
|
|
@@ -374,7 +381,6 @@
|
|
|
374
381
|
"record.action.rollback": "Rollback",
|
|
375
382
|
"record.action.switchLang": "Switch to default",
|
|
376
383
|
"record.action.view": "View",
|
|
377
|
-
"record.card.metadata.contact": "Metadata Contact",
|
|
378
384
|
"record.externalViewer.open": "Open in the external map viewer",
|
|
379
385
|
"record.feature.catalog.number.total.attribute": "Total amount of objects",
|
|
380
386
|
"record.feature.catalog.number.total.object": "Total amount of attributes",
|
|
@@ -384,6 +390,16 @@
|
|
|
384
390
|
"record.kind.service": "Service",
|
|
385
391
|
"record.metadata.about": "Description",
|
|
386
392
|
"record.metadata.api": "API",
|
|
393
|
+
"record.metadata.api.accessServiceProtocol.GPFDL": "GPFDL",
|
|
394
|
+
"record.metadata.api.accessServiceProtocol.esriRest": "esriRest",
|
|
395
|
+
"record.metadata.api.accessServiceProtocol.maplibre-style": "maplibre-style",
|
|
396
|
+
"record.metadata.api.accessServiceProtocol.ogcFeatures": "ogcFeatures",
|
|
397
|
+
"record.metadata.api.accessServiceProtocol.other": "other",
|
|
398
|
+
"record.metadata.api.accessServiceProtocol.tms": "tms",
|
|
399
|
+
"record.metadata.api.accessServiceProtocol.wfs": "wfs",
|
|
400
|
+
"record.metadata.api.accessServiceProtocol.wms": "wms",
|
|
401
|
+
"record.metadata.api.accessServiceProtocol.wmts": "wmts",
|
|
402
|
+
"record.metadata.api.accessServiceProtocol.wps": "wps",
|
|
387
403
|
"record.metadata.api.form.closeButton": "Close",
|
|
388
404
|
"record.metadata.api.form.closeForm": "Close the form",
|
|
389
405
|
"record.metadata.api.form.create": "Create your request",
|
|
@@ -580,6 +596,7 @@
|
|
|
580
596
|
"service.metadata.filter.noLayers": "No layer matches your search",
|
|
581
597
|
"service.metadata.other": "Other information",
|
|
582
598
|
"service.metadata.question": "Ask a question",
|
|
599
|
+
"service.metadata.reuse": "Declare a reuse",
|
|
583
600
|
"service.metadata.search": "Search through the layer list",
|
|
584
601
|
"service.metadata.search.clear": "Clear the layer search",
|
|
585
602
|
"service.metadata.spatialExtent": "Spatial extent",
|
package/translations/es.json
CHANGED
|
@@ -86,7 +86,9 @@
|
|
|
86
86
|
"domain.record.status.completed": "",
|
|
87
87
|
"domain.record.status.deprecated": "",
|
|
88
88
|
"domain.record.status.ongoing": "",
|
|
89
|
+
"domain.record.status.planned": "",
|
|
89
90
|
"domain.record.status.removed": "",
|
|
91
|
+
"domain.record.status.required": "",
|
|
90
92
|
"domain.record.status.under_development": "",
|
|
91
93
|
"domain.record.updateFrequency.annually": "Los datos se actualizan cada año",
|
|
92
94
|
"domain.record.updateFrequency.asNeeded": "Los datos se actualizan según sea necesario",
|
|
@@ -142,6 +144,7 @@
|
|
|
142
144
|
"editor.record.form.draft.updateAlert": "",
|
|
143
145
|
"editor.record.form.field.abstract": "",
|
|
144
146
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
147
|
+
"editor.record.form.field.contacts": "Punto de contacto - Correo ",
|
|
145
148
|
"editor.record.form.field.contacts.noContact": "",
|
|
146
149
|
"editor.record.form.field.contacts.placeholder": "",
|
|
147
150
|
"editor.record.form.field.contactsForResource.noContact": "",
|
|
@@ -166,6 +169,7 @@
|
|
|
166
169
|
"editor.record.form.field.onlineResource.toggle.dataset": "",
|
|
167
170
|
"editor.record.form.field.onlineResource.toggle.service": "",
|
|
168
171
|
"editor.record.form.field.onlineResources": "",
|
|
172
|
+
"editor.record.form.field.organisation": "Punto de contacto - Organización",
|
|
169
173
|
"editor.record.form.field.otherConstraints": "",
|
|
170
174
|
"editor.record.form.field.overviews": "",
|
|
171
175
|
"editor.record.form.field.recordUpdated": "",
|
|
@@ -177,6 +181,7 @@
|
|
|
177
181
|
"editor.record.form.field.temporalExtents": "",
|
|
178
182
|
"editor.record.form.field.title": "",
|
|
179
183
|
"editor.record.form.field.title.placeholder": "Introduzca un título",
|
|
184
|
+
"editor.record.form.field.topics": "Categorías",
|
|
180
185
|
"editor.record.form.field.uniqueIdentifier": "",
|
|
181
186
|
"editor.record.form.field.updateFrequency": "",
|
|
182
187
|
"editor.record.form.keywords.place.placeholder": "",
|
|
@@ -191,6 +196,8 @@
|
|
|
191
196
|
"editor.record.form.license.odc-by": "",
|
|
192
197
|
"editor.record.form.license.pddl": "",
|
|
193
198
|
"editor.record.form.license.unknown": "",
|
|
199
|
+
"editor.record.form.metadataQuality.open": "Abrir el panel de calidad de los metadatos",
|
|
200
|
+
"editor.record.form.metadataQuality.title": "Completitud",
|
|
194
201
|
"editor.record.form.multilingual.activate": "",
|
|
195
202
|
"editor.record.form.multilingual.default": "",
|
|
196
203
|
"editor.record.form.multilingual.enable": "",
|
|
@@ -374,7 +381,6 @@
|
|
|
374
381
|
"record.action.rollback": "",
|
|
375
382
|
"record.action.switchLang": "",
|
|
376
383
|
"record.action.view": "",
|
|
377
|
-
"record.card.metadata.contact": "",
|
|
378
384
|
"record.externalViewer.open": "",
|
|
379
385
|
"record.feature.catalog.number.total.attribute": "",
|
|
380
386
|
"record.feature.catalog.number.total.object": "",
|
|
@@ -384,6 +390,16 @@
|
|
|
384
390
|
"record.kind.service": "",
|
|
385
391
|
"record.metadata.about": "",
|
|
386
392
|
"record.metadata.api": "",
|
|
393
|
+
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
394
|
+
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
395
|
+
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
396
|
+
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
397
|
+
"record.metadata.api.accessServiceProtocol.other": "",
|
|
398
|
+
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
399
|
+
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
400
|
+
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
401
|
+
"record.metadata.api.accessServiceProtocol.wmts": "",
|
|
402
|
+
"record.metadata.api.accessServiceProtocol.wps": "",
|
|
387
403
|
"record.metadata.api.form.closeButton": "",
|
|
388
404
|
"record.metadata.api.form.closeForm": "",
|
|
389
405
|
"record.metadata.api.form.create": "",
|
|
@@ -580,6 +596,7 @@
|
|
|
580
596
|
"service.metadata.filter.noLayers": "",
|
|
581
597
|
"service.metadata.other": "",
|
|
582
598
|
"service.metadata.question": "",
|
|
599
|
+
"service.metadata.reuse": "",
|
|
583
600
|
"service.metadata.search": "",
|
|
584
601
|
"service.metadata.search.clear": "",
|
|
585
602
|
"service.metadata.spatialExtent": "",
|
package/translations/fr.json
CHANGED
|
@@ -86,7 +86,9 @@
|
|
|
86
86
|
"domain.record.status.completed": "Finalisé",
|
|
87
87
|
"domain.record.status.deprecated": "Obsolète",
|
|
88
88
|
"domain.record.status.ongoing": "Mise à jour continue",
|
|
89
|
+
"domain.record.status.planned": "Planifié",
|
|
89
90
|
"domain.record.status.removed": "Supprimé",
|
|
91
|
+
"domain.record.status.required": "Obligatoire",
|
|
90
92
|
"domain.record.status.under_development": "En cours de création",
|
|
91
93
|
"domain.record.updateFrequency.annually": "Les données sont mises à jour chaque année",
|
|
92
94
|
"domain.record.updateFrequency.asNeeded": "Les données sont mises à jour selon les besoins",
|
|
@@ -99,7 +101,7 @@
|
|
|
99
101
|
"domain.record.updateFrequency.irregular": "Les données sont mises à jour à intervalles irréguliers",
|
|
100
102
|
"domain.record.updateFrequency.month": "{count, plural, =0{0 fois} one{Une fois} other{{count} fois}} par mois",
|
|
101
103
|
"domain.record.updateFrequency.monthly": "Les données sont mises à jour chaque mois",
|
|
102
|
-
"domain.record.updateFrequency.notPlanned": "
|
|
104
|
+
"domain.record.updateFrequency.notPlanned": "La mise à jour des données n’est pas planifiée",
|
|
103
105
|
"domain.record.updateFrequency.periodic": "Les données sont mises à jour à intervalles réguliers",
|
|
104
106
|
"domain.record.updateFrequency.quarterly": "Les données sont mises à jour tous les trois mois",
|
|
105
107
|
"domain.record.updateFrequency.semimonthly": "Les données sont mises à jour deux fois par mois",
|
|
@@ -142,6 +144,7 @@
|
|
|
142
144
|
"editor.record.form.draft.updateAlert": "Depuis la création de ce brouillon, ce jeu de données a été modifié le { date } par { user }. Publier votre version peut supprimer ses modifications. Pour éviter cela, vous pouvez annuler vos changements, ou publier votre version en connaissance de cause.",
|
|
143
145
|
"editor.record.form.field.abstract": "Description",
|
|
144
146
|
"editor.record.form.field.constraintsShortcuts": "",
|
|
147
|
+
"editor.record.form.field.contacts": "Point de contact - Email",
|
|
145
148
|
"editor.record.form.field.contacts.noContact": "Veuillez renseigner au moins un point de contact.",
|
|
146
149
|
"editor.record.form.field.contacts.placeholder": "Choisissez un contact",
|
|
147
150
|
"editor.record.form.field.contactsForResource.noContact": "Veuillez renseigner au moins un point de contact responsable de la donnée.",
|
|
@@ -166,6 +169,7 @@
|
|
|
166
169
|
"editor.record.form.field.onlineResource.toggle.dataset": "Lier un fichier",
|
|
167
170
|
"editor.record.form.field.onlineResource.toggle.service": "Lier un service",
|
|
168
171
|
"editor.record.form.field.onlineResources": "Distribution",
|
|
172
|
+
"editor.record.form.field.organisation": "Point de contact - Organisation",
|
|
169
173
|
"editor.record.form.field.otherConstraints": "Contrainte générale",
|
|
170
174
|
"editor.record.form.field.overviews": "Aperçu",
|
|
171
175
|
"editor.record.form.field.recordUpdated": "Date de mise à jour",
|
|
@@ -177,6 +181,7 @@
|
|
|
177
181
|
"editor.record.form.field.temporalExtents": "Étendue temporelle",
|
|
178
182
|
"editor.record.form.field.title": "Titre",
|
|
179
183
|
"editor.record.form.field.title.placeholder": "Saisir un titre",
|
|
184
|
+
"editor.record.form.field.topics": "Thèmes",
|
|
180
185
|
"editor.record.form.field.uniqueIdentifier": "Identifiant unique",
|
|
181
186
|
"editor.record.form.field.updateFrequency": "Fréquence de mise à jour",
|
|
182
187
|
"editor.record.form.keywords.place.placeholder": "Rechercher une localisation par mot-clé",
|
|
@@ -191,6 +196,8 @@
|
|
|
191
196
|
"editor.record.form.license.odc-by": "Open Data Commons ODC-By",
|
|
192
197
|
"editor.record.form.license.pddl": "Open Data Commons PDDL",
|
|
193
198
|
"editor.record.form.license.unknown": "Inconnue ou absente",
|
|
199
|
+
"editor.record.form.metadataQuality.open": "Ouvrir le menu de qualité des métadonnées",
|
|
200
|
+
"editor.record.form.metadataQuality.title": "Complétion",
|
|
194
201
|
"editor.record.form.multilingual.activate": "Activez les langues",
|
|
195
202
|
"editor.record.form.multilingual.default": "Par défaut",
|
|
196
203
|
"editor.record.form.multilingual.enable": "Mode Multilingue",
|
|
@@ -374,7 +381,6 @@
|
|
|
374
381
|
"record.action.rollback": "Restaurer",
|
|
375
382
|
"record.action.switchLang": "Marquer par défaut",
|
|
376
383
|
"record.action.view": "Voir",
|
|
377
|
-
"record.card.metadata.contact": "Contact de la métadonnée ",
|
|
378
384
|
"record.externalViewer.open": "Ouvrir dans le visualiseur externe",
|
|
379
385
|
"record.feature.catalog.number.total.attribute": "Nombre total d'attributs",
|
|
380
386
|
"record.feature.catalog.number.total.object": "Nombre total d'objets",
|
|
@@ -384,6 +390,16 @@
|
|
|
384
390
|
"record.kind.service": "Service",
|
|
385
391
|
"record.metadata.about": "A propos",
|
|
386
392
|
"record.metadata.api": "API",
|
|
393
|
+
"record.metadata.api.accessServiceProtocol.GPFDL": "",
|
|
394
|
+
"record.metadata.api.accessServiceProtocol.esriRest": "",
|
|
395
|
+
"record.metadata.api.accessServiceProtocol.maplibre-style": "",
|
|
396
|
+
"record.metadata.api.accessServiceProtocol.ogcFeatures": "",
|
|
397
|
+
"record.metadata.api.accessServiceProtocol.other": "autre",
|
|
398
|
+
"record.metadata.api.accessServiceProtocol.tms": "",
|
|
399
|
+
"record.metadata.api.accessServiceProtocol.wfs": "",
|
|
400
|
+
"record.metadata.api.accessServiceProtocol.wms": "",
|
|
401
|
+
"record.metadata.api.accessServiceProtocol.wmts": "",
|
|
402
|
+
"record.metadata.api.accessServiceProtocol.wps": "",
|
|
387
403
|
"record.metadata.api.form.closeButton": "Fermer",
|
|
388
404
|
"record.metadata.api.form.closeForm": "Fermer le panneau de personnalisation",
|
|
389
405
|
"record.metadata.api.form.create": "Paramétrer votre requête",
|
|
@@ -580,6 +596,7 @@
|
|
|
580
596
|
"service.metadata.filter.noLayers": "Aucune couche ne correspond à votre recherche",
|
|
581
597
|
"service.metadata.other": "Autres informations",
|
|
582
598
|
"service.metadata.question": "Poser une question",
|
|
599
|
+
"service.metadata.reuse": "Déclarer une réutilisation",
|
|
583
600
|
"service.metadata.search": "Rechercher dans la liste des couches",
|
|
584
601
|
"service.metadata.search.clear": "Effacer la recherche des couches",
|
|
585
602
|
"service.metadata.spatialExtent": "Etendue spatiale",
|