geonetwork-ui 2.4.0-dev.344a92f2 → 2.4.0-dev.3b6b95eb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/index.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/license.mjs +64 -0
- package/esm2022/libs/api/metadata-converter/src/lib/common/url.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +254 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/index.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.mjs +17 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +196 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.mjs +46 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.mjs +74 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.mjs +2 -0
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.mjs +27 -0
- package/esm2022/libs/api/metadata-converter/src/lib/find-converter.mjs +11 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +8 -23
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +27 -37
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +35 -3
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +78 -39
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +34 -26
- package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -4
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
- package/esm2022/libs/feature/dataviz/src/lib/feature-dataviz.module.mjs +10 -7
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +40 -50
- package/esm2022/libs/feature/editor/src/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +95 -0
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +72 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +109 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +38 -60
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +10 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +191 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +5 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +10 -6
- package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +17 -3
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +5 -5
- package/esm2022/libs/feature/map/src/index.mjs +2 -9
- package/esm2022/libs/feature/map/src/lib/+state/map.actions.mjs +4 -7
- package/esm2022/libs/feature/map/src/lib/+state/map.facade.mjs +9 -15
- package/esm2022/libs/feature/map/src/lib/+state/map.reducer.mjs +13 -44
- package/esm2022/libs/feature/map/src/lib/+state/map.selectors.mjs +3 -2
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +15 -15
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +16 -10
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +10 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -7
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -6
- package/esm2022/libs/feature/map/src/lib/constant/index.mjs +1 -2
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +4 -44
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +43 -29
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +17 -8
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +27 -0
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +4 -168
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +21 -17
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +14 -8
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +40 -52
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +11 -6
- package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +7 -7
- package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +1 -6
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/badge/badge.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/search-input/search-input.component.mjs +6 -4
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +5 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +2 -7
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +20 -4
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/sortable-list/sortable-list.component.mjs +3 -3
- package/esm2022/libs/ui/map/src/index.mjs +4 -3
- package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +8 -6
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +137 -0
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-settings.token.mjs +13 -0
- package/esm2022/libs/ui/map/src/lib/map-utils.mjs +37 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +3 -3
- package/esm2022/libs/util/app-config/src/index.mjs +2 -1
- package/esm2022/libs/util/app-config/src/lib/map-layers.mjs +27 -0
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/no-duplicate-file-name.mjs +19 -0
- package/esm2022/translations/de.json +19 -0
- package/esm2022/translations/en.json +51 -32
- package/esm2022/translations/es.json +19 -0
- package/esm2022/translations/fr.json +82 -63
- package/esm2022/translations/it.json +19 -0
- package/esm2022/translations/nl.json +19 -0
- package/esm2022/translations/pt.json +19 -0
- package/fesm2022/geonetwork-ui.mjs +6871 -6029
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +3 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/license.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/common/license.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/common/url.d.ts +7 -0
- package/libs/api/metadata-converter/src/lib/common/url.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts +13 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/index.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts +16 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts +20 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts +9 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts +8 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts +6 -0
- package/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/find-converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -6
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts +58 -0
- package/libs/api/metadata-converter/src/lib/xml-utils.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +12 -7
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -15
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +2 -3
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +2 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts +10 -9
- package/libs/feature/dataviz/src/lib/feature-dataviz.module.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.d.ts +13 -20
- package/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.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/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts +34 -0
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -0
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts +38 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +6 -13
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +44 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +2 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +2 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -8
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/+state/map.actions.d.ts +13 -39
- package/libs/feature/map/src/lib/+state/map.actions.d.ts.map +1 -1
- package/libs/feature/map/src/lib/+state/map.facade.d.ts +9 -10
- package/libs/feature/map/src/lib/+state/map.facade.d.ts.map +1 -1
- package/libs/feature/map/src/lib/+state/map.reducer.d.ts +4 -2
- package/libs/feature/map/src/lib/+state/map.reducer.d.ts.map +1 -1
- package/libs/feature/map/src/lib/+state/map.selectors.d.ts +6 -1
- package/libs/feature/map/src/lib/+state/map.selectors.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts +3 -5
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts +2 -2
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/constant/index.d.ts +0 -1
- package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/feature-map.module.d.ts +12 -18
- 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 +7 -7
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +4 -3
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts +14 -0
- package/libs/feature/map/src/lib/map-state-container/map-state-container.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +0 -30
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +8 -5
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts +13 -11
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +13 -19
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +4 -3
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts +1 -1
- package/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +9 -10
- package/libs/ui/catalog/src/lib/ui-catalog.module.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/record-api-form/record-api-form.component.d.ts +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/search-input/search-input.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/search-input/search-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +25 -26
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts +6 -3
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +1 -1
- package/libs/ui/map/src/index.d.ts +3 -2
- package/libs/ui/map/src/index.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +3 -4
- package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +37 -0
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -0
- package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts +18 -0
- package/libs/ui/map/src/lib/components/map-container/map-settings.token.d.ts.map +1 -0
- package/libs/ui/map/src/lib/map-utils.d.ts +7 -0
- package/libs/ui/map/src/lib/map-utils.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +1 -1
- package/libs/util/app-config/src/index.d.ts +1 -0
- package/libs/util/app-config/src/index.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/map-layers.d.ts +4 -0
- package/libs/util/app-config/src/lib/map-layers.d.ts.map +1 -0
- 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/no-duplicate-file-name.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/no-duplicate-file-name.d.ts.map +1 -0
- package/package.json +5 -3
- package/src/libs/api/metadata-converter/src/index.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/common/license.ts +66 -0
- package/src/libs/api/metadata-converter/src/lib/common/url.ts +15 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +378 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/namespaces.ts +17 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +370 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/graph-utils.ts +95 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/individual-name.ts +20 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/keyword.mapper.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/role.mapper.ts +48 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/serialize-to-xml.ts +97 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +19 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/update-frequency.mapper.ts +67 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/uri.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/write-parts.ts +68 -0
- package/src/libs/api/metadata-converter/src/lib/find-converter.ts +13 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/eu.dcat-ap.records.ts +272 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/opendataswiss.records.ts +110 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/sextant.records.ts +85 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/vlaanderen.dcat-ap.records.ts +73 -0
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/iso19115-3.converter.ts +1 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +7 -35
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +1 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +85 -120
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +37 -2
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +132 -68
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +57 -30
- package/src/libs/common/domain/src/lib/model/record/contact.model.ts +1 -1
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -2
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +10 -0
- package/src/libs/common/fixtures/src/index.ts +3 -0
- package/src/libs/common/fixtures/src/lib/individual.fixtures.ts +61 -0
- package/src/libs/common/fixtures/src/lib/map/index.ts +1 -0
- package/src/libs/common/fixtures/src/lib/map/map-context.fixtures.ts +53 -0
- package/src/libs/common/fixtures/src/lib/user.fixtures.ts +13 -0
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +5 -1
- package/src/libs/feature/dataviz/src/lib/feature-dataviz.module.ts +6 -2
- package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.html +5 -2
- package/src/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.ts +38 -78
- package/src/libs/feature/editor/src/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +11 -4
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.html +47 -0
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +132 -0
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +31 -0
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +82 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.html +40 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +170 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.html +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -8
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +1 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +41 -83
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.html +20 -11
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +9 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +71 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +241 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +4 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +1 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +15 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +7 -3
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +2 -6
- package/src/libs/feature/editor/src/lib/fields.config.ts +18 -2
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +7 -3
- package/src/libs/feature/map/src/index.ts +1 -8
- package/src/libs/feature/map/src/lib/+state/map.actions.ts +10 -25
- package/src/libs/feature/map/src/lib/+state/map.facade.ts +11 -15
- package/src/libs/feature/map/src/lib/+state/map.reducer.ts +16 -53
- package/src/libs/feature/map/src/lib/+state/map.selectors.ts +7 -2
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +12 -15
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +17 -11
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +11 -12
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +12 -10
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +11 -9
- package/src/libs/feature/map/src/lib/constant/index.ts +0 -1
- package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -26
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +38 -20
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +2 -2
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +15 -5
- package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.css +0 -0
- package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.html +4 -0
- package/src/libs/feature/map/src/lib/map-state-container/map-state-container.component.ts +29 -0
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -229
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +27 -18
- package/src/libs/feature/record/src/lib/feature-record.module.ts +11 -3
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +4 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +44 -71
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +4 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +4 -2
- package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +8 -1
- package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +0 -3
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/badge/badge.component.html +1 -2
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/date-range-picker/date-range-picker.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +8 -8
- package/src/libs/ui/inputs/src/lib/search-input/search-input.component.ts +5 -1
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +3 -1
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -3
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +5 -1
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +25 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +2 -2
- package/src/libs/ui/layout/src/lib/sortable-list/sortable-list.component.html +1 -1
- package/src/libs/ui/map/src/index.ts +3 -2
- package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +1 -1
- package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +8 -5
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.css +0 -0
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +203 -0
- package/src/libs/ui/map/src/lib/components/map-container/map-settings.token.ts +23 -0
- package/src/libs/ui/map/src/lib/map-utils.ts +54 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +18 -14
- package/src/libs/util/app-config/src/index.ts +1 -0
- package/src/libs/util/app-config/src/lib/map-layers.ts +31 -0
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/no-duplicate-file-name.ts +23 -0
- package/tailwind.base.css +3 -2
- package/translations/de.json +19 -0
- package/translations/en.json +51 -32
- package/translations/es.json +19 -0
- package/translations/fr.json +82 -63
- package/translations/it.json +19 -0
- package/translations/nl.json +19 -0
- package/translations/pt.json +19 -0
- package/translations/sk.json +19 -0
- package/esm2022/libs/feature/map/src/lib/+state/map.effects.mjs +0 -15
- package/esm2022/libs/feature/map/src/lib/+state/map.models.mjs +0 -2
- package/esm2022/libs/feature/map/src/lib/constant/map-options.mjs +0 -8
- package/esm2022/libs/feature/map/src/lib/constant/style.constant.mjs +0 -17
- package/esm2022/libs/feature/map/src/lib/feature-info/feature-info.service.mjs +0 -38
- package/esm2022/libs/feature/map/src/lib/manager/map-instance.directive.mjs +0 -19
- package/esm2022/libs/feature/map/src/lib/manager/map-manager.service.mjs +0 -19
- package/esm2022/libs/feature/map/src/lib/map-container/map-container.component.mjs +0 -27
- package/esm2022/libs/feature/map/src/lib/map-context/component/map-context.component.mjs +0 -46
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.model.mjs +0 -10
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +0 -289
- package/esm2022/libs/ui/map/src/lib/components/map/map.component.mjs +0 -40
- package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +0 -33
- package/libs/feature/map/src/lib/+state/map.effects.d.ts +0 -9
- package/libs/feature/map/src/lib/+state/map.effects.d.ts.map +0 -1
- package/libs/feature/map/src/lib/+state/map.models.d.ts +0 -9
- package/libs/feature/map/src/lib/+state/map.models.d.ts.map +0 -1
- package/libs/feature/map/src/lib/constant/map-options.d.ts +0 -9
- package/libs/feature/map/src/lib/constant/map-options.d.ts.map +0 -1
- package/libs/feature/map/src/lib/constant/style.constant.d.ts +0 -4
- package/libs/feature/map/src/lib/constant/style.constant.d.ts.map +0 -1
- package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts +0 -16
- package/libs/feature/map/src/lib/feature-info/feature-info.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts +0 -9
- package/libs/feature/map/src/lib/manager/map-instance.directive.d.ts.map +0 -1
- package/libs/feature/map/src/lib/manager/map-manager.service.d.ts +0 -11
- package/libs/feature/map/src/lib/manager/map-manager.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/map-container/map-container.component.d.ts +0 -12
- package/libs/feature/map/src/lib/map-container/map-container.component.d.ts.map +0 -1
- package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts +0 -26
- package/libs/feature/map/src/lib/map-context/component/map-context.component.d.ts.map +0 -1
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts +0 -77
- package/libs/feature/map/src/lib/map-context/map-context.model.d.ts.map +0 -1
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +0 -26
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +0 -1
- package/libs/ui/map/src/lib/components/map/map.component.d.ts +0 -19
- package/libs/ui/map/src/lib/components/map/map.component.d.ts.map +0 -1
- package/libs/ui/map/src/lib/ui-map.module.d.ts +0 -13
- package/libs/ui/map/src/lib/ui-map.module.d.ts.map +0 -1
- package/src/libs/feature/map/src/lib/+state/map.effects.ts +0 -7
- package/src/libs/feature/map/src/lib/+state/map.models.ts +0 -9
- package/src/libs/feature/map/src/lib/constant/map-options.ts +0 -17
- package/src/libs/feature/map/src/lib/feature-info/feature-info.service.ts +0 -42
- package/src/libs/feature/map/src/lib/manager/map-instance.directive.ts +0 -10
- package/src/libs/feature/map/src/lib/manager/map-manager.service.ts +0 -13
- package/src/libs/feature/map/src/lib/map-container/map-container.component.html +0 -1
- package/src/libs/feature/map/src/lib/map-container/map-container.component.ts +0 -26
- package/src/libs/feature/map/src/lib/map-context/component/map-context.component.html +0 -1
- package/src/libs/feature/map/src/lib/map-context/component/map-context.component.ts +0 -57
- package/src/libs/feature/map/src/lib/map-context/map-context.fixtures.ts +0 -55
- package/src/libs/feature/map/src/lib/map-context/map-context.model.ts +0 -95
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +0 -318
- package/src/libs/ui/map/src/lib/components/map/map.component.ts +0 -57
- package/src/libs/ui/map/src/lib/ui-map.module.ts +0 -19
- /package/src/libs/feature/{map/src/lib/map-container/map-container.component.css → editor/src/lib/components/import-record/import-record.component.css} +0 -0
- /package/src/libs/feature/{map/src/lib/map-context/component/map-context.component.css → editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.css} +0 -0
- /package/src/libs/{ui/map/src/lib/components/map/map.component.css → feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.css} +0 -0
- /package/src/libs/ui/map/src/lib/components/{map/map.component.html → map-container/map-container.component.html} +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DatasetRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
2
|
+
|
|
3
|
+
export const VLAANDEREN_DATASET_RECORD: DatasetRecord = {
|
|
4
|
+
uniqueIdentifier: 'f3bd3e9b-cec1-38de-bb16-d063edace486',
|
|
5
|
+
title: 'Fish damage at pump stations',
|
|
6
|
+
abstract: `Fish damage at pump stations is a sampling event dataset published by the Research Institute for Nature and Forest (INBO). It contains 7319 occurrences, recorded during 120 events as well as lengths and weights of the fish that were recorded. Issues with the dataset can be reported at https://github.com/inbo/data-publication/issues
|
|
7
|
+
We have released this dataset to the public domain under a Creative Commons Zero waiver. We would appreciate it if you follow the INBO norms for data use (https://www.inbo.be/en/norms-data-use) when using the data. If you have any questions regarding this dataset, don't hesitate to contact us via the contact information provided in the metadata or via opendata@inbo.be.`,
|
|
8
|
+
contacts: [],
|
|
9
|
+
contactsForResource: [
|
|
10
|
+
{
|
|
11
|
+
firstName: 'David',
|
|
12
|
+
lastName: 'Buysse',
|
|
13
|
+
email: 'david.buysse@inbo.be',
|
|
14
|
+
role: 'point_of_contact',
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
ownerOrganization: {
|
|
18
|
+
name: 'Research Institute for Nature and Forest (INBO)',
|
|
19
|
+
},
|
|
20
|
+
landingPage: new URL('https://ipt.inbo.be/resource?r=visschade-occurrences'),
|
|
21
|
+
onlineResources: [
|
|
22
|
+
{
|
|
23
|
+
description: 'Darwin Core Archive',
|
|
24
|
+
name: 'Darwin Core Archive of Fish damage at pump stations',
|
|
25
|
+
type: 'download',
|
|
26
|
+
url: new URL('https://ipt.inbo.be/archive.do?r=visschade-occurrences'),
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
keywords: [
|
|
30
|
+
{ label: 'fish', type: 'theme' },
|
|
31
|
+
{ label: 'pumping station', type: 'theme' },
|
|
32
|
+
{ label: 'migration', type: 'theme' },
|
|
33
|
+
{ label: 'Samplingevent', type: 'theme' },
|
|
34
|
+
{ label: 'mortality', type: 'theme' },
|
|
35
|
+
],
|
|
36
|
+
kind: 'dataset',
|
|
37
|
+
languages: [],
|
|
38
|
+
legalConstraints: [],
|
|
39
|
+
licenses: [
|
|
40
|
+
{
|
|
41
|
+
text: 'Creative Commons CC-0',
|
|
42
|
+
url: new URL(
|
|
43
|
+
'https://creativecommons.org/publicdomain/zero/1.0/legalcode'
|
|
44
|
+
),
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
otherConstraints: [],
|
|
48
|
+
overviews: [],
|
|
49
|
+
securityConstraints: [],
|
|
50
|
+
spatialExtents: [
|
|
51
|
+
{
|
|
52
|
+
geometry: {
|
|
53
|
+
type: 'Polygon',
|
|
54
|
+
coordinates: [
|
|
55
|
+
[
|
|
56
|
+
[3.768, 51.072],
|
|
57
|
+
[3.768, 51.31],
|
|
58
|
+
[4.202, 51.31],
|
|
59
|
+
[4.202, 51.072],
|
|
60
|
+
[3.768, 51.072],
|
|
61
|
+
],
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
temporalExtents: [],
|
|
67
|
+
topics: ['biodiversity'],
|
|
68
|
+
lineage: '',
|
|
69
|
+
recordUpdated: new Date('2024-09-19T01:15:09.732Z'),
|
|
70
|
+
resourceUpdated: new Date('2021-04-14T11:15+02:00'),
|
|
71
|
+
status: 'completed',
|
|
72
|
+
updateFrequency: 'unknown',
|
|
73
|
+
}
|
|
@@ -22,7 +22,6 @@ import {
|
|
|
22
22
|
writeLandingPage,
|
|
23
23
|
writeLineage,
|
|
24
24
|
writeOnlineResources,
|
|
25
|
-
writeOwnerOrganization,
|
|
26
25
|
writeRecordCreated,
|
|
27
26
|
writeRecordPublished,
|
|
28
27
|
writeRecordUpdated,
|
|
@@ -60,7 +59,7 @@ export class Iso191153Converter extends Iso19139Converter {
|
|
|
60
59
|
this.writers['resourcePublished'] = writeResourcePublished
|
|
61
60
|
this.writers['contacts'] = writeContacts
|
|
62
61
|
this.writers['contactsForResource'] = writeContactsForResource
|
|
63
|
-
this.writers['ownerOrganization'] =
|
|
62
|
+
this.writers['ownerOrganization'] = () => undefined // fixme: find a way to store this value properly
|
|
64
63
|
this.writers['landingPage'] = writeLandingPage
|
|
65
64
|
this.writers['lineage'] = writeLineage
|
|
66
65
|
this.writers['onlineResources'] = writeOnlineResources
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
findNestedElement,
|
|
18
18
|
findNestedElements,
|
|
19
19
|
readAttribute,
|
|
20
|
-
removeAllChildren,
|
|
21
20
|
removeChildren,
|
|
22
21
|
removeChildrenByName,
|
|
23
22
|
setTextContent,
|
|
@@ -125,7 +124,7 @@ export function writeRecordUpdated(record: CatalogRecord, rootEl: XmlElement) {
|
|
|
125
124
|
|
|
126
125
|
export function writeRecordCreated(record: CatalogRecord, rootEl: XmlElement) {
|
|
127
126
|
removeRecordDate('creation')(rootEl)
|
|
128
|
-
if (!
|
|
127
|
+
if (!record.recordCreated) return
|
|
129
128
|
appendRecordDate(record.recordCreated, 'creation')(rootEl)
|
|
130
129
|
}
|
|
131
130
|
|
|
@@ -134,14 +133,14 @@ export function writeRecordPublished(
|
|
|
134
133
|
rootEl: XmlElement
|
|
135
134
|
) {
|
|
136
135
|
removeRecordDate('publication')(rootEl)
|
|
137
|
-
if (!
|
|
136
|
+
if (!record.recordPublished) return
|
|
138
137
|
appendRecordDate(record.recordPublished, 'publication')(rootEl)
|
|
139
138
|
}
|
|
140
139
|
|
|
141
140
|
function removeResourceDate(type: 'revision' | 'creation' | 'publication') {
|
|
142
141
|
return pipe(
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
findOrCreateIdentification(),
|
|
143
|
+
findNestedChildOrCreate('mri:citation', 'cit:CI_Citation'),
|
|
145
144
|
removeChildren(
|
|
146
145
|
pipe(
|
|
147
146
|
findChildrenElement('cit:date', false),
|
|
@@ -191,7 +190,7 @@ export function writeResourceUpdated(
|
|
|
191
190
|
rootEl: XmlElement
|
|
192
191
|
) {
|
|
193
192
|
removeResourceDate('revision')(rootEl)
|
|
194
|
-
if (!
|
|
193
|
+
if (!record.resourceUpdated) return
|
|
195
194
|
appendResourceDate(record.resourceUpdated, 'revision')(rootEl)
|
|
196
195
|
}
|
|
197
196
|
|
|
@@ -200,7 +199,7 @@ export function writeResourceCreated(
|
|
|
200
199
|
rootEl: XmlElement
|
|
201
200
|
) {
|
|
202
201
|
removeResourceDate('creation')(rootEl)
|
|
203
|
-
if (!
|
|
202
|
+
if (!record.resourceCreated) return
|
|
204
203
|
appendResourceDate(record.resourceCreated, 'creation')(rootEl)
|
|
205
204
|
}
|
|
206
205
|
|
|
@@ -209,37 +208,10 @@ export function writeResourcePublished(
|
|
|
209
208
|
rootEl: XmlElement
|
|
210
209
|
) {
|
|
211
210
|
removeResourceDate('publication')(rootEl)
|
|
212
|
-
if (!
|
|
211
|
+
if (!record.resourcePublished) return
|
|
213
212
|
appendResourceDate(record.resourcePublished, 'publication')(rootEl)
|
|
214
213
|
}
|
|
215
214
|
|
|
216
|
-
export function writeOwnerOrganization(
|
|
217
|
-
record: CatalogRecord,
|
|
218
|
-
rootEl: XmlElement
|
|
219
|
-
) {
|
|
220
|
-
// if no contact matches the owner org, create an empty one
|
|
221
|
-
const ownerContact: Individual = record.contacts.find(
|
|
222
|
-
(contact) => contact.organization.name === record.ownerOrganization.name
|
|
223
|
-
)
|
|
224
|
-
pipe(
|
|
225
|
-
findChildOrCreate('mdb:contact'),
|
|
226
|
-
removeAllChildren(),
|
|
227
|
-
appendResponsibleParty(
|
|
228
|
-
ownerContact
|
|
229
|
-
? {
|
|
230
|
-
...ownerContact,
|
|
231
|
-
// owner responsible party is always point of contact
|
|
232
|
-
role: 'point_of_contact',
|
|
233
|
-
}
|
|
234
|
-
: {
|
|
235
|
-
organization: record.ownerOrganization,
|
|
236
|
-
email: 'missing@missing.com',
|
|
237
|
-
role: 'point_of_contact',
|
|
238
|
-
}
|
|
239
|
-
)
|
|
240
|
-
)(rootEl)
|
|
241
|
-
}
|
|
242
|
-
|
|
243
215
|
export function appendResponsibleParty(contact: Individual) {
|
|
244
216
|
const fullName = namePartsToFull(contact.firstName, contact.lastName)
|
|
245
217
|
|
|
@@ -53,7 +53,6 @@ import {
|
|
|
53
53
|
writeLineage,
|
|
54
54
|
writeOnlineResources,
|
|
55
55
|
writeOtherConstraints,
|
|
56
|
-
writeOwnerOrganization,
|
|
57
56
|
writeRecordUpdated,
|
|
58
57
|
writeResourceCreated,
|
|
59
58
|
writeResourcePublished,
|
|
@@ -113,7 +112,7 @@ export class Iso19139Converter extends BaseConverter<string> {
|
|
|
113
112
|
> = {
|
|
114
113
|
uniqueIdentifier: writeUniqueIdentifier,
|
|
115
114
|
kind: writeKind,
|
|
116
|
-
ownerOrganization:
|
|
115
|
+
ownerOrganization: () => undefined, // fixme: find a way to store this value properly
|
|
117
116
|
recordUpdated: writeRecordUpdated,
|
|
118
117
|
recordCreated: () => undefined, // not supported in ISO19139
|
|
119
118
|
recordPublished: () => undefined, // not supported in ISO19139
|
|
@@ -19,9 +19,7 @@ import format from 'date-fns/format'
|
|
|
19
19
|
import { Geometry } from 'geojson'
|
|
20
20
|
import {
|
|
21
21
|
ChainableFunction,
|
|
22
|
-
fallback,
|
|
23
22
|
filterArray,
|
|
24
|
-
getAtIndex,
|
|
25
23
|
map,
|
|
26
24
|
mapArray,
|
|
27
25
|
noop,
|
|
@@ -33,10 +31,10 @@ import {
|
|
|
33
31
|
appendChildren,
|
|
34
32
|
createChild,
|
|
35
33
|
createElement,
|
|
36
|
-
findChildElement,
|
|
37
34
|
findChildOrCreate,
|
|
38
35
|
findChildrenElement,
|
|
39
36
|
findNestedChildOrCreate,
|
|
37
|
+
findNestedElement,
|
|
40
38
|
findNestedElements,
|
|
41
39
|
readAttribute,
|
|
42
40
|
removeAllChildren,
|
|
@@ -84,11 +82,9 @@ export function writeAnchor(
|
|
|
84
82
|
export function writeDateTime(
|
|
85
83
|
date: Date
|
|
86
84
|
): ChainableFunction<XmlElement, XmlElement> {
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
setTextContent(format(date, "yyyy-MM-dd'T'HH:mm:ss"))
|
|
91
|
-
)
|
|
85
|
+
return pipe(
|
|
86
|
+
findChildOrCreate('gco:DateTime'),
|
|
87
|
+
setTextContent(format(date, "yyyy-MM-dd'T'HH:mm:ss"))
|
|
92
88
|
)
|
|
93
89
|
}
|
|
94
90
|
|
|
@@ -242,7 +238,7 @@ export function getISODuration(updateFrequency: UpdateFrequencyCustom): string {
|
|
|
242
238
|
return `P${duration.years}Y${duration.months}M${duration.days}D${hours}`
|
|
243
239
|
}
|
|
244
240
|
|
|
245
|
-
|
|
241
|
+
function appendResponsibleParty(contact: Individual) {
|
|
246
242
|
const fullName = namePartsToFull(contact.firstName, contact.lastName)
|
|
247
243
|
|
|
248
244
|
const createAddress = pipe(
|
|
@@ -278,7 +274,7 @@ export function appendResponsibleParty(contact: Individual) {
|
|
|
278
274
|
)
|
|
279
275
|
: noop,
|
|
280
276
|
appendChildren(createAddress),
|
|
281
|
-
|
|
277
|
+
contact.organization?.website
|
|
282
278
|
? appendChildren(
|
|
283
279
|
pipe(
|
|
284
280
|
createElement('gmd:onlineResource'),
|
|
@@ -308,11 +304,16 @@ export function appendResponsibleParty(contact: Individual) {
|
|
|
308
304
|
)
|
|
309
305
|
)
|
|
310
306
|
: noop,
|
|
307
|
+
|
|
308
|
+
contact.organization?.name
|
|
309
|
+
? appendChildren(
|
|
310
|
+
pipe(
|
|
311
|
+
createElement('gmd:organisationName'),
|
|
312
|
+
writeCharacterString(contact.organization.name)
|
|
313
|
+
)
|
|
314
|
+
)
|
|
315
|
+
: noop,
|
|
311
316
|
appendChildren(
|
|
312
|
-
pipe(
|
|
313
|
-
createElement('gmd:organisationName'),
|
|
314
|
-
writeCharacterString(contact.organization.name)
|
|
315
|
-
),
|
|
316
317
|
createContact,
|
|
317
318
|
pipe(
|
|
318
319
|
createElement('gmd:role'),
|
|
@@ -328,50 +329,6 @@ export function appendResponsibleParty(contact: Individual) {
|
|
|
328
329
|
)
|
|
329
330
|
}
|
|
330
331
|
|
|
331
|
-
export function updateCitationDate(
|
|
332
|
-
date: Date,
|
|
333
|
-
type: 'revision' | 'creation' | 'publication'
|
|
334
|
-
) {
|
|
335
|
-
return pipe(
|
|
336
|
-
findNestedElements('gmd:date', 'gmd:CI_Date'),
|
|
337
|
-
filterArray(
|
|
338
|
-
pipe(
|
|
339
|
-
findChildElement('gmd:CI_DateTypeCode'),
|
|
340
|
-
readAttribute('codeListValue'),
|
|
341
|
-
map((value) => value === type)
|
|
342
|
-
)
|
|
343
|
-
),
|
|
344
|
-
getAtIndex(0),
|
|
345
|
-
findChildElement('gmd:date'),
|
|
346
|
-
removeAllChildren(),
|
|
347
|
-
writeDateTime(date)
|
|
348
|
-
)
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
export function appendCitationDate(
|
|
352
|
-
date: Date,
|
|
353
|
-
type: 'revision' | 'creation' | 'publication'
|
|
354
|
-
) {
|
|
355
|
-
return appendChildren(
|
|
356
|
-
pipe(
|
|
357
|
-
createElement('gmd:date'),
|
|
358
|
-
createChild('gmd:CI_Date'),
|
|
359
|
-
appendChildren(
|
|
360
|
-
pipe(createElement('gmd:date'), writeDateTime(date)),
|
|
361
|
-
pipe(
|
|
362
|
-
createElement('gmd:dateType'),
|
|
363
|
-
createChild('gmd:CI_DateTypeCode'),
|
|
364
|
-
addAttribute(
|
|
365
|
-
'codeList',
|
|
366
|
-
'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode'
|
|
367
|
-
),
|
|
368
|
-
addAttribute('codeListValue', type)
|
|
369
|
-
)
|
|
370
|
-
)
|
|
371
|
-
)
|
|
372
|
-
)
|
|
373
|
-
}
|
|
374
|
-
|
|
375
332
|
export function removeKeywords() {
|
|
376
333
|
return removeChildren(pipe(findNestedElements('gmd:descriptiveKeywords')))
|
|
377
334
|
}
|
|
@@ -745,41 +702,6 @@ export function writeKind(record: CatalogRecord, rootEl: XmlElement) {
|
|
|
745
702
|
)(rootEl)
|
|
746
703
|
}
|
|
747
704
|
|
|
748
|
-
export function writeOwnerOrganization(
|
|
749
|
-
record: CatalogRecord,
|
|
750
|
-
rootEl: XmlElement
|
|
751
|
-
) {
|
|
752
|
-
// if no contact matches the owner org, create an empty one
|
|
753
|
-
const ownerContact: Individual = record.contacts.find(
|
|
754
|
-
(contact) => contact.organization.name === record.ownerOrganization.name
|
|
755
|
-
)
|
|
756
|
-
pipe(
|
|
757
|
-
findChildOrCreate('gmd:contact'),
|
|
758
|
-
removeAllChildren(),
|
|
759
|
-
appendResponsibleParty(
|
|
760
|
-
ownerContact
|
|
761
|
-
? {
|
|
762
|
-
...ownerContact,
|
|
763
|
-
// owner responsible party is always point of contact
|
|
764
|
-
role: 'point_of_contact',
|
|
765
|
-
}
|
|
766
|
-
: {
|
|
767
|
-
organization: record.ownerOrganization,
|
|
768
|
-
email: '',
|
|
769
|
-
role: 'point_of_contact',
|
|
770
|
-
}
|
|
771
|
-
)
|
|
772
|
-
)(rootEl)
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
export function writeRecordUpdated(record: CatalogRecord, rootEl: XmlElement) {
|
|
776
|
-
pipe(
|
|
777
|
-
findChildOrCreate('gmd:dateStamp'),
|
|
778
|
-
removeAllChildren(),
|
|
779
|
-
writeDateTime(record.recordUpdated)
|
|
780
|
-
)(rootEl)
|
|
781
|
-
}
|
|
782
|
-
|
|
783
705
|
export function writeTitle(record: CatalogRecord, rootEl: XmlElement) {
|
|
784
706
|
pipe(
|
|
785
707
|
findOrCreateIdentification(),
|
|
@@ -939,49 +861,92 @@ export function writeUpdateFrequency(
|
|
|
939
861
|
)(rootEl)
|
|
940
862
|
}
|
|
941
863
|
|
|
942
|
-
export function
|
|
943
|
-
record: DatasetRecord,
|
|
944
|
-
rootEl: XmlElement
|
|
945
|
-
) {
|
|
946
|
-
if (!('resourceCreated' in record)) return
|
|
864
|
+
export function writeRecordUpdated(record: CatalogRecord, rootEl: XmlElement) {
|
|
947
865
|
pipe(
|
|
866
|
+
findChildOrCreate('gmd:dateStamp'),
|
|
867
|
+
removeAllChildren(),
|
|
868
|
+
writeDateTime(record.recordUpdated)
|
|
869
|
+
)(rootEl)
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
export function removeResourceDate(
|
|
873
|
+
type: 'revision' | 'creation' | 'publication'
|
|
874
|
+
) {
|
|
875
|
+
return pipe(
|
|
948
876
|
findOrCreateIdentification(),
|
|
949
877
|
findNestedChildOrCreate('gmd:citation', 'gmd:CI_Citation'),
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
878
|
+
removeChildren(
|
|
879
|
+
pipe(
|
|
880
|
+
findNestedElements('gmd:date'),
|
|
881
|
+
filterArray(
|
|
882
|
+
pipe(
|
|
883
|
+
findNestedElement(
|
|
884
|
+
'gmd:CI_Date',
|
|
885
|
+
'gmd:dateType',
|
|
886
|
+
'gmd:CI_DateTypeCode'
|
|
887
|
+
),
|
|
888
|
+
readAttribute('codeListValue'),
|
|
889
|
+
map((value) => value === type)
|
|
890
|
+
)
|
|
891
|
+
)
|
|
892
|
+
)
|
|
953
893
|
)
|
|
954
|
-
)
|
|
894
|
+
)
|
|
955
895
|
}
|
|
956
896
|
|
|
957
|
-
export function
|
|
958
|
-
|
|
959
|
-
|
|
897
|
+
export function appendResourceDate(
|
|
898
|
+
date: Date,
|
|
899
|
+
type: 'revision' | 'creation' | 'publication'
|
|
960
900
|
) {
|
|
961
|
-
|
|
962
|
-
pipe(
|
|
901
|
+
return pipe(
|
|
963
902
|
findOrCreateIdentification(),
|
|
964
903
|
findNestedChildOrCreate('gmd:citation', 'gmd:CI_Citation'),
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
904
|
+
appendChildren(
|
|
905
|
+
pipe(
|
|
906
|
+
createElement('gmd:date'),
|
|
907
|
+
createChild('gmd:CI_Date'),
|
|
908
|
+
appendChildren(
|
|
909
|
+
pipe(createElement('gmd:date'), writeDateTime(date)),
|
|
910
|
+
pipe(
|
|
911
|
+
createElement('gmd:dateType'),
|
|
912
|
+
createChild('gmd:CI_DateTypeCode'),
|
|
913
|
+
addAttribute(
|
|
914
|
+
'codeList',
|
|
915
|
+
'http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#CI_DateTypeCode'
|
|
916
|
+
),
|
|
917
|
+
addAttribute('codeListValue', type)
|
|
918
|
+
)
|
|
919
|
+
)
|
|
920
|
+
)
|
|
968
921
|
)
|
|
969
|
-
)
|
|
922
|
+
)
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
export function writeResourceCreated(
|
|
926
|
+
record: DatasetRecord,
|
|
927
|
+
rootEl: XmlElement
|
|
928
|
+
) {
|
|
929
|
+
removeResourceDate('creation')(rootEl)
|
|
930
|
+
if (!record.resourceCreated) return
|
|
931
|
+
appendResourceDate(record.resourceCreated, 'creation')(rootEl)
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
export function writeResourceUpdated(
|
|
935
|
+
record: DatasetRecord,
|
|
936
|
+
rootEl: XmlElement
|
|
937
|
+
) {
|
|
938
|
+
removeResourceDate('revision')(rootEl)
|
|
939
|
+
if (!record.resourceUpdated) return
|
|
940
|
+
appendResourceDate(record.resourceUpdated, 'revision')(rootEl)
|
|
970
941
|
}
|
|
971
942
|
|
|
972
943
|
export function writeResourcePublished(
|
|
973
944
|
record: DatasetRecord,
|
|
974
945
|
rootEl: XmlElement
|
|
975
946
|
) {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
findNestedChildOrCreate('gmd:citation', 'gmd:CI_Citation'),
|
|
980
|
-
fallback(
|
|
981
|
-
updateCitationDate(record.resourcePublished, 'publication'),
|
|
982
|
-
appendCitationDate(record.resourcePublished, 'publication')
|
|
983
|
-
)
|
|
984
|
-
)(rootEl)
|
|
947
|
+
removeResourceDate('publication')(rootEl)
|
|
948
|
+
if (!record.resourcePublished) return
|
|
949
|
+
appendResourceDate(record.resourcePublished, 'publication')(rootEl)
|
|
985
950
|
}
|
|
986
951
|
|
|
987
952
|
export function writeSpatialRepresentation(
|
|
@@ -36,7 +36,8 @@ export function createDocument(rootEl: XmlElement): XmlDocument {
|
|
|
36
36
|
if (namespace === 'xmlns' || namespace === null) return
|
|
37
37
|
if (rootEl.attributes[`xmlns:${namespace}`]) return
|
|
38
38
|
if (!NAMESPACES[namespace]) {
|
|
39
|
-
|
|
39
|
+
// the namespace is unknown but it might still be declared correctly: ignore it
|
|
40
|
+
return
|
|
40
41
|
}
|
|
41
42
|
rootEl.attributes[`xmlns:${namespace}`] = NAMESPACES[namespace]
|
|
42
43
|
}
|
|
@@ -248,7 +249,7 @@ function extractNamespace(name: string): string | null {
|
|
|
248
249
|
return colon > -1 ? name.substring(0, colon) : null
|
|
249
250
|
}
|
|
250
251
|
|
|
251
|
-
const NAMESPACES = {
|
|
252
|
+
export const NAMESPACES = {
|
|
252
253
|
gmd: 'http://www.isotc211.org/2005/gmd',
|
|
253
254
|
gco: 'http://www.isotc211.org/2005/gco',
|
|
254
255
|
gfc: 'http://www.isotc211.org/2005/gfc',
|
|
@@ -283,6 +284,22 @@ const NAMESPACES = {
|
|
|
283
284
|
cat: 'http://standards.iso.org/iso/19115/-3/cat/1.0',
|
|
284
285
|
lan: 'http://standards.iso.org/iso/19115/-3/lan/1.0',
|
|
285
286
|
mrc: 'http://standards.iso.org/iso/19115/-3/mrc/2.0',
|
|
287
|
+
rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
|
|
288
|
+
rdfs: 'http://www.w3.org/2000/01/rdf-schema#',
|
|
289
|
+
foaf: 'http://xmlns.com/foaf/0.1/',
|
|
290
|
+
xsd: 'http://www.w3.org/2001/XMLSchema#',
|
|
291
|
+
dcat: 'http://www.w3.org/ns/dcat#',
|
|
292
|
+
dct: 'http://purl.org/dc/terms/',
|
|
293
|
+
skos: 'http://www.w3.org/2004/02/skos/core#',
|
|
294
|
+
schema_org: 'http://schema.org/',
|
|
295
|
+
spdx: 'https://spdx.org/rdf/terms/#',
|
|
296
|
+
adms: 'http://www.w3.org/ns/adms#',
|
|
297
|
+
dqv: 'http://www.w3.org/ns/dqv#',
|
|
298
|
+
owl: 'http://www.w3.org/2002/07/owl#',
|
|
299
|
+
vcard: 'http://www.w3.org/2006/vcard/ns#',
|
|
300
|
+
time: 'http://www.w3.org/2006/time#',
|
|
301
|
+
locn: 'http://www.w3.org/ns/locn#',
|
|
302
|
+
mdcat: 'https://data.vlaanderen.be/ns/metadata-dcat#',
|
|
286
303
|
}
|
|
287
304
|
|
|
288
305
|
/**
|
|
@@ -456,3 +473,21 @@ export function renameElements(
|
|
|
456
473
|
doReplace(rootElement)
|
|
457
474
|
return rootElement
|
|
458
475
|
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* This function use the DOMParser to check if the given xmlString is a valid XML file or throw an error
|
|
479
|
+
* (Generated by chatGPT)
|
|
480
|
+
* @param xmlString
|
|
481
|
+
*/
|
|
482
|
+
export function assertValidXml(xmlString: string): Document {
|
|
483
|
+
const parser = new DOMParser()
|
|
484
|
+
const xmlDoc = parser.parseFromString(xmlString, 'application/xml')
|
|
485
|
+
const parserError = xmlDoc.querySelector('parsererror')
|
|
486
|
+
|
|
487
|
+
if (parserError) {
|
|
488
|
+
console.error(parserError)
|
|
489
|
+
throw new Error('File is not a valid XML.')
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
return xmlDoc
|
|
493
|
+
}
|