@piveau/piveau-hub-ui-modules 4.6.49 → 4.6.50
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/dist/PvBadge/PvBadge.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +2 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxDescription.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFooter.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFormats.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPage.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs +6 -5
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs.map +1 -1
- package/dist/catalogues/Catalogues.vue.mjs.map +1 -1
- package/dist/catalogues/cataloguesFacets/CataloguesFacets.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationModal.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationTable.vue.mjs.map +1 -1
- package/dist/composables/useRuntimeEnv.d.ts +2 -2
- package/dist/configurations/config-schema/apiSchema.mjs +1 -1
- package/dist/configurations/config-schema/authenticationSchema.mjs +1 -1
- package/dist/configurations/config-schema/configSchema.d.ts +5 -5
- package/dist/configurations/config-schema/configSchema.mjs +18 -18
- package/dist/configurations/config-schema/contentSchema.mjs +1 -1
- package/dist/configurations/config-schema/languagesSchema.d.ts +2 -2
- package/dist/configurations/config-schema/languagesSchema.mjs +1 -1
- package/dist/configurations/config-schema/metadataSchema.mjs +1 -1
- package/dist/configurations/config-schema/routingSchema.mjs +1 -1
- package/dist/configurations/config-schema/themesSchema.mjs +1 -1
- package/dist/configurations/config-schema/trackerSchema.mjs +1 -1
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.d.ts +10 -10
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +15 -17
- package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/DataFetchingComponent.vue.d.ts +2 -2
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +2 -1
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InfoSlot.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InputPageStep.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/LanguageSelector.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.d.ts +8 -8
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +2 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleAccessURLInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/WidgetInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +2 -2
- package/dist/data-provider-interface/views/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +5 -5
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs +19 -14
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +12 -14
- package/dist/data-provider-interface/views/InputPage.vue.mjs +4 -2
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/LinkedDataViewer.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/MultilingualProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/StringProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URLProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +3 -5
- package/dist/data-provider-interface/views/OverviewPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/PropertyChooser.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
- package/dist/datasetDetails/AppMarkdownContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsActivityStream.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +3 -2
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +61 -50
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsFeedbackButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsLinkedMetricsButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsQuality.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsShareButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSkeleton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distribution.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionAdded.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionDownloadAsModal.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/DistributionFormat.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +8 -8
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs +2 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +7 -5
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs +15 -12
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownloadAs.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/LinkedDataButtonsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +22 -21
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.d.ts +6 -6
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.d.ts +16 -16
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsDataServices.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +2 -2
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsMap.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsRelations.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsVisualisations.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +2 -2
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.d.ts +7 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +200 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
- package/dist/datasets/DatasetDate.vue.mjs.map +1 -1
- package/dist/datasets/DatasetList.vue.mjs.map +1 -1
- package/dist/datasets/Datasets.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFilters.vue.d.ts +1 -1
- package/dist/datasets/DatasetsFilters.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFiltersTabs.vue.d.ts +2 -2
- package/dist/datasets/DatasetsFiltersTabs.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsTopControls.vue.d.ts +5 -5
- package/dist/datasets/DatasetsTopControls.vue.mjs +8 -6
- package/dist/datasets/DatasetsTopControls.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacetsItem.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsMapFacet.vue.mjs.map +1 -1
- package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
- package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
- package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
- package/dist/external/zod/dist/esm/v3/ZodError +84 -0
- package/dist/external/zod/dist/esm/v3/ZodError.map +1 -0
- package/dist/external/zod/dist/esm/v3/errors +10 -0
- package/dist/external/zod/dist/esm/v3/errors.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil +8 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil +98 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/util +95 -0
- package/dist/external/zod/dist/esm/v3/helpers/util.map +1 -0
- package/dist/external/zod/dist/esm/v3/locales/en +62 -0
- package/dist/external/zod/dist/esm/v3/locales/en.map +1 -0
- package/dist/external/zod/dist/esm/v3/types +2440 -0
- package/dist/external/zod/dist/esm/v3/types.map +1 -0
- package/dist/facets/CatalogDetailsFacet.vue.mjs.map +1 -1
- package/dist/facets/ExpandableSelectFacet.vue.mjs.map +1 -1
- package/dist/facets/Facet.vue.mjs.map +1 -1
- package/dist/facets/FacetTitle.vue.mjs.map +1 -1
- package/dist/facets/RadioFacet.vue.mjs.map +1 -1
- package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -2
- package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
- package/dist/form/FormKitGroup.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue2.mjs +2 -1
- package/dist/form/Repeatable.vue2.mjs.map +1 -1
- package/dist/map/MapBasic.vue.mjs.map +1 -1
- package/dist/map/MapBoundsReceiver.vue.mjs.map +1 -1
- package/dist/map/MapBoundsSender.vue.mjs.map +1 -1
- package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
- package/dist/modal/AppSnackbar.vue.mjs.map +1 -1
- package/dist/modal/AppToast.vue.mjs.map +1 -1
- package/dist/navigation/SubNavigation.vue.mjs.map +1 -1
- package/dist/pages/NotFound.vue.mjs.map +1 -1
- package/dist/pages/SparqlSearch.vue.mjs.map +1 -1
- package/dist/pages/user/UserImprint.vue.mjs.map +1 -1
- package/dist/pages/user/UserPrivacyPolicy.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/search/Search.vue.mjs.map +1 -1
- package/dist/services/datasetService.d.ts +1 -1
- package/dist/widgets/AppLink.vue.mjs.map +1 -1
- package/dist/widgets/Dropdown.vue.mjs.map +1 -1
- package/dist/widgets/Pagination.vue.d.ts +1 -1
- package/dist/widgets/Pagination.vue.mjs.map +1 -1
- package/dist/widgets/PropertyValue.vue.mjs.map +1 -1
- package/dist/widgets/PvBanner.vue.mjs.map +1 -1
- package/dist/widgets/PvButton.vue.mjs.map +1 -1
- package/dist/widgets/PvShowMore.vue.mjs.map +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.d.ts +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.mjs.map +1 -1
- package/dist/widgets/ResourceDetailsLinkedDataButton.vue.mjs.map +1 -1
- package/dist/widgets/Tooltip.vue.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/external/zod/lib/index +0 -2849
- package/dist/external/zod/lib/index.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsProperties.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperties.vue"],"sourcesContent":["<template>\n <div class=\"mt-5 dsd-properties\">\n <div class=\"col-12 mb-2 p-0 dsd-properties-list\">\n <slot name=\"property-header\">\n <dataset-details-feature-header\n :title=\"$t('message.datasetDetails.additionalInfo')\"\n :arrowDown=\"!infoVisible\"\n tag=\"additional-information-toggle\"\n :onClick=\"toggleInfo\"\n />\n </slot>\n <div class=\"position-relative dsd-item additional-information\"\n data-cy=\"additional-information\"\n v-show=\"infoVisible\">\n <slot name=\"property-table-before\"></slot>\n <slot name=\"property-table\">\n <table class=\"table table-borderless table-responsive\" ref=\"dsdProperties\" role=\"tablist\" id=\"myTab\">\n <dataset-details-property v-for='(name, index) in fieldsArray'\n :name=\"name\"\n :translate=\"fieldSchema[name]?.translate\"\n :type=\"fieldSchema[name]?.type\"\n :propertyFields=\"fieldSchema[name]?.fields\"\n :track=\"fieldSchema[name]?.track\"\n :itemstyles=\"fieldSchema[name]?.itemstyles\"\n :preTransform=\"fieldSchema[name]?.preTransform\"\n :transform=\"fieldSchema[name]?.transform\"\n :key=\"index\"/>\n </table>\n </slot>\n <div class=\"additional-information-overlay\" ref=\"overlay\" v-show=\"showMoreVisible && !expanded\"></div>\n <slot name=\"property-table-after\"></slot>\n </div>\n </div>\n <pv-show-more\n v-if=\"showMoreVisible\"\n :label=\"expanded? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"expanded\"\n :action=\"toggleExpanded\"\n class=\"row text-primary\"\n />\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport DatasetDetailsProperty from \"./DatasetDetailsProperty\";\nimport {dcatDeFields, dcatFields, dcatSchema, dcatDeSchema} from \"./specification.ts\";\n\nexport default {\n name: \"DatasetDetailsProperties\",\n components: {\n DatasetDetailsProperty\n },\n data() {\n return {\n infoVisible: true,\n initialHeight: 0,\n restrictedHeight: 100,\n expanded: false,\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDatasetDescriptionHeight'\n ]),\n fieldSchema() {\n return Object.assign(dcatSchema(this.i18n.global.t), dcatDeSchema())\n },\n propertyFields() {\n let properties = this.$env.content?.datasetDetails?.properties;\n if (!properties || properties === \"\") {\n properties = dcatFields;\n if (this.$env.content.dataProviderInterface.specification === 'dcatapde') {\n properties += \",\" + dcatDeFields;\n }\n }\n return properties;\n },\n fieldsArray() {\n return this.propertyFields.split(',').map(item => item.trim());\n },\n showMoreVisible() {\n return this.initialHeight > this.restrictedHeight;\n }\n },\n methods: {\n toggleInfo() {\n this.infoVisible = !this.infoVisible;\n },\n toggleExpanded() {\n this.expanded = ! this.expanded;\n this.adaptHeight();\n },\n adaptHeight() {\n this.$refs.dsdProperties.style['flex'] = this.expanded ? \"0 0 100%\": `0 0 ${this.restrictedHeight}px`;\n this.$refs.dsdProperties.style['max-height'] = this.expanded ? \"100%\": `${this.restrictedHeight}px`;\n // this.$refs.dsdProperties.style['overflow-y'] = this.expanded ? \"auto\": \"hidden\";\n }\n },\n mounted() {\n this.initialHeight = this.$refs.dsdProperties.clientHeight;\n this.$refs.overlay.style.bottom = (this.$refs.dsdProperties.offsetHeight - this.$refs.dsdProperties.clientHeight) + \"px\";\n if (this.getDatasetDescriptionHeight >= this.initialHeight) {\n this.restrictedHeight = this.getDatasetDescriptionHeight;\n this.toggleExpanded()\n } else if ((this.getDatasetDescriptionHeight >= this.restrictedHeight) && (this.getDatasetDescriptionHeight <= this.initialHeight)) {\n this.restrictedHeight = this.getDatasetDescriptionHeight\n }\n this.adaptHeight();\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.arrow {\n cursor: pointer;\n}\n\n.additional-information-overlay {\n width: 100%;\n height: 100px;\n position: absolute;\n left: 0;\n background: linear-gradient(to bottom, rgba(0,0,0,0) 0, white 100%);\n pointer-events: none;\n}\ntable {\n background: #F5F5F5;\n}\n\n</style>\n"],"names":["_sfc_main","DatasetDetailsProperty","mapGetters","dcatSchema","dcatDeSchema","properties","_b","_a","dcatFields","dcatDeFields","item","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","_createVNode","_component_dataset_details_feature_header","$data","$options","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsProperties.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperties.vue"],"sourcesContent":["<template>\n <div class=\"mt-5 dsd-properties\">\n <div class=\"col-12 mb-2 p-0 dsd-properties-list\">\n <slot name=\"property-header\">\n <dataset-details-feature-header\n :title=\"$t('message.datasetDetails.additionalInfo')\"\n :arrowDown=\"!infoVisible\"\n tag=\"additional-information-toggle\"\n :onClick=\"toggleInfo\"\n />\n </slot>\n <div class=\"position-relative dsd-item additional-information\"\n data-cy=\"additional-information\"\n v-show=\"infoVisible\">\n <slot name=\"property-table-before\"></slot>\n <slot name=\"property-table\">\n <table class=\"table table-borderless table-responsive\" ref=\"dsdProperties\" role=\"tablist\" id=\"myTab\">\n <dataset-details-property v-for='(name, index) in fieldsArray'\n :name=\"name\"\n :translate=\"fieldSchema[name]?.translate\"\n :type=\"fieldSchema[name]?.type\"\n :propertyFields=\"fieldSchema[name]?.fields\"\n :track=\"fieldSchema[name]?.track\"\n :itemstyles=\"fieldSchema[name]?.itemstyles\"\n :preTransform=\"fieldSchema[name]?.preTransform\"\n :transform=\"fieldSchema[name]?.transform\"\n :key=\"index\"/>\n </table>\n </slot>\n <div class=\"additional-information-overlay\" ref=\"overlay\" v-show=\"showMoreVisible && !expanded\"></div>\n <slot name=\"property-table-after\"></slot>\n </div>\n </div>\n <pv-show-more\n v-if=\"showMoreVisible\"\n :label=\"expanded? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"expanded\"\n :action=\"toggleExpanded\"\n class=\"row text-primary\"\n />\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport DatasetDetailsProperty from \"./DatasetDetailsProperty\";\nimport {dcatDeFields, dcatFields, dcatSchema, dcatDeSchema} from \"./specification.ts\";\n\nexport default {\n name: \"DatasetDetailsProperties\",\n components: {\n DatasetDetailsProperty\n },\n data() {\n return {\n infoVisible: true,\n initialHeight: 0,\n restrictedHeight: 100,\n expanded: false,\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDatasetDescriptionHeight'\n ]),\n fieldSchema() {\n return Object.assign(dcatSchema(this.i18n.global.t), dcatDeSchema())\n },\n propertyFields() {\n let properties = this.$env.content?.datasetDetails?.properties;\n if (!properties || properties === \"\") {\n properties = dcatFields;\n if (this.$env.content.dataProviderInterface.specification === 'dcatapde') {\n properties += \",\" + dcatDeFields;\n }\n }\n return properties;\n },\n fieldsArray() {\n return this.propertyFields.split(',').map(item => item.trim());\n },\n showMoreVisible() {\n return this.initialHeight > this.restrictedHeight;\n }\n },\n methods: {\n toggleInfo() {\n this.infoVisible = !this.infoVisible;\n },\n toggleExpanded() {\n this.expanded = ! this.expanded;\n this.adaptHeight();\n },\n adaptHeight() {\n this.$refs.dsdProperties.style['flex'] = this.expanded ? \"0 0 100%\": `0 0 ${this.restrictedHeight}px`;\n this.$refs.dsdProperties.style['max-height'] = this.expanded ? \"100%\": `${this.restrictedHeight}px`;\n // this.$refs.dsdProperties.style['overflow-y'] = this.expanded ? \"auto\": \"hidden\";\n }\n },\n mounted() {\n this.initialHeight = this.$refs.dsdProperties.clientHeight;\n this.$refs.overlay.style.bottom = (this.$refs.dsdProperties.offsetHeight - this.$refs.dsdProperties.clientHeight) + \"px\";\n if (this.getDatasetDescriptionHeight >= this.initialHeight) {\n this.restrictedHeight = this.getDatasetDescriptionHeight;\n this.toggleExpanded()\n } else if ((this.getDatasetDescriptionHeight >= this.restrictedHeight) && (this.getDatasetDescriptionHeight <= this.initialHeight)) {\n this.restrictedHeight = this.getDatasetDescriptionHeight\n }\n this.adaptHeight();\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.arrow {\n cursor: pointer;\n}\n\n.additional-information-overlay {\n width: 100%;\n height: 100px;\n position: absolute;\n left: 0;\n background: linear-gradient(to bottom, rgba(0,0,0,0) 0, white 100%);\n pointer-events: none;\n}\ntable {\n background: #F5F5F5;\n}\n\n</style>\n"],"names":["_sfc_main","DatasetDetailsProperty","mapGetters","dcatSchema","dcatDeSchema","properties","_b","_a","dcatFields","dcatDeFields","item","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","_createVNode","_component_dataset_details_feature_header","$data","$options","_withDirectives","_hoisted_3","_hoisted_4","_Fragment","_renderList","name","index","_createBlock","_component_dataset_details_property","_c","_d","_e","_f","_g","_hoisted_5","_vShow","_component_pv_show_more"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsProperty.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperty.vue"],"sourcesContent":["<template>\n <tr v-if=\"show\">\n <td class=\"w-25 text-break font-weight-bold\">\n <tooltip :title=\"labelDisplay[0]\">\n {{ labelDisplay[1] }}\n </tooltip>\n </td>\n <td v-if=\"['string', 'date', 'number', 'first:number', 'translation'].includes(type)\">{{ value }}</td>\n <td v-if=\"type==='uri'\"><a :href='value'>{{ value }}</a></td>\n <td v-if=\"type==='links'\">\n <div v-for=\"(v, i) of value\" :key=\"i\">\n <app-link v-if=\"!isNil(v) && v.link && name !== 'languages'\" :to=\"v.link\">{{ truncate(v.label, 75) }}</app-link>\n <div v-if=\"(!isNil(v) && !v.link) || name === 'languages'\">{{ truncate(v.label, 75) }}</div>\n </div>\n </td>\n <td v-if=\"type==='object'\">\n <values-list :values=\"value\" :interpretTranslateKey=\"interpretTranslateKey\" :itemstyles=\"itemstyles\"/>\n </td>\n <td v-if=\"type==='objects'\">\n <div v-for=\"(item, i) of value\" :key=\"i\">\n <values-list :values=\"item\" :interpretTranslateKey=\"interpretTranslateKey\" :itemstyles=\"itemstyles\"/>\n </div>\n </td>\n </tr>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport Tooltip from \"../../widgets/Tooltip\";\nimport {isNil, isArray} from \"lodash\";\nimport {showByType} from \"./typeCheckers.ts\";\nimport ValuesList from \"./ValuesList\";\nimport {mapGetters} from \"vuex\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\nimport {truncate, getTranslationFor} from \"../../utils/helpers\";\n\nexport default {\n name: \"DatasetDetailsProperty\",\n props: {\n type: String, // Can be any of the types recognized in typeCheckers.ts\n translate: String | Array, // i18n key for the tooltip and label string values (if not given, name is used!)\n name: String, // Key to extract the value from the Datasets store\n propertyFields: String, // Comma-separated keys for extracting data from an object\n itemstyles: String, // Styles to apply to an object key-value block\n track: String, // Comma-separated keys for tracking\n preTransform: Function, // Transform raw data from dataset service\n transform: Function // Transform data after preparing by this.value\n },\n components: {\n Tooltip, AppLink, ValuesList\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getProperty'\n ]),\n labelDisplay() {\n const prefix = [\"message.tooltip.datasetDetails\", \"message.metadata\"];\n let translateItems;\n if (this.translate) {\n translateItems = this.translate.split(',');\n if (translateItems.length === 1) {\n translateItems.push(translateItems[0]);\n }\n } else {\n translateItems = [this.name, this.name];\n }\n return translateItems.map((item, i) => this.interpretTranslateKey(item, prefix[i]));\n },\n data() {\n let d = this.getProperty(this.name);\n if (this.name === 'languages') {\n d.sort((a, b) => {\n if (a.id < b.id) return -1;\n if (a.id > b.id) return 1;\n return 0;\n });\n }\n return d;\n },\n preparedFields() {\n return this.propertyFields?.split(',').map(field => field.split(':'));\n },\n preparedTrack() {\n return this.track?.split(',');\n },\n value() {\n let v = this.data;\n if (this.preTransform) v = this.preTransform(v);\n switch (this.type) {\n case 'date':\n v = dateFilters.formatEU(v);\n break;\n case 'links':\n v = this.data.map(item => {\n if (item) {\n const link = typeof item === 'string'? item : item.resource;\n const label = typeof item === 'string'? item : item.label || item.id || item.resource;\n return { link, label };\n }\n });\n break;\n case 'object':\n v = this.prepareObject(this.data);\n break;\n case 'objects':\n v = this.data.map(item => {\n return this.prepareObject(item);\n });\n break;\n case 'translation':\n v = this.getTranslationFor(v, this.$route.query.locale, ['en']);\n break;\n default:\n if (this.type.startsWith('first')) {\n v = this.data[0];\n }\n }\n if (this.transform) v = this.transform(v);\n return v;\n },\n show() {\n return showByType(this.type, this.data);\n }\n },\n methods: {\n isNil,\n isArray,\n truncate,\n getTranslationFor,\n dateValue() {\n return dateFilters.formatEU(this.value);\n },\n prepareObject(object) {\n // Because this.fields can contain \":\" signs that split a key into an array,\n // we also transform the keys in the case this.fields is undefined into arrays:\n let keys = this.preparedFields ?? Object.keys(object).map(key => [key]);\n\n // Now key[0] holds the actual key in all cases. Check if the value given\n // For a key is undefined and filter them out:\n keys = keys.filter(key => !isNil(object[key[0]]));\n\n return keys.map(key => {\n let value = object[key[0]];\n\n // Values can be arrays for displaying several values. For uniform treatment,\n // transform single values into arrays of length 1:\n if (!isArray(value)) value = [value];\n\n // First step: an object holding key and value:\n const result = {key: key[0], value};\n\n // Enrich the object when appropriate:\n if (key[1] !== undefined) result.type = key[1];\n if (key[2] !== undefined) result.translation = key[2];\n\n return result;\n });\n },\n interpretTranslateKey(key, prefix) {\n // console.log(key);\n \n if (key === '') return '';\n if (key.startsWith('/')) return `${this.i18n.global.t(key.substring(1))}:`;\n if (key.startsWith('\\'')) return key.substring(1, key.length - 1);\n return `${this.i18n.global.t(`${prefix}.${key}`)}:`;\n },\n }\n}\n</script>\n\n<style scoped>\ntr {\n width: 100%;\n}\n.w-25 {\n min-width: 160px;\n}\n\n</style>\n"],"names":["_sfc_main","Tooltip","AppLink","ValuesList","mapGetters","prefix","translateItems","item","i","d","a","b","_a","field","v","dateFilters","link","label","showByType","isNil","isArray","truncate","getTranslationFor","object","keys","key","value","result","_hoisted_2","_hoisted_5","$options","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_createVNode","_component_tooltip","_withCtx","_createTextVNode","_toDisplayString","_cache","$props","_hoisted_3","_createCommentVNode","_hoisted_4","_hoisted_6","_Fragment","_renderList","_createBlock","_component_app_link","_hoisted_7","_hoisted_8","_component_values_list","_hoisted_9"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetDetailsProperty.vue.mjs","sources":["../../../lib/datasetDetails/properties/DatasetDetailsProperty.vue"],"sourcesContent":["<template>\n <tr v-if=\"show\">\n <td class=\"w-25 text-break font-weight-bold\">\n <tooltip :title=\"labelDisplay[0]\">\n {{ labelDisplay[1] }}\n </tooltip>\n </td>\n <td v-if=\"['string', 'date', 'number', 'first:number', 'translation'].includes(type)\">{{ value }}</td>\n <td v-if=\"type==='uri'\"><a :href='value'>{{ value }}</a></td>\n <td v-if=\"type==='links'\">\n <div v-for=\"(v, i) of value\" :key=\"i\">\n <app-link v-if=\"!isNil(v) && v.link && name !== 'languages'\" :to=\"v.link\">{{ truncate(v.label, 75) }}</app-link>\n <div v-if=\"(!isNil(v) && !v.link) || name === 'languages'\">{{ truncate(v.label, 75) }}</div>\n </div>\n </td>\n <td v-if=\"type==='object'\">\n <values-list :values=\"value\" :interpretTranslateKey=\"interpretTranslateKey\" :itemstyles=\"itemstyles\"/>\n </td>\n <td v-if=\"type==='objects'\">\n <div v-for=\"(item, i) of value\" :key=\"i\">\n <values-list :values=\"item\" :interpretTranslateKey=\"interpretTranslateKey\" :itemstyles=\"itemstyles\"/>\n </div>\n </td>\n </tr>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport Tooltip from \"../../widgets/Tooltip\";\nimport {isNil, isArray} from \"lodash\";\nimport {showByType} from \"./typeCheckers.ts\";\nimport ValuesList from \"./ValuesList\";\nimport {mapGetters} from \"vuex\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\nimport {truncate, getTranslationFor} from \"../../utils/helpers\";\n\nexport default {\n name: \"DatasetDetailsProperty\",\n props: {\n type: String, // Can be any of the types recognized in typeCheckers.ts\n translate: String | Array, // i18n key for the tooltip and label string values (if not given, name is used!)\n name: String, // Key to extract the value from the Datasets store\n propertyFields: String, // Comma-separated keys for extracting data from an object\n itemstyles: String, // Styles to apply to an object key-value block\n track: String, // Comma-separated keys for tracking\n preTransform: Function, // Transform raw data from dataset service\n transform: Function // Transform data after preparing by this.value\n },\n components: {\n Tooltip, AppLink, ValuesList\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getProperty'\n ]),\n labelDisplay() {\n const prefix = [\"message.tooltip.datasetDetails\", \"message.metadata\"];\n let translateItems;\n if (this.translate) {\n translateItems = this.translate.split(',');\n if (translateItems.length === 1) {\n translateItems.push(translateItems[0]);\n }\n } else {\n translateItems = [this.name, this.name];\n }\n return translateItems.map((item, i) => this.interpretTranslateKey(item, prefix[i]));\n },\n data() {\n let d = this.getProperty(this.name);\n if (this.name === 'languages') {\n d.sort((a, b) => {\n if (a.id < b.id) return -1;\n if (a.id > b.id) return 1;\n return 0;\n });\n }\n return d;\n },\n preparedFields() {\n return this.propertyFields?.split(',').map(field => field.split(':'));\n },\n preparedTrack() {\n return this.track?.split(',');\n },\n value() {\n let v = this.data;\n if (this.preTransform) v = this.preTransform(v);\n switch (this.type) {\n case 'date':\n v = dateFilters.formatEU(v);\n break;\n case 'links':\n v = this.data.map(item => {\n if (item) {\n const link = typeof item === 'string'? item : item.resource;\n const label = typeof item === 'string'? item : item.label || item.id || item.resource;\n return { link, label };\n }\n });\n break;\n case 'object':\n v = this.prepareObject(this.data);\n break;\n case 'objects':\n v = this.data.map(item => {\n return this.prepareObject(item);\n });\n break;\n case 'translation':\n v = this.getTranslationFor(v, this.$route.query.locale, ['en']);\n break;\n default:\n if (this.type.startsWith('first')) {\n v = this.data[0];\n }\n }\n if (this.transform) v = this.transform(v);\n return v;\n },\n show() {\n return showByType(this.type, this.data);\n }\n },\n methods: {\n isNil,\n isArray,\n truncate,\n getTranslationFor,\n dateValue() {\n return dateFilters.formatEU(this.value);\n },\n prepareObject(object) {\n // Because this.fields can contain \":\" signs that split a key into an array,\n // we also transform the keys in the case this.fields is undefined into arrays:\n let keys = this.preparedFields ?? Object.keys(object).map(key => [key]);\n\n // Now key[0] holds the actual key in all cases. Check if the value given\n // For a key is undefined and filter them out:\n keys = keys.filter(key => !isNil(object[key[0]]));\n\n return keys.map(key => {\n let value = object[key[0]];\n\n // Values can be arrays for displaying several values. For uniform treatment,\n // transform single values into arrays of length 1:\n if (!isArray(value)) value = [value];\n\n // First step: an object holding key and value:\n const result = {key: key[0], value};\n\n // Enrich the object when appropriate:\n if (key[1] !== undefined) result.type = key[1];\n if (key[2] !== undefined) result.translation = key[2];\n\n return result;\n });\n },\n interpretTranslateKey(key, prefix) {\n // console.log(key);\n \n if (key === '') return '';\n if (key.startsWith('/')) return `${this.i18n.global.t(key.substring(1))}:`;\n if (key.startsWith('\\'')) return key.substring(1, key.length - 1);\n return `${this.i18n.global.t(`${prefix}.${key}`)}:`;\n },\n }\n}\n</script>\n\n<style scoped>\ntr {\n width: 100%;\n}\n.w-25 {\n min-width: 160px;\n}\n\n</style>\n"],"names":["_sfc_main","Tooltip","AppLink","ValuesList","mapGetters","prefix","translateItems","item","i","d","a","b","_a","field","v","dateFilters","link","label","showByType","isNil","isArray","truncate","getTranslationFor","object","keys","key","value","result","_hoisted_2","$options","_createElementBlock","_hoisted_1","_createElementVNode","_createVNode","_component_tooltip","$props","_openBlock","_hoisted_4","_hoisted_5","_hoisted_6","_Fragment","_renderList","_createBlock","_component_app_link","_hoisted_7","_toDisplayString","_hoisted_8","_component_values_list","_hoisted_9"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">{{ displayValue(item, v.type) }}</app-link>\n </div>\n <div v-else-if=\"isLink(v)\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a v-for=\"(item, j) in v.value\" :key=\"j\" :href=\"item\"\n :target=\"v.type==='link_blank'? '_blank':undefined\"\n @click=\"handleClick(item, v)\">\n {{ displayValue(item, v.type) }}\n </a>\n </div>\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array, // Expected format: array of objects with \"key\" and \"value\" field, where\n // \"key\" is a string and \"value\" is an array of strings (a single value\n // is represented by n array of length 1). Additionally, a \"type\" field\n // and a translation field may be included. If type is \"link\" we display\n // a link, if translation is given, it is used for the i18n value for the label.\n // Special cases of translation: in single quotes, use the literal string instead\n // of a i18n translation; if starting with a slash, use the value as an i18n key\n // literally, instead of appending it to \"message.metadata.\"\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n getLabel(v) {\n const prefix = \"message.metadata\";\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage'].includes(key) || type === 'link' || type === 'link_blank';//|| key.endsWith('url') || key.endsWith('uri');\n },\n displayValue(item, type) {\n switch(type) {\n case 'date': return dateFilters.formatEU(item);\n default:\n return typeof item === 'string'? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n .dsd-properties-inner-label {\n white-space: pre;\n }\n</style>\n"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","v","prefix","key","type","_a","item","dateFilters","_hoisted_1","_hoisted_2","
|
|
1
|
+
{"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">{{ displayValue(item, v.type) }}</app-link>\n </div>\n <div v-else-if=\"isLink(v)\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a v-for=\"(item, j) in v.value\" :key=\"j\" :href=\"item\"\n :target=\"v.type==='link_blank'? '_blank':undefined\"\n @click=\"handleClick(item, v)\">\n {{ displayValue(item, v.type) }}\n </a>\n </div>\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array, // Expected format: array of objects with \"key\" and \"value\" field, where\n // \"key\" is a string and \"value\" is an array of strings (a single value\n // is represented by n array of length 1). Additionally, a \"type\" field\n // and a translation field may be included. If type is \"link\" we display\n // a link, if translation is given, it is used for the i18n value for the label.\n // Special cases of translation: in single quotes, use the literal string instead\n // of a i18n translation; if starting with a slash, use the value as an i18n key\n // literally, instead of appending it to \"message.metadata.\"\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n getLabel(v) {\n const prefix = \"message.metadata\";\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage'].includes(key) || type === 'link' || type === 'link_blank';//|| key.endsWith('url') || key.endsWith('uri');\n },\n displayValue(item, type) {\n switch(type) {\n case 'date': return dateFilters.formatEU(item);\n default:\n return typeof item === 'string'? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n .dsd-properties-inner-label {\n white-space: pre;\n }\n</style>\n"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","v","prefix","key","type","_a","item","dateFilters","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_openBlock","_Fragment","_renderList","$props","i","_normalizeClass","_createElementVNode","_toDisplayString","$options","j","_createBlock","_component_app_link","_createTextVNode","$event","_hoisted_3"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDate.vue.mjs","sources":["../../lib/datasets/DatasetDate.vue"],"sourcesContent":["<template>\n <span\n class=\"d-inline-block\"\n :title=\"\n isIncorrectDate()\n ? 'This date is incorrect or incomplete, please contact the data provider.'\n : null\n \"\n >\n <span :class=\"{ 'date-incorrect': isIncorrectDate() }\" class=\"mr-1\">{{ filterDateFormatEU }}</span>\n <font-awesome-icon\n v-if=\"isIncorrectDate()\"\n class=\"date-incorrect-exclamation-triangle\"\n :icon=\"['fas', 'exclamation-triangle']\"\n />\n </span>\n</template>\n\n<script>\n import { mapActions } from 'vuex';\n import dayjs from 'dayjs';\n import dateFilters from '../filters/dateFilters';\n\n export default {\n props: ['date', 'toolTipTitle'],\n computed: {\n filterDateFormatUS() {\n return dateFilters.formatUS(this.date);\n },\n filterDateFormatEU() {\n return dateFilters.formatEU(this.date);\n },\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'setDateIncorrect',\n ]),\n // Checks date plausibility. Returns true, if the date is not plausible.\n isIncorrectDate() {\n // Falsy dates are considered as intentionally blank and are correct.\n if (!this.date) return false;\n const m = dayjs(String(this.date));\n if (!m.isValid()) {\n this.setDateIncorrect();\n return true;\n }\n\n // Dates in the future are incorrect.\n if (dayjs().diff(m) < 0) {\n this.setDateIncorrect();\n return true;\n }\n\n return false;\n },\n },\n mounted() {\n this.$nextTick(() => {\n // To force event emit\n this.isIncorrectDate();\n });\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n.date-incorrect {\n color: #a1a1a1;\n}\n\n.date-incorrect-exclamation-triangle {\n color: #ffaa00;\n}\n</style>\n"],"names":["_sfc_main","dateFilters","mapActions","m","dayjs","
|
|
1
|
+
{"version":3,"file":"DatasetDate.vue.mjs","sources":["../../lib/datasets/DatasetDate.vue"],"sourcesContent":["<template>\n <span\n class=\"d-inline-block\"\n :title=\"\n isIncorrectDate()\n ? 'This date is incorrect or incomplete, please contact the data provider.'\n : null\n \"\n >\n <span :class=\"{ 'date-incorrect': isIncorrectDate() }\" class=\"mr-1\">{{ filterDateFormatEU }}</span>\n <font-awesome-icon\n v-if=\"isIncorrectDate()\"\n class=\"date-incorrect-exclamation-triangle\"\n :icon=\"['fas', 'exclamation-triangle']\"\n />\n </span>\n</template>\n\n<script>\n import { mapActions } from 'vuex';\n import dayjs from 'dayjs';\n import dateFilters from '../filters/dateFilters';\n\n export default {\n props: ['date', 'toolTipTitle'],\n computed: {\n filterDateFormatUS() {\n return dateFilters.formatUS(this.date);\n },\n filterDateFormatEU() {\n return dateFilters.formatEU(this.date);\n },\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'setDateIncorrect',\n ]),\n // Checks date plausibility. Returns true, if the date is not plausible.\n isIncorrectDate() {\n // Falsy dates are considered as intentionally blank and are correct.\n if (!this.date) return false;\n const m = dayjs(String(this.date));\n if (!m.isValid()) {\n this.setDateIncorrect();\n return true;\n }\n\n // Dates in the future are incorrect.\n if (dayjs().diff(m) < 0) {\n this.setDateIncorrect();\n return true;\n }\n\n return false;\n },\n },\n mounted() {\n this.$nextTick(() => {\n // To force event emit\n this.isIncorrectDate();\n });\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n.date-incorrect {\n color: #a1a1a1;\n}\n\n.date-incorrect-exclamation-triangle {\n color: #ffaa00;\n}\n</style>\n"],"names":["_sfc_main","dateFilters","mapActions","m","dayjs","_createElementBlock","$options","_createElementVNode","_normalizeClass","_createBlock","_component_font_awesome_icon"],"mappings":";;;;;;AAuBE,MAAKA,IAAU;AAAA,EACb,OAAO,CAAC,QAAQ,cAAc;AAAA,EAC9B,UAAU;AAAA,IACR,qBAAqB;AACnB,aAAOC,EAAY,SAAS,KAAK,IAAI;AAAA,IACtC;AAAA,IACD,qBAAqB;AACnB,aAAOA,EAAY,SAAS,KAAK,IAAI;AAAA,IACtC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA;AAAA,IAED,kBAAkB;AAEhB,UAAI,CAAC,KAAK;AAAM,eAAO;AACvB,YAAMC,IAAIC,EAAM,OAAO,KAAK,IAAI,CAAC;AACjC,aAAKD,EAAE,YAMHC,EAAK,EAAG,KAAKD,CAAC,IAAI,KACpB,KAAK,iBAAgB,GACd,MAGF,MAVL,KAAK,iBAAgB,GACd;AAAA,IAUV;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,UAAU,MAAM;AAEnB,WAAK,gBAAe;AAAA,IACtB,CAAC;AAAA,EACF;;;;cA5DHE,EAcO,QAAA;AAAA,IAbL,OAAM;AAAA,IACL,OAAcC,EAAe,gBAAA;;IAM9BC,EAAmG,QAAA;AAAA,MAA5F,OAAKC,EAAA,CAAA,EAAA,kBAAsBF,EAAe,gBAAA,EAAA,GAAY,MAAM,CAAA;AAAA,SAAIA,EAAkB,kBAAA,GAAA,CAAA;AAAA;IAEjFA,EAAe,gBAAA,UADvBG,EAIEC,GAAA;AAAA;MAFA,OAAM;AAAA,MACL,MAAM,CAA+B,OAAA,sBAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetList.vue.mjs","sources":["../../lib/datasets/DatasetList.vue"],"sourcesContent":["<template>\n <component :is=\"as\">\n <template v-for=\"(dataset, idx) in computedDatasets\">\n <slot :dataset=\"dataset\" :raw-dataset=\"datasets[idx]\" :index=\"idx\">\n <pv-data-info-box\n :key=\"dataset.id\"\n :to=\"`/datasets/${dataset.id}`\"\n :src=\"dataset.src\"\n :dataset=\"dataset.dataset\"\n :description-max-length=\"1000\"\n :data-cy=\"`dataset@${dataset.id}`\"\n class=\"mt-3\"\n />\n </slot>\n </template>\n </component>\n</template>\n\n<script lang=\"ts\" setup>\nimport PvDataInfoBox from '../PvDataInfoBox/PvDataInfoBox.vue'\n\nimport { useDataInfoBox } from '../composables/useDataInfoBox';\n\nconst props = withDefaults(defineProps<{\n as?: string;\n datasets: any;\n locale: string;\n}>(), {\n as: 'div'\n})\n\nconst computedDatasets = useDataInfoBox({ \n datasets: props.datasets,\n locale: props.locale\n })\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>"],"names":["props","__props","computedDatasets","useDataInfoBox"],"mappings":";;;;;;;;;;;AAuBA,UAAMA,IAAQC,GAQRC,IAAmBC,EAAe;AAAA,MACtC,UAAUH,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,IAAA,CACd
|
|
1
|
+
{"version":3,"file":"DatasetList.vue.mjs","sources":["../../lib/datasets/DatasetList.vue"],"sourcesContent":["<template>\n <component :is=\"as\">\n <template v-for=\"(dataset, idx) in computedDatasets\">\n <slot :dataset=\"dataset\" :raw-dataset=\"datasets[idx]\" :index=\"idx\">\n <pv-data-info-box\n :key=\"dataset.id\"\n :to=\"`/datasets/${dataset.id}`\"\n :src=\"dataset.src\"\n :dataset=\"dataset.dataset\"\n :description-max-length=\"1000\"\n :data-cy=\"`dataset@${dataset.id}`\"\n class=\"mt-3\"\n />\n </slot>\n </template>\n </component>\n</template>\n\n<script lang=\"ts\" setup>\nimport PvDataInfoBox from '../PvDataInfoBox/PvDataInfoBox.vue'\n\nimport { useDataInfoBox } from '../composables/useDataInfoBox';\n\nconst props = withDefaults(defineProps<{\n as?: string;\n datasets: any;\n locale: string;\n}>(), {\n as: 'div'\n})\n\nconst computedDatasets = useDataInfoBox({ \n datasets: props.datasets,\n locale: props.locale\n })\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>"],"names":["props","__props","computedDatasets","useDataInfoBox","_openBlock","_createBlock","_resolveDynamicComponent","as","_createElementBlock","_Fragment","_renderList","_unref","dataset","idx","_renderSlot","_ctx","datasets","PvDataInfoBox"],"mappings":";;;;;;;;;;;AAuBA,UAAMA,IAAQC,GAQRC,IAAmBC,EAAe;AAAA,MACtC,UAAUH,EAAM;AAAA,MAChB,QAAQA,EAAM;AAAA,IAAA,CACd;sBAjCAI,EAAA,GAAAC,EAcYC,EAdIC,EAAE,EAAA,GAAA,MAAA;AAAA,iBACN,MAA0C;AAAA,SAApDH,EAAA,EAAA,GAAAI,EAYWC,GAZwB,MAAAC,EAAAC,EAAAT,CAAA,GAAjB,CAAAU,GAASC,MACzBC,EAUOC,EAAA,QAAA,WAAA;AAAA,UAVA,SAAAH;AAAA,UAAmB,YAAaI,EAAQ,SAACH,CAAG;AAAA,UAAI,OAAOA;AAAA,QAAA,GAA9D,MAUO;AAAA,aATL,GAAAR,EAQEY,GAAA;AAAA,YAPC,KAAKL,EAAQ;AAAA,YACb,IAAE,aAAeA,EAAQ,EAAE;AAAA,YAC3B,KAAKA,EAAQ;AAAA,YACb,SAASA,EAAQ;AAAA,YACjB,0BAAwB;AAAA,YACxB,WAAO,WAAaA,EAAQ,EAAE;AAAA,YAC/B,OAAM;AAAA,UAAA;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Datasets.vue.mjs","sources":["../../lib/datasets/Datasets.vue"],"sourcesContent":["<template>\n <div class=\"datasets-container d-flex flex-column p-0 bg-transparent\">\n <datasets-top-controls\n :facets=\"facets\"\n :getPage=\"getPage\"\n :getLimit=\"getLimit\"\n class=\"datasets-top-controls\"\n />\n <div class=\"container-fluid datasets content\">\n <slot name=\"title\">\n <h1 class=\"row col-12 page-title catalog-title text-primary\" v-if=\"showCatalogDetails\">\n {{ getTranslationFor(getCatalog.title, $route.query.locale, getCatalog.languages) }}</h1>\n <h1 class=\"row col-12 page-title text-primary\" v-else>{{ $t('message.header.navigation.data.datasets') }}</h1>\n </slot>\n <slot\n name=\"content\"\n :datasets-count=\"getDatasetsCount\"\n :datasets=\"getDatasets\"\n :locale=\"$route.query.locale\"\n :loading=\"getLoading\"\n :use-dataset-facets=\"useDatasetFacets\"\n :facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n <div class=\"row\">\n <div class=\"col d-flex d-md-none justify-content-end flex-wrap\">\n <button class=\"btn btn-primary mb-3 text-right text-white\" data-toggle=\"collapse\"\n data-target=\"#datasetFacets\" data-cy=\"btn-filter-toggle\"\n @click=\"filterCollapsed = !filterCollapsed\">\n <i class=\"material-icons small-icon align-bottom\" v-if=\"filterCollapsed\">arrow_drop_up</i>\n <i class=\"material-icons small-icon align-bottom\" v-else>arrow_drop_down</i>\n </button>\n </div>\n <datasets-facets\n v-if=\"useDatasetFacets\"\n class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\" id=\"datasetFacets\"\n :dataScope=\"dataScope\"\n :available-facets=\"getAllAvailableFacets\"\n ></datasets-facets>\n<!-- <facets-->\n<!-- :facetsConfig=\"getAllAvailableFacets\"-->\n<!-- :facetsIds=\"$env.content.datasets.facets.defaultFacetOrder\"-->\n<!-- class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\"-->\n<!-- id=\"datasetFacets\">-->\n<!-- </facets>-->\n <section class=\"col-md-9 col-12\">\n <slot name=\"datasets-filters\">\n <datasets-filters/>\n </slot>\n <slot name=\"datasets-found\" :data=\"{\n loading: getLoading,\n datasetsCount: getDatasetsCount,\n datasetsCountFormatted: getDatasetsCount.toLocaleString('fi'),\n loadingMessage: $t('message.datasets.loadingMessage'),\n countMessage: $t('message.datasets.countMessage'),\n }\">\n <div class=\"datasets-found alert alert-primary mt-3 d-flex flex-row\" role=\"status\"\n :class=\"{ 'alert-danger': getDatasetsCount <= 0 && !getLoading}\">\n <div>\n {{\n getLoading ? $t('message.datasets.loadingMessage') : `${getDatasetsCount.toLocaleString('fi')}\n ${$t('message.datasets.countMessage')}`\n }}\n </div>\n <div class=\"loading-spinner ml-3\" v-if=\"getLoading\"></div>\n </div>\n </slot>\n <div class=\"alert alert-warning mt-3 d-flex flex-row\" v-if=\"showScoreDisclaimer\">\n <span>\n {{ $t(\"message.datasets.scoreDisclaimer\") }}\n <app-link path=\"/mqa\" :query=\"{ locale: $route.query.locale }\" target=\"_blank\">\n <span>{{ $t(\"message.metadata.methodologyPage\") }}</span>\n </app-link>\n </span>\n </div>\n <!--\n <div class=\"alert alert-info mt-3\" v-if=\"getGeoBoundsById('modal-map')\">\n {{`${$t('message.datasets.geoBoundsMessagePre')}`}}<strong>{{getGeoBoundsById('modal-map')}}</strong>{{`. ${$t('message.datasets.geoBoundsMessageRemove')}`}}\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" @click=\"resetGeoBounds('modal-map'); loadDatasets({})\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n -->\n <selectedFacetsOverview\n v-if=\"getFacets\"\n :selected-facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n </selectedFacetsOverview>\n <template v-if=\"!getLoading\">\n <dataset-list :datasets=\"getDatasets\" :locale=\"$route.query.locale || 'en'\"></dataset-list>\n </template>\n <div class=\"loading-spinner mx-auto mt-3 mb-3\" v-if=\"getLoading\"></div>\n </section>\n </div>\n </slot>\n <div class=\"row\">\n <div class=\"column col-12 col-md-9 offset-md-3\">\n <pagination class=\"mt-3\"\n :items-count=\"getDatasetsCount\"\n :items-per-page=\"getLimit\"\n :get-page=\"getPage\"\n :get-page-count=\"getPageCount\"\n @setPageLimit=\"setPageLimit\"></pagination>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n /* eslint-disable no-undef */\n import { mapActions, mapGetters } from 'vuex';\n import {\n debounce,\n has,\n groupBy,\n uniqBy,\n toPairs,\n isArray,\n isNil,\n } from 'lodash-es';\n import $ from 'jquery';\n import fileTypes from '../utils/fileTypes';\n import Pagination from '../widgets/Pagination.vue';\n import SelectedFacetsOverview from '../facets/SelectedFacetsOverview';\n import AppLink from '../widgets/AppLink.vue';\n import { getTranslationFor, truncate, getImg } from '../utils/helpers';\n import DatasetsTopControls from \"../datasets/DatasetsTopControls.vue\";\n import DatasetsFilters from \"../datasets/DatasetsFilters.vue\";\n import DatasetList from './DatasetList.vue'\n import { useDatasetsHead } from '../composables/head'\n // import Facets from \"../facets_2.0/Facets.vue\"\n import DatasetsFacets from './datasetsFacets/DatasetsFacets.vue';\nexport default {\n name: 'Datasets',\n components: {\n DatasetsFilters,\n DatasetsTopControls,\n appLink: AppLink,\n selectedFacetsOverview: SelectedFacetsOverview,\n datasetsFacets: DatasetsFacets,\n pagination: Pagination,\n DatasetList,\n // Facets\n },\n props: {\n infiniteScrolling: {\n type: Boolean,\n default: false,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n }\n },\n data() {\n return {\n baseUrl: this.$env.api.baseUrl,\n debouncedOnBottomScroll: debounce(this.onBottomScroll, 500),\n facetFields: [],\n lang: this.locale,\n filterCollapsed: true,\n catalogAllowed: false,\n useDatasetFacets: this.$env.content.datasets.facets.useDatasetFacets\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getDatasets',\n 'getDatasetsCount',\n 'getLimit',\n 'getLoading',\n 'getOffset',\n 'getPage',\n 'getPageCount',\n 'getMinScoring',\n ]),\n ...mapGetters('datasets', {\n // Rename getters to something different because we'll perform some modifications on them.\n // These modifications involve removing catalog related information from facets for fixed catalog filter mode\n getAllAvailableFacetsOriginal: 'getAllAvailableFacets',\n getFacetsOriginal: 'getFacets',\n }),\n showCatalogDetails() {\n return !isNil(this.$route.params.ctlg_id) || this.fixedCatalogFilter;\n },\n /**\n * @description Returns the current page.\n * @returns {Number}\n *\n * @deprecated use getPage from datasets store instead\n */\n page() {\n return this.$route.query.page;\n },\n /**\n * @description Returns the active facets according to the route parameters.\n * @returns {Object}\n */\n facets() {\n const facetFields = this.$env.content.datasets.facets.defaultFacetOrder;\n const wantsToLoadCatalogByParamOrProp = this.showCatalogDetails;\n\n const facetObj = facetFields.reduce((acc, field) => {\n acc[field] = (wantsToLoadCatalogByParamOrProp && field === 'catalog' && !this.fixedCatalogFilter)\n ? [this.$route.params.ctlg_id || undefined]\n : this.getUrlFacetsOrDefault(field);\n\n return acc;\n }, {});\n\n // if fixedCatalogFilter is set, then set it as superCatalog\n // requirement by bayern\n const facetObjWithMaybeDefaultSuperCatalog = this.fixedCatalogFilter\n ? {\n ...facetObj,\n superCatalog: [this.fixedCatalogFilter],\n }\n : facetObj;\n\n return facetObjWithMaybeDefaultSuperCatalog;\n },\n\n getAllAvailableFacets() {\n return this.showCatalogDetails\n ? this.getAllAvailableFacetsOriginal.filter(facet => facet.id !== 'catalog')\n : this.getAllAvailableFacetsOriginal;\n },\n\n getFacets() {\n // Returns a record of facets with the catalog facet removed if we're in fixed catalog filter mode\n return this.showCatalogDetails\n ? {\n ...this.getFacetsOriginal,\n catalog: []\n }\n : this.getFacetsOriginal;\n },\n\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showScoreDisclaimer() {\n return this.getMinScoring > 0;\n },\n dataScope() {\n if (!this.$route.query.dataScope) return null;\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length > 0) return this.$route.query.dataScope[0];\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length === 0) return null;\n return this.$route.query.dataScope;\n },\n },\n methods: {\n isNil,\n ...mapActions('datasets', [\n 'loadDatasets',\n 'loadAdditionalDatasets',\n 'setPage',\n 'setSort',\n 'addFacet',\n 'removeFacet',\n 'setFacets',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setPageCount',\n 'setLimit',\n 'setLoading',\n 'setDataScope',\n ]),\n // The imported Lodash has function. Must be defined in Methods so we can use it in template\n has,\n isArray,\n truncate,\n getTranslationFor,\n getImg,\n /**\n * @description Handler-function for the scroll event.\n */\n onScroll() {\n const items = this.$el.querySelectorAll('.dataset');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const lastItemPos = lastItem.getBoundingClientRect();\n if (lastItemPos.bottom - window.innerHeight <= 0) {\n this.debouncedOnBottomScroll();\n }\n }\n },\n /**\n * @description Handler-function when bottom of the page is reached.\n */\n onBottomScroll() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadAdditionalDatasets()\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n initLimit() {\n const limit = parseInt(this.$route.query.limit, 10);\n if (limit > 0) this.setLimit(limit);\n },\n initSort() {\n const sort = this.$route.query.sort;\n if (sort) this.setSort(sort);\n },\n setPageLimit(value) {\n this.setLimit(value);\n this.initDatasets();\n },\n initDataScope() {\n this.setDataScope(this.dataScope);\n },\n /**\n * @description Determines the current page.\n */\n initPage() {\n const page = parseInt(this.$route.query.page, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n /**\n * @descritption Initialize the active facets by checking the route parameters\n */\n initFacets() {\n const fields = this.$env.content.datasets.facets.defaultFacetOrder;\n const facetsFromRouteParams = this.facets;\n\n this.facetFields.push(...fields);\n\n // Get fields that don't exist in the router query\n const fieldsNotInRouterQuery = fields.filter(field => {\n const fieldExists = facetsFromRouteParams[field] && facetsFromRouteParams[field].length > 0;\n return !fieldExists && !this.$route.query[field];\n });\n\n // Construct route query parameters to be added\n const routeQueryParamsToBeAdded = fieldsNotInRouterQuery.reduce((acc, field) => {\n acc[field] = [];\n return acc;\n }, {});\n // Add the route query params that are missing\n if (Object.keys(routeQueryParamsToBeAdded) > 0) {\n this.$router.push({query: {...this.$route.query, ...routeQueryParamsToBeAdded}});\n }\n\n this.setFacets(facetsFromRouteParams);\n },\n\n\n getUrlFacetsOrDefault(field) {\n const urlFacets = this.$route.query[field];\n return Array.isArray(urlFacets) ? urlFacets : (urlFacets ? [urlFacets] : []);\n },\n\n initFacetOperator() {\n // Always set facet operator to AND when in catalog details mode\n if (this.showCatalogDetails) this.setFacetOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetOperator(op);\n }\n },\n initFacetGroupOperator() {\n // The facetGroupOperator should be the same as the facetOperator\n // Always set facet operator to AND when\n // in catalog details mode\n if (this.showCatalogDetails) this.setFacetGroupOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetGroupOperator(op);\n }\n },\n /**\n * @descritption Initialize the active data services facet by checking the route parameters\n */\n initDataServices() {\n const ds = this.$route.query.dataServices;\n if (ds === 'true' || ds === 'false') this.setDataServices(ds);\n else {\n this.setDataServices('false');\n }\n },\n initDatasets() {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.setPageCount(Math.ceil(this.getDatasetsCount / this.getLimit));\n this.$Progress.finish();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n })\n .catch((error) => {\n console.error(error)\n this.$Progress.fail();\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n });\n });\n },\n initInfiniteScrolling() {\n if (this.infiniteScrolling) window.addEventListener('scroll', this.onScroll);\n },\n getFileTypeColor(format) {\n return fileTypes.getFileTypeColor(format);\n },\n },\n watch: {\n // eslint-disable-next-line object-shorthand\n page(pageStr) {\n const page = parseInt(pageStr, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n dataScope: {\n handler() {\n this.initDataScope();\n },\n deep: true,\n },\n },\n created() {\n this.initDataScope();\n this.initLimit();\n this.initSort();\n this.initPage();\n this.initFacetOperator();\n this.initFacetGroupOperator();\n this.initDataServices();\n this.initFacets();\n this.initDatasets();\n this.initInfiniteScrolling();\n },\n mounted() {\n // This is supposed to fix the browser issue (https://gitlab.fokus.fraunhofer.de/piveau/organisation/piveau-scrum-board/-/issues/2344)\n if (this.$route.query.refresh === 'true') {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.$router.push({query: {locale: this.$route.query.locale}});\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n });\n }\n },\n beforeUnmount() {\n $('.tooltip').remove();\n if (this.infiniteScrolling) window.removeEventListener('scroll', this.onScroll);\n },\n setup() {\n useDatasetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n\n.alert-primary {\n color: #042648;\n background-color: #cddbe8;\n border-color: #baccdf;\n}\n\n.page-title {\n // maybe we can change custom theme h1 to 3rem\n font-size: 3rem;\n margin-bottom: 15px;\n}\n\n.content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n\n &:hover {\n color: #175baf;\n }\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n\n@media screen and (min-width: 768px) {\n #datasetFacets {\n display: block\n }\n}\n</style>\n"],"names":["_sfc_main","DatasetsFilters","DatasetsTopControls","AppLink","SelectedFacetsOverview","DatasetsFacets","Pagination","DatasetList","debounce","mapGetters","isNil","facetFields","wantsToLoadCatalogByParamOrProp","facetObj","acc","field","facet","isArray","mapActions","has","truncate","getTranslationFor","getImg","items","lastItem","limit","sort","value","page","fields","facetsFromRouteParams","routeQueryParamsToBeAdded","urlFacets","op","ds","$","error","format","fileTypes","pageStr","useDatasetsHead","_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_13","_hoisted_14","_openBlock","_createElementBlock","_createVNode","_component_datasets_top_controls","$options","_ctx","_cache","_createTextVNode","_createElementVNode","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","$data","$event","_hoisted_7","_hoisted_8","_createBlock","_component_datasets_facets","_createCommentVNode","_component_datasets_filters","_normalizeClass","_hoisted_10","_hoisted_11","_component_app_link","_withCtx","_component_selectedFacetsOverview","_component_dataset_list","_hoisted_12","_component_pagination"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Datasets.vue.mjs","sources":["../../lib/datasets/Datasets.vue"],"sourcesContent":["<template>\n <div class=\"datasets-container d-flex flex-column p-0 bg-transparent\">\n <datasets-top-controls\n :facets=\"facets\"\n :getPage=\"getPage\"\n :getLimit=\"getLimit\"\n class=\"datasets-top-controls\"\n />\n <div class=\"container-fluid datasets content\">\n <slot name=\"title\">\n <h1 class=\"row col-12 page-title catalog-title text-primary\" v-if=\"showCatalogDetails\">\n {{ getTranslationFor(getCatalog.title, $route.query.locale, getCatalog.languages) }}</h1>\n <h1 class=\"row col-12 page-title text-primary\" v-else>{{ $t('message.header.navigation.data.datasets') }}</h1>\n </slot>\n <slot\n name=\"content\"\n :datasets-count=\"getDatasetsCount\"\n :datasets=\"getDatasets\"\n :locale=\"$route.query.locale\"\n :loading=\"getLoading\"\n :use-dataset-facets=\"useDatasetFacets\"\n :facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n <div class=\"row\">\n <div class=\"col d-flex d-md-none justify-content-end flex-wrap\">\n <button class=\"btn btn-primary mb-3 text-right text-white\" data-toggle=\"collapse\"\n data-target=\"#datasetFacets\" data-cy=\"btn-filter-toggle\"\n @click=\"filterCollapsed = !filterCollapsed\">\n <i class=\"material-icons small-icon align-bottom\" v-if=\"filterCollapsed\">arrow_drop_up</i>\n <i class=\"material-icons small-icon align-bottom\" v-else>arrow_drop_down</i>\n </button>\n </div>\n <datasets-facets\n v-if=\"useDatasetFacets\"\n class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\" id=\"datasetFacets\"\n :dataScope=\"dataScope\"\n :available-facets=\"getAllAvailableFacets\"\n ></datasets-facets>\n<!-- <facets-->\n<!-- :facetsConfig=\"getAllAvailableFacets\"-->\n<!-- :facetsIds=\"$env.content.datasets.facets.defaultFacetOrder\"-->\n<!-- class=\"col-md-3 col-12 mb-3 mb-md-0 px-0 collapse\"-->\n<!-- id=\"datasetFacets\">-->\n<!-- </facets>-->\n <section class=\"col-md-9 col-12\">\n <slot name=\"datasets-filters\">\n <datasets-filters/>\n </slot>\n <slot name=\"datasets-found\" :data=\"{\n loading: getLoading,\n datasetsCount: getDatasetsCount,\n datasetsCountFormatted: getDatasetsCount.toLocaleString('fi'),\n loadingMessage: $t('message.datasets.loadingMessage'),\n countMessage: $t('message.datasets.countMessage'),\n }\">\n <div class=\"datasets-found alert alert-primary mt-3 d-flex flex-row\" role=\"status\"\n :class=\"{ 'alert-danger': getDatasetsCount <= 0 && !getLoading}\">\n <div>\n {{\n getLoading ? $t('message.datasets.loadingMessage') : `${getDatasetsCount.toLocaleString('fi')}\n ${$t('message.datasets.countMessage')}`\n }}\n </div>\n <div class=\"loading-spinner ml-3\" v-if=\"getLoading\"></div>\n </div>\n </slot>\n <div class=\"alert alert-warning mt-3 d-flex flex-row\" v-if=\"showScoreDisclaimer\">\n <span>\n {{ $t(\"message.datasets.scoreDisclaimer\") }}\n <app-link path=\"/mqa\" :query=\"{ locale: $route.query.locale }\" target=\"_blank\">\n <span>{{ $t(\"message.metadata.methodologyPage\") }}</span>\n </app-link>\n </span>\n </div>\n <!--\n <div class=\"alert alert-info mt-3\" v-if=\"getGeoBoundsById('modal-map')\">\n {{`${$t('message.datasets.geoBoundsMessagePre')}`}}<strong>{{getGeoBoundsById('modal-map')}}</strong>{{`. ${$t('message.datasets.geoBoundsMessageRemove')}`}}\n <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\" @click=\"resetGeoBounds('modal-map'); loadDatasets({})\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n -->\n <selectedFacetsOverview\n v-if=\"getFacets\"\n :selected-facets=\"getFacets\"\n :available-facets=\"getAllAvailableFacets\"\n >\n </selectedFacetsOverview>\n <template v-if=\"!getLoading\">\n <dataset-list :datasets=\"getDatasets\" :locale=\"$route.query.locale || 'en'\"></dataset-list>\n </template>\n <div class=\"loading-spinner mx-auto mt-3 mb-3\" v-if=\"getLoading\"></div>\n </section>\n </div>\n </slot>\n <div class=\"row\">\n <div class=\"column col-12 col-md-9 offset-md-3\">\n <pagination class=\"mt-3\"\n :items-count=\"getDatasetsCount\"\n :items-per-page=\"getLimit\"\n :get-page=\"getPage\"\n :get-page-count=\"getPageCount\"\n @setPageLimit=\"setPageLimit\"></pagination>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n /* eslint-disable no-undef */\n import { mapActions, mapGetters } from 'vuex';\n import {\n debounce,\n has,\n groupBy,\n uniqBy,\n toPairs,\n isArray,\n isNil,\n } from 'lodash-es';\n import $ from 'jquery';\n import fileTypes from '../utils/fileTypes';\n import Pagination from '../widgets/Pagination.vue';\n import SelectedFacetsOverview from '../facets/SelectedFacetsOverview';\n import AppLink from '../widgets/AppLink.vue';\n import { getTranslationFor, truncate, getImg } from '../utils/helpers';\n import DatasetsTopControls from \"../datasets/DatasetsTopControls.vue\";\n import DatasetsFilters from \"../datasets/DatasetsFilters.vue\";\n import DatasetList from './DatasetList.vue'\n import { useDatasetsHead } from '../composables/head'\n // import Facets from \"../facets_2.0/Facets.vue\"\n import DatasetsFacets from './datasetsFacets/DatasetsFacets.vue';\nexport default {\n name: 'Datasets',\n components: {\n DatasetsFilters,\n DatasetsTopControls,\n appLink: AppLink,\n selectedFacetsOverview: SelectedFacetsOverview,\n datasetsFacets: DatasetsFacets,\n pagination: Pagination,\n DatasetList,\n // Facets\n },\n props: {\n infiniteScrolling: {\n type: Boolean,\n default: false,\n },\n /**\n * @description Sets the catalog filter to a fixed catalog id. Disables the catalog facet and hides the facet in the selected facets overview.\n * @dev Use this prop if you want to use this component in a catalog page context where the catalog is already known (e.g., provider's page).\n */\n fixedCatalogFilter: {\n type: String,\n default: '',\n }\n },\n data() {\n return {\n baseUrl: this.$env.api.baseUrl,\n debouncedOnBottomScroll: debounce(this.onBottomScroll, 500),\n facetFields: [],\n lang: this.locale,\n filterCollapsed: true,\n catalogAllowed: false,\n useDatasetFacets: this.$env.content.datasets.facets.useDatasetFacets\n };\n },\n computed: {\n ...mapGetters('catalogDetails', [\n 'getCatalog',\n ]),\n ...mapGetters('datasets', [\n 'getDatasets',\n 'getDatasetsCount',\n 'getLimit',\n 'getLoading',\n 'getOffset',\n 'getPage',\n 'getPageCount',\n 'getMinScoring',\n ]),\n ...mapGetters('datasets', {\n // Rename getters to something different because we'll perform some modifications on them.\n // These modifications involve removing catalog related information from facets for fixed catalog filter mode\n getAllAvailableFacetsOriginal: 'getAllAvailableFacets',\n getFacetsOriginal: 'getFacets',\n }),\n showCatalogDetails() {\n return !isNil(this.$route.params.ctlg_id) || this.fixedCatalogFilter;\n },\n /**\n * @description Returns the current page.\n * @returns {Number}\n *\n * @deprecated use getPage from datasets store instead\n */\n page() {\n return this.$route.query.page;\n },\n /**\n * @description Returns the active facets according to the route parameters.\n * @returns {Object}\n */\n facets() {\n const facetFields = this.$env.content.datasets.facets.defaultFacetOrder;\n const wantsToLoadCatalogByParamOrProp = this.showCatalogDetails;\n\n const facetObj = facetFields.reduce((acc, field) => {\n acc[field] = (wantsToLoadCatalogByParamOrProp && field === 'catalog' && !this.fixedCatalogFilter)\n ? [this.$route.params.ctlg_id || undefined]\n : this.getUrlFacetsOrDefault(field);\n\n return acc;\n }, {});\n\n // if fixedCatalogFilter is set, then set it as superCatalog\n // requirement by bayern\n const facetObjWithMaybeDefaultSuperCatalog = this.fixedCatalogFilter\n ? {\n ...facetObj,\n superCatalog: [this.fixedCatalogFilter],\n }\n : facetObj;\n\n return facetObjWithMaybeDefaultSuperCatalog;\n },\n\n getAllAvailableFacets() {\n return this.showCatalogDetails\n ? this.getAllAvailableFacetsOriginal.filter(facet => facet.id !== 'catalog')\n : this.getAllAvailableFacetsOriginal;\n },\n\n getFacets() {\n // Returns a record of facets with the catalog facet removed if we're in fixed catalog filter mode\n return this.showCatalogDetails\n ? {\n ...this.getFacetsOriginal,\n catalog: []\n }\n : this.getFacetsOriginal;\n },\n\n currentSearchQuery() {\n return this.$route.query.query;\n },\n showScoreDisclaimer() {\n return this.getMinScoring > 0;\n },\n dataScope() {\n if (!this.$route.query.dataScope) return null;\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length > 0) return this.$route.query.dataScope[0];\n if (isArray(this.$route.query.dataScope) && this.$route.query.dataScope.length === 0) return null;\n return this.$route.query.dataScope;\n },\n },\n methods: {\n isNil,\n ...mapActions('datasets', [\n 'loadDatasets',\n 'loadAdditionalDatasets',\n 'setPage',\n 'setSort',\n 'addFacet',\n 'removeFacet',\n 'setFacets',\n 'setFacetOperator',\n 'setFacetGroupOperator',\n 'setDataServices',\n 'setPageCount',\n 'setLimit',\n 'setLoading',\n 'setDataScope',\n ]),\n // The imported Lodash has function. Must be defined in Methods so we can use it in template\n has,\n isArray,\n truncate,\n getTranslationFor,\n getImg,\n /**\n * @description Handler-function for the scroll event.\n */\n onScroll() {\n const items = this.$el.querySelectorAll('.dataset');\n const lastItem = items[items.length - 1];\n if (lastItem) {\n const lastItemPos = lastItem.getBoundingClientRect();\n if (lastItemPos.bottom - window.innerHeight <= 0) {\n this.debouncedOnBottomScroll();\n }\n }\n },\n /**\n * @description Handler-function when bottom of the page is reached.\n */\n onBottomScroll() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadAdditionalDatasets()\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n initLimit() {\n const limit = parseInt(this.$route.query.limit, 10);\n if (limit > 0) this.setLimit(limit);\n },\n initSort() {\n const sort = this.$route.query.sort;\n if (sort) this.setSort(sort);\n },\n setPageLimit(value) {\n this.setLimit(value);\n this.initDatasets();\n },\n initDataScope() {\n this.setDataScope(this.dataScope);\n },\n /**\n * @description Determines the current page.\n */\n initPage() {\n const page = parseInt(this.$route.query.page, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n /**\n * @descritption Initialize the active facets by checking the route parameters\n */\n initFacets() {\n const fields = this.$env.content.datasets.facets.defaultFacetOrder;\n const facetsFromRouteParams = this.facets;\n\n this.facetFields.push(...fields);\n\n // Get fields that don't exist in the router query\n const fieldsNotInRouterQuery = fields.filter(field => {\n const fieldExists = facetsFromRouteParams[field] && facetsFromRouteParams[field].length > 0;\n return !fieldExists && !this.$route.query[field];\n });\n\n // Construct route query parameters to be added\n const routeQueryParamsToBeAdded = fieldsNotInRouterQuery.reduce((acc, field) => {\n acc[field] = [];\n return acc;\n }, {});\n // Add the route query params that are missing\n if (Object.keys(routeQueryParamsToBeAdded) > 0) {\n this.$router.push({query: {...this.$route.query, ...routeQueryParamsToBeAdded}});\n }\n\n this.setFacets(facetsFromRouteParams);\n },\n\n\n getUrlFacetsOrDefault(field) {\n const urlFacets = this.$route.query[field];\n return Array.isArray(urlFacets) ? urlFacets : (urlFacets ? [urlFacets] : []);\n },\n\n initFacetOperator() {\n // Always set facet operator to AND when in catalog details mode\n if (this.showCatalogDetails) this.setFacetOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetOperator(op);\n }\n },\n initFacetGroupOperator() {\n // The facetGroupOperator should be the same as the facetOperator\n // Always set facet operator to AND when\n // in catalog details mode\n if (this.showCatalogDetails) this.setFacetGroupOperator('AND');\n else {\n const op = this.$route.query.facetOperator;\n if (op === 'AND' || op === 'OR') this.setFacetGroupOperator(op);\n }\n },\n /**\n * @descritption Initialize the active data services facet by checking the route parameters\n */\n initDataServices() {\n const ds = this.$route.query.dataServices;\n if (ds === 'true' || ds === 'false') this.setDataServices(ds);\n else {\n this.setDataServices('false');\n }\n },\n initDatasets() {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.setPageCount(Math.ceil(this.getDatasetsCount / this.getLimit));\n this.$Progress.finish();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n })\n .catch((error) => {\n console.error(error)\n this.$Progress.fail();\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n });\n });\n },\n initInfiniteScrolling() {\n if (this.infiniteScrolling) window.addEventListener('scroll', this.onScroll);\n },\n getFileTypeColor(format) {\n return fileTypes.getFileTypeColor(format);\n },\n },\n watch: {\n // eslint-disable-next-line object-shorthand\n page(pageStr) {\n const page = parseInt(pageStr, 10);\n if (page > 0) this.setPage(page);\n else this.setPage(1);\n },\n dataScope: {\n handler() {\n this.initDataScope();\n },\n deep: true,\n },\n },\n created() {\n this.initDataScope();\n this.initLimit();\n this.initSort();\n this.initPage();\n this.initFacetOperator();\n this.initFacetGroupOperator();\n this.initDataServices();\n this.initFacets();\n this.initDatasets();\n this.initInfiniteScrolling();\n },\n mounted() {\n // This is supposed to fix the browser issue (https://gitlab.fokus.fraunhofer.de/piveau/organisation/piveau-scrum-board/-/issues/2344)\n if (this.$route.query.refresh === 'true') {\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.loadDatasets({locale: this.$route.query.locale})\n .then(() => {\n this.$router.push({query: {locale: this.$route.query.locale}});\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n });\n }\n },\n beforeUnmount() {\n $('.tooltip').remove();\n if (this.infiniteScrolling) window.removeEventListener('scroll', this.onScroll);\n },\n setup() {\n useDatasetsHead();\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n\n.alert-primary {\n color: #042648;\n background-color: #cddbe8;\n border-color: #baccdf;\n}\n\n.page-title {\n // maybe we can change custom theme h1 to 3rem\n font-size: 3rem;\n margin-bottom: 15px;\n}\n\n.content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n\n &:hover {\n color: #175baf;\n }\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n\n@media screen and (min-width: 768px) {\n #datasetFacets {\n display: block\n }\n}\n</style>\n"],"names":["_sfc_main","DatasetsFilters","DatasetsTopControls","AppLink","SelectedFacetsOverview","DatasetsFacets","Pagination","DatasetList","debounce","mapGetters","isNil","facetFields","wantsToLoadCatalogByParamOrProp","facetObj","acc","field","facet","isArray","mapActions","has","truncate","getTranslationFor","getImg","items","lastItem","limit","sort","value","page","fields","facetsFromRouteParams","routeQueryParamsToBeAdded","urlFacets","op","ds","$","error","format","fileTypes","pageStr","useDatasetsHead","_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_13","_hoisted_14","_openBlock","_createElementBlock","_createVNode","_component_datasets_top_controls","$options","_ctx","_createElementVNode","_renderSlot","_hoisted_3","_toDisplayString","_hoisted_4","$data","_cache","$event","_hoisted_7","_hoisted_8","_createBlock","_component_datasets_facets","_component_datasets_filters","_normalizeClass","_hoisted_10","_hoisted_11","_createTextVNode","_component_app_link","_component_selectedFacetsOverview","_component_dataset_list","_hoisted_12","_component_pagination"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
8
8
|
useCatalogs: boolean;
|
|
9
9
|
useSort: boolean;
|
|
10
10
|
sortSelected: string;
|
|
11
|
-
sortSelectedLabel:
|
|
11
|
+
sortSelectedLabel: any;
|
|
12
12
|
}, {}, {
|
|
13
13
|
changeQuery(query: any): void;
|
|
14
14
|
handleSuggestionSelection(suggestion: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetsFilters.vue.mjs","sources":["../../lib/datasets/DatasetsFilters.vue"],"sourcesContent":["<template>\n <div class=\"filters-group ds\">\n <slot name=\"search-bar\" :query=\"query\" :bind=\"{ value: query}\" :on=\"{ input: setSearchQuery }\" :search-fn=\"changeQuery\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control rounded-lg ds-input\"\n :aria-label=\"$t('message.datasets.searchBar.placeholder')\"\n :placeholder=\"$t('message.datasets.searchBar.placeholder')\"\n v-model=\"query\"\n @keyup.enter=\"changeQuery(query)\"\n @click=\"autocompleteData.show = autocompleteData.suggestions.length > 0 && query.length > 0 ? !autocompleteData.show : false\">\n <slot name=\"update-filter\" :query=\"query\" :search-fn=\"changeQuery\">\n <div class=\"input-group-append ml-2\">\n <button class=\"btn btn-sm btn-primary d-flex align-items-center search-button ds-input\" type=\"button\" @click=\"changeQuery(query)\">\n <i class=\"material-icons align-bottom\">search</i>\n </button>\n </div>\n </slot>\n <div class=\"suggestion-list-group\" v-if=\"autocompleteData.show\">\n <ul class=\"list-group suggestion-list\">\n <button class=\"list-group-item list-group-item-action\"\n v-for=\"suggestion in autocompleteData.suggestions\"\n :key=\"suggestion.id\"\n @click=\"handleSuggestionSelection(suggestion)\">\n {{ getTranslationFor(suggestion.title, $route.query.locale, suggestion.languages) }}\n </button>\n </ul>\n </div>\n </div>\n </slot>\n <slot name=\"filters-tabs\">\n <DatasetsFiltersTabs :use-sort=\"useSort\" :use-catalogs=\"useCatalogs\" :query=\"query\" :sort-selected-label=\"sortSelectedLabel\" :locale=\"$route.query.locale\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport {mapActions} from \"vuex\";\nimport { getTranslationFor } from \"../utils/helpers\";\n\nimport DatasetsFiltersTabs from \"./DatasetsFiltersTabs\";\n\nexport default {\n name: \"DatasetsFilters\",\n components: {\n DatasetsFiltersTabs,\n },\n data() {\n return {\n query: '',\n autocompleteData: {\n suggestions: {},\n show: true,\n },\n useCatalogs: this.$env.content.datasets.useCatalogs,\n useSort: this.$env.content.datasets.useSort,\n sortSelected: '',\n sortSelectedLabel: this.$t('message.sort.relevance')\n }\n },\n created() {\n this.query = this.$route.query.query || '';\n },\n methods: {\n getTranslationFor,\n ...mapActions('datasets', [\n 'setQuery',\n 'autocompleteQuery',\n 'setSort'\n ]),\n changeQuery(query) {\n this.$router.replace(\n { query: Object.assign({}, this.$route.query, { query }, { page: 1 }) }\n ).catch(\n error => { console.error(error); }\n );\n this.setQuery(query);\n },\n handleSuggestionSelection(suggestion) {\n /* eslint-disable no-underscore-dangle */\n this.$router.push(\n { path: this.$route.path.slice(-1) === '/' ? `${this.$route.path}${suggestion.idName}` : `${this.$route.path}/${suggestion.idName}` }\n ).catch(\n error => { console.error(error); }\n );\n },\n setSearchQuery(query) {\n this.query = query;\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.suggestion-list-group {\n position: relative;\n width: 100%;\n}\n.suggestion-list {\n width: 100%;\n position: absolute;\n top: 0;\n z-index: 100;\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n.search-button {\n border-radius: 100% !important;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2\n }\n}\n\n</style>\n"],"names":["_sfc_main","DatasetsFiltersTabs","getTranslationFor","mapActions","query","error","suggestion","_hoisted_1","_hoisted_2","
|
|
1
|
+
{"version":3,"file":"DatasetsFilters.vue.mjs","sources":["../../lib/datasets/DatasetsFilters.vue"],"sourcesContent":["<template>\n <div class=\"filters-group ds\">\n <slot name=\"search-bar\" :query=\"query\" :bind=\"{ value: query}\" :on=\"{ input: setSearchQuery }\" :search-fn=\"changeQuery\">\n <div class=\"input-group\">\n <input type=\"text\" class=\"form-control rounded-lg ds-input\"\n :aria-label=\"$t('message.datasets.searchBar.placeholder')\"\n :placeholder=\"$t('message.datasets.searchBar.placeholder')\"\n v-model=\"query\"\n @keyup.enter=\"changeQuery(query)\"\n @click=\"autocompleteData.show = autocompleteData.suggestions.length > 0 && query.length > 0 ? !autocompleteData.show : false\">\n <slot name=\"update-filter\" :query=\"query\" :search-fn=\"changeQuery\">\n <div class=\"input-group-append ml-2\">\n <button class=\"btn btn-sm btn-primary d-flex align-items-center search-button ds-input\" type=\"button\" @click=\"changeQuery(query)\">\n <i class=\"material-icons align-bottom\">search</i>\n </button>\n </div>\n </slot>\n <div class=\"suggestion-list-group\" v-if=\"autocompleteData.show\">\n <ul class=\"list-group suggestion-list\">\n <button class=\"list-group-item list-group-item-action\"\n v-for=\"suggestion in autocompleteData.suggestions\"\n :key=\"suggestion.id\"\n @click=\"handleSuggestionSelection(suggestion)\">\n {{ getTranslationFor(suggestion.title, $route.query.locale, suggestion.languages) }}\n </button>\n </ul>\n </div>\n </div>\n </slot>\n <slot name=\"filters-tabs\">\n <DatasetsFiltersTabs :use-sort=\"useSort\" :use-catalogs=\"useCatalogs\" :query=\"query\" :sort-selected-label=\"sortSelectedLabel\" :locale=\"$route.query.locale\" />\n </slot>\n </div>\n</template>\n\n<script>\nimport {mapActions} from \"vuex\";\nimport { getTranslationFor } from \"../utils/helpers\";\n\nimport DatasetsFiltersTabs from \"./DatasetsFiltersTabs\";\n\nexport default {\n name: \"DatasetsFilters\",\n components: {\n DatasetsFiltersTabs,\n },\n data() {\n return {\n query: '',\n autocompleteData: {\n suggestions: {},\n show: true,\n },\n useCatalogs: this.$env.content.datasets.useCatalogs,\n useSort: this.$env.content.datasets.useSort,\n sortSelected: '',\n sortSelectedLabel: this.$t('message.sort.relevance')\n }\n },\n created() {\n this.query = this.$route.query.query || '';\n },\n methods: {\n getTranslationFor,\n ...mapActions('datasets', [\n 'setQuery',\n 'autocompleteQuery',\n 'setSort'\n ]),\n changeQuery(query) {\n this.$router.replace(\n { query: Object.assign({}, this.$route.query, { query }, { page: 1 }) }\n ).catch(\n error => { console.error(error); }\n );\n this.setQuery(query);\n },\n handleSuggestionSelection(suggestion) {\n /* eslint-disable no-underscore-dangle */\n this.$router.push(\n { path: this.$route.path.slice(-1) === '/' ? `${this.$route.path}${suggestion.idName}` : `${this.$route.path}/${suggestion.idName}` }\n ).catch(\n error => { console.error(error); }\n );\n },\n setSearchQuery(query) {\n this.query = query;\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.suggestion-list-group {\n position: relative;\n width: 100%;\n}\n.suggestion-list {\n width: 100%;\n position: absolute;\n top: 0;\n z-index: 100;\n}\n\n.material-icons.small-icon {\n font-size: 20px;\n}\n.search-button {\n border-radius: 100% !important;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2\n }\n}\n\n</style>\n"],"names":["_sfc_main","DatasetsFiltersTabs","getTranslationFor","mapActions","query","error","suggestion","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_renderSlot","_ctx","$data","$options","_createElementVNode","$event","_cache","_withKeys","_hoisted_5","_Fragment","_renderList","_toDisplayString","_hoisted_7","_createVNode","_component_DatasetsFiltersTabs"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
18
18
|
show: boolean;
|
|
19
19
|
};
|
|
20
20
|
sortSelected: string;
|
|
21
|
-
sortSelectedLabel:
|
|
21
|
+
sortSelectedLabel: any;
|
|
22
22
|
}, {}, {
|
|
23
23
|
/**
|
|
24
24
|
* @description Initialize the query String by checking the route parameters
|
|
@@ -44,8 +44,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
44
44
|
default: string;
|
|
45
45
|
};
|
|
46
46
|
}>> & Readonly<{}>, {
|
|
47
|
-
locale: string;
|
|
48
47
|
useSort: boolean;
|
|
49
48
|
useCatalogs: boolean;
|
|
49
|
+
locale: string;
|
|
50
50
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
51
51
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetsFiltersTabs.vue.mjs","sources":["../../lib/datasets/DatasetsFiltersTabs.vue"],"sourcesContent":["<template>\n <ul class=\"mt-3 d-flex justify-content-between flex-wrap-reverse nav nav-tabs\" id=\"datasets-filters-tab\" role=\"tablist\">\n <div class=\"datasets-filters-navigation d-flex cursor-pointer\">\n <li class=\"nav-item mb-0\" role=\"tab\"\n :title=\"$t('message.tooltip.datasets')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n <router-link\n :to=\"{name: 'Datasets', query: { locale: $route.query.locale }}\"\n class=\"nav-link router-link-active\"\n role=\"presentation\">\n {{ $t('message.header.navigation.data.datasets') }}\n </router-link>\n\n </li>\n <li class=\"nav-item mb-0\" role=\"tab\"\n :title=\"$t('message.tooltip.catalogues')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n <router-link\n :to=\"{name: 'Catalogues', query: { locale: $route.query.locale }}\"\n v-if=\"useCatalogs\"\n class=\"nav-link router-link-inactive\"\n role=\"presentation\">\n {{ $t('message.header.navigation.data.catalogs') }}\n </router-link>\n </li>\n <li class=\"nav-item mb-0\" role=\"tab\">\n <a\n :href=\"`/${this.$route.query.locale}/search?term=${query}&searchdomain=site`\"\n class=\"nav-link router-link-inactive\"\n role=\"presentation\"\n :title=\"$t('message.tooltip.editorialContent')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n {{ $t('message.searchTabs.editorialContent') }}\n </a>\n </li>\n </div>\n <div v-if=\"useSort\" class=\"datasets-filters-filters btn-group border-1 mb-1 double-button\" role=\"group\" aria-label=\"Button group with nested dropdown\">\n <button\n type=\"button\"\n class=\"custom-button pl-2 pr-2 border-radius-start d-flex align-items-center inactive-styles\"\n :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.lastUpdated'))}\"\n :title=\"$t('message.tooltip.lastModified')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n @click=\"setSortMethod('modified', 'desc', $t('message.sort.lastModified'))\"\n >\n {{ $t('message.sort.lastUpdated') }}\n </button>\n <button\n type=\"button\"\n class=\"custom-middle-button pl-2 pr-2 d-flex align-items-center inactive-styles\"\n :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.relevance'))}\"\n :title=\"$t('message.tooltip.relevance')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n @click=\"setSortMethod('relevance', 'desc', $t('message.sort.relevance'))\"\n >\n {{ $t('message.sort.relevance') }}\n </button>\n <div class=\"btn-group\" role=\"group\">\n <button v-if=\"isSortSelectedLabelInDropdown()\" class=\"active-styles d-flex align-items-center custom-dropdown-button border-radius-end\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n <div class=\"pl-2 h-100 d-flex align-items-center\">\n {{ sortSelectedLabel }}\n </div>\n <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n </button>\n <button v-else class=\"d-flex align-items-center custom-dropdown-button border-radius-end inactive-styles\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n <div class=\"pl-2\">\n {{ $t('message.catalogsAndDatasets.more') }}\n </div>\n <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"btnGroupDrop1\">\n <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'asc', $t('message.sort.nameAZ'))\">\n {{ $t('message.sort.nameAZ') }}</button>\n <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'desc', $t('message.sort.nameZA'))\">\n {{ $t('message.sort.nameZA') }}</button>\n <button class=\"dropdown-item\" @click=\"setSortMethod('issued', 'desc', $t('message.sort.lastCreated'))\">\n {{ $t('message.sort.lastCreated') }}</button>\n </ul>\n </div>\n </div>\n </ul>\n</template>\n\n<script>\nimport { defineComponent } from 'vue'\nimport { mapActions } from 'vuex';\n\nexport default defineComponent({\n name: 'DatasetsFiltersTabs',\n props: {\n useSort: {\n type: Boolean,\n default: true\n },\n useCatalogs: {\n type: Boolean,\n default: true\n },\n locale: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n query: '',\n autocompleteData: {\n suggestions: {},\n show: true,\n },\n sortSelected: '',\n sortSelectedLabel: this.$t('message.sort.relevance'),\n }\n },\n watch: {\n sortSelected: {\n handler(sort) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { sort }) })\n .catch(error => { console.error(error); });\n this.setSort(sort);\n },\n deep: true,\n }\n },\n created() {\n this.initQuery();\n this.$nextTick(() => {\n this.initSort();\n });\n },\n methods: {\n ...mapActions('datasets', [\n 'setQuery',\n 'setSort'\n ]),\n /**\n * @description Initialize the query String by checking the route parameters\n */\n initQuery() {\n let query = this.$route.query.query;\n if (!query) {\n query = '';\n this.setQuery('');\n } else {\n this.query = query;\n this.setQuery(query);\n }\n },\n initSort() {\n let sort = this.$route.query.sort;\n if (sort) {\n sort = sort.split(',')[0].toLowerCase();\n if (sort.includes('title')) {\n if (sort.includes('desc')) {\n this.sortSelectedLabel = this.$t('message.sort.nameZA');\n this.setSortMethod(`title.${this.$route.query.locale}`, 'desc', this.$t('message.sort.nameZA'));\n } else {\n this.sortSelectedLabel = this.$t('message.sort.nameAZ');\n this.setSortMethod(`title.${this.$route.query.locale}`, 'asc', this.$t('message.sort.nameAZ'));\n }\n } else {\n if (sort === 'relevance+desc') {\n this.sortSelectedLabel = this.$t('message.sort.relevance');\n this.setSortMethod('relevance', 'desc', this.$t('message.sort.relevance'));\n }\n if (sort === 'modified+desc') {\n this.sortSelectedLabel = this.$t('message.sort.lastUpdated');\n this.setSortMethod('modified', 'desc', this.$t('message.sort.lastUpdated'));\n }\n if (sort === 'issued+desc') {\n this.sortSelectedLabel = this.$t('message.sort.lastCreated');\n this.setSortMethod('issued', 'desc', this.$t('message.sort.lastCreated'));\n }\n }\n } else this.setSort(`relevance+desc, modified+desc, title.${this.$route.query.locale}+asc`);\n },\n setSortMethod(method, order, label) {\n this.sortSelectedLabel = label;\n if (method === 'relevance') this.sortSelected = `${method}+${order}, modified+desc, title.${this.$route.query.locale}+asc`;\n if (method === 'modified') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n if (method === `title.${this.$route.query.locale}`) this.sortSelected = `${method}+${order}, relevance+desc, modified+desc`;\n if (method === 'issued') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n return this.sortSelected;\n },\n isSortSelectedLabelActive(label) {\n if (label === this.sortSelectedLabel) return true;\n return false;\n },\n isSortSelectedLabelInDropdown() {\n if (this.sortSelectedLabel === this.$t('message.sort.nameAZ')\n || this.sortSelectedLabel === this.$t('message.sort.nameZA')\n || this.sortSelectedLabel === this.$t('message.sort.lastCreated')) {\n return true;\n }\n return false;\n }\n }\n});\n</script>\n\n<style scoped lang=\"scss\">\n.custom-button {\n border: 1px solid black;\n background-color: white;\n outline: none;\n}\n.custom-middle-button {\n border: 1px solid black;\n border-left: none;\n background-color: white;\n outline: none;\n}\n\n.custom-dropdown-button {\n border: 1px solid black;\n padding: 0;\n background-color: white;\n outline: none;\n}\n\n.inactive-styles {\n color: rgba(0, 0, 0, 0.7);\n\n &:hover {\n background-color: rgb(247, 247, 247);\n color: black;\n }\n &:focus {\n background-color: rgb(247, 247, 247);\n color: black;\n }\n}\n\n.active-styles {\n background-color: rgba(0, 29, 133,0.1);\n color: black;\n}\n\n.border-radius-start {\n border-top-left-radius: 1.875rem;\n border-bottom-left-radius: 1.875rem;\n}\n.border-radius-end {\n border-top-right-radius: 1.875rem;\n border-bottom-right-radius: 1.875rem;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n &:hover {\n color: #175baf;\n }\n}\n\n.dropdown-item {\n&:active {\n background-color: var(--dropdown-item-active-bg);\n }\n}\n\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n</style>"],"names":["_sfc_main","defineComponent","sort","error","mapActions","query","method","order","label","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_ctx","_createVNode","_component_router_link","_withCtx","_createTextVNode","_toDisplayString","_cache","_createBlock","_createCommentVNode","_hoisted_5","_hoisted_7","_normalizeClass","$event","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_15"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetsFiltersTabs.vue.mjs","sources":["../../lib/datasets/DatasetsFiltersTabs.vue"],"sourcesContent":["<template>\n <ul class=\"mt-3 d-flex justify-content-between flex-wrap-reverse nav nav-tabs\" id=\"datasets-filters-tab\" role=\"tablist\">\n <div class=\"datasets-filters-navigation d-flex cursor-pointer\">\n <li class=\"nav-item mb-0\" role=\"tab\"\n :title=\"$t('message.tooltip.datasets')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n <router-link\n :to=\"{name: 'Datasets', query: { locale: $route.query.locale }}\"\n class=\"nav-link router-link-active\"\n role=\"presentation\">\n {{ $t('message.header.navigation.data.datasets') }}\n </router-link>\n\n </li>\n <li class=\"nav-item mb-0\" role=\"tab\"\n :title=\"$t('message.tooltip.catalogues')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n <router-link\n :to=\"{name: 'Catalogues', query: { locale: $route.query.locale }}\"\n v-if=\"useCatalogs\"\n class=\"nav-link router-link-inactive\"\n role=\"presentation\">\n {{ $t('message.header.navigation.data.catalogs') }}\n </router-link>\n </li>\n <li class=\"nav-item mb-0\" role=\"tab\">\n <a\n :href=\"`/${this.$route.query.locale}/search?term=${query}&searchdomain=site`\"\n class=\"nav-link router-link-inactive\"\n role=\"presentation\"\n :title=\"$t('message.tooltip.editorialContent')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n {{ $t('message.searchTabs.editorialContent') }}\n </a>\n </li>\n </div>\n <div v-if=\"useSort\" class=\"datasets-filters-filters btn-group border-1 mb-1 double-button\" role=\"group\" aria-label=\"Button group with nested dropdown\">\n <button\n type=\"button\"\n class=\"custom-button pl-2 pr-2 border-radius-start d-flex align-items-center inactive-styles\"\n :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.lastUpdated'))}\"\n :title=\"$t('message.tooltip.lastModified')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n @click=\"setSortMethod('modified', 'desc', $t('message.sort.lastModified'))\"\n >\n {{ $t('message.sort.lastUpdated') }}\n </button>\n <button\n type=\"button\"\n class=\"custom-middle-button pl-2 pr-2 d-flex align-items-center inactive-styles\"\n :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.relevance'))}\"\n :title=\"$t('message.tooltip.relevance')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n @click=\"setSortMethod('relevance', 'desc', $t('message.sort.relevance'))\"\n >\n {{ $t('message.sort.relevance') }}\n </button>\n <div class=\"btn-group\" role=\"group\">\n <button v-if=\"isSortSelectedLabelInDropdown()\" class=\"active-styles d-flex align-items-center custom-dropdown-button border-radius-end\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n <div class=\"pl-2 h-100 d-flex align-items-center\">\n {{ sortSelectedLabel }}\n </div>\n <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n </button>\n <button v-else class=\"d-flex align-items-center custom-dropdown-button border-radius-end inactive-styles\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n <div class=\"pl-2\">\n {{ $t('message.catalogsAndDatasets.more') }}\n </div>\n <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"btnGroupDrop1\">\n <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'asc', $t('message.sort.nameAZ'))\">\n {{ $t('message.sort.nameAZ') }}</button>\n <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'desc', $t('message.sort.nameZA'))\">\n {{ $t('message.sort.nameZA') }}</button>\n <button class=\"dropdown-item\" @click=\"setSortMethod('issued', 'desc', $t('message.sort.lastCreated'))\">\n {{ $t('message.sort.lastCreated') }}</button>\n </ul>\n </div>\n </div>\n </ul>\n</template>\n\n<script>\nimport { defineComponent } from 'vue'\nimport { mapActions } from 'vuex';\n\nexport default defineComponent({\n name: 'DatasetsFiltersTabs',\n props: {\n useSort: {\n type: Boolean,\n default: true\n },\n useCatalogs: {\n type: Boolean,\n default: true\n },\n locale: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n query: '',\n autocompleteData: {\n suggestions: {},\n show: true,\n },\n sortSelected: '',\n sortSelectedLabel: this.$t('message.sort.relevance'),\n }\n },\n watch: {\n sortSelected: {\n handler(sort) {\n this.$router.replace({ query: Object.assign({}, this.$route.query, { sort }) })\n .catch(error => { console.error(error); });\n this.setSort(sort);\n },\n deep: true,\n }\n },\n created() {\n this.initQuery();\n this.$nextTick(() => {\n this.initSort();\n });\n },\n methods: {\n ...mapActions('datasets', [\n 'setQuery',\n 'setSort'\n ]),\n /**\n * @description Initialize the query String by checking the route parameters\n */\n initQuery() {\n let query = this.$route.query.query;\n if (!query) {\n query = '';\n this.setQuery('');\n } else {\n this.query = query;\n this.setQuery(query);\n }\n },\n initSort() {\n let sort = this.$route.query.sort;\n if (sort) {\n sort = sort.split(',')[0].toLowerCase();\n if (sort.includes('title')) {\n if (sort.includes('desc')) {\n this.sortSelectedLabel = this.$t('message.sort.nameZA');\n this.setSortMethod(`title.${this.$route.query.locale}`, 'desc', this.$t('message.sort.nameZA'));\n } else {\n this.sortSelectedLabel = this.$t('message.sort.nameAZ');\n this.setSortMethod(`title.${this.$route.query.locale}`, 'asc', this.$t('message.sort.nameAZ'));\n }\n } else {\n if (sort === 'relevance+desc') {\n this.sortSelectedLabel = this.$t('message.sort.relevance');\n this.setSortMethod('relevance', 'desc', this.$t('message.sort.relevance'));\n }\n if (sort === 'modified+desc') {\n this.sortSelectedLabel = this.$t('message.sort.lastUpdated');\n this.setSortMethod('modified', 'desc', this.$t('message.sort.lastUpdated'));\n }\n if (sort === 'issued+desc') {\n this.sortSelectedLabel = this.$t('message.sort.lastCreated');\n this.setSortMethod('issued', 'desc', this.$t('message.sort.lastCreated'));\n }\n }\n } else this.setSort(`relevance+desc, modified+desc, title.${this.$route.query.locale}+asc`);\n },\n setSortMethod(method, order, label) {\n this.sortSelectedLabel = label;\n if (method === 'relevance') this.sortSelected = `${method}+${order}, modified+desc, title.${this.$route.query.locale}+asc`;\n if (method === 'modified') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n if (method === `title.${this.$route.query.locale}`) this.sortSelected = `${method}+${order}, relevance+desc, modified+desc`;\n if (method === 'issued') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n return this.sortSelected;\n },\n isSortSelectedLabelActive(label) {\n if (label === this.sortSelectedLabel) return true;\n return false;\n },\n isSortSelectedLabelInDropdown() {\n if (this.sortSelectedLabel === this.$t('message.sort.nameAZ')\n || this.sortSelectedLabel === this.$t('message.sort.nameZA')\n || this.sortSelectedLabel === this.$t('message.sort.lastCreated')) {\n return true;\n }\n return false;\n }\n }\n});\n</script>\n\n<style scoped lang=\"scss\">\n.custom-button {\n border: 1px solid black;\n background-color: white;\n outline: none;\n}\n.custom-middle-button {\n border: 1px solid black;\n border-left: none;\n background-color: white;\n outline: none;\n}\n\n.custom-dropdown-button {\n border: 1px solid black;\n padding: 0;\n background-color: white;\n outline: none;\n}\n\n.inactive-styles {\n color: rgba(0, 0, 0, 0.7);\n\n &:hover {\n background-color: rgb(247, 247, 247);\n color: black;\n }\n &:focus {\n background-color: rgb(247, 247, 247);\n color: black;\n }\n}\n\n.active-styles {\n background-color: rgba(0, 29, 133,0.1);\n color: black;\n}\n\n.border-radius-start {\n border-top-left-radius: 1.875rem;\n border-bottom-left-radius: 1.875rem;\n}\n.border-radius-end {\n border-top-right-radius: 1.875rem;\n border-bottom-right-radius: 1.875rem;\n}\n\n.router-link-active {\n color: #175baf !important;\n border: none !important;\n border-bottom: 2px solid #175baf !important;\n}\n.router-link-inactive {\n color: rgba(0, 0, 0, 0.7);\n border: none !important;\n &:hover {\n color: #175baf;\n }\n}\n\n.dropdown-item {\n&:active {\n background-color: var(--dropdown-item-active-bg);\n }\n}\n\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n</style>"],"names":["_sfc_main","defineComponent","sort","error","mapActions","query","method","order","label","_hoisted_2","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_ctx","_createVNode","_component_router_link","_createBlock","_hoisted_5","_hoisted_6","_hoisted_7","_normalizeClass","_cache","$event","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","_hoisted_13","_hoisted_15"],"mappings":"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"}
|
|
@@ -8,15 +8,15 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
8
8
|
}, {
|
|
9
9
|
getSort: import('vuex').Computed;
|
|
10
10
|
}, {
|
|
11
|
-
getFeedLink(format: any):
|
|
11
|
+
getFeedLink(format: any): any;
|
|
12
12
|
getFeedQuery(): {
|
|
13
|
-
q:
|
|
13
|
+
q: any;
|
|
14
14
|
facets: string;
|
|
15
15
|
page: number;
|
|
16
16
|
limit: any;
|
|
17
|
-
facetOperator:
|
|
18
|
-
facetGroupOperator:
|
|
19
|
-
dataServices:
|
|
17
|
+
facetOperator: any;
|
|
18
|
+
facetGroupOperator: any;
|
|
19
|
+
dataServices: any;
|
|
20
20
|
sort: any;
|
|
21
21
|
};
|
|
22
22
|
facetsNotEmpty(): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import f from "../widgets/AppLink.vue.mjs";
|
|
2
2
|
import { mapGetters as u } from "vuex";
|
|
3
|
-
import { resolveComponent as d, openBlock as p, createBlock as g, withCtx as r, createElementVNode as a, createElementBlock as
|
|
3
|
+
import { resolveComponent as d, openBlock as p, createBlock as g, withCtx as r, createElementVNode as a, createElementBlock as _, toDisplayString as h, createCommentVNode as v, createTextVNode as o, createVNode as c } from "vue";
|
|
4
4
|
import k from "../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
5
|
const y = {
|
|
6
6
|
name: "DataSetsTopControls",
|
|
@@ -55,9 +55,9 @@ function x(t, e, n, O, l, s) {
|
|
|
55
55
|
a("div", b, [
|
|
56
56
|
a("div", w, [
|
|
57
57
|
a("div", F, [
|
|
58
|
-
l.useFeed ? (p(),
|
|
59
|
-
a("ins", null,
|
|
60
|
-
])) :
|
|
58
|
+
l.useFeed ? (p(), _("div", S, [
|
|
59
|
+
a("ins", null, h(t.$t("message.datasets.datasetsFeed")), 1)
|
|
60
|
+
])) : v("", !0),
|
|
61
61
|
e[3] || (e[3] = o()),
|
|
62
62
|
a("div", N, [
|
|
63
63
|
c(i, {
|
|
@@ -71,7 +71,8 @@ function x(t, e, n, O, l, s) {
|
|
|
71
71
|
o(`
|
|
72
72
|
RSS Feed`)
|
|
73
73
|
])),
|
|
74
|
-
_: 1
|
|
74
|
+
_: 1,
|
|
75
|
+
__: [0]
|
|
75
76
|
}, 8, ["path", "query"]),
|
|
76
77
|
e[2] || (e[2] = o()),
|
|
77
78
|
c(i, {
|
|
@@ -85,7 +86,8 @@ function x(t, e, n, O, l, s) {
|
|
|
85
86
|
o(`
|
|
86
87
|
ATOM Feed`)
|
|
87
88
|
])),
|
|
88
|
-
_: 1
|
|
89
|
+
_: 1,
|
|
90
|
+
__: [1]
|
|
89
91
|
}, 8, ["path", "query"])
|
|
90
92
|
])
|
|
91
93
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetsTopControls.vue.mjs","sources":["../../lib/datasets/DatasetsTopControls.vue"],"sourcesContent":["<template>\n <sub-navigation>\n <div class=\"container-fluid justify-content-between\">\n <div class=\"navbar-datasets-feed navbar-nav align-items-center justify-content-end\">\n <div class=\"nav-item dropdown\">\n <div v-if=\"useFeed\" class=\"nav-link dropdown-toggle cursor-pointer\"\n id=\"dropdown-feeds\" data-toggle=\"dropdown\"\n aria-haspopup=\"true\" aria-expanded=\"false\">\n <ins>{{ $t('message.datasets.datasetsFeed') }}</ins>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"dropdown-feeds\">\n <app-link class=\"dropdown-item text-decoration-none\"\n :path=\"getFeedLink('rss')\"\n :query=\"getFeedQuery()\"\n target=\"_blank\"\n matomo-track-page-view>\n RSS Feed</app-link>\n <app-link class=\"dropdown-item text-decoration-none\"\n :path=\"getFeedLink('atom')\"\n :query=\"getFeedQuery()\"\n target=\"_blank\"\n matomo-track-page-view>\n ATOM Feed</app-link>\n </div>\n </div>\n </div>\n </div>\n </sub-navigation>\n</template>\n\n<script>\nimport AppLink from \"../widgets/AppLink.vue\";\n// import SubNavigation from \"../navigation/SubNavigation\";\nimport {mapGetters} from \"vuex\";\n\nexport default {\n name: \"DataSetsTopControls\",\n components: {\n // SubNavigation,\n AppLink\n },\n props: [\n \"facets\",\n \"getPage\",\n \"getLimit\"\n ],\n data() {\n return {\n useFeed: this.$env.content.datasets.useFeed,\n baseUrl: this.$env.api.baseUrl,\n }\n },\n computed: {\n ...mapGetters('datasets', [\n 'getSort'\n ])\n },\n methods: {\n getFeedLink(format) {\n return `${this.baseUrl}${this.$route.query.locale}/feeds/datasets.${format}`;\n },\n getFeedQuery() {\n const feedQuery = {};\n const query = this.$route?.query\n if (query?.query) feedQuery.q = query.query;\n if (this.facetsNotEmpty() && JSON.stringify(this.facets)) feedQuery.facets = JSON.stringify(this.facets);\n if (this.getPage) feedQuery.page = Math.max(this.getPage - 1, 0);\n if (this.getLimit) feedQuery.limit = this.getLimit;\n feedQuery.facetOperator = query?.facetOperator || 'AND';\n feedQuery.facetGroupOperator = query?.facetOperator || 'AND';\n feedQuery.dataServices = query?.dataServices || 'false';\n if (this.getSort) feedQuery.sort = this.getSort;\n return feedQuery;\n },\n facetsNotEmpty() {\n return Object.values(this.facets).some(facet => facet.length > 0);\n }\n }\n}\n</script>\n\n"],"names":["_sfc_main","AppLink","mapGetters","format","feedQuery","query","_a","facet","_hoisted_1","_hoisted_2","_hoisted_3","_createBlock","_component_sub_navigation","
|
|
1
|
+
{"version":3,"file":"DatasetsTopControls.vue.mjs","sources":["../../lib/datasets/DatasetsTopControls.vue"],"sourcesContent":["<template>\n <sub-navigation>\n <div class=\"container-fluid justify-content-between\">\n <div class=\"navbar-datasets-feed navbar-nav align-items-center justify-content-end\">\n <div class=\"nav-item dropdown\">\n <div v-if=\"useFeed\" class=\"nav-link dropdown-toggle cursor-pointer\"\n id=\"dropdown-feeds\" data-toggle=\"dropdown\"\n aria-haspopup=\"true\" aria-expanded=\"false\">\n <ins>{{ $t('message.datasets.datasetsFeed') }}</ins>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"dropdown-feeds\">\n <app-link class=\"dropdown-item text-decoration-none\"\n :path=\"getFeedLink('rss')\"\n :query=\"getFeedQuery()\"\n target=\"_blank\"\n matomo-track-page-view>\n RSS Feed</app-link>\n <app-link class=\"dropdown-item text-decoration-none\"\n :path=\"getFeedLink('atom')\"\n :query=\"getFeedQuery()\"\n target=\"_blank\"\n matomo-track-page-view>\n ATOM Feed</app-link>\n </div>\n </div>\n </div>\n </div>\n </sub-navigation>\n</template>\n\n<script>\nimport AppLink from \"../widgets/AppLink.vue\";\n// import SubNavigation from \"../navigation/SubNavigation\";\nimport {mapGetters} from \"vuex\";\n\nexport default {\n name: \"DataSetsTopControls\",\n components: {\n // SubNavigation,\n AppLink\n },\n props: [\n \"facets\",\n \"getPage\",\n \"getLimit\"\n ],\n data() {\n return {\n useFeed: this.$env.content.datasets.useFeed,\n baseUrl: this.$env.api.baseUrl,\n }\n },\n computed: {\n ...mapGetters('datasets', [\n 'getSort'\n ])\n },\n methods: {\n getFeedLink(format) {\n return `${this.baseUrl}${this.$route.query.locale}/feeds/datasets.${format}`;\n },\n getFeedQuery() {\n const feedQuery = {};\n const query = this.$route?.query\n if (query?.query) feedQuery.q = query.query;\n if (this.facetsNotEmpty() && JSON.stringify(this.facets)) feedQuery.facets = JSON.stringify(this.facets);\n if (this.getPage) feedQuery.page = Math.max(this.getPage - 1, 0);\n if (this.getLimit) feedQuery.limit = this.getLimit;\n feedQuery.facetOperator = query?.facetOperator || 'AND';\n feedQuery.facetGroupOperator = query?.facetOperator || 'AND';\n feedQuery.dataServices = query?.dataServices || 'false';\n if (this.getSort) feedQuery.sort = this.getSort;\n return feedQuery;\n },\n facetsNotEmpty() {\n return Object.values(this.facets).some(facet => facet.length > 0);\n }\n }\n}\n</script>\n\n"],"names":["_sfc_main","AppLink","mapGetters","format","feedQuery","query","_a","facet","_hoisted_1","_hoisted_2","_hoisted_3","_createBlock","_component_sub_navigation","_createElementVNode","$data","_openBlock","_createElementBlock","_hoisted_4","_ctx","_hoisted_5","_createVNode","_component_app_link","$options","_cache"],"mappings":";;;;AAmCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA;AAAA,IAEV,SAAAC;AAAA,EACD;AAAA,EACD,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,SAAS,KAAK,KAAK,QAAQ,SAAS;AAAA,MACpC,SAAS,KAAK,KAAK,IAAI;AAAA,IACzB;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,YAAY;AAAA,MACxB;AAAA,KACD;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,YAAYC,GAAQ;AAClB,aAAO,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,MAAM,MAAM,mBAAmBA,CAAM;AAAA,IAC3E;AAAA,IACD,eAAe;;AACb,YAAMC,IAAY,CAAA,GACZC,KAAQC,IAAA,KAAK,WAAL,gBAAAA,EAAa;AAC3B,aAAID,KAAA,QAAAA,EAAO,UAAOD,EAAU,IAAIC,EAAM,QAClC,KAAK,eAAc,KAAM,KAAK,UAAU,KAAK,MAAM,MAAGD,EAAU,SAAS,KAAK,UAAU,KAAK,MAAM,IACnG,KAAK,YAASA,EAAU,OAAO,KAAK,IAAI,KAAK,UAAU,GAAG,CAAC,IAC3D,KAAK,aAAUA,EAAU,QAAQ,KAAK,WAC1CA,EAAU,iBAAgBC,KAAA,gBAAAA,EAAO,kBAAiB,OAClDD,EAAU,sBAAqBC,KAAA,gBAAAA,EAAO,kBAAiB,OACvDD,EAAU,gBAAeC,KAAA,gBAAAA,EAAO,iBAAgB,SAC5C,KAAK,YAASD,EAAU,OAAO,KAAK,UACjCA;AAAA,IACR;AAAA,IACD,iBAAiB;AACf,aAAO,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAAG,MAASA,EAAM,SAAS,CAAC;AAAA,IAClE;AAAA,EACF;AACF,GA5ESC,IAAA,EAAA,OAAM,0CAAyC,GAC7CC,IAAA,EAAA,OAAM,yEAAwE,GAC5EC,IAAA,EAAA,OAAM,oBAAmB;;EACR,OAAM;AAAA,EACrB,IAAG;AAAA,EAAiB,eAAY;AAAA,EAChC,iBAAc;AAAA,EAAO,iBAAc;;EAGnC,OAAM;AAAA,EAAoC,mBAAgB;;;;cATvEC,EA0BiBC,GAAA,MAAA;AAAA,eAzBf,MAwBM;AAAA,MAxBNC,EAwBM,OAxBNL,GAwBM;AAAA,QAvBJK,EAsBM,OAtBNJ,GAsBM;AAAA,UArBJI,EAoBM,OApBNH,GAoBM;AAAA,YAnBOI,EAAO,WAAlBC,KAAAC,EAIM,OAJNC,GAIM;AAAA,cADJJ,EAAoD,eAA5CK,EAAE,GAAA,+BAAA,CAAA,GAAA,CAAA;AAAA;;YAEZL,EAaM,OAbNM,GAaM;AAAA,cAZJC,EAKqBC,GAAA;AAAA,gBALX,OAAM;AAAA,gBACL,MAAMC,EAAW,YAAA,KAAA;AAAA,gBACjB,OAAOA,EAAY,aAAA;AAAA,gBACpB,QAAO;AAAA,gBACP,0BAAA;AAAA;2BAAuB,MACvBC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,oBADuB;AAAA,uBACvB;AAAA;;;;;cACVH,EAKsBC,GAAA;AAAA,gBALZ,OAAM;AAAA,gBACL,MAAMC,EAAW,YAAA,MAAA;AAAA,gBACjB,OAAOA,EAAY,aAAA;AAAA,gBACpB,QAAO;AAAA,gBACP,0BAAA;AAAA;2BAAuB,MACtBC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,oBADsB;AAAA,wBACtB;AAAA;;;;;;;;;;;;;"}
|