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
|
@@ -1,36 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AfterViewInit,
|
|
3
2
|
ChangeDetectionStrategy,
|
|
4
3
|
ChangeDetectorRef,
|
|
5
4
|
Component,
|
|
6
|
-
Inject,
|
|
7
5
|
Input,
|
|
8
6
|
OnDestroy,
|
|
9
7
|
OnInit,
|
|
10
8
|
ViewChild,
|
|
11
9
|
} from '@angular/core'
|
|
12
|
-
import {
|
|
13
|
-
FEATURE_MAP_OPTIONS,
|
|
14
|
-
FeatureInfoService,
|
|
15
|
-
MapContextLayerTypeEnum,
|
|
16
|
-
MapContextModel,
|
|
17
|
-
MapManagerService,
|
|
18
|
-
MapOptionsModel,
|
|
19
|
-
} from '../../../../../../libs/feature/map/src'
|
|
20
10
|
import {
|
|
21
11
|
TableComponent,
|
|
22
12
|
TableItemId,
|
|
23
13
|
TableItemModel,
|
|
24
14
|
} from '../../../../../../libs/ui/dataviz/src'
|
|
25
|
-
import type { FeatureCollection } from 'geojson'
|
|
26
|
-
import Map from 'ol/Map'
|
|
27
|
-
import View from 'ol/View'
|
|
28
|
-
import Feature from 'ol/Feature'
|
|
29
|
-
import { Geometry } from 'ol/geom'
|
|
30
|
-
import VectorLayer from 'ol/layer/Vector'
|
|
31
|
-
import VectorSource from 'ol/source/Vector'
|
|
32
|
-
import Style from 'ol/style/Style'
|
|
15
|
+
import type { Feature, FeatureCollection } from 'geojson'
|
|
33
16
|
import { Subscription } from 'rxjs'
|
|
17
|
+
import { MapContext } from '@geospatial-sdk/core'
|
|
18
|
+
import { MapContainerComponent } from '../../../../../../libs/ui/map/src'
|
|
34
19
|
|
|
35
20
|
@Component({
|
|
36
21
|
selector: 'gn-ui-geo-table-view',
|
|
@@ -38,50 +23,26 @@ import { Subscription } from 'rxjs'
|
|
|
38
23
|
styleUrls: ['./geo-table-view.component.css'],
|
|
39
24
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40
25
|
})
|
|
41
|
-
export class GeoTableViewComponent implements OnInit,
|
|
26
|
+
export class GeoTableViewComponent implements OnInit, OnDestroy {
|
|
42
27
|
@Input() data: FeatureCollection = { type: 'FeatureCollection', features: [] }
|
|
43
|
-
@ViewChild(
|
|
44
|
-
|
|
45
|
-
private map: Map
|
|
46
|
-
private view: View
|
|
47
|
-
private vectorLayer: VectorLayer<VectorSource<Feature<Geometry>>>
|
|
48
|
-
private vectorSource: VectorSource<Feature<Geometry>>
|
|
49
|
-
private features: Feature<Geometry>[]
|
|
28
|
+
@ViewChild('table') uiTable: TableComponent
|
|
29
|
+
@ViewChild('mapContainer') mapContainer: MapContainerComponent
|
|
50
30
|
|
|
51
31
|
tableData: TableItemModel[]
|
|
52
|
-
mapContext:
|
|
32
|
+
mapContext: MapContext
|
|
53
33
|
selectionId: TableItemId
|
|
54
|
-
selection: Feature
|
|
34
|
+
selection: Feature
|
|
55
35
|
private subscription = new Subscription()
|
|
56
36
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
) {}
|
|
37
|
+
get features() {
|
|
38
|
+
return this.data.features
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
constructor(private changeRef: ChangeDetectorRef) {}
|
|
63
42
|
|
|
64
43
|
ngOnInit(): void {
|
|
65
44
|
this.tableData = this.geojsonToTableData(this.data)
|
|
66
45
|
this.mapContext = this.initMapContext()
|
|
67
|
-
this.featureInfo.handleFeatureInfo()
|
|
68
|
-
this.subscription.add(
|
|
69
|
-
this.featureInfo.features$.subscribe((features) => {
|
|
70
|
-
this.onMapFeatureSelect(features)
|
|
71
|
-
})
|
|
72
|
-
)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
ngAfterViewInit(): void {
|
|
76
|
-
const map = (this.map = this.manager.map)
|
|
77
|
-
this.view = map.getView()
|
|
78
|
-
this.vectorLayer = this.manager.map.getLayers().item(1) as VectorLayer<
|
|
79
|
-
VectorSource<Feature<Geometry>>
|
|
80
|
-
>
|
|
81
|
-
this.vectorLayer.setStyle(this.styleFn.bind(this))
|
|
82
|
-
this.vectorSource = this.vectorLayer.getSource()
|
|
83
|
-
this.features = this.vectorSource.getFeatures()
|
|
84
|
-
this.view.fit(this.vectorSource.getExtent())
|
|
85
46
|
}
|
|
86
47
|
|
|
87
48
|
onTableSelect(tableEntry: TableItemModel) {
|
|
@@ -93,12 +54,13 @@ export class GeoTableViewComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
93
54
|
}
|
|
94
55
|
}
|
|
95
56
|
|
|
96
|
-
onMapFeatureSelect(features: Feature
|
|
57
|
+
onMapFeatureSelect(features: Feature[]): void {
|
|
97
58
|
this.selection = features?.length > 0 && features[0]
|
|
98
59
|
if (this.selection) {
|
|
99
|
-
|
|
60
|
+
// FIXME: show styling for selection
|
|
61
|
+
this.selectionId = this.selection.id
|
|
100
62
|
this.changeRef.detectChanges()
|
|
101
|
-
this.vectorLayer.changed()
|
|
63
|
+
// this.vectorLayer.changed()
|
|
102
64
|
this.uiTable.scrollToItem(this.selectionId)
|
|
103
65
|
}
|
|
104
66
|
}
|
|
@@ -110,44 +72,42 @@ export class GeoTableViewComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
110
72
|
}))
|
|
111
73
|
}
|
|
112
74
|
|
|
113
|
-
private initMapContext():
|
|
75
|
+
private initMapContext(): MapContext {
|
|
114
76
|
return {
|
|
115
77
|
layers: [
|
|
116
78
|
{
|
|
117
|
-
type:
|
|
79
|
+
type: 'xyz',
|
|
118
80
|
url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
|
119
81
|
},
|
|
120
82
|
{
|
|
121
|
-
type:
|
|
83
|
+
type: 'geojson',
|
|
122
84
|
data: this.data,
|
|
123
85
|
},
|
|
124
86
|
],
|
|
87
|
+
view: {
|
|
88
|
+
center: [0, 0],
|
|
89
|
+
zoom: 2,
|
|
90
|
+
},
|
|
125
91
|
}
|
|
126
92
|
}
|
|
127
93
|
|
|
128
|
-
private animateToFeature(feature: Feature
|
|
129
|
-
this.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
94
|
+
private animateToFeature(feature: Feature): void {
|
|
95
|
+
this.mapContext = {
|
|
96
|
+
...this.mapContext,
|
|
97
|
+
view: {
|
|
98
|
+
geometry: feature.geometry,
|
|
99
|
+
maxZoom: 13,
|
|
100
|
+
},
|
|
101
|
+
}
|
|
102
|
+
// FIXME: animate the view
|
|
103
|
+
// this.view.fit(feature.getGeometry().getExtent(), {
|
|
104
|
+
// duration: 1000,
|
|
105
|
+
// maxZoom: 11,
|
|
106
|
+
// })
|
|
133
107
|
}
|
|
134
108
|
|
|
135
109
|
private getFeatureFromId(id: TableItemId) {
|
|
136
|
-
return this.features.find((feature) => feature.
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
private styleFn(
|
|
140
|
-
feature: Feature<Geometry>,
|
|
141
|
-
resolution: number
|
|
142
|
-
): void | Style | Style[] {
|
|
143
|
-
if (
|
|
144
|
-
this.selectionId !== undefined &&
|
|
145
|
-
this.selectionId === feature.getId()
|
|
146
|
-
) {
|
|
147
|
-
return this.mapOptions.hlStyle(feature, resolution)
|
|
148
|
-
} else {
|
|
149
|
-
return this.mapOptions.defaultStyle(feature, resolution)
|
|
150
|
-
}
|
|
110
|
+
return this.features.find((feature) => feature.id === id)
|
|
151
111
|
}
|
|
152
112
|
|
|
153
113
|
ngOnDestroy(): void {
|
|
@@ -5,6 +5,7 @@ export * from './lib/+state/editor.reducer'
|
|
|
5
5
|
export * from './lib/+state/editor.actions'
|
|
6
6
|
export * from './lib/feature-editor.module'
|
|
7
7
|
export * from './lib/services/editor.service'
|
|
8
|
+
export * from './lib/components/import-record/import-record.component'
|
|
8
9
|
export * from './lib/components/record-form/record-form.component'
|
|
9
10
|
export * from './lib/components/wizard/wizard.component'
|
|
10
11
|
export * from './lib/components/wizard-field/wizard-field.component'
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
selectEditorConfig,
|
|
10
10
|
selectRecord,
|
|
11
11
|
selectRecordAlreadySavedOnce,
|
|
12
|
+
selectRecordSource,
|
|
12
13
|
} from './editor.selectors'
|
|
13
14
|
import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
|
|
14
15
|
|
|
@@ -24,12 +25,13 @@ export class EditorEffects {
|
|
|
24
25
|
ofType(EditorActions.saveRecord),
|
|
25
26
|
withLatestFrom(
|
|
26
27
|
this.store.select(selectRecord),
|
|
28
|
+
this.store.select(selectRecordSource),
|
|
27
29
|
this.store.select(selectEditorConfig),
|
|
28
30
|
this.store.select(selectRecordAlreadySavedOnce)
|
|
29
31
|
),
|
|
30
|
-
switchMap(([, record, fieldsConfig, alreadySavedOnce]) =>
|
|
32
|
+
switchMap(([, record, recordSource, fieldsConfig, alreadySavedOnce]) =>
|
|
31
33
|
this.editorService
|
|
32
|
-
.saveRecord(record, fieldsConfig, !alreadySavedOnce)
|
|
34
|
+
.saveRecord(record, recordSource, fieldsConfig, !alreadySavedOnce)
|
|
33
35
|
.pipe(
|
|
34
36
|
switchMap(([record, recordSource]) =>
|
|
35
37
|
of(
|
|
@@ -64,8 +66,13 @@ export class EditorEffects {
|
|
|
64
66
|
this.actions$.pipe(
|
|
65
67
|
ofType(EditorActions.updateRecordField),
|
|
66
68
|
debounceTime(1000),
|
|
67
|
-
withLatestFrom(
|
|
68
|
-
|
|
69
|
+
withLatestFrom(
|
|
70
|
+
this.store.select(selectRecord),
|
|
71
|
+
this.store.select(selectRecordSource)
|
|
72
|
+
),
|
|
73
|
+
switchMap(([, record, recordSource]) =>
|
|
74
|
+
this.editorService.saveRecordAsDraft(record, recordSource)
|
|
75
|
+
),
|
|
69
76
|
map(() => EditorActions.draftSaveSuccess())
|
|
70
77
|
)
|
|
71
78
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="gn-ui-card">
|
|
2
2
|
<gn-ui-thumbnail
|
|
3
3
|
class="w-[56px] h-[56px] rounded-[4px] overflow-hidden shrink-0"
|
|
4
|
-
[thumbnailUrl]="contact.organization
|
|
4
|
+
[thumbnailUrl]="contact.organization?.logoUrl?.href"
|
|
5
5
|
[fit]="'contain'"
|
|
6
6
|
></gn-ui-thumbnail>
|
|
7
7
|
<div class="flex flex-col w-full overflow-hidden leading-snug">
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<ng-container [ngSwitch]="sectionDisplayed">
|
|
2
|
+
<ng-container *ngSwitchCase="'mainMenu'">
|
|
3
|
+
<div
|
|
4
|
+
data-test="importMenuMainSection"
|
|
5
|
+
class="mt-2 border border-gray-100 p-2 flex items-center bg-white shadow-2xl rounded-2xl"
|
|
6
|
+
>
|
|
7
|
+
<ul class="flex flex-col gap-2 w-full">
|
|
8
|
+
<li *ngFor="let menuItem of importMenuItems">
|
|
9
|
+
<gn-ui-button
|
|
10
|
+
[attr.data-test]="menuItem.dataTest"
|
|
11
|
+
type="light"
|
|
12
|
+
extraClass="flex flex-row items-center gap-2 w-full justify-start"
|
|
13
|
+
(buttonClick)="menuItem.action()"
|
|
14
|
+
[disabled]="menuItem.disabled"
|
|
15
|
+
[title]="
|
|
16
|
+
(menuItem.disabled ? 'editor.temporary.disabled' : '') | translate
|
|
17
|
+
"
|
|
18
|
+
><mat-icon class="material-symbols-outlined">
|
|
19
|
+
{{ menuItem.icon }} </mat-icon
|
|
20
|
+
><span>{{ menuItem.label }}</span></gn-ui-button
|
|
21
|
+
>
|
|
22
|
+
</li>
|
|
23
|
+
</ul>
|
|
24
|
+
</div>
|
|
25
|
+
</ng-container>
|
|
26
|
+
<ng-container *ngSwitchCase="'importExternalFile'">
|
|
27
|
+
<div
|
|
28
|
+
data-test="importMenuImportExternalFileSection"
|
|
29
|
+
class="p-6 flex flex-col gap-2 mt-2 border border-gray-100 bg-white shadow-2xl rounded-2xl"
|
|
30
|
+
>
|
|
31
|
+
<div class="flex flex-row items-center gap-2">
|
|
32
|
+
<gn-ui-button
|
|
33
|
+
data-test="importMenuImportExternalFileSectionBackButton"
|
|
34
|
+
type="light"
|
|
35
|
+
(buttonClick)="displayMainMenu()"
|
|
36
|
+
>
|
|
37
|
+
<mat-icon class="material-symbols-outlined">arrow_back</mat-icon>
|
|
38
|
+
</gn-ui-button>
|
|
39
|
+
<span class="font-bold"> {{ externalImportBackLabel }}</span>
|
|
40
|
+
</div>
|
|
41
|
+
<gn-ui-url-input
|
|
42
|
+
(valueChange)="importRecord($event)"
|
|
43
|
+
[disabled]="isRecordImportInProgress"
|
|
44
|
+
></gn-ui-url-input>
|
|
45
|
+
</div>
|
|
46
|
+
</ng-container>
|
|
47
|
+
</ng-container>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChangeDetectionStrategy,
|
|
3
|
+
ChangeDetectorRef,
|
|
4
|
+
Component,
|
|
5
|
+
EventEmitter,
|
|
6
|
+
Output,
|
|
7
|
+
} from '@angular/core'
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon'
|
|
9
|
+
import { CommonModule } from '@angular/common'
|
|
10
|
+
import { ButtonComponent, UrlInputComponent } from '../../../../../../../libs/ui/inputs/src'
|
|
11
|
+
import { ThumbnailComponent } from '../../../../../../../libs/ui/elements/src'
|
|
12
|
+
import { TranslateModule, TranslateService } from '@ngx-translate/core'
|
|
13
|
+
import { NotificationsService } from '../../../../../../../libs/feature/notifications/src'
|
|
14
|
+
import { RecordsRepositoryInterface } from '../../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
|
|
15
|
+
import { Router } from '@angular/router'
|
|
16
|
+
|
|
17
|
+
interface ImportMenuItems {
|
|
18
|
+
label: string
|
|
19
|
+
icon: string
|
|
20
|
+
action: () => any
|
|
21
|
+
dataTest: string
|
|
22
|
+
disabled?: boolean
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type ImportMenuPage = 'mainMenu' | 'importExternalFile'
|
|
26
|
+
|
|
27
|
+
@Component({
|
|
28
|
+
selector: 'gn-ui-import-record',
|
|
29
|
+
templateUrl: './import-record.component.html',
|
|
30
|
+
styleUrls: ['./import-record.component.css'],
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
standalone: true,
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule,
|
|
35
|
+
MatIconModule,
|
|
36
|
+
ButtonComponent,
|
|
37
|
+
ThumbnailComponent,
|
|
38
|
+
UrlInputComponent,
|
|
39
|
+
TranslateModule,
|
|
40
|
+
],
|
|
41
|
+
})
|
|
42
|
+
export class ImportRecordComponent {
|
|
43
|
+
@Output() closeImportMenu = new EventEmitter<void>()
|
|
44
|
+
|
|
45
|
+
importMenuItems: ImportMenuItems[] = [
|
|
46
|
+
{
|
|
47
|
+
label: this.translateService.instant('dashboard.importRecord.useModel'),
|
|
48
|
+
icon: 'highlight',
|
|
49
|
+
action: () => null,
|
|
50
|
+
dataTest: 'useAModelButton',
|
|
51
|
+
disabled: true,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
label: this.translateService.instant(
|
|
55
|
+
'dashboard.importRecord.importExternal'
|
|
56
|
+
),
|
|
57
|
+
icon: 'cloud_download',
|
|
58
|
+
action: this.displayImportExternal.bind(this),
|
|
59
|
+
dataTest: 'importFromUrlButton',
|
|
60
|
+
},
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
isRecordImportInProgress = false
|
|
64
|
+
|
|
65
|
+
sectionDisplayed: ImportMenuPage = 'mainMenu'
|
|
66
|
+
|
|
67
|
+
externalImportBackLabel = this.translateService.instant(
|
|
68
|
+
'dashboard.importRecord.importExternalLabel'
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
constructor(
|
|
72
|
+
private router: Router,
|
|
73
|
+
private translateService: TranslateService,
|
|
74
|
+
private cdr: ChangeDetectorRef,
|
|
75
|
+
private notificationsService: NotificationsService,
|
|
76
|
+
private recordsRepository: RecordsRepositoryInterface
|
|
77
|
+
) {}
|
|
78
|
+
|
|
79
|
+
displayMainMenu() {
|
|
80
|
+
this.sectionDisplayed = 'mainMenu'
|
|
81
|
+
this.cdr.markForCheck()
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
displayImportExternal() {
|
|
85
|
+
this.sectionDisplayed = 'importExternalFile'
|
|
86
|
+
this.cdr.markForCheck()
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
importRecord(url: string) {
|
|
90
|
+
this.isRecordImportInProgress = true
|
|
91
|
+
|
|
92
|
+
this.recordsRepository.duplicateExternalRecord(url).subscribe({
|
|
93
|
+
next: (recordTempId) => {
|
|
94
|
+
if (recordTempId) {
|
|
95
|
+
this.notificationsService.showNotification(
|
|
96
|
+
{
|
|
97
|
+
type: 'success',
|
|
98
|
+
title: this.translateService.instant(
|
|
99
|
+
'editor.record.importFromExternalFile.success.title'
|
|
100
|
+
),
|
|
101
|
+
text: `${this.translateService.instant(
|
|
102
|
+
'editor.record.importFromExternalFile.success.body'
|
|
103
|
+
)}`,
|
|
104
|
+
},
|
|
105
|
+
2500
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
this.router
|
|
109
|
+
.navigate(['/edit', recordTempId])
|
|
110
|
+
.catch((err) => console.error(err))
|
|
111
|
+
}
|
|
112
|
+
this.closeImportMenu.next()
|
|
113
|
+
},
|
|
114
|
+
error: (error) => {
|
|
115
|
+
this.notificationsService.showNotification(
|
|
116
|
+
{
|
|
117
|
+
type: 'error',
|
|
118
|
+
title: this.translateService.instant(
|
|
119
|
+
'editor.record.importFromExternalFile.failure.title'
|
|
120
|
+
),
|
|
121
|
+
text: `${this.translateService.instant(
|
|
122
|
+
'editor.record.importFromExternalFile.failure.body'
|
|
123
|
+
)} ${error.message ?? ''}`,
|
|
124
|
+
},
|
|
125
|
+
2500
|
|
126
|
+
)
|
|
127
|
+
this.isRecordImportInProgress = false
|
|
128
|
+
this.cdr.markForCheck()
|
|
129
|
+
},
|
|
130
|
+
})
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<div class="flex flex-row justify-between">
|
|
2
|
+
<h3 class="text-[16px] font-bold text-main mb-[12px]" translate>
|
|
3
|
+
editor.record.form.field.onlineResource.edit.protocol
|
|
4
|
+
</h3>
|
|
5
|
+
<span
|
|
6
|
+
*ngIf="protocolHint"
|
|
7
|
+
class="material-symbols-outlined m-2 gn-ui-icon-small"
|
|
8
|
+
[matTooltip]="protocolHint"
|
|
9
|
+
matTooltipPosition="above"
|
|
10
|
+
>
|
|
11
|
+
help
|
|
12
|
+
</span>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="flex flex-row items-center gap-[16px] h-[48px]">
|
|
15
|
+
<mat-radio-group
|
|
16
|
+
aria-labelledby="example-radio-group-label"
|
|
17
|
+
class="flex flex-row gap-[8px]"
|
|
18
|
+
[(ngModel)]="service.accessServiceProtocol"
|
|
19
|
+
>
|
|
20
|
+
<mat-radio-button
|
|
21
|
+
*ngFor="let protocolOption of protocolOptions"
|
|
22
|
+
[value]="protocolOption.value"
|
|
23
|
+
>
|
|
24
|
+
{{ protocolOption.label | translate }}
|
|
25
|
+
</mat-radio-button>
|
|
26
|
+
</mat-radio-group>
|
|
27
|
+
</div>
|
|
28
|
+
<gn-ui-text-input
|
|
29
|
+
[(value)]="service.identifierInService"
|
|
30
|
+
data-cy="identifier-in-service"
|
|
31
|
+
></gn-ui-text-input>
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common'
|
|
2
|
+
import {
|
|
3
|
+
ChangeDetectionStrategy,
|
|
4
|
+
Component,
|
|
5
|
+
Input,
|
|
6
|
+
OnChanges,
|
|
7
|
+
} from '@angular/core'
|
|
8
|
+
import { FormsModule } from '@angular/forms'
|
|
9
|
+
import { MatIconModule } from '@angular/material/icon'
|
|
10
|
+
import { MatRadioModule } from '@angular/material/radio'
|
|
11
|
+
import { MatTooltipModule } from '@angular/material/tooltip'
|
|
12
|
+
import { marker } from '@biesbjerg/ngx-translate-extract-marker'
|
|
13
|
+
import {
|
|
14
|
+
DatasetServiceDistribution,
|
|
15
|
+
ServiceProtocol,
|
|
16
|
+
} from '../../../../../../../libs/common/domain/src/lib/model/record'
|
|
17
|
+
import { TextInputComponent } from '../../../../../../../libs/ui/inputs/src'
|
|
18
|
+
import { TranslateModule } from '@ngx-translate/core'
|
|
19
|
+
|
|
20
|
+
@Component({
|
|
21
|
+
selector: 'gn-ui-online-service-resource-input',
|
|
22
|
+
templateUrl: './online-service-resource-input.component.html',
|
|
23
|
+
styleUrls: ['./online-service-resource-input.component.css'],
|
|
24
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
|
+
standalone: true,
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
MatIconModule,
|
|
29
|
+
MatTooltipModule,
|
|
30
|
+
MatRadioModule,
|
|
31
|
+
FormsModule,
|
|
32
|
+
TextInputComponent,
|
|
33
|
+
TranslateModule,
|
|
34
|
+
],
|
|
35
|
+
})
|
|
36
|
+
export class OnlineServiceResourceInputComponent implements OnChanges {
|
|
37
|
+
@Input() service: Omit<DatasetServiceDistribution, 'url'>
|
|
38
|
+
@Input() protocolHint?: string
|
|
39
|
+
|
|
40
|
+
selectedProtocol: ServiceProtocol
|
|
41
|
+
|
|
42
|
+
protocolOptions: {
|
|
43
|
+
label: string
|
|
44
|
+
value: ServiceProtocol
|
|
45
|
+
}[] = [
|
|
46
|
+
{
|
|
47
|
+
label: 'OGC API',
|
|
48
|
+
value: 'ogcFeatures',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: 'WFS',
|
|
52
|
+
value: 'wfs',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: 'WMS',
|
|
56
|
+
value: 'wms',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: 'WMTS',
|
|
60
|
+
value: 'wmts',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: 'WPS',
|
|
64
|
+
value: 'wps',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: 'ESRI REST',
|
|
68
|
+
value: 'esriRest',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: marker('editor.record.onlineResource.protocol.other'),
|
|
72
|
+
value: 'other',
|
|
73
|
+
},
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
ngOnChanges() {
|
|
77
|
+
this.selectedProtocol =
|
|
78
|
+
this.protocolOptions.find(
|
|
79
|
+
(option) => option.value === this.service.accessServiceProtocol
|
|
80
|
+
)?.value ?? 'other'
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<div class="flex flex-col gap-3">
|
|
2
|
+
<gn-ui-autocomplete
|
|
3
|
+
[placeholder]="'Choose a contact'"
|
|
4
|
+
[action]="autoCompleteAction"
|
|
5
|
+
(itemSelected)="addContact($event)"
|
|
6
|
+
[displayWithFn]="displayWithFn"
|
|
7
|
+
[minCharacterCount]="1"
|
|
8
|
+
[clearOnSelection]="true"
|
|
9
|
+
>
|
|
10
|
+
</gn-ui-autocomplete>
|
|
11
|
+
|
|
12
|
+
<ng-container *ngIf="contacts.length > 0; else noContact">
|
|
13
|
+
<ng-container *ngIf="contacts.length === 1">
|
|
14
|
+
<ng-container *ngFor="let contact of contacts; let index = index">
|
|
15
|
+
<gn-ui-contact-card
|
|
16
|
+
[contact]="contact"
|
|
17
|
+
></gn-ui-contact-card> </ng-container
|
|
18
|
+
></ng-container>
|
|
19
|
+
|
|
20
|
+
<ng-container *ngIf="contacts.length > 1">
|
|
21
|
+
<gn-ui-sortable-list
|
|
22
|
+
[items]="contacts"
|
|
23
|
+
(itemsOrderChange)="handleContactsChanged($event)"
|
|
24
|
+
[elementTemplate]="contactTemplate"
|
|
25
|
+
></gn-ui-sortable-list>
|
|
26
|
+
<ng-template #contactTemplate let-contact>
|
|
27
|
+
<gn-ui-contact-card [contact]="contact"></gn-ui-contact-card>
|
|
28
|
+
</ng-template>
|
|
29
|
+
</ng-container>
|
|
30
|
+
</ng-container>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<ng-template #noContact>
|
|
34
|
+
<div
|
|
35
|
+
class="p-4 border border-primary bg-primary-lightest rounded-lg"
|
|
36
|
+
translate
|
|
37
|
+
>
|
|
38
|
+
editor.record.form.field.contacts.noContact
|
|
39
|
+
</div>
|
|
40
|
+
</ng-template>
|