geonetwork-ui 2.8.0-dev.93d2d87c0 → 2.8.0-dev.b7a1670bc
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/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +5 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +6 -1
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +31 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +7 -7
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +3 -2
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -3
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +7 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +10 -10
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +3 -2
- package/esm2022/libs/common/domain/src/index.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +3 -1
- package/esm2022/libs/common/domain/src/lib/model/search/sort-by.model.mjs +6 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/data-access/gn4/src/openapi/model/user.api.model.mjs +1 -1
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +3 -1
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +26 -8
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +23 -3
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +2 -2
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
- package/esm2022/libs/feature/record/src/index.mjs +2 -1
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -4
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +23 -8
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +4 -4
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -3
- package/esm2022/libs/feature/record/src/lib/stac-view/stac-view.component.mjs +230 -0
- package/esm2022/libs/feature/record/src/lib/stac-view/utils.mjs +26 -0
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +2 -2
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +14 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +5 -1
- package/esm2022/libs/feature/router/src/lib/default/state/router.effects.mjs +9 -7
- package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/sort-by/sort-by.component.mjs +8 -12
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +36 -22
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +2 -1
- package/esm2022/libs/ui/elements/src/index.mjs +3 -1
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/lib/external-link-card/external-link-card.component.mjs +11 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.mjs +37 -0
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +5 -9
- package/esm2022/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.mjs +18 -0
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +5 -5
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +21 -7
- package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.mjs +35 -0
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +2 -3
- package/esm2022/libs/ui/layout/src/lib/paginable.interface.mjs +1 -1
- package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +13 -5
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +86 -32
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +1 -1
- package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +3 -3
- package/esm2022/libs/util/i18n/src/lib/date-locales.mjs +33 -0
- package/esm2022/libs/util/shared/src/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/humanize-date.directive.mjs +33 -0
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -1
- package/esm2022/libs/util/shared/src/lib/services/date.service.mjs +19 -2
- package/esm2022/libs/util/shared/src/lib/services/proxy.service.mjs +9 -11
- package/esm2022/libs/util/shared/src/lib/utils/sort-by.mjs +9 -6
- package/esm2022/translations/de.json +20 -3
- package/esm2022/translations/en.json +20 -4
- package/esm2022/translations/es.json +19 -2
- package/esm2022/translations/fr.json +20 -3
- package/esm2022/translations/it.json +21 -4
- package/esm2022/translations/nl.json +19 -2
- package/esm2022/translations/pt.json +19 -2
- package/esm2022/translations/sk.json +20 -3
- package/fesm2022/geonetwork-ui-date-locales-DhlIiWpT.mjs +35 -0
- package/fesm2022/geonetwork-ui-date-locales-DhlIiWpT.mjs.map +1 -0
- package/fesm2022/geonetwork-ui.mjs +946 -287
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.ts +1 -0
- package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.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 +5 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/auth/auth.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 +7 -7
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/index.d.ts +3 -0
- package/libs/common/domain/src/index.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +7 -2
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/sort-by.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/data-access/gn4/src/openapi/model/user.api.model.d.ts +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +2 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/record/src/index.d.ts +1 -0
- package/libs/feature/record/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +3 -2
- 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-web-component/data-view-web-component.component.d.ts +3 -2
- 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/gpf-api-dl/gpf-api-dl.component.d.ts +12 -5
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +3 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts +53 -0
- package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts.map +1 -0
- package/libs/feature/record/src/lib/stac-view/utils.d.ts +7 -0
- package/libs/feature/record/src/lib/stac-view/utils.d.ts.map +1 -0
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -24
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts +3 -1
- package/libs/feature/router/src/lib/default/state/router.effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts +4 -3
- package/libs/feature/search/src/lib/sort-by/sort-by.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +2 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/external-link-card/external-link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +0 -2
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.d.ts.map +1 -0
- 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/date-picker/date-picker.component.d.ts +5 -0
- package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.d.ts +12 -0
- package/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/paginable.interface.d.ts +3 -3
- package/libs/ui/layout/src/lib/paginable.interface.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +2 -1
- package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +24 -14
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/date-locales.d.ts +5 -0
- package/libs/util/i18n/src/lib/date-locales.d.ts.map +1 -0
- package/libs/util/shared/src/index.d.ts +1 -0
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/humanize-date.directive.d.ts +15 -0
- package/libs/util/shared/src/lib/humanize-date.directive.d.ts.map +1 -0
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +6 -0
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/date.service.d.ts +4 -0
- package/libs/util/shared/src/lib/services/date.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/services/proxy.service.d.ts +5 -4
- package/libs/util/shared/src/lib/services/proxy.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/sort-by.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +2 -0
- package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +11 -0
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +5 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/georhena.records.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.reuse.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +1 -1
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +39 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +13 -6
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +6 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -2
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +12 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +37 -36
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -2
- package/src/libs/common/domain/src/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +12 -1
- package/src/libs/common/domain/src/lib/model/search/sort-by.model.ts +5 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -1
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +5 -0
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +19 -0
- package/src/libs/data-access/gn4/src/openapi/model/user.api.model.ts +1 -1
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +1 -0
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +30 -5
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +3 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +30 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +1 -1
- package/src/libs/feature/record/src/index.ts +1 -0
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -1
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +7 -1
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +23 -4
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +10 -8
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +1 -1
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -2
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +6 -2
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.css +8 -0
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.html +87 -0
- package/src/libs/feature/record/src/lib/stac-view/stac-view.component.ts +339 -0
- package/src/libs/feature/record/src/lib/stac-view/utils.ts +57 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -1
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +30 -1
- package/src/libs/feature/router/src/lib/default/router.service.ts +8 -0
- package/src/libs/feature/router/src/lib/default/state/router.effects.ts +6 -7
- package/src/libs/feature/search/src/lib/constants.ts +1 -1
- package/src/libs/feature/search/src/lib/sort-by/sort-by.component.ts +8 -12
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +1 -0
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +37 -33
- package/src/libs/ui/elements/src/index.ts +2 -0
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.html +43 -22
- package/src/libs/ui/elements/src/lib/external-link-card/external-link-card.component.ts +12 -3
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.css +0 -0
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.html +31 -0
- package/src/libs/ui/elements/src/lib/metadata-doi/metadata-doi.component.ts +30 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +69 -23
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +2 -9
- package/src/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.css +0 -0
- package/src/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.html +13 -0
- package/src/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.html +1 -1
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.html +3 -3
- package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +17 -1
- package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.html +15 -0
- package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.ts +41 -0
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +4 -2
- package/src/libs/ui/layout/src/lib/paginable.interface.ts +3 -3
- package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +12 -6
- package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +4 -1
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.html +16 -14
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +144 -65
- package/src/libs/util/i18n/src/lib/date-locales.ts +63 -0
- package/src/libs/util/shared/src/index.ts +1 -0
- package/src/libs/util/shared/src/lib/humanize-date.directive.ts +35 -0
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +4 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -0
- package/src/libs/util/shared/src/lib/services/date.service.ts +27 -1
- package/src/libs/util/shared/src/lib/services/proxy.service.ts +6 -2
- package/src/libs/util/shared/src/lib/utils/sort-by.ts +8 -5
- package/translations/de.json +20 -3
- package/translations/en.json +20 -4
- package/translations/es.json +19 -2
- package/translations/fr.json +20 -3
- package/translations/it.json +21 -4
- package/translations/nl.json +19 -2
- package/translations/pt.json +19 -2
- package/translations/sk.json +20 -3
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.mjs +0 -59
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts +0 -11
- package/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.d.ts.map +0 -1
- package/src/libs/common/domain/src/lib/index.ts +0 -2
- package/src/libs/ui/elements/src/lib/user-feedback-item/time-since.pipe.ts +0 -54
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core'
|
|
2
2
|
import { SiteApiService } from '../../../../../../../libs/data-access/gn4/src'
|
|
3
|
+
import { Observable, of, switchMap } from 'rxjs'
|
|
3
4
|
import { map, shareReplay } from 'rxjs/operators'
|
|
4
|
-
import { Observable } from 'rxjs'
|
|
5
5
|
|
|
6
6
|
@Injectable({
|
|
7
7
|
providedIn: 'root',
|
|
@@ -25,7 +25,8 @@ export class Gn4SettingsService {
|
|
|
25
25
|
constructor(private siteApiService: SiteApiService) {}
|
|
26
26
|
|
|
27
27
|
private getSettingsSetValueByKey(key: string) {
|
|
28
|
-
return
|
|
28
|
+
return of(true).pipe(
|
|
29
|
+
switchMap(() => this.siteApiService.getSettingsSet(null, [key])),
|
|
29
30
|
map((v) => v[key]),
|
|
30
31
|
shareReplay({ bufferSize: 1, refCount: true })
|
|
31
32
|
)
|
|
@@ -113,6 +113,12 @@ export interface INSPIRE_topic {
|
|
|
113
113
|
label: string
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
export interface ResourceIdentifier {
|
|
117
|
+
code: string
|
|
118
|
+
codeSpace?: string
|
|
119
|
+
url?: string
|
|
120
|
+
}
|
|
121
|
+
|
|
116
122
|
export interface BaseRecord {
|
|
117
123
|
uniqueIdentifier: Uuid
|
|
118
124
|
ownerOrganization: Organization
|
|
@@ -135,7 +141,8 @@ export interface BaseRecord {
|
|
|
135
141
|
updateFrequency?: UpdateFrequency
|
|
136
142
|
|
|
137
143
|
// information related to the resource (dataset, service)
|
|
138
|
-
|
|
144
|
+
|
|
145
|
+
resourceIdentifiers?: Array<ResourceIdentifier>
|
|
139
146
|
contactsForResource: Array<Individual>
|
|
140
147
|
resourceCreated?: Date
|
|
141
148
|
resourcePublished?: Date
|
|
@@ -163,6 +170,8 @@ export type ServiceProtocol =
|
|
|
163
170
|
| 'GPFDL'
|
|
164
171
|
| 'tms'
|
|
165
172
|
| 'maplibre-style'
|
|
173
|
+
| 'postgis'
|
|
174
|
+
| 'stac'
|
|
166
175
|
| 'other'
|
|
167
176
|
|
|
168
177
|
marker('record.metadata.api.accessServiceProtocol.wms')
|
|
@@ -174,6 +183,8 @@ marker('record.metadata.api.accessServiceProtocol.ogcFeatures')
|
|
|
174
183
|
marker('record.metadata.api.accessServiceProtocol.GPFDL')
|
|
175
184
|
marker('record.metadata.api.accessServiceProtocol.tms')
|
|
176
185
|
marker('record.metadata.api.accessServiceProtocol.maplibre-style')
|
|
186
|
+
marker('record.metadata.api.accessServiceProtocol.postgis')
|
|
187
|
+
marker('record.metadata.api.accessServiceProtocol.stac')
|
|
177
188
|
marker('record.metadata.api.accessServiceProtocol.other')
|
|
178
189
|
|
|
179
190
|
export type OnlineResourceType = 'service' | 'download' | 'link' | 'endpoint'
|
|
@@ -6,4 +6,9 @@ export const SortByEnum: Record<string, SortByField> = {
|
|
|
6
6
|
RELEVANCY: ['desc', '_score'],
|
|
7
7
|
QUALITY_SCORE: ['desc', 'qualityScore'],
|
|
8
8
|
CHANGE_DATE: ['desc', 'changeDate'],
|
|
9
|
+
RESOURCE_DATES: [
|
|
10
|
+
['desc', 'revisionDateForResource'],
|
|
11
|
+
['desc', 'publicationDateForResource'],
|
|
12
|
+
['desc', 'creationDateForResource'],
|
|
13
|
+
],
|
|
9
14
|
}
|
|
@@ -45,6 +45,7 @@ export abstract class PlatformServiceInterface {
|
|
|
45
45
|
thesaurusId: string
|
|
46
46
|
): Observable<Keyword[]>
|
|
47
47
|
|
|
48
|
+
abstract getFeedbacksAllowed(): Observable<boolean>
|
|
48
49
|
abstract getUserFeedbacks(recordUuid: string): Observable<UserFeedback[]>
|
|
49
50
|
abstract postUserFeedbacks(recordUuid: UserFeedback): Observable<void>
|
|
50
51
|
|
|
@@ -58,5 +59,4 @@ export abstract class PlatformServiceInterface {
|
|
|
58
59
|
removeDuplicate?: boolean
|
|
59
60
|
): Observable<UploadEvent>
|
|
60
61
|
abstract getFileContent(url: URL): Observable<any>
|
|
61
|
-
abstract getFeedbacksAllowed(): Observable<boolean>
|
|
62
62
|
}
|
|
@@ -154,4 +154,9 @@ export const elasticLinkFixture = (): Record<string, unknown> => ({
|
|
|
154
154
|
name: 'myothertmslayer',
|
|
155
155
|
url: 'https://my.tms.server/MapServer',
|
|
156
156
|
},
|
|
157
|
+
stacItems: {
|
|
158
|
+
accessServiceProtocol: 'STAC:Items',
|
|
159
|
+
name: 'stac layer',
|
|
160
|
+
url: ' https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr/collections/lidarhd/items',
|
|
161
|
+
},
|
|
157
162
|
})
|
|
@@ -259,4 +259,23 @@ export const aSetOfLinksFixture = () => ({
|
|
|
259
259
|
accessServiceProtocol: 'wms',
|
|
260
260
|
type: 'endpoint',
|
|
261
261
|
}) as ServiceEndpoint,
|
|
262
|
+
postgisLink: () =>
|
|
263
|
+
({
|
|
264
|
+
name: 'France_Regions',
|
|
265
|
+
description:
|
|
266
|
+
'Boundaries for the administrative regions of metropolitan France.',
|
|
267
|
+
url: new URL('http://geo.local:5432/france_demo'),
|
|
268
|
+
type: 'service',
|
|
269
|
+
accessServiceProtocol: 'postgis',
|
|
270
|
+
}) as DatasetServiceDistribution,
|
|
271
|
+
stacLink: () =>
|
|
272
|
+
({
|
|
273
|
+
name: 'Lidar HD point cloud (COPC)',
|
|
274
|
+
description: 'Lidar HD classified point clouds from IGN',
|
|
275
|
+
url: new URL(
|
|
276
|
+
'https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr/collections/lidarhd/items'
|
|
277
|
+
),
|
|
278
|
+
type: 'service',
|
|
279
|
+
accessServiceProtocol: 'stac',
|
|
280
|
+
}) as DatasetServiceDistribution,
|
|
262
281
|
})
|
|
@@ -21,7 +21,7 @@ export interface UserApiModel {
|
|
|
21
21
|
emailAddresses?: Set<string>
|
|
22
22
|
addresses?: Set<AddressApiModel>
|
|
23
23
|
primaryAddress?: AddressApiModel
|
|
24
|
-
|
|
24
|
+
organisation?: string
|
|
25
25
|
kind?: string
|
|
26
26
|
lastLoginDate?: string
|
|
27
27
|
authorities?: Array<GrantedAuthorityApiModel>
|
|
@@ -108,6 +108,7 @@ export class ChartViewComponent {
|
|
|
108
108
|
chartType$ = new BehaviorSubject<InputChartType>('bar')
|
|
109
109
|
|
|
110
110
|
@Input() set userChartConfig(config: DatavizChartConfigModel) {
|
|
111
|
+
if (!config) return
|
|
111
112
|
this.aggregation$.next(config.aggregation)
|
|
112
113
|
this.xProperty$.next(config.xProperty)
|
|
113
114
|
this.yProperty$.next(config.yProperty)
|
|
@@ -7,6 +7,9 @@ import {
|
|
|
7
7
|
WfsEndpoint,
|
|
8
8
|
WfsVersion,
|
|
9
9
|
TmsEndpoint,
|
|
10
|
+
StacEndpoint,
|
|
11
|
+
GetCollectionItemsOptions,
|
|
12
|
+
StacItemsDocument,
|
|
10
13
|
} from '@camptocamp/ogc-client'
|
|
11
14
|
import {
|
|
12
15
|
BaseReader,
|
|
@@ -97,16 +100,27 @@ export class DataService {
|
|
|
97
100
|
if (!featureType) {
|
|
98
101
|
throw new Error('wfs.featuretype.notfound')
|
|
99
102
|
}
|
|
103
|
+
|
|
104
|
+
const wfsVersion = endpoint.getVersion()
|
|
105
|
+
const addSrsName = wfsVersion === '1.1.0' || wfsVersion === '2.0.0'
|
|
106
|
+
const defaultCrs = featureType.defaultCrs
|
|
107
|
+
|
|
108
|
+
const shouldAddOutputCrs = addSrsName && defaultCrs
|
|
109
|
+
|
|
100
110
|
return {
|
|
101
|
-
all: featureType.outputFormats.reduce(
|
|
102
|
-
|
|
111
|
+
all: featureType.outputFormats.reduce((prev, curr) => {
|
|
112
|
+
const isJsonFormat = curr.toLowerCase().includes('json')
|
|
113
|
+
return {
|
|
103
114
|
...prev,
|
|
104
115
|
[curr]: endpoint.getFeatureUrl(featureType.name, {
|
|
105
116
|
outputFormat: curr,
|
|
117
|
+
...(shouldAddOutputCrs &&
|
|
118
|
+
!isJsonFormat && {
|
|
119
|
+
outputCrs: defaultCrs,
|
|
120
|
+
}),
|
|
106
121
|
}),
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
),
|
|
122
|
+
}
|
|
123
|
+
}, {}),
|
|
110
124
|
geojson: endpoint.supportsJson(featureType.name)
|
|
111
125
|
? endpoint.getFeatureUrl(featureType.name, {
|
|
112
126
|
asJson: true,
|
|
@@ -233,6 +247,17 @@ export class DataService {
|
|
|
233
247
|
})
|
|
234
248
|
}
|
|
235
249
|
|
|
250
|
+
async getItemsFromStacApi(
|
|
251
|
+
url: string,
|
|
252
|
+
options: GetCollectionItemsOptions
|
|
253
|
+
): Promise<StacItemsDocument> {
|
|
254
|
+
return await StacEndpoint.getItemsFromUrl(url, options)
|
|
255
|
+
.then((response) => response)
|
|
256
|
+
.catch(() => {
|
|
257
|
+
throw new Error(`ogc.unreachable.unknown`)
|
|
258
|
+
})
|
|
259
|
+
}
|
|
260
|
+
|
|
236
261
|
async getGeodataLinksFromTms(
|
|
237
262
|
tmsLink: DatasetServiceDistribution,
|
|
238
263
|
keepOriginalLink = false
|
package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html
CHANGED
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
(valueChange)="valueChange.emit($event)"
|
|
70
70
|
></gn-ui-form-field-overviews>
|
|
71
71
|
</ng-container>
|
|
72
|
-
<ng-container *ngSwitchCase="'
|
|
72
|
+
<ng-container *ngSwitchCase="'resourceIdentifiers'">
|
|
73
73
|
<gn-ui-form-field-simple
|
|
74
74
|
[type]="'text'"
|
|
75
|
-
[value]="
|
|
76
|
-
(valueChange)="
|
|
75
|
+
[value]="valueAsResourceIdentifierCode"
|
|
76
|
+
(valueChange)="handleResourceIdentifierChange($event)"
|
|
77
77
|
></gn-ui-form-field-simple>
|
|
78
78
|
</ng-container>
|
|
79
79
|
<ng-container *ngSwitchCase="'resourceCreated'">
|
package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts
CHANGED
|
@@ -142,4 +142,34 @@ export class FormFieldComponent {
|
|
|
142
142
|
get valueAsOnlineResources() {
|
|
143
143
|
return this.value as Array<OnlineResource>
|
|
144
144
|
}
|
|
145
|
+
get valueAsResourceIdentifierCode() {
|
|
146
|
+
const identifiers = this.value as Array<{
|
|
147
|
+
code: string
|
|
148
|
+
codeSpace?: string
|
|
149
|
+
url?: string
|
|
150
|
+
}>
|
|
151
|
+
return identifiers?.[0]?.code || ''
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
handleResourceIdentifierChange(code: string) {
|
|
155
|
+
const identifiers = this.value as Array<{
|
|
156
|
+
code: string
|
|
157
|
+
codeSpace?: string
|
|
158
|
+
url?: string
|
|
159
|
+
}>
|
|
160
|
+
|
|
161
|
+
if (!code) {
|
|
162
|
+
this.valueChange.emit(identifiers?.slice(1) || [])
|
|
163
|
+
return
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (identifiers?.[0]) {
|
|
167
|
+
this.valueChange.emit([
|
|
168
|
+
{ ...identifiers[0], code },
|
|
169
|
+
...identifiers.slice(1),
|
|
170
|
+
])
|
|
171
|
+
} else {
|
|
172
|
+
this.valueChange.emit([{ code }])
|
|
173
|
+
}
|
|
174
|
+
}
|
|
145
175
|
}
|
|
@@ -81,7 +81,7 @@ export const RECORD_RESOURCE_CREATED_FIELD: EditorField = {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
export const RESOURCE_IDENTIFIER_FIELD: EditorField = {
|
|
84
|
-
model: '
|
|
84
|
+
model: 'resourceIdentifiers',
|
|
85
85
|
formFieldConfig: {
|
|
86
86
|
labelKey: marker('editor.record.form.field.resourceIdentifier'),
|
|
87
87
|
},
|
|
@@ -8,3 +8,4 @@ export * from './lib/external-viewer-button/external-viewer-button.component'
|
|
|
8
8
|
export * from './lib/gpf-api-dl/gpf-api-dl.component'
|
|
9
9
|
export * from './lib/map-view/map-view.component'
|
|
10
10
|
export * from './lib/record-meta/record-meta.component'
|
|
11
|
+
export * from './lib/stac-view/stac-view.component'
|
|
@@ -56,7 +56,11 @@ export class DataViewComponent {
|
|
|
56
56
|
this.linkSelected.emit(this.selectedLink$.value)
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
@Input() set datavizConfig(value:
|
|
59
|
+
@Input() set datavizConfig(value: {
|
|
60
|
+
view?: string
|
|
61
|
+
source?: DatasetOnlineResource
|
|
62
|
+
chartConfig?: DatavizChartConfigModel
|
|
63
|
+
}) {
|
|
60
64
|
if ((value && value.view === 'table') || value.view === 'chart') {
|
|
61
65
|
this._selectedView = value.view
|
|
62
66
|
}
|
package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { MdViewFacade } from '../state'
|
|
|
12
12
|
import { CopyTextButtonComponent } from '../../../../../../libs/ui/inputs/src'
|
|
13
13
|
import { CommonModule } from '@angular/common'
|
|
14
14
|
import { TranslatePipe } from '@ngx-translate/core'
|
|
15
|
-
import { GEONETWORK_UI_TAG_NAME } from '../../../../../../libs/util/shared/src'
|
|
15
|
+
import { GEONETWORK_UI_TAG_NAME, PROXY_PATH } from '../../../../../../libs/util/shared/src'
|
|
16
16
|
|
|
17
17
|
export const WEB_COMPONENT_EMBEDDER_URL = new InjectionToken<string>(
|
|
18
18
|
'webComponentEmbedderUrl'
|
|
@@ -60,6 +60,9 @@ export class DataViewPermalinkComponent {
|
|
|
60
60
|
url.searchParams.append('e', `gn-dataset-view-map`)
|
|
61
61
|
}
|
|
62
62
|
url.searchParams.append('a', `api-url=${this.config.basePath}`)
|
|
63
|
+
if (this.proxyPath) {
|
|
64
|
+
url.searchParams.append('a', `proxy-path=${this.proxyPath}`)
|
|
65
|
+
}
|
|
63
66
|
url.searchParams.append('a', `dataset-id=${metadata.uniqueIdentifier}`)
|
|
64
67
|
url.searchParams.append('a', `primary-color=#0f4395`)
|
|
65
68
|
url.searchParams.append('a', `secondary-color=#8bc832`)
|
|
@@ -72,6 +75,9 @@ export class DataViewPermalinkComponent {
|
|
|
72
75
|
constructor(
|
|
73
76
|
@Inject(Configuration) private config: Configuration,
|
|
74
77
|
@Optional()
|
|
78
|
+
@Inject(PROXY_PATH)
|
|
79
|
+
private proxyPath: string,
|
|
80
|
+
@Optional()
|
|
75
81
|
@Inject(WEB_COMPONENT_EMBEDDER_URL)
|
|
76
82
|
protected wcEmbedderBaseUrl: string,
|
|
77
83
|
private facade: MdViewFacade
|
package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
Component,
|
|
4
4
|
Inject,
|
|
5
5
|
Input,
|
|
6
|
+
Optional,
|
|
6
7
|
} from '@angular/core'
|
|
7
8
|
import { Configuration } from '../../../../../../libs/data-access/gn4/src'
|
|
8
9
|
import { MdViewFacade } from '../state'
|
|
@@ -10,7 +11,7 @@ import { BehaviorSubject, combineLatest, map } from 'rxjs'
|
|
|
10
11
|
import { CopyTextButtonComponent } from '../../../../../../libs/ui/inputs/src'
|
|
11
12
|
import { CommonModule } from '@angular/common'
|
|
12
13
|
import { TranslatePipe } from '@ngx-translate/core'
|
|
13
|
-
import { GEONETWORK_UI_TAG_NAME } from '../../../../../../libs/util/shared/src'
|
|
14
|
+
import { GEONETWORK_UI_TAG_NAME, PROXY_PATH } from '../../../../../../libs/util/shared/src'
|
|
14
15
|
|
|
15
16
|
@Component({
|
|
16
17
|
selector: 'gn-ui-data-view-web-component',
|
|
@@ -42,7 +43,12 @@ export class DataViewWebComponentComponent {
|
|
|
42
43
|
api-url="${new URL(
|
|
43
44
|
this.config.basePath,
|
|
44
45
|
window.location.origin
|
|
45
|
-
).toString()}"
|
|
46
|
+
).toString()}"${
|
|
47
|
+
this.proxyPath
|
|
48
|
+
? `
|
|
49
|
+
proxy-path="${this.proxyPath}"`
|
|
50
|
+
: ''
|
|
51
|
+
}
|
|
46
52
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
47
53
|
aggregation="${aggregation}"
|
|
48
54
|
x-property="${xProperty}"
|
|
@@ -65,7 +71,12 @@ export class DataViewWebComponentComponent {
|
|
|
65
71
|
api-url="${new URL(
|
|
66
72
|
this.config.basePath,
|
|
67
73
|
window.location.origin
|
|
68
|
-
).toString()}"
|
|
74
|
+
).toString()}"${
|
|
75
|
+
this.proxyPath
|
|
76
|
+
? `
|
|
77
|
+
proxy-path="${this.proxyPath}"`
|
|
78
|
+
: ''
|
|
79
|
+
}
|
|
69
80
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
70
81
|
primary-color="#0f4395"
|
|
71
82
|
secondary-color="#8bc832"
|
|
@@ -82,7 +93,12 @@ export class DataViewWebComponentComponent {
|
|
|
82
93
|
api-url="${new URL(
|
|
83
94
|
this.config.basePath,
|
|
84
95
|
window.location.origin
|
|
85
|
-
).toString()}"
|
|
96
|
+
).toString()}"${
|
|
97
|
+
this.proxyPath
|
|
98
|
+
? `
|
|
99
|
+
proxy-path="${this.proxyPath}"`
|
|
100
|
+
: ''
|
|
101
|
+
}
|
|
86
102
|
dataset-id="${metadata.uniqueIdentifier}"
|
|
87
103
|
primary-color="#0f4395"
|
|
88
104
|
secondary-color="#8bc832"
|
|
@@ -97,6 +113,9 @@ export class DataViewWebComponentComponent {
|
|
|
97
113
|
|
|
98
114
|
constructor(
|
|
99
115
|
@Inject(Configuration) private config: Configuration,
|
|
116
|
+
@Optional()
|
|
117
|
+
@Inject(PROXY_PATH)
|
|
118
|
+
private proxyPath: string,
|
|
100
119
|
private facade: MdViewFacade
|
|
101
120
|
) {}
|
|
102
121
|
}
|
|
@@ -45,8 +45,8 @@ export interface TermBucket {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export interface Field {
|
|
48
|
-
entry: Array<
|
|
49
|
-
link:
|
|
48
|
+
entry: Array<unknown>
|
|
49
|
+
link: Record<string, unknown>
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
@Component({
|
|
@@ -75,7 +75,7 @@ export class GpfApiDlComponent implements OnInit {
|
|
|
75
75
|
page$ = new BehaviorSubject(1)
|
|
76
76
|
url =
|
|
77
77
|
'https://data.geopf.fr/telechargement/capabilities?outputFormat=application/json'
|
|
78
|
-
choices:
|
|
78
|
+
choices: { zone: TermBucket[]; format: TermBucket[]; category: TermBucket[] }
|
|
79
79
|
bucketPromisesZone: Choice[]
|
|
80
80
|
bucketPromisesFormat: Choice[]
|
|
81
81
|
bucketPromisesCrs: Choice[]
|
|
@@ -144,8 +144,10 @@ export class GpfApiDlComponent implements OnInit {
|
|
|
144
144
|
})
|
|
145
145
|
)
|
|
146
146
|
|
|
147
|
-
getFilteredProduct$(
|
|
148
|
-
|
|
147
|
+
getFilteredProduct$(
|
|
148
|
+
url
|
|
149
|
+
): Observable<{ entry: unknown[]; totalentries: number }> {
|
|
150
|
+
return this.http.get<{ entry: unknown[]; totalentries: number }>(url)
|
|
149
151
|
}
|
|
150
152
|
|
|
151
153
|
getLinkFormat(produit): string {
|
|
@@ -224,7 +226,7 @@ export class GpfApiDlComponent implements OnInit {
|
|
|
224
226
|
|
|
225
227
|
const tempZone = this.choices.zone.map((bucket) => ({
|
|
226
228
|
value: bucket.term,
|
|
227
|
-
label: bucket.label,
|
|
229
|
+
label: String(bucket.label),
|
|
228
230
|
}))
|
|
229
231
|
tempZone.sort((a, b) => (a.label > b.label ? 1 : -1))
|
|
230
232
|
tempZone.unshift({ value: 'null', label: 'ZONE' })
|
|
@@ -233,7 +235,7 @@ export class GpfApiDlComponent implements OnInit {
|
|
|
233
235
|
|
|
234
236
|
const tempFormat = this.choices.format.map((bucket) => ({
|
|
235
237
|
value: bucket.term,
|
|
236
|
-
label: bucket.label,
|
|
238
|
+
label: String(bucket.label),
|
|
237
239
|
}))
|
|
238
240
|
tempFormat.sort((a, b) => (a.label > b.label ? 1 : -1))
|
|
239
241
|
tempFormat.unshift({ value: 'null', label: 'FORMAT' })
|
|
@@ -242,7 +244,7 @@ export class GpfApiDlComponent implements OnInit {
|
|
|
242
244
|
|
|
243
245
|
const tempCrs = this.choices.category.map((bucket) => ({
|
|
244
246
|
value: bucket.term,
|
|
245
|
-
label: bucket.label,
|
|
247
|
+
label: String(bucket.label),
|
|
246
248
|
}))
|
|
247
249
|
tempCrs.sort((a, b) => (a.label > b.label ? 1 : -1))
|
|
248
250
|
tempCrs.unshift({ value: 'null', label: 'CRS' })
|
package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts
CHANGED
|
@@ -28,7 +28,7 @@ export class GpfApiDlListItemComponent implements OnInit {
|
|
|
28
28
|
@Input() isFromWfs: boolean
|
|
29
29
|
|
|
30
30
|
constructor(protected http: HttpClient) {}
|
|
31
|
-
liste$: Observable<
|
|
31
|
+
liste$: Observable<{ entry: unknown[] }>
|
|
32
32
|
|
|
33
33
|
ngOnInit(): void {
|
|
34
34
|
this.liste$ = this.http
|
|
@@ -112,9 +112,8 @@
|
|
|
112
112
|
type="outline"
|
|
113
113
|
(buttonClick)="toggleLegend()"
|
|
114
114
|
extraClass="absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white"
|
|
115
|
-
translate
|
|
116
115
|
>
|
|
117
|
-
map.legend.title
|
|
116
|
+
{{ 'map.legend.title' | translate }}
|
|
118
117
|
</gn-ui-button>
|
|
119
118
|
|
|
120
119
|
<gn-ui-loading-mask
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
map,
|
|
28
28
|
shareReplay,
|
|
29
29
|
switchMap,
|
|
30
|
-
take,
|
|
31
30
|
tap,
|
|
32
31
|
} from 'rxjs/operators'
|
|
33
32
|
import { MdViewFacade } from '../state/mdview.facade'
|
|
@@ -114,10 +113,15 @@ export class MapViewComponent implements AfterViewInit {
|
|
|
114
113
|
_styleFromConfig = null
|
|
115
114
|
|
|
116
115
|
linkMap: Map<string, DatasetOnlineResource> = new Map()
|
|
116
|
+
// FIXME the map view component should not need a selectedView
|
|
117
117
|
@Input() set selectedView(value: string) {
|
|
118
118
|
this.selectedView$.next(value)
|
|
119
119
|
}
|
|
120
|
-
@Input() set datavizConfig(value:
|
|
120
|
+
@Input() set datavizConfig(value: {
|
|
121
|
+
view?: string
|
|
122
|
+
styleTMSIndex?: number
|
|
123
|
+
source?: DatasetOnlineResource
|
|
124
|
+
}) {
|
|
121
125
|
if (value && value.view === 'map') {
|
|
122
126
|
this.selectedView$.next(value.view)
|
|
123
127
|
if (value.styleTMSIndex) {
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<div class="mt-6 bg-white border border-gray-300 overflow-hidden rounded-lg">
|
|
2
|
+
<div
|
|
3
|
+
class="w-full h-[700px] md:h-[366px] flex md:flex-row flex-col border-b border-gray-300"
|
|
4
|
+
>
|
|
5
|
+
@let filterState = filterState$ | async;
|
|
6
|
+
|
|
7
|
+
<div class="w-full md:w-5/12 h-[366px] flex flex-col">
|
|
8
|
+
<gn-ui-date-range-inputs
|
|
9
|
+
[temporalExtent]="filterState.temporalExtent"
|
|
10
|
+
(temporalExtentChange)="onTemporalExtentChange($event)"
|
|
11
|
+
></gn-ui-date-range-inputs>
|
|
12
|
+
|
|
13
|
+
<div class="mt-auto mb-8 mx-8" *ngIf="isFilterModified$ | async">
|
|
14
|
+
<gn-ui-button
|
|
15
|
+
id="reset-filters-button"
|
|
16
|
+
type="light"
|
|
17
|
+
(buttonClick)="onResetFilters()"
|
|
18
|
+
>
|
|
19
|
+
<span translate>stac.filter.reset</span>
|
|
20
|
+
<ng-icon name="matDeleteOutline" class="ml-2"></ng-icon>
|
|
21
|
+
</gn-ui-button>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div class="w-full md:w-7/12 h-[334px] md:h-[366px] flex flex-col">
|
|
26
|
+
<gn-ui-map-container
|
|
27
|
+
#mapContainer
|
|
28
|
+
[context]="mapContext$ | async"
|
|
29
|
+
(extentChange)="onSpatialExtentChange($event)"
|
|
30
|
+
(resolvedExtentChange)="onResolvedMapExtentChange($event)"
|
|
31
|
+
class="w-full h-full"
|
|
32
|
+
>
|
|
33
|
+
<div
|
|
34
|
+
class="bg-white rounded-xl shadow-xl absolute left-1/2 transform -translate-x-1/2 bottom-0 mb-2.5 px-4 py-2 z-10 max-w-[90%] w-max"
|
|
35
|
+
>
|
|
36
|
+
<gn-ui-check-toggle
|
|
37
|
+
[value]="filterState.isSpatialExtentFilterEnabled"
|
|
38
|
+
(toggled)="onSpatialFilterToggle($event)"
|
|
39
|
+
[label]="'stac.filter.enable' | translate"
|
|
40
|
+
[color]="'primary'"
|
|
41
|
+
></gn-ui-check-toggle>
|
|
42
|
+
</div>
|
|
43
|
+
</gn-ui-map-container>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div
|
|
47
|
+
class="relative mx-5 my-[30px] min-h-[274px] flex items-center justify-center flex-col"
|
|
48
|
+
>
|
|
49
|
+
<!-- Keep grid outside ngIf to keep items$ observable alive -->
|
|
50
|
+
<gn-ui-stac-items-result-grid
|
|
51
|
+
[items]="items$ | async"
|
|
52
|
+
></gn-ui-stac-items-result-grid>
|
|
53
|
+
<div
|
|
54
|
+
*ngIf="(items$ | async)?.length > 0; else noResultsOrError"
|
|
55
|
+
class="mt-[20px] mx-auto flex justify-center"
|
|
56
|
+
>
|
|
57
|
+
<gn-ui-previous-next-buttons
|
|
58
|
+
[listComponent]="this"
|
|
59
|
+
[displayLabels]="true"
|
|
60
|
+
></gn-ui-previous-next-buttons>
|
|
61
|
+
</div>
|
|
62
|
+
<ng-template #noResultsOrError>
|
|
63
|
+
<gn-ui-popup-alert
|
|
64
|
+
*ngIf="error$ | async as error"
|
|
65
|
+
type="warning"
|
|
66
|
+
icon="matErrorOutlineOutline"
|
|
67
|
+
class="absolute left-0 top-0 w-full block"
|
|
68
|
+
>
|
|
69
|
+
<span translate>{{ error }}</span>
|
|
70
|
+
</gn-ui-popup-alert>
|
|
71
|
+
<div
|
|
72
|
+
*ngIf="(error$ | async) === null"
|
|
73
|
+
class="flex items-center justify-center flex-col h-full gap-[10px]"
|
|
74
|
+
>
|
|
75
|
+
<h2 class="text-center text-xl" translate>stac.results.noResults</h2>
|
|
76
|
+
<gn-ui-button
|
|
77
|
+
id="no-results-button"
|
|
78
|
+
type="secondary"
|
|
79
|
+
(buttonClick)="onResetFilters()"
|
|
80
|
+
>
|
|
81
|
+
<span translate>stac.filter.reset</span>
|
|
82
|
+
<ng-icon name="matDeleteOutline" class="ml-2"></ng-icon>
|
|
83
|
+
</gn-ui-button>
|
|
84
|
+
</div>
|
|
85
|
+
</ng-template>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|