geonetwork-ui 2.4.0-dev.e8fc61cb → 2.4.0-dev.e97caaf2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -5
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +30 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.mjs +31 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +23 -1
- package/esm2022/libs/api/metadata-converter/src/lib/xml-utils.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +31 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +2 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +12 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +19 -5
- package/esm2022/libs/common/domain/src/lib/model/record/contact.model.mjs +28 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/organization.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/user/user.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/data-access/gn4/src/openapi/api/records.api.service.mjs +2 -6
- package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/index.mjs +2 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +6 -6
- package/esm2022/libs/feature/catalog/src/lib/organization-url.token.mjs +4 -0
- package/esm2022/libs/feature/catalog/src/lib/records/records.service.mjs +4 -6
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +3 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +8 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +10 -2
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +7 -3
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +16 -6
- package/esm2022/libs/feature/editor/src/lib/components/contact-card/contact-card.component.mjs +29 -0
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +78 -0
- package/esm2022/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.mjs +96 -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 +164 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +19 -39
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.mjs +10 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +101 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +44 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +28 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.mjs +10 -6
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.mjs +11 -11
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.mjs +9 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +111 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +49 -52
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +16 -14
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +37 -43
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +1 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +13 -7
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +8 -8
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +1 -1
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +6 -4
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +175 -59
- package/esm2022/libs/feature/editor/src/lib/models/editor-config.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +8 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +6 -6
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +6 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +8 -5
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +6 -7
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +8 -7
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +7 -6
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +7 -26
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +29 -13
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +10 -5
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +42 -23
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +13 -5
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +49 -15
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +8 -12
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +9 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +8 -1
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +46 -7
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +8 -3
- package/esm2022/libs/feature/search/src/lib/state/selectors.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +7 -3
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +5 -5
- package/esm2022/libs/ui/catalog/src/lib/ui-catalog.module.mjs +5 -2
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -8
- package/esm2022/libs/ui/elements/src/index.mjs +2 -2
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +2 -2
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +6 -6
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +5 -11
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +24 -5
- package/esm2022/libs/ui/elements/src/lib/sortable-list/sortable-list.component.mjs +6 -10
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +15 -11
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +19 -5
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +26 -24
- package/esm2022/libs/ui/inputs/src/lib/image-input/image-input.component.mjs +17 -14
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +32 -0
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +6 -21
- package/esm2022/libs/ui/inputs/src/lib/text-input/text-input.component.mjs +6 -17
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +3 -7
- package/esm2022/libs/ui/inputs/src/lib/url-input/url-input.component.mjs +43 -0
- package/esm2022/libs/ui/layout/src/index.mjs +2 -1
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +71 -0
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +1 -1
- package/esm2022/libs/ui/map/src/lib/ui-map.module.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +67 -0
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +28 -8
- package/esm2022/libs/ui/widgets/src/index.mjs +2 -1
- package/esm2022/libs/ui/widgets/src/lib/popover/popover.component.mjs +68 -0
- package/esm2022/translations/de.json +132 -35
- package/esm2022/translations/en.json +106 -9
- package/esm2022/translations/es.json +105 -8
- package/esm2022/translations/fr.json +118 -21
- package/esm2022/translations/it.json +106 -9
- package/esm2022/translations/nl.json +105 -8
- package/esm2022/translations/pt.json +105 -8
- package/fesm2022/geonetwork-ui.mjs +5384 -3445
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts +2 -6
- package/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.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/read-parts.d.ts +8 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts +5 -0
- package/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +3 -1
- 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 +1 -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 +7 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +3 -1
- 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 -0
- package/libs/common/domain/src/lib/model/record/contact.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +3 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/organization.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/record/organization.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/user/user.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/user/user.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +3 -1
- 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 +17 -0
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/api/records.api.service.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
- package/libs/feature/catalog/src/index.d.ts +1 -0
- package/libs/feature/catalog/src/index.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts +3 -0
- package/libs/feature/catalog/src/lib/organization-url.token.d.ts.map +1 -0
- package/libs/feature/catalog/src/lib/records/records.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +6 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +5 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +5 -4
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +8 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +4 -3
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +4 -8
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts +12 -0
- package/libs/feature/editor/src/lib/components/contact-card/contact-card.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts +32 -0
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.d.ts +27 -0
- package/libs/feature/editor/src/lib/components/overview-upload/overview-upload.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 +44 -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.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts +8 -19
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.d.ts +6 -4
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.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 +22 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +15 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.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 +13 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts +4 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts +4 -4
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts +4 -3
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts +23 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts +15 -15
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts +5 -5
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +16 -20
- 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/components/record-form/form-field/index.d.ts +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts +6 -7
- package/libs/feature/editor/src/lib/components/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts +1 -1
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +2 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +46 -2
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts +36 -0
- package/libs/feature/editor/src/lib/models/editor-config.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -2
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.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 +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +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 +1 -1
- 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/feature-map.module.d.ts +16 -21
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-share/data-view-share.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +4 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +1 -0
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.config.d.ts +1 -0
- package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +1 -0
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +1 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +14 -4
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +2 -0
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/selectors.d.ts +1 -0
- package/libs/feature/search/src/lib/state/selectors.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.d.ts +2 -2
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts +2 -1
- package/libs/ui/catalog/src/lib/ui-catalog.module.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -2
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/error/error.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -3
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +5 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts +5 -10
- package/libs/ui/elements/src/lib/sortable-list/sortable-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +17 -15
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +9 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +5 -3
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts +3 -4
- package/libs/ui/inputs/src/lib/image-input/image-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts +17 -0
- package/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +0 -4
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts +2 -4
- package/libs/ui/inputs/src/lib/text-input/text-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +34 -35
- 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 +18 -0
- package/libs/ui/inputs/src/lib/url-input/url-input.component.d.ts.map +1 -0
- package/libs/ui/layout/src/index.d.ts +1 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.d.ts +2 -2
- package/libs/ui/layout/src/lib/max-lines/max-lines.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +20 -0
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +9 -3
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +1 -0
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts +19 -0
- package/libs/ui/widgets/src/lib/popover/popover.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +6 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +37 -12
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +5 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/types/keywords.model.ts +2 -6
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +6 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +72 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/geometry.ts +39 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +70 -1
- package/src/libs/api/metadata-converter/src/lib/xml-utils.ts +13 -5
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +42 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +1 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +3 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +13 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +69 -27
- package/src/libs/common/domain/src/lib/model/record/contact.model.ts +28 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +3 -1
- package/src/libs/common/domain/src/lib/model/record/organization.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/user.model.ts +1 -1
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +9 -1
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +22 -0
- package/src/libs/common/fixtures/src/index.ts +2 -0
- package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +156 -0
- package/src/libs/common/fixtures/src/lib/editor/index.ts +1 -0
- package/src/libs/common/fixtures/src/lib/organisations.fixture.ts +38 -0
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +8 -0
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetMetadata.api.model.ts +4 -0
- package/src/libs/data-access/datafeeder/src/openapi/model/datasetUploadStatus.api.model.ts +2 -0
- package/src/libs/data-access/gn4/src/openapi/api/records.api.service.ts +1 -5
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/data-access/gn4/src/spec.yaml +0 -8
- package/src/libs/feature/catalog/src/index.ts +1 -0
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +0 -1
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.html +1 -1
- package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +2 -2
- package/src/libs/feature/catalog/src/lib/organization-url.token.ts +6 -0
- package/src/libs/feature/catalog/src/lib/records/records.service.ts +6 -8
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +7 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +17 -2
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +11 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +11 -5
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +22 -8
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.html +27 -0
- package/src/libs/feature/editor/src/lib/components/contact-card/contact-card.component.ts +30 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.html +26 -0
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +89 -0
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.html +2 -1
- package/src/libs/feature/editor/src/lib/components/overview-upload/overview-upload.component.ts +74 -31
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.css +0 -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 +76 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +249 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.html +7 -17
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +18 -49
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-license/form-field-license.component.ts +13 -5
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +4 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts +128 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +48 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.html +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +33 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-resource-updated/form-field-resource-updated.component.ts +9 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-rich/form-field-rich.component.ts +13 -7
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.html +5 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-simple/form-field-simple.component.ts +11 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +15 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +156 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.html +9 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +59 -70
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +17 -15
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +105 -70
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +44 -43
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.html +52 -11
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +19 -7
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +1 -1
- package/src/libs/feature/editor/src/lib/expressions.ts +1 -1
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +2 -1
- package/src/libs/feature/editor/src/lib/fields.config.ts +211 -60
- package/src/libs/feature/editor/src/lib/models/editor-config.model.ts +53 -0
- package/src/libs/feature/editor/src/lib/models/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +15 -4
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +3 -0
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.ts +5 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +5 -0
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -7
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +5 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +1 -1
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +6 -1
- package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -15
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +24 -1
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -4
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +36 -19
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +6 -2
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +11 -0
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +59 -12
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +42 -31
- package/src/libs/feature/router/src/lib/default/constants.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.config.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +13 -1
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +9 -1
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +3 -1
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +57 -3
- package/src/libs/feature/search/src/lib/state/search.facade.ts +11 -0
- package/src/libs/feature/search/src/lib/state/selectors.ts +7 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +16 -2
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.html +8 -6
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/ui-catalog.module.ts +2 -0
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +11 -3
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +3 -7
- package/src/libs/ui/elements/src/index.ts +1 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +29 -29
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.css +0 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +12 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +37 -0
- package/src/libs/ui/elements/src/lib/error/error.component.html +30 -6
- package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +4 -1
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +2 -1
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +12 -8
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +14 -20
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -10
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +2 -2
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +22 -1
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.html +3 -10
- package/src/libs/ui/elements/src/lib/sortable-list/sortable-list.component.ts +7 -7
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +10 -6
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.html +1 -1
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +15 -3
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +40 -26
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.html +85 -0
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +91 -0
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.html +49 -49
- package/src/libs/ui/inputs/src/lib/image-input/image-input.component.ts +15 -13
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.css +31 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +38 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.html +2 -1
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +2 -27
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.html +4 -3
- package/src/libs/ui/inputs/src/lib/text-input/text-input.component.ts +4 -16
- 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.css +9 -0
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.html +37 -0
- package/src/libs/ui/inputs/src/lib/url-input/url-input.component.ts +33 -0
- package/src/libs/ui/layout/src/index.ts +1 -0
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.html +1 -1
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +1 -0
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.css +0 -0
- package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.html +1 -0
- package/src/libs/ui/{elements → layout}/src/lib/max-lines/max-lines.component.ts +9 -5
- package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -1
- package/src/libs/ui/map/src/lib/ui-map.module.ts +1 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.css +0 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +26 -0
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +74 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +15 -1
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +26 -12
- package/src/libs/ui/widgets/src/index.ts +1 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.css +0 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.html +3 -0
- package/src/libs/ui/widgets/src/lib/popover/popover.component.ts +85 -0
- package/tailwind.base.css +18 -5
- package/translations/de.json +132 -35
- package/translations/en.json +106 -9
- package/translations/es.json +105 -8
- package/translations/fr.json +118 -21
- package/translations/it.json +106 -9
- package/translations/nl.json +105 -8
- package/translations/pt.json +105 -8
- package/translations/sk.json +107 -10
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +0 -2
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +0 -69
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts +0 -26
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +0 -15
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.model.ts +0 -43
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +0 -29
- /package/src/libs/{ui/elements/src/lib/max-lines/max-lines.component.css → feature/editor/src/lib/components/contact-card/contact-card.component.css} +0 -0
|
@@ -32,7 +32,7 @@ import { ProxyService } from '../../../../../../libs/util/shared/src'
|
|
|
32
32
|
import { WmsEndpoint, WmtsEndpoint } from '@camptocamp/ogc-client'
|
|
33
33
|
import { LONLAT_CRS_CODES } from '../constant/projections'
|
|
34
34
|
import { fromEPSGCode, register } from 'ol/proj/proj4'
|
|
35
|
-
import proj4 from 'proj4
|
|
35
|
+
import proj4 from 'proj4'
|
|
36
36
|
import { defaults as defaultControls } from 'ol/control/defaults'
|
|
37
37
|
|
|
38
38
|
const FEATURE_PROJECTION = 'EPSG:3857'
|
|
@@ -220,11 +220,15 @@ export class MapUtilsService {
|
|
|
220
220
|
if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
|
|
221
221
|
return null
|
|
222
222
|
}
|
|
223
|
-
//
|
|
223
|
+
// extend all the spatial extents into an including bbox
|
|
224
224
|
const totalExtent = record.spatialExtents.reduce(
|
|
225
225
|
(prev, curr) => {
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
if ('bbox' in curr) return extend(prev, curr.bbox)
|
|
227
|
+
else if ('geometry' in curr) {
|
|
228
|
+
const geom = GEOJSON.readGeometry(curr.geometry)
|
|
229
|
+
return extend(prev, geom.getExtent())
|
|
230
|
+
}
|
|
231
|
+
return prev
|
|
228
232
|
},
|
|
229
233
|
[Infinity, Infinity, -Infinity, -Infinity]
|
|
230
234
|
)
|
package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts
CHANGED
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
Component,
|
|
4
4
|
Inject,
|
|
5
5
|
InjectionToken,
|
|
6
|
+
Input,
|
|
6
7
|
Optional,
|
|
7
8
|
} from '@angular/core'
|
|
8
9
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
9
|
-
import { combineLatest, map } from 'rxjs'
|
|
10
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
10
11
|
import { MdViewFacade } from '../state'
|
|
11
12
|
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
12
13
|
|
|
@@ -21,29 +22,45 @@ export const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken<string>(
|
|
|
21
22
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
23
|
})
|
|
23
24
|
export class DataViewPermalinkComponent {
|
|
25
|
+
viewType$ = new BehaviorSubject<string>('map')
|
|
26
|
+
@Input()
|
|
27
|
+
set viewType(value: string) {
|
|
28
|
+
this.viewType$.next(value)
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
permalinkUrl$ = combineLatest([
|
|
32
|
+
this.viewType$,
|
|
25
33
|
this.facade.chartConfig$,
|
|
26
34
|
this.facade.metadata$,
|
|
27
35
|
]).pipe(
|
|
28
|
-
map(([config, metadata]) => {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
map(([viewType, config, metadata]) => {
|
|
37
|
+
const url = new URL(`${this.wcEmbedderBaseUrl}`, window.location.origin)
|
|
38
|
+
url.searchParams.set('v', `${this.version}`)
|
|
39
|
+
if (viewType === 'chart') {
|
|
40
|
+
if (config) {
|
|
41
|
+
const { aggregation, xProperty, yProperty, chartType } = config
|
|
42
|
+
url.searchParams.append('e', `gn-dataset-view-chart`)
|
|
43
|
+
url.searchParams.append('a', `aggregation=${aggregation}`)
|
|
44
|
+
url.searchParams.append('a', `x-property=${xProperty}`)
|
|
45
|
+
url.searchParams.append('a', `y-property=${yProperty}`)
|
|
46
|
+
url.searchParams.append('a', `chart-type=${chartType}`)
|
|
47
|
+
} else {
|
|
48
|
+
return ''
|
|
49
|
+
}
|
|
50
|
+
} else if (viewType === 'table') {
|
|
51
|
+
// table
|
|
52
|
+
url.searchParams.append('e', `gn-dataset-view-table`)
|
|
53
|
+
} else {
|
|
54
|
+
// map
|
|
55
|
+
url.searchParams.append('e', `gn-dataset-view-map`)
|
|
45
56
|
}
|
|
46
|
-
|
|
57
|
+
url.searchParams.append('a', `api-url=${this.config.basePath}`)
|
|
58
|
+
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`)
|
|
59
|
+
url.searchParams.append('a', `primary-color=#0f4395`)
|
|
60
|
+
url.searchParams.append('a', `secondary-color=#8bc832`)
|
|
61
|
+
url.searchParams.append('a', `main-color=#555`)
|
|
62
|
+
url.searchParams.append('a', `background-color=#fdfbff`)
|
|
63
|
+
return url.toString()
|
|
47
64
|
})
|
|
48
65
|
)
|
|
49
66
|
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
<ng-template mat-tab-label>
|
|
11
11
|
<span class="tab-header-label-gray" translate>share.tab.permalink</span>
|
|
12
12
|
</ng-template>
|
|
13
|
-
<gn-ui-data-view-permalink
|
|
13
|
+
<gn-ui-data-view-permalink
|
|
14
|
+
[viewType]="viewType"
|
|
15
|
+
></gn-ui-data-view-permalink>
|
|
14
16
|
</mat-tab>
|
|
15
17
|
<mat-tab>
|
|
16
18
|
<ng-template mat-tab-label>
|
|
@@ -24,7 +26,9 @@
|
|
|
24
26
|
>share.tab.webComponent</span
|
|
25
27
|
>
|
|
26
28
|
</ng-template>
|
|
27
|
-
<gn-ui-data-view-web-component
|
|
29
|
+
<gn-ui-data-view-web-component
|
|
30
|
+
[viewType]="viewType"
|
|
31
|
+
></gn-ui-data-view-web-component>
|
|
28
32
|
</mat-tab>
|
|
29
33
|
</mat-tab-group>
|
|
30
34
|
</div>
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
ChangeDetectionStrategy,
|
|
3
3
|
Component,
|
|
4
4
|
Inject,
|
|
5
|
+
Input,
|
|
5
6
|
Optional,
|
|
6
7
|
} from '@angular/core'
|
|
7
8
|
import { WEB_COMPONENT_EMBEDDER_URL } from '../data-view-permalink/data-view-permalink.component'
|
|
@@ -13,6 +14,16 @@ import { WEB_COMPONENT_EMBEDDER_URL } from '../data-view-permalink/data-view-per
|
|
|
13
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
15
|
})
|
|
15
16
|
export class DataViewShareComponent {
|
|
17
|
+
private _viewType: string
|
|
18
|
+
|
|
19
|
+
@Input()
|
|
20
|
+
set viewType(value: string) {
|
|
21
|
+
this._viewType = value
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get viewType(): string {
|
|
25
|
+
return this._viewType
|
|
26
|
+
}
|
|
16
27
|
constructor(
|
|
17
28
|
@Optional()
|
|
18
29
|
@Inject(WEB_COMPONENT_EMBEDDER_URL)
|
package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ChangeDetectionStrategy,
|
|
3
|
+
Component,
|
|
4
|
+
Inject,
|
|
5
|
+
Input,
|
|
6
|
+
} from '@angular/core'
|
|
2
7
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
3
8
|
import { MdViewFacade } from '../state'
|
|
4
|
-
import { combineLatest, map } from 'rxjs'
|
|
9
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
5
10
|
import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
6
11
|
|
|
7
12
|
@Component({
|
|
@@ -11,35 +16,77 @@ import { GN_UI_VERSION } from '../gn-ui-version.token'
|
|
|
11
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
17
|
})
|
|
13
18
|
export class DataViewWebComponentComponent {
|
|
19
|
+
viewType$ = new BehaviorSubject<string>('map')
|
|
20
|
+
@Input()
|
|
21
|
+
set viewType(value: string) {
|
|
22
|
+
this.viewType$.next(value)
|
|
23
|
+
}
|
|
14
24
|
webComponentHtml$ = combineLatest(
|
|
25
|
+
this.viewType$,
|
|
15
26
|
this.facade.chartConfig$,
|
|
16
27
|
this.facade.metadata$
|
|
17
28
|
).pipe(
|
|
18
|
-
map(([config, metadata]) => {
|
|
19
|
-
if (
|
|
20
|
-
|
|
29
|
+
map(([viewType, config, metadata]) => {
|
|
30
|
+
if (viewType === 'chart') {
|
|
31
|
+
if (config) {
|
|
32
|
+
const { aggregation, xProperty, yProperty, chartType } = config
|
|
33
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
34
|
+
this.version
|
|
35
|
+
}/gn-wc.js"></script>
|
|
36
|
+
<gn-dataset-view-chart
|
|
37
|
+
api-url="${new URL(
|
|
38
|
+
this.config.basePath,
|
|
39
|
+
window.location.origin
|
|
40
|
+
).toString()}"
|
|
41
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
42
|
+
aggregation="${aggregation}"
|
|
43
|
+
x-property="${xProperty}"
|
|
44
|
+
y-property="${yProperty}"
|
|
45
|
+
chart-type="${chartType}"
|
|
46
|
+
primary-color="#0f4395"
|
|
47
|
+
secondary-color="#8bc832"
|
|
48
|
+
main-color="#555"
|
|
49
|
+
background-color="#fdfbff"
|
|
50
|
+
main-font="'Inter', sans-serif"
|
|
51
|
+
title-font="'DM Serif Display', serif"
|
|
52
|
+
></gn-dataset-view-chart>`
|
|
53
|
+
}
|
|
54
|
+
return ''
|
|
55
|
+
} else if (viewType === 'table') {
|
|
21
56
|
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
22
57
|
this.version
|
|
23
58
|
}/gn-wc.js"></script>
|
|
24
|
-
<gn-dataset-view-
|
|
59
|
+
<gn-dataset-view-table
|
|
60
|
+
api-url="${new URL(
|
|
61
|
+
this.config.basePath,
|
|
62
|
+
window.location.origin
|
|
63
|
+
).toString()}"
|
|
64
|
+
dataset-id="${metadata.uniqueIdentifier}"
|
|
65
|
+
primary-color="#0f4395"
|
|
66
|
+
secondary-color="#8bc832"
|
|
67
|
+
main-color="#555"
|
|
68
|
+
background-color="#fdfbff"
|
|
69
|
+
main-font="'Inter', sans-serif"
|
|
70
|
+
title-font="'DM Serif Display', serif"
|
|
71
|
+
></gn-dataset-view-table>`
|
|
72
|
+
} else {
|
|
73
|
+
return `<script src="https://cdn.jsdelivr.net/gh/geonetwork/geonetwork-ui@wc-dist-${
|
|
74
|
+
this.version
|
|
75
|
+
}/gn-wc.js"></script>
|
|
76
|
+
<gn-dataset-view-map
|
|
25
77
|
api-url="${new URL(
|
|
26
78
|
this.config.basePath,
|
|
27
79
|
window.location.origin
|
|
28
80
|
).toString()}"
|
|
29
81
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
30
|
-
aggregation="${aggregation}"
|
|
31
|
-
x-property="${xProperty}"
|
|
32
|
-
y-property="${yProperty}"
|
|
33
|
-
chart-type="${chartType}"
|
|
34
82
|
primary-color="#0f4395"
|
|
35
83
|
secondary-color="#8bc832"
|
|
36
84
|
main-color="#555"
|
|
37
85
|
background-color="#fdfbff"
|
|
38
86
|
main-font="'Inter', sans-serif"
|
|
39
87
|
title-font="'DM Serif Display', serif"
|
|
40
|
-
></gn-dataset-view-
|
|
88
|
+
></gn-dataset-view-map>`
|
|
41
89
|
}
|
|
42
|
-
return ''
|
|
43
90
|
})
|
|
44
91
|
)
|
|
45
92
|
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core'
|
|
2
2
|
import { select, Store } from '@ngrx/store'
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
catchError,
|
|
5
|
+
defaultIfEmpty,
|
|
6
|
+
filter,
|
|
7
|
+
map,
|
|
8
|
+
mergeMap,
|
|
9
|
+
switchMap,
|
|
10
|
+
toArray,
|
|
11
|
+
} from 'rxjs/operators'
|
|
4
12
|
import * as MdViewActions from './mdview.actions'
|
|
5
13
|
import * as MdViewSelectors from './mdview.selectors'
|
|
6
14
|
import { LinkClassifierService, LinkUsage } from '../../../../../../libs/util/shared/src'
|
|
@@ -95,36 +103,39 @@ export class MdViewFacade {
|
|
|
95
103
|
)
|
|
96
104
|
|
|
97
105
|
geoDataLinksWithGeometry$ = this.allLinks$.pipe(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
106
|
+
switchMap((links) =>
|
|
107
|
+
from(links).pipe(
|
|
108
|
+
mergeMap((link) => {
|
|
109
|
+
if (this.linkClassifier.hasUsage(link, LinkUsage.GEODATA)) {
|
|
110
|
+
if (
|
|
111
|
+
link.type === 'service' &&
|
|
112
|
+
link.accessServiceProtocol === 'ogcFeatures'
|
|
113
|
+
) {
|
|
114
|
+
return from(
|
|
115
|
+
this.dataService.getItemsFromOgcApi(link.url.href)
|
|
116
|
+
).pipe(
|
|
117
|
+
map((collectionRecords: OgcApiRecord) => {
|
|
118
|
+
return collectionRecords && collectionRecords.geometry
|
|
119
|
+
? link
|
|
120
|
+
: null
|
|
121
|
+
}),
|
|
122
|
+
defaultIfEmpty(null),
|
|
123
|
+
catchError((e) => {
|
|
124
|
+
console.error(e)
|
|
125
|
+
return of(null)
|
|
126
|
+
})
|
|
127
|
+
)
|
|
128
|
+
} else {
|
|
129
|
+
return of(link)
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
return of(null)
|
|
133
|
+
}
|
|
134
|
+
}),
|
|
135
|
+
toArray(),
|
|
136
|
+
map((links) => links.filter((link) => link !== null))
|
|
137
|
+
)
|
|
138
|
+
)
|
|
128
139
|
)
|
|
129
140
|
|
|
130
141
|
landingPageLinks$ = this.metadata$.pipe(
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
ROUTER_ROUTE_DATASET,
|
|
4
|
+
ROUTER_ROUTE_ORGANIZATION,
|
|
5
|
+
ROUTER_ROUTE_SEARCH,
|
|
6
|
+
} from '.'
|
|
3
7
|
import { Router, Routes } from '@angular/router'
|
|
4
8
|
import { ROUTER_CONFIG, RouterConfigModel } from './router.config'
|
|
5
9
|
|
|
@@ -30,10 +34,18 @@ export class RouterService {
|
|
|
30
34
|
path: `${ROUTER_ROUTE_DATASET}/:metadataUuid`,
|
|
31
35
|
component: this.routerConfig.recordRouteComponent,
|
|
32
36
|
},
|
|
37
|
+
{
|
|
38
|
+
path: `${ROUTER_ROUTE_ORGANIZATION}/:name`,
|
|
39
|
+
component: this.routerConfig.organizationRouteComponent,
|
|
40
|
+
},
|
|
33
41
|
]
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
getSearchRoute(): string {
|
|
37
45
|
return ROUTER_ROUTE_SEARCH
|
|
38
46
|
}
|
|
47
|
+
|
|
48
|
+
getOrganizationPageRoute(): string {
|
|
49
|
+
return ROUTER_ROUTE_ORGANIZATION
|
|
50
|
+
}
|
|
39
51
|
}
|
|
@@ -3,7 +3,7 @@ import { MdViewActions } from '../../../../../../../libs/feature/record/src'
|
|
|
3
3
|
import { RouterService } from '../router.service'
|
|
4
4
|
import { RouterReducerState } from '@ngrx/router-store'
|
|
5
5
|
import { select, Store } from '@ngrx/store'
|
|
6
|
-
import { distinctUntilChanged, filter, map, take } from 'rxjs/operators'
|
|
6
|
+
import { distinctUntilChanged, filter, map, take, tap } from 'rxjs/operators'
|
|
7
7
|
import {
|
|
8
8
|
ROUTER_ROUTE_DATASET,
|
|
9
9
|
ROUTER_ROUTE_SEARCH,
|
|
@@ -51,6 +51,14 @@ export class RouterFacade {
|
|
|
51
51
|
})
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
goToOrganization(organizationName: string) {
|
|
55
|
+
const path = `${this.routerService.getOrganizationPageRoute()}/${organizationName}`
|
|
56
|
+
this.go({
|
|
57
|
+
path,
|
|
58
|
+
queryParamsHandling: '',
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
updateSearch(query?: SearchRouteParams) {
|
|
55
63
|
this.go({
|
|
56
64
|
path: this.routerService.getSearchRoute(),
|
package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<gn-ui-results-table
|
|
2
2
|
[records]="records$ | async"
|
|
3
|
-
[
|
|
3
|
+
[hasDraft]="hasDraft"
|
|
4
4
|
[selectedRecordsIdentifiers]="selectedRecords$ | async"
|
|
5
5
|
[sortOrder]="sortBy$ | async"
|
|
6
6
|
(recordClick)="handleRecordClick($event)"
|
|
7
|
+
(duplicateRecord)="handleDuplicateRecord($event)"
|
|
8
|
+
(deleteRecord)="handleDeleteRecord($event)"
|
|
7
9
|
(recordsSelectedChange)="handleRecordsSelectedChange($event[0], $event[1])"
|
|
8
10
|
(sortByChange)="handleSortByChange($event[0], $event[1])"
|
|
9
11
|
></gn-ui-results-table>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Output } from '@angular/core'
|
|
1
|
+
import { Component, EventEmitter, OnDestroy, Output } from '@angular/core'
|
|
2
2
|
import { CatalogRecord } from '../../../../../../libs/common/domain/src/lib/model/record'
|
|
3
3
|
import { SearchFacade } from '../state/search.facade'
|
|
4
4
|
import { SelectionService } from '../../../../../../libs/api/repository/src'
|
|
@@ -6,6 +6,9 @@ import { SearchService } from '../utils/service/search.service'
|
|
|
6
6
|
import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface'
|
|
7
7
|
import { ResultsTableComponent } from '../../../../../../libs/ui/search/src'
|
|
8
8
|
import { CommonModule } from '@angular/common'
|
|
9
|
+
import { Subscription } from 'rxjs'
|
|
10
|
+
import { NotificationsService } from '../../../../../../libs/feature/notifications/src'
|
|
11
|
+
import { TranslateService } from '@ngx-translate/core'
|
|
9
12
|
|
|
10
13
|
@Component({
|
|
11
14
|
selector: 'gn-ui-results-table-container',
|
|
@@ -14,8 +17,11 @@ import { CommonModule } from '@angular/common'
|
|
|
14
17
|
standalone: true,
|
|
15
18
|
imports: [CommonModule, ResultsTableComponent],
|
|
16
19
|
})
|
|
17
|
-
export class ResultsTableContainerComponent {
|
|
20
|
+
export class ResultsTableContainerComponent implements OnDestroy {
|
|
18
21
|
@Output() recordClick = new EventEmitter<CatalogRecord>()
|
|
22
|
+
@Output() duplicateRecord = new EventEmitter<CatalogRecord>()
|
|
23
|
+
|
|
24
|
+
subscription = new Subscription()
|
|
19
25
|
|
|
20
26
|
records$ = this.searchFacade.results$
|
|
21
27
|
selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$
|
|
@@ -28,13 +34,57 @@ export class ResultsTableContainerComponent {
|
|
|
28
34
|
private searchFacade: SearchFacade,
|
|
29
35
|
private searchService: SearchService,
|
|
30
36
|
private selectionService: SelectionService,
|
|
31
|
-
private recordsRepository: RecordsRepositoryInterface
|
|
37
|
+
private recordsRepository: RecordsRepositoryInterface,
|
|
38
|
+
private notificationsService: NotificationsService,
|
|
39
|
+
private translateService: TranslateService
|
|
32
40
|
) {}
|
|
33
41
|
|
|
34
42
|
handleRecordClick(item: unknown) {
|
|
35
43
|
this.recordClick.emit(item as CatalogRecord)
|
|
36
44
|
}
|
|
37
45
|
|
|
46
|
+
handleDuplicateRecord(item: unknown) {
|
|
47
|
+
this.duplicateRecord.emit(item as CatalogRecord)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async handleDeleteRecord(item: unknown) {
|
|
51
|
+
const uniqueIdentifier = (item as CatalogRecord).uniqueIdentifier
|
|
52
|
+
this.subscription.add(
|
|
53
|
+
this.recordsRepository.deleteRecord(uniqueIdentifier).subscribe({
|
|
54
|
+
next: () => {
|
|
55
|
+
this.recordsRepository.clearRecordDraft(uniqueIdentifier)
|
|
56
|
+
this.searchFacade.requestNewResults()
|
|
57
|
+
this.notificationsService.showNotification(
|
|
58
|
+
{
|
|
59
|
+
type: 'success',
|
|
60
|
+
title: this.translateService.instant(
|
|
61
|
+
'editor.record.deleteSuccess.title'
|
|
62
|
+
),
|
|
63
|
+
text: `${this.translateService.instant(
|
|
64
|
+
'editor.record.deleteSuccess.body'
|
|
65
|
+
)}`,
|
|
66
|
+
},
|
|
67
|
+
2500
|
|
68
|
+
)
|
|
69
|
+
},
|
|
70
|
+
error: (error) => {
|
|
71
|
+
this.notificationsService.showNotification({
|
|
72
|
+
type: 'error',
|
|
73
|
+
title: this.translateService.instant(
|
|
74
|
+
'editor.record.deleteError.title'
|
|
75
|
+
),
|
|
76
|
+
text: `${this.translateService.instant(
|
|
77
|
+
'editor.record.deleteError.body'
|
|
78
|
+
)} ${error}`,
|
|
79
|
+
closeMessage: this.translateService.instant(
|
|
80
|
+
'editor.record.deleteError.closeMessage'
|
|
81
|
+
),
|
|
82
|
+
})
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
|
|
38
88
|
handleSortByChange(col: string, order: 'asc' | 'desc') {
|
|
39
89
|
this.searchService.setSortBy([order, col])
|
|
40
90
|
}
|
|
@@ -46,4 +96,8 @@ export class ResultsTableContainerComponent {
|
|
|
46
96
|
this.selectionService.selectRecords(records)
|
|
47
97
|
}
|
|
48
98
|
}
|
|
99
|
+
|
|
100
|
+
ngOnDestroy() {
|
|
101
|
+
this.subscription.unsubscribe()
|
|
102
|
+
}
|
|
49
103
|
}
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
Paginate,
|
|
9
9
|
RequestMoreOnAggregation,
|
|
10
10
|
RequestMoreResults,
|
|
11
|
+
RequestNewResults,
|
|
11
12
|
SetConfigAggregations,
|
|
12
13
|
SetConfigFilters,
|
|
13
14
|
SetConfigRequestFields,
|
|
@@ -37,6 +38,7 @@ import {
|
|
|
37
38
|
getSearchResultsLoading,
|
|
38
39
|
getSearchSortBy,
|
|
39
40
|
getSpatialFilterEnabled,
|
|
41
|
+
isBeginningOfResults,
|
|
40
42
|
isEndOfResults,
|
|
41
43
|
totalPages,
|
|
42
44
|
} from './selectors'
|
|
@@ -58,6 +60,7 @@ export class SearchFacade {
|
|
|
58
60
|
layout$: Observable<string>
|
|
59
61
|
sortBy$: Observable<SortByField>
|
|
60
62
|
isLoading$: Observable<boolean>
|
|
63
|
+
isBeginningOfResults$: Observable<boolean>
|
|
61
64
|
isEndOfResults$: Observable<boolean>
|
|
62
65
|
totalPages$: Observable<number>
|
|
63
66
|
currentPage$: Observable<number>
|
|
@@ -98,6 +101,9 @@ export class SearchFacade {
|
|
|
98
101
|
this.isLoading$ = this.store.pipe(select(getSearchResultsLoading, searchId))
|
|
99
102
|
this.searchFilters$ = this.store.pipe(select(getSearchFilters, searchId))
|
|
100
103
|
this.resultsHits$ = this.store.pipe(select(getSearchResultsHits, searchId))
|
|
104
|
+
this.isBeginningOfResults$ = this.store.pipe(
|
|
105
|
+
select(isBeginningOfResults, searchId)
|
|
106
|
+
)
|
|
101
107
|
this.isEndOfResults$ = this.store.pipe(select(isEndOfResults, searchId))
|
|
102
108
|
this.totalPages$ = this.store.pipe(select(totalPages, searchId))
|
|
103
109
|
this.currentPage$ = this.store.pipe(select(currentPage, searchId))
|
|
@@ -146,6 +152,11 @@ export class SearchFacade {
|
|
|
146
152
|
return this
|
|
147
153
|
}
|
|
148
154
|
|
|
155
|
+
requestNewResults(): SearchFacade {
|
|
156
|
+
this.store.dispatch(new RequestNewResults(this.searchId))
|
|
157
|
+
return this
|
|
158
|
+
}
|
|
159
|
+
|
|
149
160
|
requestMoreOnAggregation(key: string, increment: number): SearchFacade {
|
|
150
161
|
this.store.dispatch(
|
|
151
162
|
new RequestMoreOnAggregation(key, increment, this.searchId)
|
|
@@ -50,6 +50,13 @@ export const getSearchResultsHits = createSelector(
|
|
|
50
50
|
(state: SearchStateSearch) => state.results.count
|
|
51
51
|
)
|
|
52
52
|
|
|
53
|
+
export const isBeginningOfResults = createSelector(
|
|
54
|
+
getSearchStateSearch,
|
|
55
|
+
(state: SearchStateSearch) => {
|
|
56
|
+
return state.params.currentPage === 0
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
|
|
53
60
|
export const isEndOfResults = createSelector(
|
|
54
61
|
getSearchStateSearch,
|
|
55
62
|
(state: SearchStateSearch) => {
|
|
@@ -25,19 +25,21 @@ marker('search.filters.keyword')
|
|
|
25
25
|
marker('search.filters.isSpatial')
|
|
26
26
|
marker('search.filters.license')
|
|
27
27
|
marker('search.filters.publicationYear')
|
|
28
|
-
marker('search.filters.
|
|
28
|
+
marker('search.filters.organization')
|
|
29
29
|
marker('search.filters.representationType')
|
|
30
30
|
marker('search.filters.resourceType')
|
|
31
31
|
marker('search.filters.standard')
|
|
32
32
|
marker('search.filters.topic')
|
|
33
33
|
marker('search.filters.contact')
|
|
34
|
+
marker('search.filters.producerOrg')
|
|
35
|
+
marker('search.filters.publisherOrg')
|
|
34
36
|
|
|
35
37
|
@Injectable({
|
|
36
38
|
providedIn: 'root',
|
|
37
39
|
})
|
|
38
40
|
export class FieldsService {
|
|
39
41
|
protected fields = {
|
|
40
|
-
|
|
42
|
+
organization: new OrganizationSearchField(this.injector),
|
|
41
43
|
format: new SimpleSearchField('format', this.injector, 'asc'),
|
|
42
44
|
resourceType: new TranslatedSearchField(
|
|
43
45
|
'resourceType',
|
|
@@ -70,6 +72,18 @@ export class FieldsService {
|
|
|
70
72
|
q: new FullTextSearchField(),
|
|
71
73
|
license: new LicenseSearchField(this.injector),
|
|
72
74
|
owner: new OwnerSearchField(this.injector),
|
|
75
|
+
producerOrg: new MultilingualSearchField(
|
|
76
|
+
'originatorOrgForResourceObject',
|
|
77
|
+
this.injector,
|
|
78
|
+
'asc',
|
|
79
|
+
'key'
|
|
80
|
+
),
|
|
81
|
+
publisherOrg: new MultilingualSearchField(
|
|
82
|
+
'distributorOrgForResourceObject',
|
|
83
|
+
this.injector,
|
|
84
|
+
'asc',
|
|
85
|
+
'key'
|
|
86
|
+
),
|
|
73
87
|
} as Record<string, AbstractSearchField>
|
|
74
88
|
|
|
75
89
|
get supportedFields() {
|