geonetwork-ui 2.2.0-dev.886aae61 → 2.2.0-dev.8cce3b0e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +77 -52
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +5 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +16 -11
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +23 -16
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +21 -18
- package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
- package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +5 -3
- package/esm2022/libs/feature/map/src/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
- package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +23 -3
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -3
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +11 -1
- package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +60 -29
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +29 -20
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
- package/esm2022/libs/feature/search/src/index.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/index.mjs +3 -1
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +35 -17
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +2 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +7 -3
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +12 -5
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +12 -7
- package/esm2022/libs/ui/layout/src/index.mjs +3 -1
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +2 -2
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
- package/esm2022/libs/ui/search/src/index.mjs +1 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
- package/esm2022/libs/util/i18n/src/index.mjs +1 -2
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/translations/de.json +106 -93
- package/esm2022/translations/en.json +38 -25
- package/esm2022/translations/es.json +17 -4
- package/esm2022/translations/fr.json +22 -9
- package/esm2022/translations/it.json +29 -16
- package/esm2022/translations/nl.json +17 -4
- package/esm2022/translations/pt.json +17 -4
- package/fesm2022/geonetwork-ui.mjs +1295 -808
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +5 -4
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -2
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +15 -15
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
- package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
- package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -0
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -12
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
- package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -11
- 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 +1 -3
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +3 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts +2 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +7 -2
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
- 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 +3 -2
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -39
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +2 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
- package/libs/ui/search/src/index.d.ts +0 -1
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +0 -1
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +4 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -6
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -3
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +22 -4
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +112 -65
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +4 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +19 -12
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +62 -43
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +91 -59
- package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
- package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
- package/src/libs/common/domain/src/lib/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -18
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
- package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +6 -2
- package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +2 -1
- package/src/libs/feature/map/src/index.ts +1 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
- package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +12 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
- package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +6 -2
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +16 -0
- package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +85 -50
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +18 -3
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
- package/src/libs/feature/search/src/index.ts +3 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +12 -4
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
- package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
- package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
- package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
- package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
- package/src/libs/ui/elements/src/index.ts +2 -0
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +54 -54
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +2 -2
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +101 -45
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +31 -7
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +1 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +5 -1
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.css +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +5 -2
- package/src/libs/ui/layout/src/index.ts +2 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
- package/src/libs/ui/search/src/index.ts +0 -1
- package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/translations/de.json +106 -93
- package/translations/en.json +38 -25
- package/translations/es.json +17 -4
- package/translations/fr.json +22 -9
- package/translations/it.json +29 -16
- package/translations/nl.json +17 -4
- package/translations/pt.json +17 -4
- package/translations/sk.json +17 -4
- package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
- package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
- package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
- package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
- package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
- package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
- package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
- package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
- package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
- package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
- package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
- /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
- /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
|
@@ -59,14 +59,16 @@ Malgré l'attention portée à la création de ces données, il est rappelé que
|
|
|
59
59
|
],
|
|
60
60
|
lineage: `Document d’urbanisme numérisé conformément aux prescriptions nationales du CNIG par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.
|
|
61
61
|
Ce lot de données produit en 2019, a été numérisé à partir du PCI Vecteur de 2019 et contrôlé par le Service d'Information Géographique de l'Agglomération de la Région de Compiègne.`,
|
|
62
|
-
accessConstraints: [],
|
|
63
|
-
useLimitations: ["Aucune condition ne s'applique", 'Licence Ouverte 2.0'],
|
|
64
62
|
licenses: [
|
|
65
|
-
// this does not make sense but there's no way to infer anything else from the metadata
|
|
66
63
|
{
|
|
67
64
|
text: "En dépit des efforts et diligences mis en œuvre pour en vérifier la fiabilité, le fournisseur n’est pas en mesure de garantir l’exactitude, la mise à jour, l’intégrité, l’exhaustivité des données et en particulier que les données sont exemptes d'erreurs, notamment de localisation, d’identification ou d’actualisation ou d’imprécisions. Les données ne sont pas fournies en vue d'une utilisation particulière et aucune garantie quant à leur aptitude à un usage particulier n'est apportée par le fournisseur. En conséquence, les utilisateurs utilisent les données sous leur responsabilité pleine et entière, à leurs risques et périls, sans recours possible contre le fournisseur dont la responsabilité ne saurait être engagée du fait d’un dommage résultant directement ou indirectement de l’utilisation de ces données. En particulier, il appartient aux utilisateurs d’apprécier, sous leur seule responsabilité : – l'opportunité d'utiliser les données ; – la compatibilité des fichiers avec leurs systèmes informatiques ; – l’adéquation des données à leurs besoins ; – qu’ils disposent de la compétence suffisante pour utiliser les données ; – l’opportunité d’utiliser la documentation ou les outils d’analyse fournis ou préconisés, en relation avec l’utilisation des données, le cas échéant. Le fournisseur n’est en aucune façon responsable des éléments extérieurs aux données et notamment des outils d’analyse, matériels, logiciels, réseaux..., utilisés pour consulter et/ou traiter les données, même s’il a préconisé ces éléments. L’utilisateur veille à vérifier que l’actualité des informations mises à disposition est compatible avec l’usage qu’il en fait.",
|
|
68
65
|
},
|
|
66
|
+
{ text: "Aucune condition ne s'applique" },
|
|
67
|
+
{ text: 'Licence Ouverte 2.0' },
|
|
69
68
|
],
|
|
69
|
+
legalConstraints: [],
|
|
70
|
+
securityConstraints: [],
|
|
71
|
+
otherConstraints: [],
|
|
70
72
|
// data quality?
|
|
71
73
|
spatialExtents: [],
|
|
72
74
|
temporalExtents: [],
|
|
@@ -138,13 +138,30 @@ export const GEOCAT_CH_DATASET_RECORD: DatasetRecord = {
|
|
|
138
138
|
],
|
|
139
139
|
lineage:
|
|
140
140
|
'Digitalisiert nach den administrativen Einheiten der Schweiz, die im Anhang des Übereinkommens erscheinen.',
|
|
141
|
-
accessConstraints: [],
|
|
142
|
-
useLimitations: [],
|
|
143
141
|
licenses: [
|
|
144
142
|
{
|
|
145
143
|
text: "Licence passée entre l'Office fédéral de l'environnement (OFEV), et le canton de Fribourg, représenté par la Coordination SIT (SITel)",
|
|
146
144
|
},
|
|
147
145
|
],
|
|
146
|
+
legalConstraints: [
|
|
147
|
+
{
|
|
148
|
+
text: `1. Nutzungsbestimmung
|
|
149
|
+
|
|
150
|
+
Diese Geodaten unterliegen folgenden Nutzungsbeschränkungen:
|
|
151
|
+
|
|
152
|
+
- Sie dürfen nicht vervielfältigt, verbreitet und/oder weiter zugänglich gemacht werden.
|
|
153
|
+
|
|
154
|
+
- Sie dürfen nicht kommerziell genutzt werden.
|
|
155
|
+
|
|
156
|
+
- Sie dürfen ausschliesslich zu vorgegebenen Zwecken genutzt werden.
|
|
157
|
+
|
|
158
|
+
- Sie dürfen ausschliesslich zu dem unter 4. beschriebenen Zweck genutzt werden.
|
|
159
|
+
|
|
160
|
+
Die Quelle ist zu bezeichnen: „Quelle: Stadt Zürich“.`,
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
securityConstraints: [],
|
|
164
|
+
otherConstraints: [],
|
|
148
165
|
// data quality?
|
|
149
166
|
spatialExtents: [],
|
|
150
167
|
temporalExtents: [],
|
|
@@ -216,7 +233,8 @@ export const GEOCAT_CH_SERVICE_RECORD: ServiceRecord = {
|
|
|
216
233
|
'https://services.geo.sg.ch/wss/service/SG00170_WMS/guest?request=GetCapabilities&service=WMS',
|
|
217
234
|
},
|
|
218
235
|
],
|
|
219
|
-
accessConstraints: [],
|
|
220
|
-
useLimitations: [],
|
|
221
236
|
licenses: [],
|
|
237
|
+
legalConstraints: [],
|
|
238
|
+
securityConstraints: [],
|
|
239
|
+
otherConstraints: [],
|
|
222
240
|
}
|
|
@@ -41,6 +41,9 @@ export const toDate = (field) => new Date(field)
|
|
|
41
41
|
export const getFirstValue = (field) =>
|
|
42
42
|
Array.isArray(field) ? field[0] : field
|
|
43
43
|
|
|
44
|
+
export const getArrayItem = (field, index) =>
|
|
45
|
+
Array.isArray(field) && field[index] !== undefined ? field[index] : null
|
|
46
|
+
|
|
44
47
|
export const getAsArray = (field) =>
|
|
45
48
|
Array.isArray(field) ? field : field !== null ? [field] : []
|
|
46
49
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
getArrayItem,
|
|
2
3
|
getAsArray,
|
|
3
4
|
getAsUrl,
|
|
4
5
|
getFirstValue,
|
|
@@ -16,12 +17,13 @@ import { Injectable } from '@angular/core'
|
|
|
16
17
|
import { getStatusFromStatusCode } from '../iso19139/codelists/status.mapper'
|
|
17
18
|
import { getUpdateFrequencyFromFrequencyCode } from '../iso19139/codelists/update-frequency.mapper'
|
|
18
19
|
import {
|
|
19
|
-
AccessConstraintType,
|
|
20
20
|
CatalogRecord,
|
|
21
|
+
Constraint,
|
|
21
22
|
DatasetDistribution,
|
|
22
23
|
DatasetDistributionType,
|
|
23
24
|
DatasetDownloadDistribution,
|
|
24
25
|
DatasetServiceDistribution,
|
|
26
|
+
DatasetSpatialExtent,
|
|
25
27
|
OnlineLinkResource,
|
|
26
28
|
} from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
27
29
|
import { matchProtocol } from '../common/distribution.mapper'
|
|
@@ -183,37 +185,41 @@ export class Gn4FieldMapper {
|
|
|
183
185
|
],
|
|
184
186
|
}),
|
|
185
187
|
MD_ConstraintsUseLimitationObject: (output, source) =>
|
|
186
|
-
this.constraintField(
|
|
188
|
+
this.constraintField(
|
|
189
|
+
'other',
|
|
190
|
+
output,
|
|
191
|
+
getAsArray(selectField(source, 'MD_ConstraintsUseLimitationObject'))
|
|
192
|
+
),
|
|
187
193
|
MD_LegalConstraintsUseLimitationObject: (output, source) =>
|
|
188
194
|
this.constraintField(
|
|
189
|
-
'
|
|
195
|
+
'legal',
|
|
190
196
|
output,
|
|
191
|
-
|
|
197
|
+
getAsArray(
|
|
198
|
+
selectField(source, 'MD_LegalConstraintsUseLimitationObject')
|
|
199
|
+
)
|
|
192
200
|
),
|
|
193
201
|
MD_LegalConstraintsOtherConstraintsObject: (output, source) =>
|
|
194
202
|
this.constraintField(
|
|
195
|
-
'
|
|
203
|
+
'legal',
|
|
196
204
|
output,
|
|
197
|
-
|
|
205
|
+
getAsArray(
|
|
206
|
+
selectField(source, 'MD_LegalConstraintsOtherConstraintsObject')
|
|
207
|
+
)
|
|
198
208
|
),
|
|
199
209
|
MD_SecurityConstraintsUseLimitationObject: (output, source) =>
|
|
200
210
|
this.constraintField(
|
|
201
|
-
'
|
|
211
|
+
'security',
|
|
202
212
|
output,
|
|
203
|
-
|
|
213
|
+
getAsArray(
|
|
214
|
+
selectField(source, 'MD_SecurityConstraintsUseLimitationObject')
|
|
215
|
+
)
|
|
216
|
+
),
|
|
217
|
+
licenseObject: (output, source) =>
|
|
218
|
+
this.constraintField(
|
|
219
|
+
'license',
|
|
220
|
+
output,
|
|
221
|
+
getAsArray(selectField(source, 'licenseObject'))
|
|
204
222
|
),
|
|
205
|
-
licenseObject: (output, source) => ({
|
|
206
|
-
...output,
|
|
207
|
-
licenses: getAsArray(
|
|
208
|
-
selectField<SourceWithUnknownProps[]>(source, 'licenseObject')
|
|
209
|
-
).map((license) => {
|
|
210
|
-
const link = getAsUrl(selectField(license, 'link'))
|
|
211
|
-
return {
|
|
212
|
-
text: selectTranslatedValue<string>(license, this.lang3),
|
|
213
|
-
...(link ? { link } : {}),
|
|
214
|
-
}
|
|
215
|
-
}),
|
|
216
|
-
}),
|
|
217
223
|
lineageObject: (output, source) => ({
|
|
218
224
|
...output,
|
|
219
225
|
lineage: selectTranslatedField(source, 'lineageObject', this.lang3),
|
|
@@ -258,57 +264,98 @@ export class Gn4FieldMapper {
|
|
|
258
264
|
kind,
|
|
259
265
|
}
|
|
260
266
|
},
|
|
267
|
+
geom: (output, source) => {
|
|
268
|
+
const geoms = getAsArray(selectField(source, 'geom'))
|
|
269
|
+
const shapes = getAsArray(selectField(source, 'shape'))
|
|
270
|
+
const extentDescriptions = getAsArray(
|
|
271
|
+
selectField(source, 'extentDescriptionObject')
|
|
272
|
+
)
|
|
273
|
+
const spatialExtents = getAsArray(selectField(source, 'spatialExtents'))
|
|
274
|
+
return {
|
|
275
|
+
...output,
|
|
276
|
+
spatialExtents: [
|
|
277
|
+
...spatialExtents,
|
|
278
|
+
...geoms.map((geom, index) => {
|
|
279
|
+
const description = selectTranslatedValue(
|
|
280
|
+
getArrayItem(extentDescriptions, index),
|
|
281
|
+
this.lang3
|
|
282
|
+
)
|
|
283
|
+
const geometry = shapes[index] ?? geom
|
|
284
|
+
return {
|
|
285
|
+
...(description !== null ? { description } : null),
|
|
286
|
+
geometry,
|
|
287
|
+
} as DatasetSpatialExtent
|
|
288
|
+
}),
|
|
289
|
+
],
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
resourceTemporalDateRange: (output, source) => {
|
|
293
|
+
const ranges = getAsArray(
|
|
294
|
+
selectField(source, 'resourceTemporalDateRange')
|
|
295
|
+
)
|
|
296
|
+
return {
|
|
297
|
+
...output,
|
|
298
|
+
temporalExtents: ranges.map((range) => {
|
|
299
|
+
const start = selectField(range, 'gte')
|
|
300
|
+
const end = selectField(range, 'lte')
|
|
301
|
+
return {
|
|
302
|
+
...(start !== null ? { start: toDate(start) } : null),
|
|
303
|
+
...(end !== null ? { end: toDate(end) } : null),
|
|
304
|
+
}
|
|
305
|
+
}),
|
|
306
|
+
}
|
|
307
|
+
},
|
|
261
308
|
}
|
|
262
309
|
|
|
263
310
|
private genericField = (output) => output
|
|
264
311
|
|
|
265
|
-
private constraintField = (
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
312
|
+
private constraintField = (
|
|
313
|
+
type: 'license' | 'legal' | 'security' | 'other',
|
|
314
|
+
output: Partial<CatalogRecord>,
|
|
315
|
+
constraintArray: SourceWithUnknownProps[]
|
|
316
|
+
) => {
|
|
317
|
+
let outputField: string
|
|
318
|
+
switch (type) {
|
|
319
|
+
case 'license':
|
|
320
|
+
outputField = 'licenses'
|
|
321
|
+
break
|
|
322
|
+
case 'legal':
|
|
323
|
+
outputField = 'legalConstraints'
|
|
324
|
+
break
|
|
325
|
+
case 'security':
|
|
326
|
+
outputField = 'securityConstraints'
|
|
327
|
+
break
|
|
328
|
+
case 'other':
|
|
329
|
+
outputField = 'otherConstraints'
|
|
330
|
+
break
|
|
331
|
+
}
|
|
332
|
+
const outputArray: Constraint[] =
|
|
333
|
+
outputField in output ? output[outputField] : []
|
|
334
|
+
outputArray.push(
|
|
335
|
+
...constraintArray.map((item) => {
|
|
336
|
+
const text = selectTranslatedValue(item, this.lang3) as string
|
|
337
|
+
const url = getAsUrl(selectField(item, 'link'))
|
|
338
|
+
return {
|
|
339
|
+
text,
|
|
340
|
+
...(url ? { url } : {}),
|
|
288
341
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
case 'MD_LegalConstraintsUseLimitationObject':
|
|
305
|
-
return 'legal'
|
|
306
|
-
case 'MD_SecurityConstraintsUseLimitationObject':
|
|
307
|
-
return 'security'
|
|
308
|
-
case 'MD_ConstraintsUseLimitationObject':
|
|
309
|
-
default:
|
|
310
|
-
return 'other'
|
|
342
|
+
})
|
|
343
|
+
)
|
|
344
|
+
const result = {
|
|
345
|
+
...output,
|
|
346
|
+
[outputField]: outputArray,
|
|
347
|
+
}
|
|
348
|
+
// avoid legal constraints being duplicates of licenses
|
|
349
|
+
if (
|
|
350
|
+
'legalConstraints' in result &&
|
|
351
|
+
(type === 'legal' || type === 'license')
|
|
352
|
+
) {
|
|
353
|
+
result.legalConstraints = result.legalConstraints.filter(
|
|
354
|
+
(constraint) =>
|
|
355
|
+
!output.licenses?.some((license) => license.text === constraint.text)
|
|
356
|
+
)
|
|
311
357
|
}
|
|
358
|
+
return result
|
|
312
359
|
}
|
|
313
360
|
|
|
314
361
|
getMappingFn(fieldName: string) {
|
|
@@ -26,14 +26,16 @@ export class Gn4MetadataMapper extends MetadataBaseMapper<Gn4Record> {
|
|
|
26
26
|
recordUpdated: null,
|
|
27
27
|
ownerOrganization: null,
|
|
28
28
|
licenses: [],
|
|
29
|
+
legalConstraints: [],
|
|
30
|
+
securityConstraints: [],
|
|
31
|
+
otherConstraints: [],
|
|
29
32
|
contacts: [],
|
|
30
33
|
contactsForResource: [],
|
|
31
|
-
accessConstraints: [],
|
|
32
34
|
keywords: [],
|
|
33
35
|
themes: [],
|
|
34
|
-
useLimitations: [],
|
|
35
36
|
spatialExtents: [],
|
|
36
37
|
temporalExtents: [],
|
|
38
|
+
overviews: [],
|
|
37
39
|
}
|
|
38
40
|
const record: CatalogRecord = Object.keys(_source).reduce(
|
|
39
41
|
(prev, fieldName) =>
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
} from '../xml-utils'
|
|
13
13
|
import {
|
|
14
14
|
writeAbstract,
|
|
15
|
-
writeAccessConstraints,
|
|
16
15
|
writeContacts,
|
|
17
16
|
writeDatasetCreated,
|
|
18
17
|
writeDatasetUpdated,
|
|
@@ -20,22 +19,23 @@ import {
|
|
|
20
19
|
writeGraphicOverviews,
|
|
21
20
|
writeKeywords,
|
|
22
21
|
writeKind,
|
|
22
|
+
writeLegalConstraints,
|
|
23
23
|
writeLicenses,
|
|
24
24
|
writeLineage,
|
|
25
25
|
writeOnlineResources,
|
|
26
|
+
writeOtherConstraints,
|
|
26
27
|
writeOwnerOrganization,
|
|
27
28
|
writeRecordUpdated,
|
|
29
|
+
writeSecurityConstraints,
|
|
28
30
|
writeSpatialRepresentation,
|
|
29
31
|
writeStatus,
|
|
30
32
|
writeThemes,
|
|
31
33
|
writeTitle,
|
|
32
34
|
writeUniqueIdentifier,
|
|
33
35
|
writeUpdateFrequency,
|
|
34
|
-
writeUseLimitations,
|
|
35
36
|
} from './write-parts'
|
|
36
37
|
import {
|
|
37
38
|
readAbstract,
|
|
38
|
-
readAccessConstraints,
|
|
39
39
|
readContacts,
|
|
40
40
|
readDatasetCreated,
|
|
41
41
|
readDatasetUpdated,
|
|
@@ -43,12 +43,15 @@ import {
|
|
|
43
43
|
readIsoTopics,
|
|
44
44
|
readKeywords,
|
|
45
45
|
readKind,
|
|
46
|
+
readLegalConstraints,
|
|
46
47
|
readLicenses,
|
|
47
48
|
readLineage,
|
|
48
49
|
readOnlineResources,
|
|
50
|
+
readOtherConstraints,
|
|
49
51
|
readOverviews,
|
|
50
52
|
readOwnerOrganization,
|
|
51
53
|
readRecordUpdated,
|
|
54
|
+
readSecurityConstraints,
|
|
52
55
|
readSpatialExtents,
|
|
53
56
|
readSpatialRepresentation,
|
|
54
57
|
readStatus,
|
|
@@ -57,7 +60,6 @@ import {
|
|
|
57
60
|
readTitle,
|
|
58
61
|
readUniqueIdentifier,
|
|
59
62
|
readUpdateFrequency,
|
|
60
|
-
readUseLimitations,
|
|
61
63
|
} from './read-parts'
|
|
62
64
|
import { isEqual } from '../convert-utils'
|
|
63
65
|
|
|
@@ -75,8 +77,9 @@ export function toModel(xml: string): CatalogRecord {
|
|
|
75
77
|
const recordCreated = recordUpdated
|
|
76
78
|
const keywords = readKeywords(rootEl)
|
|
77
79
|
const themes = readThemes(rootEl)
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
+
const legalConstraints = readLegalConstraints(rootEl)
|
|
81
|
+
const otherConstraints = readOtherConstraints(rootEl)
|
|
82
|
+
const securityConstraints = readSecurityConstraints(rootEl)
|
|
80
83
|
const licenses = readLicenses(rootEl)
|
|
81
84
|
const overviews = readOverviews(rootEl)
|
|
82
85
|
|
|
@@ -107,9 +110,10 @@ export function toModel(xml: string): CatalogRecord {
|
|
|
107
110
|
contactsForResource: [], // FIXME: is that really useful??
|
|
108
111
|
keywords,
|
|
109
112
|
themes,
|
|
110
|
-
accessConstraints,
|
|
111
|
-
useLimitations,
|
|
112
113
|
licenses,
|
|
114
|
+
legalConstraints,
|
|
115
|
+
securityConstraints,
|
|
116
|
+
otherConstraints,
|
|
113
117
|
...(datasetCreated && { datasetCreated }),
|
|
114
118
|
...(datasetUpdated && { datasetUpdated }),
|
|
115
119
|
lineage,
|
|
@@ -133,9 +137,10 @@ export function toModel(xml: string): CatalogRecord {
|
|
|
133
137
|
contacts,
|
|
134
138
|
keywords,
|
|
135
139
|
themes,
|
|
136
|
-
accessConstraints,
|
|
137
|
-
useLimitations,
|
|
138
140
|
licenses,
|
|
141
|
+
legalConstraints,
|
|
142
|
+
securityConstraints,
|
|
143
|
+
otherConstraints,
|
|
139
144
|
overviews,
|
|
140
145
|
onlineResources,
|
|
141
146
|
} as ServiceRecord
|
|
@@ -164,9 +169,11 @@ export function toXml(record: CatalogRecord, originalXml?: string): string {
|
|
|
164
169
|
fieldChanged('contacts') && writeContacts(record, rootEl)
|
|
165
170
|
fieldChanged('keywords') && writeKeywords(record, rootEl)
|
|
166
171
|
fieldChanged('themes') && writeThemes(record, rootEl)
|
|
167
|
-
fieldChanged('
|
|
172
|
+
fieldChanged('legalConstraints') && writeLegalConstraints(record, rootEl)
|
|
173
|
+
fieldChanged('securityConstraints') &&
|
|
174
|
+
writeSecurityConstraints(record, rootEl)
|
|
168
175
|
fieldChanged('licenses') && writeLicenses(record, rootEl)
|
|
169
|
-
fieldChanged('
|
|
176
|
+
fieldChanged('otherConstraints') && writeOtherConstraints(record, rootEl)
|
|
170
177
|
|
|
171
178
|
if (record.kind === 'dataset') {
|
|
172
179
|
writeStatus(record, rootEl)
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
AccessConstraintType,
|
|
2
|
+
Constraint,
|
|
4
3
|
DatasetDistribution,
|
|
5
4
|
DatasetSpatialExtent,
|
|
6
5
|
DatasetTemporalExtent,
|
|
7
6
|
GraphicOverview,
|
|
8
7
|
Individual,
|
|
9
|
-
License,
|
|
10
8
|
Organization,
|
|
11
9
|
RecordKind,
|
|
12
10
|
RecordStatus,
|
|
@@ -183,59 +181,69 @@ function extractStatus(): ChainableFunction<XmlElement, RecordStatus> {
|
|
|
183
181
|
}
|
|
184
182
|
|
|
185
183
|
// from gmd:resourceConstraints
|
|
186
|
-
function
|
|
184
|
+
function extractLegalConstraints(): ChainableFunction<
|
|
187
185
|
XmlElement,
|
|
188
|
-
Array<
|
|
186
|
+
Array<Constraint>
|
|
189
187
|
> {
|
|
190
|
-
|
|
188
|
+
return pipe(
|
|
191
189
|
findChildrenElement('gmd:MD_LegalConstraints', false),
|
|
192
190
|
filterArray(
|
|
193
191
|
pipe(
|
|
194
192
|
findChildrenElement('gmd:MD_RestrictionCode'),
|
|
195
193
|
mapArray(readAttribute('codeListValue')),
|
|
196
|
-
map(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
map((values) => values.indexOf('license') === -1)
|
|
195
|
+
)
|
|
196
|
+
),
|
|
197
|
+
mapArray(
|
|
198
|
+
combine(
|
|
199
|
+
findChildrenElement('gmd:otherConstraints'),
|
|
200
|
+
findChildrenElement('gmd:useLimitation')
|
|
201
201
|
)
|
|
202
202
|
),
|
|
203
|
-
mapArray(findChildrenElement('gmd:otherConstraints')),
|
|
204
203
|
flattenArray(),
|
|
205
|
-
|
|
206
|
-
mapArray((
|
|
204
|
+
flattenArray(),
|
|
205
|
+
mapArray(combine(extractCharacterString(), extractUrl())),
|
|
206
|
+
mapArray(([text, url]) => ({
|
|
207
|
+
...(url && { url }),
|
|
207
208
|
text,
|
|
208
|
-
type: 'other' as AccessConstraintType,
|
|
209
209
|
}))
|
|
210
210
|
)
|
|
211
|
-
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// from gmd:resourceConstraints
|
|
214
|
+
function extractSecurityConstraints(): ChainableFunction<
|
|
215
|
+
XmlElement,
|
|
216
|
+
Array<Constraint>
|
|
217
|
+
> {
|
|
218
|
+
return pipe(
|
|
212
219
|
findNestedElements('gmd:MD_SecurityConstraints', 'gmd:useLimitation'),
|
|
213
|
-
|
|
214
|
-
mapArray((
|
|
220
|
+
flattenArray(),
|
|
221
|
+
mapArray(combine(extractCharacterString(), extractUrl())),
|
|
222
|
+
mapArray(([text, url]) => ({
|
|
223
|
+
...(url && { url }),
|
|
215
224
|
text,
|
|
216
|
-
type: 'security' as AccessConstraintType,
|
|
217
225
|
}))
|
|
218
226
|
)
|
|
219
|
-
return pipe(
|
|
220
|
-
combine(getOtherConstraints, getSecurityConstraints),
|
|
221
|
-
flattenArray()
|
|
222
|
-
)
|
|
223
227
|
}
|
|
224
228
|
|
|
225
229
|
// from gmd:resourceConstraints
|
|
226
|
-
function
|
|
230
|
+
function extractOtherConstraints(): ChainableFunction<
|
|
231
|
+
XmlElement,
|
|
232
|
+
Array<Constraint>
|
|
233
|
+
> {
|
|
227
234
|
return pipe(
|
|
228
|
-
|
|
229
|
-
findNestedElements('gmd:MD_Constraints', 'gmd:useLimitation'),
|
|
230
|
-
findNestedElements('gmd:MD_LegalConstraints', 'gmd:useLimitation')
|
|
231
|
-
),
|
|
235
|
+
findNestedElements('gmd:MD_Constraints', 'gmd:useLimitation'),
|
|
232
236
|
flattenArray(),
|
|
233
|
-
mapArray(extractCharacterString())
|
|
237
|
+
mapArray(combine(extractCharacterString(), extractUrl())),
|
|
238
|
+
mapArray(([text, url]) => ({
|
|
239
|
+
...(url && { url }),
|
|
240
|
+
text,
|
|
241
|
+
}))
|
|
234
242
|
)
|
|
235
243
|
}
|
|
236
244
|
|
|
237
245
|
// from gmd:resourceConstraints
|
|
238
|
-
function extractLicenses(): ChainableFunction<XmlElement, Array<
|
|
246
|
+
function extractLicenses(): ChainableFunction<XmlElement, Array<Constraint>> {
|
|
239
247
|
return pipe(
|
|
240
248
|
findChildrenElement('gmd:MD_LegalConstraints', false),
|
|
241
249
|
filterArray(
|
|
@@ -246,15 +254,18 @@ function extractLicenses(): ChainableFunction<XmlElement, Array<License>> {
|
|
|
246
254
|
)
|
|
247
255
|
),
|
|
248
256
|
mapArray(
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
map(([text, url]) => ({
|
|
253
|
-
...(url && { url }),
|
|
254
|
-
text,
|
|
255
|
-
}))
|
|
257
|
+
combine(
|
|
258
|
+
findChildrenElement('gmd:otherConstraints'),
|
|
259
|
+
findChildrenElement('gmd:useLimitation')
|
|
256
260
|
)
|
|
257
|
-
)
|
|
261
|
+
),
|
|
262
|
+
flattenArray(),
|
|
263
|
+
flattenArray(),
|
|
264
|
+
mapArray(combine(extractCharacterString(), extractUrl())),
|
|
265
|
+
mapArray(([text, url]) => ({
|
|
266
|
+
...(url && { url }),
|
|
267
|
+
text,
|
|
268
|
+
}))
|
|
258
269
|
)
|
|
259
270
|
}
|
|
260
271
|
|
|
@@ -579,24 +590,32 @@ const getConstraints = pipe(
|
|
|
579
590
|
findChildrenElement('gmd:resourceConstraints', false)
|
|
580
591
|
)
|
|
581
592
|
|
|
582
|
-
export function
|
|
593
|
+
export function readLegalConstraints(rootEl: XmlElement): Constraint[] {
|
|
583
594
|
return pipe(
|
|
584
595
|
getConstraints,
|
|
585
|
-
mapArray(
|
|
596
|
+
mapArray(extractLegalConstraints()),
|
|
586
597
|
flattenArray(),
|
|
587
598
|
flattenArray()
|
|
588
599
|
)(rootEl)
|
|
589
600
|
}
|
|
590
601
|
|
|
591
|
-
export function
|
|
602
|
+
export function readSecurityConstraints(rootEl: XmlElement): Constraint[] {
|
|
603
|
+
return pipe(
|
|
604
|
+
getConstraints,
|
|
605
|
+
mapArray(extractSecurityConstraints()),
|
|
606
|
+
flattenArray()
|
|
607
|
+
)(rootEl)
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
export function readOtherConstraints(rootEl: XmlElement): Constraint[] {
|
|
592
611
|
return pipe(
|
|
593
612
|
getConstraints,
|
|
594
|
-
mapArray(
|
|
613
|
+
mapArray(extractOtherConstraints()),
|
|
595
614
|
flattenArray()
|
|
596
615
|
)(rootEl)
|
|
597
616
|
}
|
|
598
617
|
|
|
599
|
-
export function readLicenses(rootEl: XmlElement):
|
|
618
|
+
export function readLicenses(rootEl: XmlElement): Constraint[] {
|
|
600
619
|
return pipe(
|
|
601
620
|
getConstraints,
|
|
602
621
|
mapArray(extractLicenses()),
|