@piveau/piveau-hub-ui-modules 4.6.66 → 4.6.68
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 +1 -1
- 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 +4 -4
- 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 +7 -7
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +8 -10
- 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 +1 -1
- 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.mjs.map +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 +3 -3
- 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.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +3 -3
- 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 +5 -7
- 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 +2 -4
- 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 +2 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.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.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
- 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.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.mjs.map +1 -1
- 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.mjs.map +1 -1
- 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.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
- 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.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -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/v3/ZodError +88 -0
- package/dist/external/zod/v3/ZodError.map +1 -0
- package/dist/external/zod/v3/errors +10 -0
- package/dist/external/zod/v3/errors.map +1 -0
- package/dist/external/zod/v3/helpers/errorUtil +8 -0
- package/dist/external/zod/v3/helpers/errorUtil.map +1 -0
- package/dist/external/zod/v3/helpers/parseUtil +98 -0
- package/dist/external/zod/v3/helpers/parseUtil.map +1 -0
- package/dist/external/zod/v3/helpers/util +95 -0
- package/dist/external/zod/v3/helpers/util.map +1 -0
- package/dist/external/zod/v3/locales/en +62 -0
- package/dist/external/zod/v3/locales/en.map +1 -0
- package/dist/external/zod/v3/types +2420 -0
- package/dist/external/zod/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/bulkDownloadCorsProxyService.mjs +32 -31
- package/dist/services/bulkDownloadCorsProxyService.mjs.map +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.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":"UserProfilePage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserProfilePage.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content\">\n <h1 class=\"small-headline dataset-details-title\">My Profile</h1>\n <div class=\"panel-body inf-content\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- <strong class=\"table-header\">User Information</strong><br> -->\n <div class=\"table-responsive\">\n <table class=\"table table-user-information\">\n <tbody>\n <tr>\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n User ID:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n {{ getUserName }}\n </td>\n </tr>\n <tr>\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n Roles:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n <p v-for=\"i in getUserData['roles'].filter(role => !role.startsWith('default-roles') && !['offline_access', 'uma_authorization'].includes(role))\" :key=\"i\">\n {{ i }}\n </p>\n </td>\n </tr>\n <tr v-if=\"userProfileDashboardUrl\">\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n User Profile:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n <a :href=\"userProfileDashboardUrl\" target=\"_blank\" class=\"btn btn-link\">Edit Profile</a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\n\n// let instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\n\n\nexport default {\n name: 'DataProviderInterface-UserProfile',\n // props: [],\n // data() {\n // return {\n // values: {},\n // };\n // },\n\n data() {\n return {\n // Need to assign the URL for userProfileDashboardUrl in the config files. \n userProfileDashboardUrl: getCurrentInstance().appContext.app.config.globalProperties.$env.content.dataProviderInterface.userProfileDashboardUrl || '',\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getUserName',\n 'getUserData'\n ]),\n },\n // methods: {},\n // created() { },\n};\n</script>\n\n<style scoped>\n.inf-content {\n /* border: 1px solid #DDDDDD;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n border-radius: 10px;\n box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3); */\n padding: 10px;\n}\n\n/* .table-header {\n padding: 0.75rem;\n} */\n\n.table td {\n padding: 15px;\n vertical-align: middle;\n border-bottom: 1px solid #DDDDDD; /* Ensures the horizontal lines span full width */\n}\n\n.table th {\n text-align: left;\n}\n\nh1.small-headline {\n margin-bottom: 20px;\n}\n\np {\n margin: 0; /* Ensure proper line breaks */\n}\n/* Added space at the bottom of the page */\n.content {\n padding-bottom: 60px;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse; /* Ensures the borders are merged properly */\n}\n\n.label-column {\n width: 10%; /* Adjust as needed */\n text-align: left;\n padding-right: 10px;\n min-width: 200px;\n}\n\n.value-column {\n width: 100%; /* Adjust as needed */\n}\n\n.value-column .btn {\n padding: 0;\n /* text-decoration: none;\n color: #5bc0de; */\n}\n\n.table tr:last-child td {\n border-bottom: none;\n}\n\n/* .dataset-details-title {\n font-size: 1.4rem;\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n} */\n\n.dataset-details-title {\n display: flex;\n align-items: center; /* Aligns the text and line in the center */\n font-size: 1.4rem;\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\n.dataset-details-title::after {\n content: \"\"; /* Creates the line after the text */\n flex-grow: 1; /* Makes the line span the remaining width */\n height: 1px; /* Thickness of the line */\n background-color: #ccc; /* Line color */\n margin-left: 10px; /* Space between the text and the line */\n}\n\n</style>\n"],"names":["_sfc_main","getCurrentInstance","mapGetters","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_10","
|
|
1
|
+
{"version":3,"file":"UserProfilePage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserProfilePage.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content\">\n <h1 class=\"small-headline dataset-details-title\">My Profile</h1>\n <div class=\"panel-body inf-content\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- <strong class=\"table-header\">User Information</strong><br> -->\n <div class=\"table-responsive\">\n <table class=\"table table-user-information\">\n <tbody>\n <tr>\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n User ID:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n {{ getUserName }}\n </td>\n </tr>\n <tr>\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n Roles:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n <p v-for=\"i in getUserData['roles'].filter(role => !role.startsWith('default-roles') && !['offline_access', 'uma_authorization'].includes(role))\" :key=\"i\">\n {{ i }}\n </p>\n </td>\n </tr>\n <tr v-if=\"userProfileDashboardUrl\">\n <td class=\"label-column\">\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n User Profile:\n </strong>\n </td>\n <td class=\"text-primary value-column\">\n <a :href=\"userProfileDashboardUrl\" target=\"_blank\" class=\"btn btn-link\">Edit Profile</a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\n\n// let instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\n\n\nexport default {\n name: 'DataProviderInterface-UserProfile',\n // props: [],\n // data() {\n // return {\n // values: {},\n // };\n // },\n\n data() {\n return {\n // Need to assign the URL for userProfileDashboardUrl in the config files. \n userProfileDashboardUrl: getCurrentInstance().appContext.app.config.globalProperties.$env.content.dataProviderInterface.userProfileDashboardUrl || '',\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getUserName',\n 'getUserData'\n ]),\n },\n // methods: {},\n // created() { },\n};\n</script>\n\n<style scoped>\n.inf-content {\n /* border: 1px solid #DDDDDD;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n border-radius: 10px;\n box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3); */\n padding: 10px;\n}\n\n/* .table-header {\n padding: 0.75rem;\n} */\n\n.table td {\n padding: 15px;\n vertical-align: middle;\n border-bottom: 1px solid #DDDDDD; /* Ensures the horizontal lines span full width */\n}\n\n.table th {\n text-align: left;\n}\n\nh1.small-headline {\n margin-bottom: 20px;\n}\n\np {\n margin: 0; /* Ensure proper line breaks */\n}\n/* Added space at the bottom of the page */\n.content {\n padding-bottom: 60px;\n}\n\n.table {\n width: 100%;\n border-collapse: collapse; /* Ensures the borders are merged properly */\n}\n\n.label-column {\n width: 10%; /* Adjust as needed */\n text-align: left;\n padding-right: 10px;\n min-width: 200px;\n}\n\n.value-column {\n width: 100%; /* Adjust as needed */\n}\n\n.value-column .btn {\n padding: 0;\n /* text-decoration: none;\n color: #5bc0de; */\n}\n\n.table tr:last-child td {\n border-bottom: none;\n}\n\n/* .dataset-details-title {\n font-size: 1.4rem;\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n} */\n\n.dataset-details-title {\n display: flex;\n align-items: center; /* Aligns the text and line in the center */\n font-size: 1.4rem;\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\n.dataset-details-title::after {\n content: \"\"; /* Creates the line after the text */\n flex-grow: 1; /* Makes the line span the remaining width */\n height: 1px; /* Thickness of the line */\n background-color: #ccc; /* Line color */\n margin-left: 10px; /* Space between the text and the line */\n}\n\n</style>\n"],"names":["_sfc_main","getCurrentInstance","mapGetters","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_10","_openBlock","_createElementBlock","_cache","_createElementVNode","_toDisplayString","_ctx","_Fragment","_renderList","role","i","$data","_hoisted_9","_hoisted_11"],"mappings":";;;;AA8DA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQN,OAAO;AACL,WAAO;AAAA;AAAA,MAEL,yBAAyBC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB,KAAK,QAAQ,sBAAsB,2BAA2B;AAAA;EAEtJ;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACF;AAAA;AAAA;AAGH,GApFOC,IAAA,EAAA,OAAM,oFAAmF,GAEvFC,IAAA,EAAA,OAAM,yBAAwB,GAC5BC,IAAA,EAAA,OAAM,MAAK,GACTC,IAAA,EAAA,OAAM,YAAW,GAEfC,IAAA,EAAA,OAAM,mBAAkB,GACpBC,IAAA,EAAA,OAAM,+BAA8B,GASjCC,IAAA,EAAA,OAAM,4BAA2B,GAWjCC,IAAA,EAAA,OAAM,4BAA2B,mBAajCC,IAAA,EAAA,OAAM,4BAA2B;;AAxCrD,SAAAC,EAAA,GAAAC,EAkDM,OAlDNV,GAkDM;AAAA,IAjDJW,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAgE,MAA5D,EAAA,OAAM,uCAAsC,GAAC,cAAU,EAAA;AAAA;IAC3DA,EA+CM,OA/CNX,GA+CM;AAAA,MA9CJW,EA6CM,OA7CNV,GA6CM;AAAA,QA5CJU,EA2CM,OA3CNT,GA2CM;AAAA,UAzCJS,EAwCM,OAxCNR,GAwCM;AAAA,YAvCJQ,EAsCQ,SAtCRP,GAsCQ;AAAA,cArCNO,EAoCQ,SAAA,MAAA;AAAA,gBAnCNA,EAUK,MAAA,MAAA;AAAA,kCATHA,EAKK,MAAA,EALD,OAAM,kBAAc;AAAA,oBACtBA,EAGS,UAAA,MAAA;AAAA,sBAFPA,EAA2D,QAAA,EAArD,OAAM,wCAAuC,CAAA;AAAA,wBAAQ;AAAA;AAAA,qBAE7D;AAAA;;;kBAEFA,EAEK,MAFLN,GAEKO,EADAC,EAAW,WAAA,GAAA,CAAA;AAAA;;gBAGlBF,EAYK,MAAA,MAAA;AAAA,kCAXHA,EAKK,MAAA,EALD,OAAM,kBAAc;AAAA,oBACtBA,EAGS,UAAA,MAAA;AAAA,sBAFPA,EAA2D,QAAA,EAArD,OAAM,wCAAuC,CAAA;AAAA,wBAAQ;AAAA;AAAA,qBAE7D;AAAA;;;kBAEFA,EAIK,MAJLL,GAIK;AAAA,qBAHHE,EAAA,EAAA,GAAAC,EAEIK,GAFW,MAAAC,EAAAF,EAAA,YAAqB,MAAA,OAAO,CAAAG,MAAI,CAAKA,EAAK,WAAwE,eAAA,KAAA,CAAA,CAAA,kBAAA,mBAAA,EAAA,SAASA,CAAI,KAApIC,OAAVT,EAAA,GAAAC,EAEI,KAF+I,EAAA,KAAKQ,EAAC,KACpJA,CAAC,GAAA,CAAA;;;;gBAIAC,EAAuB,gCAAjCT,EAUK,MAAAU,GAAA;AAAA,kCATHR,EAKK,MAAA,EALD,OAAM,kBAAc;AAAA,oBACtBA,EAGS,UAAA,MAAA;AAAA,sBAFPA,EAA2D,QAAA,EAArD,OAAM,wCAAuC,CAAA;AAAA,wBAAQ;AAAA;AAAA,qBAE7D;AAAA;;;kBAEFA,EAEK,MAFLJ,GAEK;AAAA,oBADHI,EAAwF,KAAA;AAAA,sBAApF,MAAMO,EAAuB;AAAA,sBAAE,QAAO;AAAA,sBAAS,OAAM;AAAA,uBAAe,gBAAY,GAAAE,CAAA;AAAA;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppMarkdownContent.vue.mjs","sources":["../../lib/datasetDetails/AppMarkdownContent.vue"],"sourcesContent":["/**\n * A component that renders sanitized Markdown formatted text.\n */\n\n<template>\n <div class=\"markdown-container\">\n\n <!-- Prepend content here -->\n <slot name=\"before\" />\n\n <!-- This slot provides for further customization using interpreted content -->\n <slot :html=\"interpretedMarkdownText\">\n <component\n :is=\"tag\"\n class=\"markdown-content\"\n v-html=\"interpretedMarkdownText\"\n />\n </slot>\n\n <!-- Append content here -->\n <slot name=\"after\" />\n\n </div>\n</template>\n\n<script>\n// For Markdown into HTML\nimport { marked } from 'marked';\n// For sanitizing HTML to prevent vulnerabilities\nimport DOMPurify from 'dompurify';\n\n// Set DOMPurify configuration.\n// Note: don't refactor this code into any lifecycle hook since this will cause\n// the configuration code each time this component is rendered.\n\n// General settings\nDOMPurify.setConfig({\n // By using HTML profile, forbid SVG and MathML\n USE_PROFILES: { html: true },\n FORBID_TAGS: ['img'],\n FORBID_ATTR: ['style', 'class'],\n});\n\n// Add a hook to transform every <h1> into <h2>\nDOMPurify.addHook('uponSanitizeElement', (node) => {\n const { tagName } = node;\n if (tagName && tagName.toLowerCase() === 'h1') {\n const h2 = document.createElement('h2');\n h2.innerHTML = node.innerHTML;\n\n node.parentNode.replaceChild(h2, node);\n }\n});\n\n// Add a hook to make all links open a new window\nDOMPurify.addHook('afterSanitizeAttributes', (node) => {\n // set all elements owning target to target=_blank\n if ('target' in node) {\n node.setAttribute('target', '_blank');\n // prevent https://www.owasp.org/index.php/Reverse_Tabnabbing\n node.setAttribute('rel', 'noopener noreferrer');\n }\n // set non-HTML/MathML links to xlink:show=new\n if (!node.hasAttribute('target')\n && (node.hasAttribute('xlink:href')\n || node.hasAttribute('href'))) {\n node.setAttribute('xlink:show', 'new');\n }\n});\n\nexport default {\n name: 'AppMarkdownContent',\n props: {\n /**\n * Tag of resulting markdown content container\n */\n tag: {\n type: String,\n default: 'div',\n },\n /**\n * Input text to be interpreted\n */\n text: {\n type: String,\n default: '',\n },\n },\n computed: {\n interpretedMarkdownText() {\n return DOMPurify.sanitize(\n marked.parse(this.text.trim(), { smartLists: true }),\n );\n },\n },\n};\n</script>\n\n<style scoped>\n\n.markdown-container {\n word-wrap: break-word;\n}\n\n</style>\n"],"names":["DOMPurify","node","tagName","h2","_sfc_main","marked","_hoisted_1","_openBlock","_createElementBlock","_renderSlot","_ctx","
|
|
1
|
+
{"version":3,"file":"AppMarkdownContent.vue.mjs","sources":["../../lib/datasetDetails/AppMarkdownContent.vue"],"sourcesContent":["/**\n * A component that renders sanitized Markdown formatted text.\n */\n\n<template>\n <div class=\"markdown-container\">\n\n <!-- Prepend content here -->\n <slot name=\"before\" />\n\n <!-- This slot provides for further customization using interpreted content -->\n <slot :html=\"interpretedMarkdownText\">\n <component\n :is=\"tag\"\n class=\"markdown-content\"\n v-html=\"interpretedMarkdownText\"\n />\n </slot>\n\n <!-- Append content here -->\n <slot name=\"after\" />\n\n </div>\n</template>\n\n<script>\n// For Markdown into HTML\nimport { marked } from 'marked';\n// For sanitizing HTML to prevent vulnerabilities\nimport DOMPurify from 'dompurify';\n\n// Set DOMPurify configuration.\n// Note: don't refactor this code into any lifecycle hook since this will cause\n// the configuration code each time this component is rendered.\n\n// General settings\nDOMPurify.setConfig({\n // By using HTML profile, forbid SVG and MathML\n USE_PROFILES: { html: true },\n FORBID_TAGS: ['img'],\n FORBID_ATTR: ['style', 'class'],\n});\n\n// Add a hook to transform every <h1> into <h2>\nDOMPurify.addHook('uponSanitizeElement', (node) => {\n const { tagName } = node;\n if (tagName && tagName.toLowerCase() === 'h1') {\n const h2 = document.createElement('h2');\n h2.innerHTML = node.innerHTML;\n\n node.parentNode.replaceChild(h2, node);\n }\n});\n\n// Add a hook to make all links open a new window\nDOMPurify.addHook('afterSanitizeAttributes', (node) => {\n // set all elements owning target to target=_blank\n if ('target' in node) {\n node.setAttribute('target', '_blank');\n // prevent https://www.owasp.org/index.php/Reverse_Tabnabbing\n node.setAttribute('rel', 'noopener noreferrer');\n }\n // set non-HTML/MathML links to xlink:show=new\n if (!node.hasAttribute('target')\n && (node.hasAttribute('xlink:href')\n || node.hasAttribute('href'))) {\n node.setAttribute('xlink:show', 'new');\n }\n});\n\nexport default {\n name: 'AppMarkdownContent',\n props: {\n /**\n * Tag of resulting markdown content container\n */\n tag: {\n type: String,\n default: 'div',\n },\n /**\n * Input text to be interpreted\n */\n text: {\n type: String,\n default: '',\n },\n },\n computed: {\n interpretedMarkdownText() {\n return DOMPurify.sanitize(\n marked.parse(this.text.trim(), { smartLists: true }),\n );\n },\n },\n};\n</script>\n\n<style scoped>\n\n.markdown-container {\n word-wrap: break-word;\n}\n\n</style>\n"],"names":["DOMPurify","node","tagName","h2","_sfc_main","marked","_hoisted_1","_openBlock","_createElementBlock","_renderSlot","_ctx","$options","_createBlock","_resolveDynamicComponent","$props"],"mappings":";;;;;AAoCAA,EAAU,UAAU;AAAA;AAAA,EAElB,cAAc,EAAE,MAAM,GAAM;AAAA,EAC5B,aAAa,CAAC,KAAK;AAAA,EACnB,aAAa,CAAC,SAAS,OAAO;AAChC,CAAC;AAGDA,EAAU,QAAQ,uBAAuB,CAACC,MAAS;AACjD,QAAM,EAAE,SAAAC,EAAQ,IAAID;AACpB,MAAIC,KAAWA,EAAQ,YAAW,MAAO,MAAM;AAC7C,UAAMC,IAAK,SAAS,cAAc,IAAI;AACtC,IAAAA,EAAG,YAAYF,EAAK,WAEpBA,EAAK,WAAW,aAAaE,GAAIF,CAAI;AAAA,EACvC;AACF,CAAC;AAGDD,EAAU,QAAQ,2BAA2B,CAACC,MAAS;AAErD,EAAI,YAAYA,MACdA,EAAK,aAAa,UAAU,QAAQ,GAEpCA,EAAK,aAAa,OAAO,qBAAqB,IAG5C,CAACA,EAAK,aAAa,QAAQ,MACrBA,EAAK,aAAa,YAAY,KAC3BA,EAAK,aAAa,MAAM,MACnCA,EAAK,aAAa,cAAc,KAAK;AAEzC,CAAC;AAED,MAAKG,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,0BAA0B;AACxB,aAAOJ,EAAU;AAAA,QACfK,EAAO,MAAM,KAAK,KAAK,KAAI,GAAI,EAAE,YAAY,IAAM;AAAA;IAEtD;AAAA,EACF;AACH,GA1FOC,IAAA,EAAA,OAAM,qBAAoB;;AAA/B,SAAAC,EAAA,GAAAC,EAiBM,OAjBNF,GAiBM;AAAA,IAdJG,EAAsBC,EAAA,QAAA,UAAA,CAAA,GAAA,QAAA,EAAA;AAAA;IAGtBD,EAMOC,EANA,QAAA,WAAA,EAAA,MAAMC,EAAA,wBAAuB,GAApC,MAMO;AAAA,OALLJ,EAAA,GAAAK,EAIEC,EAHKC,EAAG,GAAA,GAAA;AAAA,QACR,OAAM;AAAA,QACN,WAAQH,EAAuB;AAAA;;;IAKnCF,EAAqBC,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetails.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetails.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column p-0 bg-transparent\"\n :data-cy=\"getRepresentativeLocaleOf(getTitle, $route.query.locale, getLanguages)\n && `dataset@${getRepresentativeLocaleOf(getTitle, $route.query.locale, getLanguages)}`\"\n > \n <router-view name=\"test\" ></router-view>\n <dataset-details-navigation v-if=\"topTitle\" :dataset-id=\"getID\"/>\n <div class=\"container-fluid mb-5 pt-1 content dsd-content\">\n <dataset-details-header />\n <dataset-details-navigation v-if=\"!topTitle\" :dataset-id=\"getID\"/>\n <hr v-if=\"topTitle\" />\n <router-view name=\"datasetDetailsSubpages\" ></router-view>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { useRoute } from 'vue-router';\n\nimport DatasetDetailsHeader from './header/DatasetDetailsHeader.vue';\nimport DatasetDetailsNavigation from './navigation/DatasetDetailsNavigation.vue';\nimport { getRepresentativeLocaleOf } from '../utils/helpers';\nimport { useDownloadDatasetOnMount } from '../composables/useDownloadDatasetOnMount';\nimport * as metaInfo from '../composables/head';\nimport {useRuntimeEnv} from \"../composables/useRuntimeEnv.ts\";\n\n\nexport default {\n name: 'datasetDetails',\n components: {\n DatasetDetailsHeader,\n DatasetDetailsNavigation,\n },\n data() {\n return {\n topTitle: this.$env.content.datasetDetails.header.navigation === \"top\",\n };\n },\n props: {\n activeTab: {\n type: Number,\n default: 0\n },\n citationStyle: String\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getLanguages',\n 'getTitle',\n ]),\n },\n methods: {\n getRepresentativeLocaleOf,\n },\n setup() {\n metaInfo.useDatasetDetailsHead();\n const route = useRoute();\n const env = useRuntimeEnv();\n useDownloadDatasetOnMount({ route, hubUrl: env.api.hubUrl });\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n .content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n }\n</style>\n"],"names":["_sfc_main","DatasetDetailsHeader","DatasetDetailsNavigation","mapGetters","getRepresentativeLocaleOf","metaInfo.useDatasetDetailsHead","route","useRoute","env","useRuntimeEnv","useDownloadDatasetOnMount","
|
|
1
|
+
{"version":3,"file":"DatasetDetails.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetails.vue"],"sourcesContent":["<template>\n <div\n class=\"d-flex flex-column p-0 bg-transparent\"\n :data-cy=\"getRepresentativeLocaleOf(getTitle, $route.query.locale, getLanguages)\n && `dataset@${getRepresentativeLocaleOf(getTitle, $route.query.locale, getLanguages)}`\"\n > \n <router-view name=\"test\" ></router-view>\n <dataset-details-navigation v-if=\"topTitle\" :dataset-id=\"getID\"/>\n <div class=\"container-fluid mb-5 pt-1 content dsd-content\">\n <dataset-details-header />\n <dataset-details-navigation v-if=\"!topTitle\" :dataset-id=\"getID\"/>\n <hr v-if=\"topTitle\" />\n <router-view name=\"datasetDetailsSubpages\" ></router-view>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { useRoute } from 'vue-router';\n\nimport DatasetDetailsHeader from './header/DatasetDetailsHeader.vue';\nimport DatasetDetailsNavigation from './navigation/DatasetDetailsNavigation.vue';\nimport { getRepresentativeLocaleOf } from '../utils/helpers';\nimport { useDownloadDatasetOnMount } from '../composables/useDownloadDatasetOnMount';\nimport * as metaInfo from '../composables/head';\nimport {useRuntimeEnv} from \"../composables/useRuntimeEnv.ts\";\n\n\nexport default {\n name: 'datasetDetails',\n components: {\n DatasetDetailsHeader,\n DatasetDetailsNavigation,\n },\n data() {\n return {\n topTitle: this.$env.content.datasetDetails.header.navigation === \"top\",\n };\n },\n props: {\n activeTab: {\n type: Number,\n default: 0\n },\n citationStyle: String\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getLanguages',\n 'getTitle',\n ]),\n },\n methods: {\n getRepresentativeLocaleOf,\n },\n setup() {\n metaInfo.useDatasetDetailsHead();\n const route = useRoute();\n const env = useRuntimeEnv();\n useDownloadDatasetOnMount({ route, hubUrl: env.api.hubUrl });\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n .content {\n padding: 30px 30px 0 30px;\n margin-top: 15px;\n margin-bottom: 15px;\n background-color: white;\n }\n</style>\n"],"names":["_sfc_main","DatasetDetailsHeader","DatasetDetailsNavigation","mapGetters","getRepresentativeLocaleOf","metaInfo.useDatasetDetailsHead","route","useRoute","env","useRuntimeEnv","useDownloadDatasetOnMount","_hoisted_2","_createElementBlock","$options","_ctx","_createVNode","_component_router_view","$data","_createBlock","_component_dataset_details_navigation","_createElementVNode","_component_dataset_details_header","_hoisted_3"],"mappings":";;;;;;;;;;;;;;AA6BA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,sBAAAC;AAAA,IACA,0BAAAC;AAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,UAAU,KAAK,KAAK,QAAQ,eAAe,OAAO,eAAe;AAAA;EAEpE;AAAA,EACD,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,eAAe;AAAA,EAChB;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,2BAAAC;AAAA,EACD;AAAA,EACD,QAAQ;AACNC,IAAAA;AACA,UAAMC,IAAQC,KACRC,IAAMC;AACZ,IAAAC,EAA0B,EAAE,OAAAJ,GAAO,QAAQE,EAAI,IAAI,OAAO,CAAC;AAAA,EAC7D;AACF,oBAvDSG,IAAA,EAAA,OAAM,gDAA+C;;;cAP5DC,EAaM,OAAA;AAAA,IAZJ,OAAM;AAAA,IACL,WAASC,EAAyB,0BAACC,EAAQ,UAAEA,EAAM,OAAC,MAAM,QAAQA,EAAY,YAAA,gBAAoBD,EAAyB,0BAACC,YAAUA,EAAA,OAAO,MAAM,QAAQA,EAAY,YAAA,CAAA;AAAA;IAG1KC,EAAwCC,GAAA,EAA3B,MAAK,OAAM,CAAA;AAAA;IACYC,EAAQ,iBAA1CC,EAAiEC,GAAA;AAAA;MAApB,cAAYL,EAAK;AAAA;;IAC9DM,EAKM,OALNT,GAKM;AAAA,MAJJI,EAA0BM,CAAA;AAAA;MACSJ,EAAQ,6BAA3CC,EAAkEC,GAAA;AAAA;QAApB,cAAYL,EAAK;AAAA;;MACrDG,EAAQ,iBAAlBL,EAAsB,MAAAU,CAAA;;MACtBP,EAA0DC,GAAA,EAA7C,MAAK,yBAAwB,CAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsActivityStream.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsActivityStream.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"mt-3\">\n <div class=\"row\">\n <div class=\"col-10 offset-1\">\n <h2>{{ $t('message.datasetDetails.subnav.activityStream') }}</h2>\n </div>\n <div class=\"col-10 offset-1\">\n <div class=\"activity-stream mt-4\">\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset updated</span>\n <span class=\"float-right text-muted small\">2 days ago</span>\n </div>\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset updated</span>\n <span class=\"float-right text-muted small\">5 days ago</span>\n </div>\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset created</span>\n <span class=\"float-right text-muted small\">5 days ago</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from 'vuex';\n\n export default {\n name: 'datasetDetailsActivityStream',\n components: {\n },\n data() {\n return {\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n ]),\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n ]),\n },\n created() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n };\n</script>\n"],"names":["_sfc_main","mapGetters","mapActions","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_ctx"
|
|
1
|
+
{"version":3,"file":"DatasetDetailsActivityStream.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsActivityStream.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"mt-3\">\n <div class=\"row\">\n <div class=\"col-10 offset-1\">\n <h2>{{ $t('message.datasetDetails.subnav.activityStream') }}</h2>\n </div>\n <div class=\"col-10 offset-1\">\n <div class=\"activity-stream mt-4\">\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset updated</span>\n <span class=\"float-right text-muted small\">2 days ago</span>\n </div>\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset updated</span>\n <span class=\"float-right text-muted small\">5 days ago</span>\n </div>\n <div class=\"p-2 mt-3\">\n <span class=\"text-left\">Dataset created</span>\n <span class=\"float-right text-muted small\">5 days ago</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from 'vuex';\n\n export default {\n name: 'datasetDetailsActivityStream',\n components: {\n },\n data() {\n return {\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n ]),\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n ]),\n },\n created() {\n this.$nextTick(() => {\n this.$Progress.start();\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n });\n });\n },\n };\n</script>\n"],"names":["_sfc_main","mapGetters","mapActions","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_ctx"],"mappings":";;;AA+BE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,CACX;AAAA,EACD,OAAO;AACL,WAAO;EAER;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB,CAChC,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,UAAU,MAAM;AACnB,WAAK,UAAU,SACf,KAAK,mBAAmB,KAAK,OAAO,OAAO,KAAK,EAC7C,KAAK,MAAM;AACV,aAAK,UAAU;OAChB,EACA,MAAM,MAAM;AACX,aAAK,UAAU;MACjB,CAAC;AAAA,IACL,CAAC;AAAA,EACF;GAzDIC,IAAA,EAAA,OAAM,OAAM,GACVC,IAAA,EAAA,OAAM,MAAK,GACTC,IAAA,EAAA,OAAM,kBAAiB;;cAHlCC,EAwBM,OAAA,MAAA;AAAA,IAvBJC,EAsBM,OAtBNJ,GAsBM;AAAA,MArBJI,EAoBM,OApBNH,GAoBM;AAAA,QAnBJG,EAEM,OAFNF,GAEM;AAAA,UADJE,EAAiE,cAA1DC,EAAE,GAAA,8CAAA,CAAA,GAAA,CAAA;AAAA;;;;;;;"}
|
|
@@ -6,9 +6,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
6
6
|
getOriginalLanguage: import('vuex').Computed;
|
|
7
7
|
}, {
|
|
8
8
|
getDatasetOriginalLanguage(originalLanguage: any): {
|
|
9
|
-
query:
|
|
10
|
-
locale: any;
|
|
11
|
-
};
|
|
9
|
+
query: any;
|
|
12
10
|
};
|
|
13
11
|
setDatasetOriginalLanguage(originalLanguage: any): void;
|
|
14
12
|
showString(string: any): string is string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsBanners.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsBanners.vue"],"sourcesContent":["<template>\n <div class=\"w-100 dsd-banners\">\n <!-- INCORRECT DATE BANNER -->\n <pv-banner\n v-if=\"dateIncorrect\"\n message=\"This dataset's last updated date is incorrect or incomplete, please contact the data provider for further inquiries.\"\n class=\"mb-3\"\n />\n <pv-banner\n v-if=\"machineTranslated\"\n :message=\"$t('message.datasetDetails.translation.message')\"\n class=\"mb-3\"\n >\n <div v-if=\"showString(getOriginalLanguage)\">\n <p class=\"mb-0\">{{ $t('message.datasetDetails.translation.original') }}: <strong>{{ getOriginalLanguage }}</strong></p>\n <app-link :to=\"getDatasetOriginalLanguage(getOriginalLanguage)\">\n <button class=\"alert-link font-weight-light btn btn-link btn-sm p-0\"\n @click=\"setDatasetOriginalLanguage(getOriginalLanguage)\">\n {{ $t('message.datasetDetails.translation.link') }}\n </button>\n </app-link>\n </div>\n </pv-banner>\n <pv-banner\n v-if=\"translationNotAvailable\"\n :message=\"$t('message.datasetDetails.translation.noTranslation')\"\n class=\"mb-3\"\n />\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport {isNil, isString} from \"lodash\";\nimport AppLink from \"../widgets/AppLink\";\n\nexport default {\n name: \"DatasetDetailsBanners\",\n components: {AppLink},\n props: {\n dateIncorrect: Boolean,\n machineTranslated: Boolean,\n translationNotAvailable: Boolean\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getOriginalLanguage'\n ])\n },\n methods: {\n getDatasetOriginalLanguage(originalLanguage) {\n return { query: Object.assign({}, this.$route.query, { locale: originalLanguage }) };\n },\n setDatasetOriginalLanguage(originalLanguage) {\n this.$i18n.locale = originalLanguage;\n },\n showString(string) {\n return !isNil(string) && isString(string);\n }\n }\n}\n</script>\n"],"names":["_sfc_main","AppLink","mapGetters","originalLanguage","string","isNil","isString","_hoisted_1","_hoisted_3","_openBlock","_createElementBlock","$props","_createBlock","_component_pv_banner","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsBanners.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsBanners.vue"],"sourcesContent":["<template>\n <div class=\"w-100 dsd-banners\">\n <!-- INCORRECT DATE BANNER -->\n <pv-banner\n v-if=\"dateIncorrect\"\n message=\"This dataset's last updated date is incorrect or incomplete, please contact the data provider for further inquiries.\"\n class=\"mb-3\"\n />\n <pv-banner\n v-if=\"machineTranslated\"\n :message=\"$t('message.datasetDetails.translation.message')\"\n class=\"mb-3\"\n >\n <div v-if=\"showString(getOriginalLanguage)\">\n <p class=\"mb-0\">{{ $t('message.datasetDetails.translation.original') }}: <strong>{{ getOriginalLanguage }}</strong></p>\n <app-link :to=\"getDatasetOriginalLanguage(getOriginalLanguage)\">\n <button class=\"alert-link font-weight-light btn btn-link btn-sm p-0\"\n @click=\"setDatasetOriginalLanguage(getOriginalLanguage)\">\n {{ $t('message.datasetDetails.translation.link') }}\n </button>\n </app-link>\n </div>\n </pv-banner>\n <pv-banner\n v-if=\"translationNotAvailable\"\n :message=\"$t('message.datasetDetails.translation.noTranslation')\"\n class=\"mb-3\"\n />\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport {isNil, isString} from \"lodash\";\nimport AppLink from \"../widgets/AppLink\";\n\nexport default {\n name: \"DatasetDetailsBanners\",\n components: {AppLink},\n props: {\n dateIncorrect: Boolean,\n machineTranslated: Boolean,\n translationNotAvailable: Boolean\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getOriginalLanguage'\n ])\n },\n methods: {\n getDatasetOriginalLanguage(originalLanguage) {\n return { query: Object.assign({}, this.$route.query, { locale: originalLanguage }) };\n },\n setDatasetOriginalLanguage(originalLanguage) {\n this.$i18n.locale = originalLanguage;\n },\n showString(string) {\n return !isNil(string) && isString(string);\n }\n }\n}\n</script>\n"],"names":["_sfc_main","AppLink","mapGetters","originalLanguage","string","isNil","isString","_hoisted_1","_hoisted_3","_openBlock","_createElementBlock","$props","_createBlock","_component_pv_banner","_ctx","$options","_hoisted_2","_createElementVNode","_createTextVNode","_toDisplayString","_createVNode","_component_app_link","_cache","$event"],"mappings":";;;;;AAoCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,EAAC,SAAAC,EAAO;AAAA,EACpB,OAAO;AAAA,IACL,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,KACD;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,2BAA2BC,GAAkB;AAC3C,aAAO,EAAE,OAAO,OAAO,OAAO,CAAA,GAAI,KAAK,OAAO,OAAO,EAAE,QAAQA,EAAiB,CAAC;IAClF;AAAA,IACD,2BAA2BA,GAAkB;AAC3C,WAAK,MAAM,SAASA;AAAA,IACrB;AAAA,IACD,WAAWC,GAAQ;AACjB,aAAO,CAACC,EAAMD,CAAM,KAAKE,EAASF,CAAM;AAAA,IAC1C;AAAA,EACF;AACF,GA3DOG,IAAA,EAAA,OAAM,oBAAmB,mBAarBC,IAAA,EAAA,OAAM,OAAM;;;AAbrB,SAAAC,EAAA,GAAAC,EA2BM,OA3BNH,GA2BM;AAAA,IAxBII,EAAa,sBADrBC,EAIEC,GAAA;AAAA;MAFA,SAAQ;AAAA,MACR,OAAM;AAAA;;IAGAF,EAAiB,0BADzBC,EAcYC,GAAA;AAAA;MAZT,SAASC,EAAE,GAAA,4CAAA;AAAA,MACZ,OAAM;AAAA;iBAEN,MAQM;AAAA,QARKC,EAAA,WAAWD,EAAmB,mBAAA,UAAzCJ,EAQM,OAAAM,GAAA;AAAA,UAPJC,EAAuH,KAAvHT,GAAuH;AAAA,YAApGU,EAAAC,EAAAL,EAAA,qDAAoD,MAAE,CAAA;AAAA,YAAAG,EAA0C,kBAA/BH,EAAmB,mBAAA,GAAA,CAAA;AAAA;;UACvGM,EAKWC,GAAA;AAAA,YALA,IAAIN,EAA0B,2BAACD,EAAmB,mBAAA;AAAA;uBAC3D,MAGS;AAAA,cAHTG,EAGS,UAAA;AAAA,gBAHD,OAAM;AAAA,gBACL,SAAKK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAER,EAA0B,2BAACD,EAAmB,mBAAA;AAAA,mBACzDA,EAAE,GAAA,yCAAA,CAAA,GAAA,CAAA;AAAA;;;;;;;;IAMLH,EAAuB,gCAD/BC,EAIEC,GAAA;AAAA;MAFC,SAASC,EAAE,GAAA,kDAAA;AAAA,MACZ,OAAM;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsCSVLinter.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsCSVLinter.vue"],"sourcesContent":["<template>\n <!-- CSV Linter -->\n <div class=\"dsd-distribution-quality-csv row\" v-if=\"showValidation\">\n <h4 class=\"col-12 mt-5 mb-3 font-weight-bold\">{{ csvLinter.title }}</h4>\n <div class=\"col-12\">\n <pv-banner>{{ csvLinter.banner }}</pv-banner>\n </div>\n <div class=\"col-7\">\n <div class=\"p-3 csv-validation-box\"\n :class=\"getValidationStatus(validation.passed)\">\n <div class=\"row mt-2\">\n <div class=\"col-1 mt-4\">\n <i class=\"material-icons\" :class=\"getValidationStatus(validation.passed)\">\n {{ getValidationResultIcon(validation.passed) }}\n </i>\n </div>\n <div class=\"col-11\">\n <h5 class=\"font-weight-bold\">{{ csvLinter.validationTitle[validation.passed] }}</h5>\n <p>{{ csvLinter.validationDescription[validation.passed] }}</p>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-5\">\n <table class=\"row mt-4\">\n <tbody>\n <tr>\n <td class=\"col-12 text-center heading-1 color-red\">{{ validationCount['errors'] }}</td>\n <td class=\"col-12 text-center heading-1 color-orange\">{{ validationCount['warnings'] }}</td>\n <td class=\"col-12 text-center heading-1 color-blue\">{{ validationCount['infos'] }}</td>\n </tr>\n <tr>\n <td class=\"col-12 text-center heading-4 color-red\">{{ $tc('message.datasetDetails.quality.error', 2) }}</td>\n <td class=\"col-12 text-center heading-4 color-orange\">{{ $tc('message.datasetDetails.quality.warning', 2) }}</td>\n <td class=\"col-12 text-center heading-4 color-blue\">{{ $tc('message.datasetDetails.quality.message', 2) }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n <span class=\"col-12 mt-3\">{{ $t('message.datasetDetails.quality.totalRows') }}: <strong>{{ validation.rowCount }}</strong></span>\n <div class=\"col-12 csv-result-details\" :class=\"getBorderStyle(index)\" v-for=\"(csvResult, index) in displayedValidationResults\" :key=\"index\">\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"my-4 px-5 tag\" :class=\"getBGStyle(csvResult.type)\">{{ csvResult.type }}</div>\n </div>\n <div class=\"col-9 mt-3\">\n <h5 class=\"font-weight-bold mt-1\">{{ csvResult.message_header }}</h5>\n <div>{{ csvResult.message }}</div>\n <div class=\"small\" v-if=\"csvResult.row > -1 && csvResult.column > -1\">\n {{ $t('message.datasetDetails.quality.row') }}: {{ csvResult.row }}, {{ $t('message.datasetDetails.quality.column') }}: {{ csvResult.column }}\n </div>\n <div class=\"small\" v-else-if=\"csvResult.row > -1 && csvResult.column === -1\">\n {{ $t('message.datasetDetails.quality.row') }}: {{ csvResult.row }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-12\" v-if=\"showLimit\">\n <pv-banner>{{ `${csvLinter.limit} ${validation.limit}` }}</pv-banner>\n </div>\n <pv-show-more class=\"col-12 text-primary mb-3 mt-5\"\n v-if=\"useECMore\"\n :label=\"csvLinter.displayAll ? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"csvLinter.displayAll\"\n :action=\"() => toggleDisplayAll()\"></pv-show-more>\n </div>\n</template>\n\n<script>\nimport { has, isNil } from 'lodash-es';\nimport ShowMore from \"../widgets/PvShowMore.vue\";\nimport PvBanner from \"../widgets/PvBanner.vue\";\n\nexport default {\n name: 'datasetDetailsCSVLinter',\n components: {\n PvBanner,\n },\n props: ['validation'],\n data() {\n return {\n csvLinter: {\n title: this.$t('message.datasetDetails.quality.title'),\n banner: this.$t('message.datasetDetails.quality.banner'),\n limit: this.$t('message.datasetDetails.quality.limit'),\n displayAll: this.$env.content.datasetDetails.quality.csvLinter.displayAll,\n numberOfDisplayedValidationResults: this.$env.content.datasetDetails.quality.csvLinter.numberOfDisplayedValidationResults,\n validationTitle: {\n true: this.$t('message.datasetDetails.quality.validationTitle.success'),\n false: this.$t('message.datasetDetails.quality.validationTitle.error'),\n },\n validationDescription: {\n true: this.$t('message.datasetDetails.quality.validationDescription.success'),\n false: this.$t('message.datasetDetails.quality.validationDescription.error'),\n },\n },\n };\n },\n computed: {\n showLimit() {\n return has(this.validation, 'limit') && !isNil(this.validation.limit);\n },\n showValidation() {\n return !isNil(this.validation)\n && has(this.validation, 'passed')\n && has(this.validation, 'errors')\n && has(this.validation, 'warnings')\n && has(this.validation, 'infos');\n },\n useECMore() {\n return this.validationResults.length > this.csvLinter.numberOfDisplayedValidationResults;\n },\n displayedValidationResults() {\n return this.csvLinter.displayAll\n ? this.validationResults\n : this.validationResults.slice(0, this.csvLinter.numberOfDisplayedValidationResults);\n },\n validationResults() {\n let errors = has(this.validation.errors, 'items') ? this.validation.errors.items : [];\n let warnings = has(this.validation.warnings, 'items') ? this.validation.warnings.items : [];\n let infos = has(this.validation.infos, 'items') ? this.validation.infos.items : [];\n\n errors.forEach(i => i.type = this.$tc('message.datasetDetails.quality.error', 1));\n warnings.forEach(i => i.type = this.$tc('message.datasetDetails.quality.warning', 1));\n infos.forEach(i => i.type = this.$tc('message.datasetDetails.quality.message', 1));\n\n return errors.concat(warnings).concat(infos);\n },\n validationCount() {\n let errors = has(this.validation.errors, 'count') ? this.validation.errors.count : 0;\n let warnings = has(this.validation.warnings, 'count') ? this.validation.warnings.count : 0;\n let infos = has(this.validation.infos, 'count') ? this.validation.infos.count : 0;\n\n return {\n errors,\n warnings,\n infos,\n };\n },\n },\n methods: {\n has,\n isNil,\n toggleDisplayAll() {\n this.csvLinter.displayAll = !this.csvLinter.displayAll;\n },\n getValidationResultIcon(status) {\n return status === true ? 'check_circle'\n : status === false ? 'disabled_by_default'\n : 'info'\n },\n getValidationStatus(status) {\n return status === true ? 'success'\n : status === false ? 'error'\n : 'info'\n },\n getBorderStyle(index) {\n return index > 0\n ? 'border-top'\n : '';\n },\n getBGStyle(type) {\n return type === 'Error' ? 'bg-red'\n : type === 'Warning' ? 'bg-orange'\n : type === 'Message' ? 'bg-blue'\n : 'bg-white';\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.dsd-distribution-quality-csv {\n .heading {\n &-1 {\n font-size: 2rem;\n font-weight: 700;\n }\n\n &-4 {\n font-size: 1.25rem;\n font-weight: 700;\n }\n }\n\n .color {\n &-red {\n color: #DA2131;\n }\n\n &-orange {\n color: #F29527;\n }\n\n &-blue {\n color: #4073AF;\n }\n }\n\n .bg {\n &-red {\n background-color: #DA2131;\n }\n\n &-orange {\n background-color: #F29527;\n }\n\n &-blue {\n background-color: #4073AF;\n }\n }\n\n .csv-validation-box {\n color: black;\n background-color: #FFFFFF;\n border: 2px solid #000000;\n\n &.success {\n border-color: #467A39;\n }\n &.error {\n border-color: #DA2131;\n }\n\n .material-icons {\n &.success {\n color: #467A39;\n }\n &.error {\n color: #DA2131;\n }\n }\n }\n\n .csv-result-details {\n\n &.border {\n &-top {\n border-top: 1px solid #9F9F9F;\n }\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n color: #FFFFFF;\n font-size: 1rem;\n padding: 0.5rem 0.75rem;\n border-radius: 1rem;\n border-width: 0;\n text-decoration: none;\n box-sizing: border-box;\n white-space: nowrap;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","PvBanner","has","isNil","errors","warnings","infos","i","status","index","type","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","$options","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","$data","_cache","_createTextVNode","_createVNode","_component_pv_banner","_withCtx","_normalizeClass","$props","_ctx","_Fragment","_renderList","csvResult","_hoisted_22","_hoisted_23","_createCommentVNode","_hoisted_24","_createBlock","_component_pv_show_more"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetDetailsCSVLinter.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsCSVLinter.vue"],"sourcesContent":["<template>\n <!-- CSV Linter -->\n <div class=\"dsd-distribution-quality-csv row\" v-if=\"showValidation\">\n <h4 class=\"col-12 mt-5 mb-3 font-weight-bold\">{{ csvLinter.title }}</h4>\n <div class=\"col-12\">\n <pv-banner>{{ csvLinter.banner }}</pv-banner>\n </div>\n <div class=\"col-7\">\n <div class=\"p-3 csv-validation-box\"\n :class=\"getValidationStatus(validation.passed)\">\n <div class=\"row mt-2\">\n <div class=\"col-1 mt-4\">\n <i class=\"material-icons\" :class=\"getValidationStatus(validation.passed)\">\n {{ getValidationResultIcon(validation.passed) }}\n </i>\n </div>\n <div class=\"col-11\">\n <h5 class=\"font-weight-bold\">{{ csvLinter.validationTitle[validation.passed] }}</h5>\n <p>{{ csvLinter.validationDescription[validation.passed] }}</p>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-5\">\n <table class=\"row mt-4\">\n <tbody>\n <tr>\n <td class=\"col-12 text-center heading-1 color-red\">{{ validationCount['errors'] }}</td>\n <td class=\"col-12 text-center heading-1 color-orange\">{{ validationCount['warnings'] }}</td>\n <td class=\"col-12 text-center heading-1 color-blue\">{{ validationCount['infos'] }}</td>\n </tr>\n <tr>\n <td class=\"col-12 text-center heading-4 color-red\">{{ $tc('message.datasetDetails.quality.error', 2) }}</td>\n <td class=\"col-12 text-center heading-4 color-orange\">{{ $tc('message.datasetDetails.quality.warning', 2) }}</td>\n <td class=\"col-12 text-center heading-4 color-blue\">{{ $tc('message.datasetDetails.quality.message', 2) }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n <span class=\"col-12 mt-3\">{{ $t('message.datasetDetails.quality.totalRows') }}: <strong>{{ validation.rowCount }}</strong></span>\n <div class=\"col-12 csv-result-details\" :class=\"getBorderStyle(index)\" v-for=\"(csvResult, index) in displayedValidationResults\" :key=\"index\">\n <div class=\"row\">\n <div class=\"col-3\">\n <div class=\"my-4 px-5 tag\" :class=\"getBGStyle(csvResult.type)\">{{ csvResult.type }}</div>\n </div>\n <div class=\"col-9 mt-3\">\n <h5 class=\"font-weight-bold mt-1\">{{ csvResult.message_header }}</h5>\n <div>{{ csvResult.message }}</div>\n <div class=\"small\" v-if=\"csvResult.row > -1 && csvResult.column > -1\">\n {{ $t('message.datasetDetails.quality.row') }}: {{ csvResult.row }}, {{ $t('message.datasetDetails.quality.column') }}: {{ csvResult.column }}\n </div>\n <div class=\"small\" v-else-if=\"csvResult.row > -1 && csvResult.column === -1\">\n {{ $t('message.datasetDetails.quality.row') }}: {{ csvResult.row }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-12\" v-if=\"showLimit\">\n <pv-banner>{{ `${csvLinter.limit} ${validation.limit}` }}</pv-banner>\n </div>\n <pv-show-more class=\"col-12 text-primary mb-3 mt-5\"\n v-if=\"useECMore\"\n :label=\"csvLinter.displayAll ? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"csvLinter.displayAll\"\n :action=\"() => toggleDisplayAll()\"></pv-show-more>\n </div>\n</template>\n\n<script>\nimport { has, isNil } from 'lodash-es';\nimport ShowMore from \"../widgets/PvShowMore.vue\";\nimport PvBanner from \"../widgets/PvBanner.vue\";\n\nexport default {\n name: 'datasetDetailsCSVLinter',\n components: {\n PvBanner,\n },\n props: ['validation'],\n data() {\n return {\n csvLinter: {\n title: this.$t('message.datasetDetails.quality.title'),\n banner: this.$t('message.datasetDetails.quality.banner'),\n limit: this.$t('message.datasetDetails.quality.limit'),\n displayAll: this.$env.content.datasetDetails.quality.csvLinter.displayAll,\n numberOfDisplayedValidationResults: this.$env.content.datasetDetails.quality.csvLinter.numberOfDisplayedValidationResults,\n validationTitle: {\n true: this.$t('message.datasetDetails.quality.validationTitle.success'),\n false: this.$t('message.datasetDetails.quality.validationTitle.error'),\n },\n validationDescription: {\n true: this.$t('message.datasetDetails.quality.validationDescription.success'),\n false: this.$t('message.datasetDetails.quality.validationDescription.error'),\n },\n },\n };\n },\n computed: {\n showLimit() {\n return has(this.validation, 'limit') && !isNil(this.validation.limit);\n },\n showValidation() {\n return !isNil(this.validation)\n && has(this.validation, 'passed')\n && has(this.validation, 'errors')\n && has(this.validation, 'warnings')\n && has(this.validation, 'infos');\n },\n useECMore() {\n return this.validationResults.length > this.csvLinter.numberOfDisplayedValidationResults;\n },\n displayedValidationResults() {\n return this.csvLinter.displayAll\n ? this.validationResults\n : this.validationResults.slice(0, this.csvLinter.numberOfDisplayedValidationResults);\n },\n validationResults() {\n let errors = has(this.validation.errors, 'items') ? this.validation.errors.items : [];\n let warnings = has(this.validation.warnings, 'items') ? this.validation.warnings.items : [];\n let infos = has(this.validation.infos, 'items') ? this.validation.infos.items : [];\n\n errors.forEach(i => i.type = this.$tc('message.datasetDetails.quality.error', 1));\n warnings.forEach(i => i.type = this.$tc('message.datasetDetails.quality.warning', 1));\n infos.forEach(i => i.type = this.$tc('message.datasetDetails.quality.message', 1));\n\n return errors.concat(warnings).concat(infos);\n },\n validationCount() {\n let errors = has(this.validation.errors, 'count') ? this.validation.errors.count : 0;\n let warnings = has(this.validation.warnings, 'count') ? this.validation.warnings.count : 0;\n let infos = has(this.validation.infos, 'count') ? this.validation.infos.count : 0;\n\n return {\n errors,\n warnings,\n infos,\n };\n },\n },\n methods: {\n has,\n isNil,\n toggleDisplayAll() {\n this.csvLinter.displayAll = !this.csvLinter.displayAll;\n },\n getValidationResultIcon(status) {\n return status === true ? 'check_circle'\n : status === false ? 'disabled_by_default'\n : 'info'\n },\n getValidationStatus(status) {\n return status === true ? 'success'\n : status === false ? 'error'\n : 'info'\n },\n getBorderStyle(index) {\n return index > 0\n ? 'border-top'\n : '';\n },\n getBGStyle(type) {\n return type === 'Error' ? 'bg-red'\n : type === 'Warning' ? 'bg-orange'\n : type === 'Message' ? 'bg-blue'\n : 'bg-white';\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.dsd-distribution-quality-csv {\n .heading {\n &-1 {\n font-size: 2rem;\n font-weight: 700;\n }\n\n &-4 {\n font-size: 1.25rem;\n font-weight: 700;\n }\n }\n\n .color {\n &-red {\n color: #DA2131;\n }\n\n &-orange {\n color: #F29527;\n }\n\n &-blue {\n color: #4073AF;\n }\n }\n\n .bg {\n &-red {\n background-color: #DA2131;\n }\n\n &-orange {\n background-color: #F29527;\n }\n\n &-blue {\n background-color: #4073AF;\n }\n }\n\n .csv-validation-box {\n color: black;\n background-color: #FFFFFF;\n border: 2px solid #000000;\n\n &.success {\n border-color: #467A39;\n }\n &.error {\n border-color: #DA2131;\n }\n\n .material-icons {\n &.success {\n color: #467A39;\n }\n &.error {\n color: #DA2131;\n }\n }\n }\n\n .csv-result-details {\n\n &.border {\n &-top {\n border-top: 1px solid #9F9F9F;\n }\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n color: #FFFFFF;\n font-size: 1rem;\n padding: 0.5rem 0.75rem;\n border-radius: 1rem;\n border-width: 0;\n text-decoration: none;\n box-sizing: border-box;\n white-space: nowrap;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","PvBanner","has","isNil","errors","warnings","infos","i","status","index","type","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","$options","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","$data","_createVNode","_component_pv_banner","_createTextVNode","$props","_ctx","_Fragment","_renderList","csvResult","_normalizeClass","_hoisted_22","_hoisted_23","_hoisted_24","_createBlock","_component_pv_show_more"],"mappings":";;;;;;AAyEA,MAAKA,IAAU;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,IACR,UAAAC;AAAA,EACH;AAAA,EACD,OAAO,CAAC,YAAY;AAAA,EACpB,OAAO;AACH,WAAO;AAAA,MACH,WAAW;AAAA,QACP,OAAO,KAAK,GAAG,sCAAsC;AAAA,QACrD,QAAQ,KAAK,GAAG,uCAAuC;AAAA,QACvD,OAAO,KAAK,GAAG,sCAAsC;AAAA,QACrD,YAAY,KAAK,KAAK,QAAQ,eAAe,QAAQ,UAAU;AAAA,QAC/D,oCAAoC,KAAK,KAAK,QAAQ,eAAe,QAAQ,UAAU;AAAA,QACvF,iBAAiB;AAAA,UACb,MAAM,KAAK,GAAG,wDAAwD;AAAA,UACtE,OAAO,KAAK,GAAG,sDAAsD;AAAA,QACxE;AAAA,QACD,uBAAuB;AAAA,UACnB,MAAM,KAAK,GAAG,8DAA8D;AAAA,UAC5E,OAAO,KAAK,GAAG,4DAA4D;AAAA,QAC9E;AAAA,MACJ;AAAA;EAER;AAAA,EACD,UAAU;AAAA,IACN,YAAY;AACR,aAAOC,EAAI,KAAK,YAAY,OAAO,KAAK,CAACC,EAAM,KAAK,WAAW,KAAK;AAAA,IACvE;AAAA,IACD,iBAAiB;AACb,aAAO,CAACA,EAAM,KAAK,UAAU,KACtBD,EAAI,KAAK,YAAY,QAAQ,KAC7BA,EAAI,KAAK,YAAY,QAAQ,KAC7BA,EAAI,KAAK,YAAY,UAAU,KAC/BA,EAAI,KAAK,YAAY,OAAO;AAAA,IACtC;AAAA,IACD,YAAY;AACR,aAAO,KAAK,kBAAkB,SAAS,KAAK,UAAU;AAAA,IACzD;AAAA,IACD,6BAA6B;AACzB,aAAO,KAAK,UAAU,aAChB,KAAK,oBACL,KAAK,kBAAkB,MAAM,GAAG,KAAK,UAAU,kCAAkC;AAAA,IAC1F;AAAA,IACD,oBAAoB;AAChB,UAAIE,IAASF,EAAI,KAAK,WAAW,QAAQ,OAAO,IAAI,KAAK,WAAW,OAAO,QAAQ,CAAA,GAC/EG,IAAWH,EAAI,KAAK,WAAW,UAAU,OAAO,IAAI,KAAK,WAAW,SAAS,QAAQ,CAAA,GACrFI,IAAQJ,EAAI,KAAK,WAAW,OAAO,OAAO,IAAI,KAAK,WAAW,MAAM,QAAQ,CAAA;AAEhF,aAAAE,EAAO,QAAQ,CAAAG,MAAKA,EAAE,OAAO,KAAK,IAAI,wCAAwC,CAAC,CAAC,GAChFF,EAAS,QAAQ,CAAAE,MAAKA,EAAE,OAAO,KAAK,IAAI,0CAA0C,CAAC,CAAC,GACpFD,EAAM,QAAQ,CAAAC,MAAKA,EAAE,OAAO,KAAK,IAAI,0CAA0C,CAAC,CAAC,GAE1EH,EAAO,OAAOC,CAAQ,EAAE,OAAOC,CAAK;AAAA,IAC9C;AAAA,IACD,kBAAkB;AACd,UAAIF,IAASF,EAAI,KAAK,WAAW,QAAQ,OAAO,IAAI,KAAK,WAAW,OAAO,QAAQ,GAC/EG,IAAWH,EAAI,KAAK,WAAW,UAAU,OAAO,IAAI,KAAK,WAAW,SAAS,QAAQ,GACrFI,IAAQJ,EAAI,KAAK,WAAW,OAAO,OAAO,IAAI,KAAK,WAAW,MAAM,QAAQ;AAEhF,aAAO;AAAA,QACH,QAAAE;AAAA,QACA,UAAAC;AAAA,QACA,OAAAC;AAAA;IAEP;AAAA,EACJ;AAAA,EACD,SAAS;AAAA,IACL,KAAAJ;AAAA,IACA,OAAAC;AAAA,IACA,mBAAmB;AACf,WAAK,UAAU,aAAa,CAAC,KAAK,UAAU;AAAA,IAC/C;AAAA,IACD,wBAAwBK,GAAQ;AAC5B,aAAOA,MAAW,KAAO,iBACnBA,MAAW,KAAQ,wBACnB;AAAA,IACT;AAAA,IACD,oBAAoBA,GAAQ;AACxB,aAAOA,MAAW,KAAO,YACnBA,MAAW,KAAQ,UACnB;AAAA,IACT;AAAA,IACD,eAAeC,GAAO;AAClB,aAAOA,IAAQ,IACT,eACA;AAAA,IACT;AAAA,IACD,WAAWC,GAAM;AACb,aAAOA,MAAS,UAAU,WACpBA,MAAS,YAAY,cACrBA,MAAS,YAAY,YACrB;AAAA,IACT;AAAA,EACJ;AACL;;EAtKS,OAAM;GACHC,IAAA,EAAA,OAAM,oCAAmC,GACxCC,IAAA,EAAA,OAAM,SAAQ,GAGdC,IAAA,EAAA,OAAM,QAAO,GAGLC,IAAA,EAAA,OAAM,WAAU,GACZC,IAAA,EAAA,OAAM,aAAY,GAKlBC,IAAA,EAAA,OAAM,SAAQ,GACXC,IAAA,EAAA,OAAM,mBAAkB,GAMvCC,IAAA,EAAA,OAAM,QAAO,GACPC,IAAA,EAAA,OAAM,WAAU,GAGPC,IAAA,EAAA,OAAM,yCAAwC,GAC9CC,IAAA,EAAA,OAAM,4CAA2C,GACjDC,IAAA,EAAA,OAAM,0CAAyC,GAG/CC,IAAA,EAAA,OAAM,yCAAwC,GAC9CC,IAAA,EAAA,OAAM,4CAA2C,GACjDC,IAAA,EAAA,OAAM,0CAAyC,GAK7DC,IAAA,EAAA,OAAM,cAAa,GAEhBC,IAAA,EAAA,OAAM,MAAK,GACPC,IAAA,EAAA,OAAM,QAAO,GAGbC,IAAA,EAAA,OAAM,aAAY,GACfC,IAAA,EAAA,OAAM,wBAAuB;;EAE5B,OAAM;;;EAGN,OAAM;;;EAMlB,OAAM;;;;SAvDqCC,EAAc,kBAAlEC,KAAAC,EA+DM,OA/DNC,GA+DM;AAAA,IA9DFC,EAAwE,MAAxExB,GAAiDyB,EAAAC,EAAA,UAAU,KAAK,GAAA,CAAA;AAAA;IAChEF,EAEM,OAFNvB,GAEM;AAAA,MADF0B,EAA6CC,GAAA,MAAA;AAAA,mBAAlC,MAAsB;AAAA,UAAnBC,EAAAJ,EAAAC,EAAA,UAAU,MAAM,GAAA,CAAA;AAAA;;;;;IAElCF,EAeM,OAfNtB,GAeM;AAAA,MAdFsB,EAaM,OAAA;AAAA,QAbD,UAAM,0BACCJ,sBAAoBU,EAAA,WAAW,MAAM,CAAA,CAAA;AAAA;QAC7CN,EAUM,OAVNrB,GAUM;AAAA,UATFqB,EAIM,OAJNpB,GAIM;AAAA,YAHFoB,EAEI,KAAA;AAAA,cAFD,UAAM,kBAAyBJ,sBAAoBU,EAAA,WAAW,MAAM,CAAA,CAAA;AAAA,iBAChEV,EAAuB,wBAACU,EAAU,WAAC,MAAM,CAAA,GAAA,CAAA;AAAA;;UAGpDN,EAGM,OAHNnB,GAGM;AAAA,YAFFmB,EAAoF,MAApFlB,GAAgCmB,EAAAC,EAAA,UAAU,gBAAgBI,EAAU,WAAC,MAAM,CAAA,GAAA,CAAA;AAAA;YAC3EN,EAA+D,aAAzDE,EAAS,UAAC,sBAAsBI,EAAA,WAAW,MAAM,CAAA,GAAA,CAAA;AAAA;;;;;IAKvEN,EAeM,OAfNjB,GAeM;AAAA,MAdFiB,EAaQ,SAbRhB,GAaQ;AAAA,QAZJgB,EAWQ,SAAA,MAAA;AAAA,UAVJA,EAIK,MAAA,MAAA;AAAA,YAHDA,EAAuF,MAAvFf,GAAuFgB,EAAjCL,EAAe,gBAAA,MAAA,GAAA,CAAA;AAAA;YACrEI,EAA4F,MAA5Fd,GAA4Fe,EAAnCL,EAAe,gBAAA,QAAA,GAAA,CAAA;AAAA;YACxEI,EAAuF,MAAvFb,GAAuFc,EAAhCL,EAAe,gBAAA,KAAA,GAAA,CAAA;AAAA;;UAE1EI,EAIK,MAAA,MAAA;AAAA,YAHDA,EAA4G,MAA5GZ,GAA4Ga,EAAtDM,EAAG,IAAA,wCAAA,CAAA,CAAA,GAAA,CAAA;AAAA;YACzDP,EAAiH,MAAjHX,GAAiHY,EAAxDM,EAAG,IAAA,0CAAA,CAAA,CAAA,GAAA,CAAA;AAAA;YAC5DP,EAA+G,MAA/GV,GAA+GW,EAAxDM,EAAG,IAAA,0CAAA,CAAA,CAAA,GAAA,CAAA;AAAA;;;;;IAK1EP,EAAiI,QAAjIT,GAAiI;AAAA,MAApGc,EAAAJ,EAAAM,EAAA,kDAAiD,MAAE,CAAA;AAAA,MAAAP,EAA0C,UAAA,MAAAC,EAA/BK,EAAU,WAAC,QAAQ,GAAA,CAAA;AAAA;;KAC9GT,EAAA,EAAA,GAAAC,EAgBMU,GAhB6F,MAAAC,EAAAb,EAAA,4BAArB,CAAAc,GAAWpC,YAAzFwB,EAgBM,OAAA;AAAA,MAhBD,OAAMa,EAAA,CAAA,6BAAoCf,EAAA,eAAetB,CAAK,CAAA,CAAA;AAAA,MAA6D,KAAKA;AAAA;MACjI0B,EAcM,OAdNR,GAcM;AAAA,QAbFQ,EAEM,OAFNP,GAEM;AAAA,UADFO,EAAyF,OAAA;AAAA,YAApF,UAAM,iBAAwBJ,aAAWc,EAAU,IAAI,CAAA,CAAA;AAAA,UAAM,GAAAT,EAAAS,EAAU,IAAI,GAAA,CAAA;AAAA;;QAEpFV,EASM,OATNN,GASM;AAAA,UARFM,EAAqE,MAArEL,GAAqCM,EAAAS,EAAU,cAAc,GAAA,CAAA;AAAA;UAC7DV,EAAkC,OAAA,MAAAC,EAA1BS,EAAU,OAAO,GAAA,CAAA;AAAA;UACAA,EAAU,MAAY,MAAAA,EAAU,SAAM,MAA/Db,KAAAC,EAEM,OAFNc,GAEMX,EADCM,KAA2C,oCAAA,CAAA,IAAA,SAAKG,EAAU,GAAG,IAAG,SAAKH,EAAE,GAAA,uCAAA,CAAA,IAA4C,OAAKN,EAAAS,EAAU,MAAM,GAAA,CAAA,KAEjHA,EAAU,MAAY,MAAAA,EAAU,WAAM,WAApEZ,EAEM,OAFNe,GACOZ,EAAAM,EAAA,4CAA2C,OAAEN,EAAGS,EAAU,GAAG,GAAA,CAAA;;;;;IAKtDd,EAAS,aAAnCC,KAAAC,EAEM,OAFNgB,GAEM;AAAA,MADFX,EAAqEC,GAAA,MAAA;AAAA,mBAA1D,MAA8C;AAAA,UAAxCC,EAAAJ,EAAA,GAAAC,EAAA,UAAU,KAAK,IAAII,EAAA,WAAW,KAAK,EAAA,GAAA,CAAA;AAAA;;;;;IAG9CV,EAAS,kBADnBmB,EAIsDC,GAAA;AAAA;MAJxC,OAAM;AAAA,MAEf,OAAOd,EAAS,UAAC,aAAaK,EAAA,kCAAkCA,EAAE,GAAA,2BAAA;AAAA,MAClE,SAASL,EAAS,UAAC;AAAA,MACnB,cAAcN,EAAgB,iBAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsCategories.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsCategories.vue"],"sourcesContent":["<template>\n <div class=\"dsd-categories mt-3\">\n <div class=\"row\">\n <div class=\"col-10 offset-1\">\n <h2>{{ $t('message.datasetDetails.subnav.categories') }}</h2>\n <div class=\"dsd-categories-items mt-4 mb-5\">\n <div v-for=\"(category, i) in getCategories\" :key=\"i\" class=\"p-2 mt-3 border border-secondary\">\n <app-link :to=\"getCategoryLink(category)\" v-if=\"showCategory(category)\">\n {{ getTranslationFor(category.title, $route.query.locale) }}\n </app-link>\n </div>\n <div v-if=\"getCategories && getCategories.length === 0\">\n <p>{{ $t('message.datasetCategories.noCategories') }}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from 'vuex';\n import { has } from 'lodash-es';\n import { getTranslationFor } from '../utils/helpers';\n import AppLink from \"../widgets/AppLink.vue\";\n import * as metaInfo from \"../composables/head\";\n\n export default {\n name: 'datasetDetailsCategories',\n components: {\n appLink: AppLink,\n },\n data() {\n return {};\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getCategories',\n ]),\n },\n methods: {\n has,\n getTranslationFor,\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n ]),\n showCategory(category) {\n return has(category, 'id');\n },\n getCategoryLink(category) {\n const categoryID = category.id.toUpperCase();\n return { path: `/datasets?categories=${categoryID}`, query: Object.assign({}, { locale: this.$route.query.locale }) };\n },\n },\n created() {\n this.$nextTick(() => {\n // Duplicated API call, execute only if data not already loaded\n if (this.$route.params.ds_id !== this.getID) {\n this.$Progress.start();\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n this.$router.replace({\n name: 'NotFound',\n query: { locale: this.$route.query.locale, dataset: this.$route.params.ds_id },\n });\n });\n }\n });\n },\n setup() {\n metaInfo.useDatasetCategoriesHead();\n }\n };\n</script>\n\n<style scoped lang=\"scss\">\n.tag-color {\n background-color: var(--tag-color);\n}\n.keywords__item > div {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n</style>\n"],"names":["_sfc_main","AppLink","mapGetters","has","getTranslationFor","mapActions","category","metaInfo.useDatasetCategoriesHead","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_ctx","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsCategories.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsCategories.vue"],"sourcesContent":["<template>\n <div class=\"dsd-categories mt-3\">\n <div class=\"row\">\n <div class=\"col-10 offset-1\">\n <h2>{{ $t('message.datasetDetails.subnav.categories') }}</h2>\n <div class=\"dsd-categories-items mt-4 mb-5\">\n <div v-for=\"(category, i) in getCategories\" :key=\"i\" class=\"p-2 mt-3 border border-secondary\">\n <app-link :to=\"getCategoryLink(category)\" v-if=\"showCategory(category)\">\n {{ getTranslationFor(category.title, $route.query.locale) }}\n </app-link>\n </div>\n <div v-if=\"getCategories && getCategories.length === 0\">\n <p>{{ $t('message.datasetCategories.noCategories') }}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from 'vuex';\n import { has } from 'lodash-es';\n import { getTranslationFor } from '../utils/helpers';\n import AppLink from \"../widgets/AppLink.vue\";\n import * as metaInfo from \"../composables/head\";\n\n export default {\n name: 'datasetDetailsCategories',\n components: {\n appLink: AppLink,\n },\n data() {\n return {};\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getCategories',\n ]),\n },\n methods: {\n has,\n getTranslationFor,\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n ]),\n showCategory(category) {\n return has(category, 'id');\n },\n getCategoryLink(category) {\n const categoryID = category.id.toUpperCase();\n return { path: `/datasets?categories=${categoryID}`, query: Object.assign({}, { locale: this.$route.query.locale }) };\n },\n },\n created() {\n this.$nextTick(() => {\n // Duplicated API call, execute only if data not already loaded\n if (this.$route.params.ds_id !== this.getID) {\n this.$Progress.start();\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n })\n .catch(() => {\n this.$Progress.fail();\n this.$router.replace({\n name: 'NotFound',\n query: { locale: this.$route.query.locale, dataset: this.$route.params.ds_id },\n });\n });\n }\n });\n },\n setup() {\n metaInfo.useDatasetCategoriesHead();\n }\n };\n</script>\n\n<style scoped lang=\"scss\">\n.tag-color {\n background-color: var(--tag-color);\n}\n.keywords__item > div {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n</style>\n"],"names":["_sfc_main","AppLink","mapGetters","has","getTranslationFor","mapActions","category","metaInfo.useDatasetCategoriesHead","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_ctx","_Fragment","_renderList","i","$options","_createBlock","_component_app_link","_hoisted_5"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2BE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAASC;AAAA,EACV;AAAA,EACD,OAAO;AACL,WAAO;EACR;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,KAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA,IACD,aAAaC,GAAU;AACrB,aAAOH,EAAIG,GAAU,IAAI;AAAA,IAC1B;AAAA,IACD,gBAAgBA,GAAU;AAExB,aAAO,EAAE,MAAM,wBADIA,EAAS,GAAG,YAAW,CACO,IAAI,OAAO,OAAO,OAAO,CAAA,GAAI,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAQ,CAAA;IACnH;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,UAAU,MAAM;AAEnB,MAAI,KAAK,OAAO,OAAO,UAAU,KAAK,UACpC,KAAK,UAAU,SACf,KAAK,mBAAmB,KAAK,OAAO,OAAO,KAAK,EAC7C,KAAK,MAAM;AACV,aAAK,UAAU;OAChB,EACA,MAAM,MAAM;AACX,aAAK,UAAU,QACf,KAAK,QAAQ,QAAQ;AAAA,UACnB,MAAM;AAAA,UACN,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,QAAQ,SAAS,KAAK,OAAO,OAAO,MAAO;AAAA,QAChF,CAAC;AAAA,MACH,CAAC;AAAA,IAEP,CAAC;AAAA,EACF;AAAA,EACD,QAAQ;AACNC,IAAAA;EACF;GA3EGC,IAAA,EAAA,OAAM,sBAAqB,GACzBC,IAAA,EAAA,OAAM,MAAK,GACTC,IAAA,EAAA,OAAM,kBAAiB,GAErBC,IAAA,EAAA,OAAM,iCAAgC;;;AAJjD,SAAAC,EAAA,GAAAC,EAgBM,OAhBNL,GAgBM;AAAA,IAfJM,EAcM,OAdNL,GAcM;AAAA,MAbJK,EAYM,OAZNJ,GAYM;AAAA,QAXJI,EAA6D,cAAtDC,EAAE,GAAA,0CAAA,CAAA,GAAA,CAAA;AAAA;QACTD,EASM,OATNH,GASM;AAAA,WARJC,EAAA,EAAA,GAAAC,EAIMG,GAJuB,MAAAC,EAAAF,EAAA,eAAhB,CAAAT,GAAUY,YAAvBL,EAIM,OAAA;AAAA,YAJuC,KAAKK;AAAA,YAAG,OAAM;AAAA;YACTC,EAAA,aAAab,CAAQ,UAArEc,EAEWC,GAAA;AAAA;cAFA,IAAIF,EAAe,gBAACb,CAAQ;AAAA;yBACrC,MAA4D;AAAA,oBAAzDa,EAAiB,kBAACb,EAAS,OAAOS,EAAM,OAAC,MAAM,MAAM,CAAA,GAAA,CAAA;AAAA;;;;;UAGjDA,EAAa,iBAAIA,EAAa,cAAC,WAAM,UAAhDF,EAEM,OAAAS,GAAA;AAAA,YADJR,EAAyD,aAAnDC,EAAE,GAAA,wCAAA,CAAA,GAAA,CAAA;AAAA;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsDataset.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsDataset.vue"],"sourcesContent":["<template>\n <div>\n <resource-access-popup ref=\"externalResourceModal\" />\n <span property=\"dc:issued\" :content=\"getReleaseDate\"></span>\n <span property=\"dc:modified\" :content=\"getModificationDate\"></span>\n <div v-if=\"loadingDatasetDetails\">\n <dataset-details-skeleton type=\"DatasetDetails\"></dataset-details-skeleton>\n </div>\n <div v-if=\"!loadingDatasetDetails\" class=\"dsd-dataset\">\n <dataset-details-description\n v-if=\"showDatasetDescription\"\n :dateIncorrect=\"dateIncorrect\"\n :machineTranslated=\"machineTranslated\"\n :translationNotAvailable=\"translationNotAvailable\"\n />\n <distributions\n :openModal=\"openModal\"\n :getDistributions=\"getDistributions\"\n :expandedDistributions=\"expandedDistributions\"\n :expandedDistributionDescriptions=\"expandedDistributionDescriptions\"\n :displayedDistributions=\"displayedDistributions\"\n :isDistributionsAllDisplayed=\"isDistributionsAllDisplayed\"\n :distributions=\"distributions\"\n :setDistributionsDisplayCount=\"setDistributionsDisplayCount\"\n :pages=\"pages\"\n :showDownloadUrls=\"showDownloadUrls\"\n :isOnlyOneUrl=\"isOnlyOneUrl\"\n :getDistributionFormat=\"getDistributionFormat\"\n :distributionFormatTruncated=\"distributionFormatTruncated\"\n :getDistributionTitle=\"getDistributionTitle\"\n :distributionVisibleContent=\"distributionVisibleContent\"\n :distributionExpandedContent=\"distributionExpandedContent\"\n :distributionDescriptionIsExpanded=\"distributionDescriptionIsExpanded\"\n :distributionDescriptionIsExpandable=\"distributionDescriptionIsExpandable\"\n :distributionIsExpanded=\"distributionIsExpanded\"\n :showNumber=\"showNumber\"\n :showObject=\"showObject\"\n :showDownloadDropdown=\"showDownloadDropdown\"\n :showLicence=\"showLicence\"\n :showLicensingAssistant=\"showLicensingAssistant\"\n :filterDateFormatEU=\"filterDateFormatEU\"\n :showArray=\"showArray\"\n :showObjectArray=\"showObjectArray\"\n :getVisualisationLink=\"getVisualisationLink\"\n :getDownloadUrl=\"getDownloadUrl\"\n :trackGoto=\"trackGoto\"\n :showAccessUrls=\"showAccessUrls\"\n :replaceHttp=\"replaceHttp\"\n :previewLinkCallback=\"previewLinkCallback\"\n :toggleDistribution=\"toggleDistribution\"\n :toggleDistributionDescription=\"toggleDistributionDescription\"\n :increaseNumDisplayedDistributions=\"increaseNumDisplayedDistributions\"\n :nonOverflowingIncrementsForDistributions=\"nonOverflowingIncrementsForDistributions\"\n :appendCurrentLocaleToURL=\"appendCurrentLocaleToURL\"\n :isUrlInvalid=\"isUrlInvalid\"\n :openIfValidUrl=\"openIfValidUrl\"\n :showTooltipVisualiseButton=\"showTooltipVisualiseButton\"\n :showPublisher=\"showPublisher\"\n :embed=\"embed\"\n />\n <dataset-details-features\n :getKeywords=\"getKeywords\"\n :pages=\"pages\"\n :increaseNumDisplayedPages=\"increaseNumDisplayedPages\"\n :nonOverflowingIncrementsForPages=\"nonOverflowingIncrementsForPages\"\n :showKeyword=\"showKeyword\"\n :trackGoto=\"trackGoto\"\n :showObjectArray=\"showObjectArray\"\n :showArray=\"showArray\"\n :showObject=\"showObject\"\n />\n <dataset-details-properties v-if=\"showDatasetProperties\">\n <template #property-header><slot name=\"property-header\"></slot></template>\n <template #property-table-before><slot name=\"property-table-before\"></slot></template>\n <template #property-table><slot name=\"property-table\"></slot></template>\n <template #property-table-after><slot name=\"property-table-after\"></slot></template>\n </dataset-details-properties>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n // @ts-nocheck\n /* eslint-disable no-confusing-arrow, no-nested-ternary, no-return-assign, no-confusing-arrow */\n import $ from 'jquery';\n import { mapActions, mapGetters } from 'vuex';\n import {\n has,\n isNil,\n isArray,\n isObject,\n isString,\n isNumber,\n isEmpty,\n } from 'lodash';\n import AppLink from '../widgets/AppLink.vue';\n import Tooltip from '../widgets/Tooltip.vue';\n import Distributions from './distributions/Distributions.vue';\n import dateFilters from '../filters/dateFilters';\n import {\n getTranslationFor, getCountryFlagImg, truncate, replaceHttp, appendCurrentLocaleToURL\n } from '../utils/helpers';\n import ResourceAccessPopup from '../widgets/ResourceAccessPopup.vue';\n import DatasetDetailsExtendedMetaData\n from \"../datasetDetails/features/DatasetDetailsIsUsedBy.vue\";\n import DatasetDetailsSkeleton from \"../datasetDetails/DatasetDetailsSkeleton.vue\";\n import * as metaInfo from '../composables/head';\n\n export default {\n name: 'datasetDetailsDataset',\n components: {\n DatasetDetailsSkeleton,\n DatasetDetailsExtendedMetaData,\n AppLink,\n Tooltip,\n Distributions,\n ResourceAccessPopup\n },\n props: {\n distributionVisibleContent: {\n type: Array,\n default: () => ['license', 'licenseAttributionByText', 'modificationDate'],\n },\n distributionExpandedContent: {\n type: Array,\n default: () => [\n 'releaseDate',\n 'language',\n 'availability',\n 'status',\n 'rights',\n 'mediaType',\n 'byteSize',\n 'checksum',\n 'pages',\n 'type',\n 'compressFormat',\n 'packageFormat',\n 'hasPolicy',\n 'conformsTo',\n 'spatialResolutionInMeters',\n 'temporalResolution',\n ],\n },\n showDatasetDescription: {\n type: Boolean,\n default: () => true,\n },\n showDatasetProperties: {\n type: Boolean,\n default: () => true,\n },\n showPublisher: {\n type: Boolean,\n default: () => false,\n },\n embed: {\n type: Boolean,\n default: () => false,\n },\n },\n data() {\n return {\n defaultLocale: this.$env.languages.locale,\n // has to be INITIAL_DATASET_DESCRIPTION_LENGTH\n isDatasetDescriptionExpanded: false,\n loadingDatasetDetails: false,\n machineTranslated: false,\n translationNotAvailable: false,\n expandedDistributions: [],\n expandedDistributionDescriptions: [],\n distributions: {\n displayAll: this.$env.content.datasetDetails.distributions.displayAll,\n displayCount: this.$env.content.datasetDetails.distributions.displayCount,\n incrementSteps: this.$env.content.datasetDetails.distributions.incrementSteps,\n descriptionMaxLines: this.$env.content.datasetDetails.distributions.descriptionMaxLines,\n descriptionMaxChars: this.$env.content.datasetDetails.distributions.descriptionMaxChars,\n licencingAssistantUrl: this.$env.content.datasetDetails.distributions.licencingAssistantUrl,\n },\n pages: {\n isVisible: this.$env.content.datasetDetails.pages.isVisible,\n displayAll: this.$env.content.datasetDetails.pages.displayAll,\n displayCount: this.$env.content.datasetDetails.pages.displayCount,\n incrementSteps: this.$env.content.datasetDetails.pages.incrementSteps,\n descriptionMaxLines: this.$env.content.datasetDetails.pages.descriptionMaxLines,\n descriptionMaxChars: this.$env.content.datasetDetails.pages.descriptionMaxChars,\n },\n showDescription: true,\n };\n },\n computed: {\n // import store-getters\n ...mapGetters('datasetDetails', [\n 'getKeywords',\n 'getAccessRights',\n 'getAccrualPeriodicity',\n 'getCatalog',\n 'getContactPoints',\n 'getDateIncorrect',\n 'getDescription',\n 'getDistributions',\n 'getID',\n 'getLanguages',\n 'getLicences',\n 'getModificationDate',\n 'getOtherIdentifiers',\n 'getPages',\n 'getPublisher',\n 'getReleaseDate',\n 'getSpatial',\n 'getTranslationMetaData',\n 'getTitle',\n 'getIsHvd',\n 'getHvdCategories',\n 'getCountry',\n 'getCategories',\n 'getLoading',\n ]),\n dateIncorrect() {\n return this.getDateIncorrect;\n },\n displayedDistributions() {\n const sorted = [...this.getDistributions].sort((a, b) => {\n if (getTranslationFor(a.title, this.$route.query.locale, this.getLanguages) < getTranslationFor(b.title, this.$route.query.locale, this.getLanguages)) { return -1; }\n if (getTranslationFor(a.title, this.$route.query.locale, this.getLanguages) > getTranslationFor(b.title, this.$route.query.locale, this.getLanguages)) { return 1; }\n return 0;\n });\n return this.distributions.displayAll\n ? Object.freeze(sorted)\n : Object.freeze(sorted.slice(0, this.distributions.displayCount));\n },\n isDistributionsAllDisplayed() {\n return this.distributions.displayCount === this.getDistributions.length;\n },\n remainingDistributions() {\n return this.getDistributions.length - this.distributions.displayCount;\n }\n },\n watch: {\n getLoading: {\n handler(newVal, oldVal) {\n const isLoadingStopped = !newVal && oldVal;\n const isAlreadyLoadedSuccessfully = !newVal && !oldVal && this.getID;\n if (isLoadingStopped || isAlreadyLoadedSuccessfully) {\n this.piwikMetaPush();\n }\n },\n immediate: true\n }\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n 'setLoading',\n ]),\n has,\n isNil,\n isArray,\n isObject,\n isString,\n isNumber,\n appendCurrentLocaleToURL,\n getTranslationFor,\n getCountryFlagImg,\n truncate,\n replaceHttp,\n initDatasetDetails() {\n setTimeout(() => {\n if (typeof this.$piwik?.resume === \"function\") this.$piwik.resume();\n }, 500);\n this.$nextTick(() => {\n // Display/hide translation banners\n this.setTranslationBanners();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n });\n },\n setDistributionsDisplayCount(count: number) {\n this.distributions.displayCount = count;\n },\n openModal(callback, toggleDownloadPopup) {\n this.$refs.externalResourceModal.openModal(callback, toggleDownloadPopup)\n },\n previewLinkCallback(distribution) {\n return () => {\n this.$emit('track-link', this.getVisualisationLink(distribution), 'link');\n window.open(this.getVisualisationLink(distribution), '_blank');\n };\n },\n filterDateFormatEU(date) {\n return dateFilters.formatEU(date);\n },\n /* ABSTRACT SHOW FUNCTIONS */\n showString(string) {\n return !isNil(string) && isString(string);\n },\n showNumber(number) {\n return !isNil(number) && isNumber(number);\n },\n showObject(object) {\n return !isNil(object) && isObject(object) && !Object.values(object).reduce((keyUndefined, currentValue) => keyUndefined && currentValue === undefined, true);\n },\n showArray(array) {\n return !isNil(array) && isArray(array) && array.length > 0;\n },\n showObjectArray(objectArray) {\n return this.showArray(objectArray) && !objectArray.reduce((objectUndefined, currentObject) => objectUndefined && Object.values(currentObject).reduce((keyUndefined, currentValue) => keyUndefined && currentValue === undefined, true), true);\n },\n /* SPECIFIC SHOW FUNCTIONS */\n /* for now show all licences */\n showLicence(licence) {\n // return (has(licence, 'id') && !isNil(licence.id))\n // || (has(licence, 'label') && !isNil(licence.label))\n return true\n },\n showLicensingAssistant(distribution) {\n return has(distribution, 'licence.la_url') && this.showString(distribution.licence.la_url);\n },\n showDownloadDropdown(distribution) {\n return this.showAccessUrls(distribution) || this.showDownloadUrls(distribution);\n },\n isOnlyOneUrl(distribution) {\n return (this.showAccessUrls(distribution) && !this.showDownloadUrls(distribution))\n || (!this.showAccessUrls(distribution) && this.showDownloadUrls(distribution) && distribution.downloadUrls.length === 1);\n },\n getDownloadUrl(distribution) {\n let url;\n if (this.showAccessUrls(distribution) && !this.showDownloadUrls(distribution)) {\n url = distribution.accessUrl[0];\n }\n if (!this.showAccessUrls(distribution) && this.showDownloadUrls(distribution) && distribution.downloadUrls.length === 1) {\n url = distribution.downloadUrls[0];\n }\n return url;\n },\n showAccessUrls(distribution) {\n return has(distribution, 'accessUrl') && this.showArray(distribution.accessUrl);\n },\n showDownloadUrls(distribution) {\n return has(distribution, 'downloadUrls') && this.showArray(distribution.downloadUrls);\n },\n showKeyword(keyword) {\n return has(keyword, 'id')\n && has(keyword, 'title')\n && !isNil(keyword.id)\n && !isNil(keyword.title);\n },\n\n /* GETTER / SETTER FUNCTIONS */\n\n setDatasetOriginalLanguage(originalLanguage) {\n this.$i18n.locale = originalLanguage;\n },\n distributionIsExpanded(id) {\n setTimeout(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n }, 500);\n return this.expandedDistributions.includes(id);\n },\n distributionDescriptionIsExpanded(id) {\n return this.expandedDistributionDescriptions.includes(id);\n },\n distributionDescriptionIsExpandable(description) {\n return isNil(description) ? false : description.length > this.distributions.descriptionMaxChars;\n },\n getDistributionFormat(distribution) {\n return has(distribution, 'format.label') && !isNil(distribution.format.label) ? distribution.format.label : '';\n },\n distributionFormatTruncated(distribution) {\n return this.getDistributionFormat(distribution).length > 4;\n },\n getDistributionTitle(distribution) {\n return distribution.title\n ? getTranslationFor(distribution.title, this.$route.query.locale, this.getLanguages)\n : this.getID || '-';\n },\n getVisualisationLink(distribution) {\n // Return Visualisation Link\n const accessUrl = distribution.downloadUrls && distribution.downloadUrls.length ? distribution.downloadUrls[0] : distribution.accessUrl[0];\n return `/data/visualisation/?file=${encodeURIComponent(accessUrl)}`;\n },\n // getSubjectLink(subject) {\n // return { path: `/datasets?subject=${subject.id}`, query: Object.assign({}, { locale: this.$route.query.locale }) };\n // },\n toggleDistribution(id) {\n const index = this.expandedDistributions.indexOf(id);\n if (index > -1) this.expandedDistributions.splice(index, 1);\n else this.expandedDistributions.push(id);\n },\n toggleDistributionDescription(id) {\n const index = this.expandedDistributionDescriptions.indexOf(id);\n if (index > -1) this.expandedDistributionDescriptions.splice(index, 1);\n else this.expandedDistributionDescriptions.push(id);\n },\n setTranslationBanners() {\n if (!this.$i18n) return;\n const translationMetaData = this.getTranslationMetaData;\n // Check if translation of dataset is available in selected language\n if (!isNil(translationMetaData.details) && has(translationMetaData.details, this.$route.query.locale)) {\n // Check if dataset if machine translated\n this.machineTranslated = translationMetaData.details[this.$route.query.locale].machine_translated;\n } else {\n // No translation of this dataset available for the selected language\n this.translationNotAvailable = true;\n }\n },\n // Emit a Matomo event when user clicks on 'go to resource' element\n trackGoto() {\n const paq = window._paq || []; // eslint-disable-line\n // paq.push(['trackEvent', 'GoToResource', 'Clicked']);\n this.$piwik.trackGotoResource();\n },\n clamp(n, min, max) {\n return Math.min(Math.max(n, min), max);\n },\n // Increases the current number of distributions displayed\n // and clamps the result so that it never exceeds the number of all distributions.\n increaseNumDisplayedDistributions(increment) {\n const clampedSum = this.clamp(this.distributions.displayCount + increment, 0, this.getDistributions.length);\n this.distributions.displayCount = clampedSum;\n },\n nonOverflowingIncrementsForDistributions(incrementStep) {\n return this.distributions.displayCount + incrementStep <= this.getDistributions.length;\n },\n // Increases the current number of distributions displayed\n // and clamps the result so that it never exceeds the number of all distributions.\n increaseNumDisplayedPages(increment) {\n const clampedSum = this.clamp(this.pages.displayCount + increment, 0, this.getPages.length);\n this.pages.displayCount = clampedSum;\n },\n nonOverflowingIncrementsForPages(incrementStep) {\n return this.pages.displayCount + incrementStep <= this.getPages.length;\n },\n async piwikMetaPush() {\n await this.$nextTick();\n const obj = {\n dataset_AccessRights: this.getAccessRights,\n dataset_AccrualPeriodicity: this.getAccrualPeriodicity,\n dataset_Catalog: this.getCatalog,\n // dataset_Categories: this.getCategories,\n // dataset_ConformsTo: this.getConformsTo,\n // dataset_ContactPoints: this.getContactPoints,\n // dataset_Country: this.getCountry,\n // dataset_Creator: this.getCreator,\n // dataset_Description: this.getDescription,\n // dataset_Distributions: this.getDistributions,\n // dataset_DistributionFormats: this.getDistributionFormats,\n // dataset_Documentations: this.getDocumentations,\n // dataset_Frequency: this.getFrequency,\n // dataset_HasVersion: this.getHasVersion,\n dataset_ID: this.getID,\n // dataset_Identifiers: this.getIdentifiers,\n // dataset_IdName: this.getIdName,\n // dataset_IsVersionOf: this.getIsVersionOf,\n // datest_Keywords: this.getKeywords,\n // dataset_LandingPages: this.getLandingPagesResource,\n // dataset_Languages: this.getLanguages,\n // dataset_Licences: this.getLicences,\n // dataset_Loading: this.getLoading,\n // dataset_ModificationDate: this.getModificationDate,\n // dataset_OriginalLanguage: this.getOriginalLanguage,\n // dataset_OtherIdentifiers: this.getOtherIdentifiers,\n // dataset_Pages: this.getPages,\n // dataset_Provenances: this.getProvenances,\n dataset_Publisher: this.getPublisher,\n // dataset_RelatedResources: this.getRelatedResources,\n // dataset_ReleaseDate: this.getReleaseDate,\n // dataset_Sources: this.getSources,\n // dataset_Spatial: this.getSpatial,\n // dataset_SpatialResource: this.getSpatialResource,\n // dataset_Temporal: this.getTemporal,\n dataset_Title: this.getTitle,\n // dataset_TranslationMetaData: this.getTranslationMetaData,\n // dataset_VersionInfo: this.getVersionInfo,\n // dataset_VersionNotes: this.getVersionNotes,\n dataset_type: this.getIsHvd ? 'High-Value Dataset' : 'Dataset',\n dataset_scope: this.getCountry?.id === 'io'\n ? 'International Data'\n : this.getCountry?.id === 'eu'\n ? 'European Union Data'\n : 'National Data',\n dataset_provenance: this.getCountry?.name || this.getCountry?.id || '',\n dataset_category: (\n this.getCategories?.map(category => category.label?.en || category.id).filter(Boolean).length > 0\n ? this.getCategories.map(category => category.label?.en || category.id).filter(Boolean)\n : ['N/A']\n )\n };\n this.$piwik.trackDatasetDetailsPageView(null, null, obj);\n },\n isUrlInvalid(url) {\n if (url) {\n try {\n /* eslint-disable no-useless-escape */\n return !(new RegExp(\"^((https?:\\/\\/(www\\.)?)([-a-zA-Z0-9@:%._\\+~#=]{1,256})([-a-zA-Z0-9()@:%_\\+.~#?&//=]*))$\", \"i\")).test(decodeURIComponent(url.split(\"=\").pop()));\n /* eslint-enable no-useless-escape */\n } catch (e) {\n console.error(e);\n }\n }\n },\n openIfValidUrl(isValid, previewLinkCallback, distribution, event) {\n if (isValid) {\n // for (let key in this.$children) {\n // if(this.$children[key].$refs[\"externalResourceModal\"]) {\n // this.$children[key].$refs[\"externalResourceModal\"].openModal(previewLinkCallback(distribution), false);\n // }\n // }\n this.openModal(previewLinkCallback(distribution), false);\n } else {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n showTooltipVisualiseButton(invalidUrl) {\n if (invalidUrl) {\n return this.$t('message.tooltip.invalidVisualise');\n }\n return ''\n },\n },\n mounted() {\n // Duplicated API call, execute only if data not already loaded\n if (this.$route.params.ds_id !== this.getID) {\n this.$Progress.start();\n this.loadingDatasetDetails = true;\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n this.loadingDatasetDetails = false;\n this.initDatasetDetails();\n })\n .catch((err) => {\n console.warn(err); // eslint-disable-line\n this.$Progress.fail();\n if (typeof this.$piwik?.resume === \"function\") this.$piwik.resume();\n this.$router.replace({\n name: 'NotFound',\n query: { locale: this.$route.query.locale, dataset: this.$route.params.ds_id },\n });\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n } else {\n this.initDatasetDetails();\n this.$root.$emit('contentLoaded')\n }\n\n const distributionsConf = this.$env.content.datasetDetails && this.$env.content.datasetDetails.distributions;\n if (distributionsConf) {\n this.distributions.displayAll = distributionsConf.displayAll || this.distributions.displayAll;\n this.distributions.displayCount = parseInt(distributionsConf.displayCount, 10) || this.distributions.displayCount;\n\n if (typeof distributionsConf.incrementSteps === 'string') {\n // Need to parse as json array since env variables are string only\n distributionsConf.incrementSteps = JSON.parse(distributionsConf.incrementSteps);\n }\n this.distributions.incrementSteps = distributionsConf.incrementSteps || this.distributions.incrementSteps;\n }\n\n if (this.distributions.displayAll) this.distributions.displayCount = this.getDistributions.length;\n\n const pagesConf = this.$env.content.datasetDetails && this.$env.content.datasetDetails.pages;\n if (pagesConf) {\n this.pages.displayAll = pagesConf.displayAll || this.pages.displayAll;\n this.pages.displayCount = parseInt(pagesConf.displayCount, 10) || this.pages.displayCount;\n\n if (typeof pagesConf.incrementSteps === 'string') {\n // Need to parse as json array since env variables are string only\n pagesConf.incrementSteps = JSON.parse(pagesConf.incrementSteps);\n }\n this.pages.incrementSteps = pagesConf.incrementSteps || this.pages.incrementSteps;\n }\n\n if (this.pages.displayAll) this.pages.displayCount = this.getPages.length;\n },\n beforeUnmount() {\n $('.tooltip').remove();\n },\n setup() {\n metaInfo.useDatasetDetailsDatasetHead();\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n\n .catalogue-label {\n white-space: pre-line;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .tag-color {\n background-color: var(--tag-color);\n }\n\n .btn-color {\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n\n .heading, .arrow, .copy-text {\n cursor: pointer;\n }\n\n .details-link {\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .text-break {\n word-break: break-word;\n }\n\n td {\n padding-left: 0 !important;\n padding-top: 1% !important;\n padding-bottom: 1% !important;\n }\n\n .download-all-btn {\n min-width: 100px;\n height: 31px;\n }\n\n .d-inline-table {\n display: inline-table;\n }\n\n /*** BOOTSTRAP ***/\n button:focus {\n outline:0;\n }\n .options, .download {\n .dropdown-menu {\n .dropdown-item {\n &:hover {\n color: initial;\n background-color: initial;\n }\n }\n }\n }\n.spinner-grow {\n width: 20px;\n height: 20px;\n}\n\n /*** FONT AWESOME ICONS ***/\n .fa-check-square {\n color: #28a745;\n width: 16px;\n height: 16px;\n }\n\n /*** MATERIAL ICONS ***/\n %modal-icon {\n font-size: 18px;\n cursor: default;\n }\n\n .help-icon {\n @extend %modal-icon;\n }\n\n .check-icon {\n @extend %modal-icon;\n color: #28a745;\n }\n\n .material-icons.small-icon {\n font-size: 20px;\n }\n\n .distributions {\n\n &__item {\n position: relative;\n\n &--preview {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, white 55%);\n z-index: 10;\n }\n }\n\n &__actions {\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100%;\n z-index: 11;\n }\n }\n .mt-4 {\n margin-top: 1.5rem !important;\n }\n\n .keywords {\n\n &__item {\n position: relative;\n }\n\n &__actions {\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100%;\n z-index: 11;\n }\n }\n .sectionList {\n list-style-type: '→ ';\n margin-left:6.5%;\n }\n @media only screen and (max-width: 991px) {\n .sectionList {\n margin-left: 0;\n }\n}\n</style>\n"],"names":["_hoisted_1","_hoisted_3","_hoisted_4","_component_dataset_details_properties","_resolveComponent","_openBlock","_createElementBlock","_createVNode","_component_resource_access_popup","_cache","_createTextVNode","getReleaseDate","_ctx","getModificationDate","_hoisted_2","$data","_component_dataset_details_skeleton","_createCommentVNode","$props","_createBlock","_component_dataset_details_description","$options","_component_distributions","getDistributions","getKeywords","_component_dataset_details_features","_withCtx","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatasetDetailsDataset.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsDataset.vue"],"sourcesContent":["<template>\n <div>\n <resource-access-popup ref=\"externalResourceModal\" />\n <span property=\"dc:issued\" :content=\"getReleaseDate\"></span>\n <span property=\"dc:modified\" :content=\"getModificationDate\"></span>\n <div v-if=\"loadingDatasetDetails\">\n <dataset-details-skeleton type=\"DatasetDetails\"></dataset-details-skeleton>\n </div>\n <div v-if=\"!loadingDatasetDetails\" class=\"dsd-dataset\">\n <dataset-details-description\n v-if=\"showDatasetDescription\"\n :dateIncorrect=\"dateIncorrect\"\n :machineTranslated=\"machineTranslated\"\n :translationNotAvailable=\"translationNotAvailable\"\n />\n <distributions\n :openModal=\"openModal\"\n :getDistributions=\"getDistributions\"\n :expandedDistributions=\"expandedDistributions\"\n :expandedDistributionDescriptions=\"expandedDistributionDescriptions\"\n :displayedDistributions=\"displayedDistributions\"\n :isDistributionsAllDisplayed=\"isDistributionsAllDisplayed\"\n :distributions=\"distributions\"\n :setDistributionsDisplayCount=\"setDistributionsDisplayCount\"\n :pages=\"pages\"\n :showDownloadUrls=\"showDownloadUrls\"\n :isOnlyOneUrl=\"isOnlyOneUrl\"\n :getDistributionFormat=\"getDistributionFormat\"\n :distributionFormatTruncated=\"distributionFormatTruncated\"\n :getDistributionTitle=\"getDistributionTitle\"\n :distributionVisibleContent=\"distributionVisibleContent\"\n :distributionExpandedContent=\"distributionExpandedContent\"\n :distributionDescriptionIsExpanded=\"distributionDescriptionIsExpanded\"\n :distributionDescriptionIsExpandable=\"distributionDescriptionIsExpandable\"\n :distributionIsExpanded=\"distributionIsExpanded\"\n :showNumber=\"showNumber\"\n :showObject=\"showObject\"\n :showDownloadDropdown=\"showDownloadDropdown\"\n :showLicence=\"showLicence\"\n :showLicensingAssistant=\"showLicensingAssistant\"\n :filterDateFormatEU=\"filterDateFormatEU\"\n :showArray=\"showArray\"\n :showObjectArray=\"showObjectArray\"\n :getVisualisationLink=\"getVisualisationLink\"\n :getDownloadUrl=\"getDownloadUrl\"\n :trackGoto=\"trackGoto\"\n :showAccessUrls=\"showAccessUrls\"\n :replaceHttp=\"replaceHttp\"\n :previewLinkCallback=\"previewLinkCallback\"\n :toggleDistribution=\"toggleDistribution\"\n :toggleDistributionDescription=\"toggleDistributionDescription\"\n :increaseNumDisplayedDistributions=\"increaseNumDisplayedDistributions\"\n :nonOverflowingIncrementsForDistributions=\"nonOverflowingIncrementsForDistributions\"\n :appendCurrentLocaleToURL=\"appendCurrentLocaleToURL\"\n :isUrlInvalid=\"isUrlInvalid\"\n :openIfValidUrl=\"openIfValidUrl\"\n :showTooltipVisualiseButton=\"showTooltipVisualiseButton\"\n :showPublisher=\"showPublisher\"\n :embed=\"embed\"\n />\n <dataset-details-features\n :getKeywords=\"getKeywords\"\n :pages=\"pages\"\n :increaseNumDisplayedPages=\"increaseNumDisplayedPages\"\n :nonOverflowingIncrementsForPages=\"nonOverflowingIncrementsForPages\"\n :showKeyword=\"showKeyword\"\n :trackGoto=\"trackGoto\"\n :showObjectArray=\"showObjectArray\"\n :showArray=\"showArray\"\n :showObject=\"showObject\"\n />\n <dataset-details-properties v-if=\"showDatasetProperties\">\n <template #property-header><slot name=\"property-header\"></slot></template>\n <template #property-table-before><slot name=\"property-table-before\"></slot></template>\n <template #property-table><slot name=\"property-table\"></slot></template>\n <template #property-table-after><slot name=\"property-table-after\"></slot></template>\n </dataset-details-properties>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n // @ts-nocheck\n /* eslint-disable no-confusing-arrow, no-nested-ternary, no-return-assign, no-confusing-arrow */\n import $ from 'jquery';\n import { mapActions, mapGetters } from 'vuex';\n import {\n has,\n isNil,\n isArray,\n isObject,\n isString,\n isNumber,\n isEmpty,\n } from 'lodash';\n import AppLink from '../widgets/AppLink.vue';\n import Tooltip from '../widgets/Tooltip.vue';\n import Distributions from './distributions/Distributions.vue';\n import dateFilters from '../filters/dateFilters';\n import {\n getTranslationFor, getCountryFlagImg, truncate, replaceHttp, appendCurrentLocaleToURL\n } from '../utils/helpers';\n import ResourceAccessPopup from '../widgets/ResourceAccessPopup.vue';\n import DatasetDetailsExtendedMetaData\n from \"../datasetDetails/features/DatasetDetailsIsUsedBy.vue\";\n import DatasetDetailsSkeleton from \"../datasetDetails/DatasetDetailsSkeleton.vue\";\n import * as metaInfo from '../composables/head';\n\n export default {\n name: 'datasetDetailsDataset',\n components: {\n DatasetDetailsSkeleton,\n DatasetDetailsExtendedMetaData,\n AppLink,\n Tooltip,\n Distributions,\n ResourceAccessPopup\n },\n props: {\n distributionVisibleContent: {\n type: Array,\n default: () => ['license', 'licenseAttributionByText', 'modificationDate'],\n },\n distributionExpandedContent: {\n type: Array,\n default: () => [\n 'releaseDate',\n 'language',\n 'availability',\n 'status',\n 'rights',\n 'mediaType',\n 'byteSize',\n 'checksum',\n 'pages',\n 'type',\n 'compressFormat',\n 'packageFormat',\n 'hasPolicy',\n 'conformsTo',\n 'spatialResolutionInMeters',\n 'temporalResolution',\n ],\n },\n showDatasetDescription: {\n type: Boolean,\n default: () => true,\n },\n showDatasetProperties: {\n type: Boolean,\n default: () => true,\n },\n showPublisher: {\n type: Boolean,\n default: () => false,\n },\n embed: {\n type: Boolean,\n default: () => false,\n },\n },\n data() {\n return {\n defaultLocale: this.$env.languages.locale,\n // has to be INITIAL_DATASET_DESCRIPTION_LENGTH\n isDatasetDescriptionExpanded: false,\n loadingDatasetDetails: false,\n machineTranslated: false,\n translationNotAvailable: false,\n expandedDistributions: [],\n expandedDistributionDescriptions: [],\n distributions: {\n displayAll: this.$env.content.datasetDetails.distributions.displayAll,\n displayCount: this.$env.content.datasetDetails.distributions.displayCount,\n incrementSteps: this.$env.content.datasetDetails.distributions.incrementSteps,\n descriptionMaxLines: this.$env.content.datasetDetails.distributions.descriptionMaxLines,\n descriptionMaxChars: this.$env.content.datasetDetails.distributions.descriptionMaxChars,\n licencingAssistantUrl: this.$env.content.datasetDetails.distributions.licencingAssistantUrl,\n },\n pages: {\n isVisible: this.$env.content.datasetDetails.pages.isVisible,\n displayAll: this.$env.content.datasetDetails.pages.displayAll,\n displayCount: this.$env.content.datasetDetails.pages.displayCount,\n incrementSteps: this.$env.content.datasetDetails.pages.incrementSteps,\n descriptionMaxLines: this.$env.content.datasetDetails.pages.descriptionMaxLines,\n descriptionMaxChars: this.$env.content.datasetDetails.pages.descriptionMaxChars,\n },\n showDescription: true,\n };\n },\n computed: {\n // import store-getters\n ...mapGetters('datasetDetails', [\n 'getKeywords',\n 'getAccessRights',\n 'getAccrualPeriodicity',\n 'getCatalog',\n 'getContactPoints',\n 'getDateIncorrect',\n 'getDescription',\n 'getDistributions',\n 'getID',\n 'getLanguages',\n 'getLicences',\n 'getModificationDate',\n 'getOtherIdentifiers',\n 'getPages',\n 'getPublisher',\n 'getReleaseDate',\n 'getSpatial',\n 'getTranslationMetaData',\n 'getTitle',\n 'getIsHvd',\n 'getHvdCategories',\n 'getCountry',\n 'getCategories',\n 'getLoading',\n ]),\n dateIncorrect() {\n return this.getDateIncorrect;\n },\n displayedDistributions() {\n const sorted = [...this.getDistributions].sort((a, b) => {\n if (getTranslationFor(a.title, this.$route.query.locale, this.getLanguages) < getTranslationFor(b.title, this.$route.query.locale, this.getLanguages)) { return -1; }\n if (getTranslationFor(a.title, this.$route.query.locale, this.getLanguages) > getTranslationFor(b.title, this.$route.query.locale, this.getLanguages)) { return 1; }\n return 0;\n });\n return this.distributions.displayAll\n ? Object.freeze(sorted)\n : Object.freeze(sorted.slice(0, this.distributions.displayCount));\n },\n isDistributionsAllDisplayed() {\n return this.distributions.displayCount === this.getDistributions.length;\n },\n remainingDistributions() {\n return this.getDistributions.length - this.distributions.displayCount;\n }\n },\n watch: {\n getLoading: {\n handler(newVal, oldVal) {\n const isLoadingStopped = !newVal && oldVal;\n const isAlreadyLoadedSuccessfully = !newVal && !oldVal && this.getID;\n if (isLoadingStopped || isAlreadyLoadedSuccessfully) {\n this.piwikMetaPush();\n }\n },\n immediate: true\n }\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'loadDatasetDetails',\n 'setLoading',\n ]),\n has,\n isNil,\n isArray,\n isObject,\n isString,\n isNumber,\n appendCurrentLocaleToURL,\n getTranslationFor,\n getCountryFlagImg,\n truncate,\n replaceHttp,\n initDatasetDetails() {\n setTimeout(() => {\n if (typeof this.$piwik?.resume === \"function\") this.$piwik.resume();\n }, 500);\n this.$nextTick(() => {\n // Display/hide translation banners\n this.setTranslationBanners();\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n });\n },\n setDistributionsDisplayCount(count: number) {\n this.distributions.displayCount = count;\n },\n openModal(callback, toggleDownloadPopup) {\n this.$refs.externalResourceModal.openModal(callback, toggleDownloadPopup)\n },\n previewLinkCallback(distribution) {\n return () => {\n this.$emit('track-link', this.getVisualisationLink(distribution), 'link');\n window.open(this.getVisualisationLink(distribution), '_blank');\n };\n },\n filterDateFormatEU(date) {\n return dateFilters.formatEU(date);\n },\n /* ABSTRACT SHOW FUNCTIONS */\n showString(string) {\n return !isNil(string) && isString(string);\n },\n showNumber(number) {\n return !isNil(number) && isNumber(number);\n },\n showObject(object) {\n return !isNil(object) && isObject(object) && !Object.values(object).reduce((keyUndefined, currentValue) => keyUndefined && currentValue === undefined, true);\n },\n showArray(array) {\n return !isNil(array) && isArray(array) && array.length > 0;\n },\n showObjectArray(objectArray) {\n return this.showArray(objectArray) && !objectArray.reduce((objectUndefined, currentObject) => objectUndefined && Object.values(currentObject).reduce((keyUndefined, currentValue) => keyUndefined && currentValue === undefined, true), true);\n },\n /* SPECIFIC SHOW FUNCTIONS */\n /* for now show all licences */\n showLicence(licence) {\n // return (has(licence, 'id') && !isNil(licence.id))\n // || (has(licence, 'label') && !isNil(licence.label))\n return true\n },\n showLicensingAssistant(distribution) {\n return has(distribution, 'licence.la_url') && this.showString(distribution.licence.la_url);\n },\n showDownloadDropdown(distribution) {\n return this.showAccessUrls(distribution) || this.showDownloadUrls(distribution);\n },\n isOnlyOneUrl(distribution) {\n return (this.showAccessUrls(distribution) && !this.showDownloadUrls(distribution))\n || (!this.showAccessUrls(distribution) && this.showDownloadUrls(distribution) && distribution.downloadUrls.length === 1);\n },\n getDownloadUrl(distribution) {\n let url;\n if (this.showAccessUrls(distribution) && !this.showDownloadUrls(distribution)) {\n url = distribution.accessUrl[0];\n }\n if (!this.showAccessUrls(distribution) && this.showDownloadUrls(distribution) && distribution.downloadUrls.length === 1) {\n url = distribution.downloadUrls[0];\n }\n return url;\n },\n showAccessUrls(distribution) {\n return has(distribution, 'accessUrl') && this.showArray(distribution.accessUrl);\n },\n showDownloadUrls(distribution) {\n return has(distribution, 'downloadUrls') && this.showArray(distribution.downloadUrls);\n },\n showKeyword(keyword) {\n return has(keyword, 'id')\n && has(keyword, 'title')\n && !isNil(keyword.id)\n && !isNil(keyword.title);\n },\n\n /* GETTER / SETTER FUNCTIONS */\n\n setDatasetOriginalLanguage(originalLanguage) {\n this.$i18n.locale = originalLanguage;\n },\n distributionIsExpanded(id) {\n setTimeout(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n });\n }, 500);\n return this.expandedDistributions.includes(id);\n },\n distributionDescriptionIsExpanded(id) {\n return this.expandedDistributionDescriptions.includes(id);\n },\n distributionDescriptionIsExpandable(description) {\n return isNil(description) ? false : description.length > this.distributions.descriptionMaxChars;\n },\n getDistributionFormat(distribution) {\n return has(distribution, 'format.label') && !isNil(distribution.format.label) ? distribution.format.label : '';\n },\n distributionFormatTruncated(distribution) {\n return this.getDistributionFormat(distribution).length > 4;\n },\n getDistributionTitle(distribution) {\n return distribution.title\n ? getTranslationFor(distribution.title, this.$route.query.locale, this.getLanguages)\n : this.getID || '-';\n },\n getVisualisationLink(distribution) {\n // Return Visualisation Link\n const accessUrl = distribution.downloadUrls && distribution.downloadUrls.length ? distribution.downloadUrls[0] : distribution.accessUrl[0];\n return `/data/visualisation/?file=${encodeURIComponent(accessUrl)}`;\n },\n // getSubjectLink(subject) {\n // return { path: `/datasets?subject=${subject.id}`, query: Object.assign({}, { locale: this.$route.query.locale }) };\n // },\n toggleDistribution(id) {\n const index = this.expandedDistributions.indexOf(id);\n if (index > -1) this.expandedDistributions.splice(index, 1);\n else this.expandedDistributions.push(id);\n },\n toggleDistributionDescription(id) {\n const index = this.expandedDistributionDescriptions.indexOf(id);\n if (index > -1) this.expandedDistributionDescriptions.splice(index, 1);\n else this.expandedDistributionDescriptions.push(id);\n },\n setTranslationBanners() {\n if (!this.$i18n) return;\n const translationMetaData = this.getTranslationMetaData;\n // Check if translation of dataset is available in selected language\n if (!isNil(translationMetaData.details) && has(translationMetaData.details, this.$route.query.locale)) {\n // Check if dataset if machine translated\n this.machineTranslated = translationMetaData.details[this.$route.query.locale].machine_translated;\n } else {\n // No translation of this dataset available for the selected language\n this.translationNotAvailable = true;\n }\n },\n // Emit a Matomo event when user clicks on 'go to resource' element\n trackGoto() {\n const paq = window._paq || []; // eslint-disable-line\n // paq.push(['trackEvent', 'GoToResource', 'Clicked']);\n this.$piwik.trackGotoResource();\n },\n clamp(n, min, max) {\n return Math.min(Math.max(n, min), max);\n },\n // Increases the current number of distributions displayed\n // and clamps the result so that it never exceeds the number of all distributions.\n increaseNumDisplayedDistributions(increment) {\n const clampedSum = this.clamp(this.distributions.displayCount + increment, 0, this.getDistributions.length);\n this.distributions.displayCount = clampedSum;\n },\n nonOverflowingIncrementsForDistributions(incrementStep) {\n return this.distributions.displayCount + incrementStep <= this.getDistributions.length;\n },\n // Increases the current number of distributions displayed\n // and clamps the result so that it never exceeds the number of all distributions.\n increaseNumDisplayedPages(increment) {\n const clampedSum = this.clamp(this.pages.displayCount + increment, 0, this.getPages.length);\n this.pages.displayCount = clampedSum;\n },\n nonOverflowingIncrementsForPages(incrementStep) {\n return this.pages.displayCount + incrementStep <= this.getPages.length;\n },\n async piwikMetaPush() {\n await this.$nextTick();\n const obj = {\n dataset_AccessRights: this.getAccessRights,\n dataset_AccrualPeriodicity: this.getAccrualPeriodicity,\n dataset_Catalog: this.getCatalog,\n // dataset_Categories: this.getCategories,\n // dataset_ConformsTo: this.getConformsTo,\n // dataset_ContactPoints: this.getContactPoints,\n // dataset_Country: this.getCountry,\n // dataset_Creator: this.getCreator,\n // dataset_Description: this.getDescription,\n // dataset_Distributions: this.getDistributions,\n // dataset_DistributionFormats: this.getDistributionFormats,\n // dataset_Documentations: this.getDocumentations,\n // dataset_Frequency: this.getFrequency,\n // dataset_HasVersion: this.getHasVersion,\n dataset_ID: this.getID,\n // dataset_Identifiers: this.getIdentifiers,\n // dataset_IdName: this.getIdName,\n // dataset_IsVersionOf: this.getIsVersionOf,\n // datest_Keywords: this.getKeywords,\n // dataset_LandingPages: this.getLandingPagesResource,\n // dataset_Languages: this.getLanguages,\n // dataset_Licences: this.getLicences,\n // dataset_Loading: this.getLoading,\n // dataset_ModificationDate: this.getModificationDate,\n // dataset_OriginalLanguage: this.getOriginalLanguage,\n // dataset_OtherIdentifiers: this.getOtherIdentifiers,\n // dataset_Pages: this.getPages,\n // dataset_Provenances: this.getProvenances,\n dataset_Publisher: this.getPublisher,\n // dataset_RelatedResources: this.getRelatedResources,\n // dataset_ReleaseDate: this.getReleaseDate,\n // dataset_Sources: this.getSources,\n // dataset_Spatial: this.getSpatial,\n // dataset_SpatialResource: this.getSpatialResource,\n // dataset_Temporal: this.getTemporal,\n dataset_Title: this.getTitle,\n // dataset_TranslationMetaData: this.getTranslationMetaData,\n // dataset_VersionInfo: this.getVersionInfo,\n // dataset_VersionNotes: this.getVersionNotes,\n dataset_type: this.getIsHvd ? 'High-Value Dataset' : 'Dataset',\n dataset_scope: this.getCountry?.id === 'io'\n ? 'International Data'\n : this.getCountry?.id === 'eu'\n ? 'European Union Data'\n : 'National Data',\n dataset_provenance: this.getCountry?.name || this.getCountry?.id || '',\n dataset_category: (\n this.getCategories?.map(category => category.label?.en || category.id).filter(Boolean).length > 0\n ? this.getCategories.map(category => category.label?.en || category.id).filter(Boolean)\n : ['N/A']\n )\n };\n this.$piwik.trackDatasetDetailsPageView(null, null, obj);\n },\n isUrlInvalid(url) {\n if (url) {\n try {\n /* eslint-disable no-useless-escape */\n return !(new RegExp(\"^((https?:\\/\\/(www\\.)?)([-a-zA-Z0-9@:%._\\+~#=]{1,256})([-a-zA-Z0-9()@:%_\\+.~#?&//=]*))$\", \"i\")).test(decodeURIComponent(url.split(\"=\").pop()));\n /* eslint-enable no-useless-escape */\n } catch (e) {\n console.error(e);\n }\n }\n },\n openIfValidUrl(isValid, previewLinkCallback, distribution, event) {\n if (isValid) {\n // for (let key in this.$children) {\n // if(this.$children[key].$refs[\"externalResourceModal\"]) {\n // this.$children[key].$refs[\"externalResourceModal\"].openModal(previewLinkCallback(distribution), false);\n // }\n // }\n this.openModal(previewLinkCallback(distribution), false);\n } else {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n showTooltipVisualiseButton(invalidUrl) {\n if (invalidUrl) {\n return this.$t('message.tooltip.invalidVisualise');\n }\n return ''\n },\n },\n mounted() {\n // Duplicated API call, execute only if data not already loaded\n if (this.$route.params.ds_id !== this.getID) {\n this.$Progress.start();\n this.loadingDatasetDetails = true;\n this.loadDatasetDetails(this.$route.params.ds_id)\n .then(() => {\n this.$Progress.finish();\n this.loadingDatasetDetails = false;\n this.initDatasetDetails();\n })\n .catch((err) => {\n console.warn(err); // eslint-disable-line\n this.$Progress.fail();\n if (typeof this.$piwik?.resume === \"function\") this.$piwik.resume();\n this.$router.replace({\n name: 'NotFound',\n query: { locale: this.$route.query.locale, dataset: this.$route.params.ds_id },\n });\n })\n .finally(() => this.$root.$emit('contentLoaded'));\n } else {\n this.initDatasetDetails();\n this.$root.$emit('contentLoaded')\n }\n\n const distributionsConf = this.$env.content.datasetDetails && this.$env.content.datasetDetails.distributions;\n if (distributionsConf) {\n this.distributions.displayAll = distributionsConf.displayAll || this.distributions.displayAll;\n this.distributions.displayCount = parseInt(distributionsConf.displayCount, 10) || this.distributions.displayCount;\n\n if (typeof distributionsConf.incrementSteps === 'string') {\n // Need to parse as json array since env variables are string only\n distributionsConf.incrementSteps = JSON.parse(distributionsConf.incrementSteps);\n }\n this.distributions.incrementSteps = distributionsConf.incrementSteps || this.distributions.incrementSteps;\n }\n\n if (this.distributions.displayAll) this.distributions.displayCount = this.getDistributions.length;\n\n const pagesConf = this.$env.content.datasetDetails && this.$env.content.datasetDetails.pages;\n if (pagesConf) {\n this.pages.displayAll = pagesConf.displayAll || this.pages.displayAll;\n this.pages.displayCount = parseInt(pagesConf.displayCount, 10) || this.pages.displayCount;\n\n if (typeof pagesConf.incrementSteps === 'string') {\n // Need to parse as json array since env variables are string only\n pagesConf.incrementSteps = JSON.parse(pagesConf.incrementSteps);\n }\n this.pages.incrementSteps = pagesConf.incrementSteps || this.pages.incrementSteps;\n }\n\n if (this.pages.displayAll) this.pages.displayCount = this.getPages.length;\n },\n beforeUnmount() {\n $('.tooltip').remove();\n },\n setup() {\n metaInfo.useDatasetDetailsDatasetHead();\n }\n };\n</script>\n\n<style lang=\"scss\" scoped>\n\n .catalogue-label {\n white-space: pre-line;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .tag-color {\n background-color: var(--tag-color);\n }\n\n .btn-color {\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n\n .heading, .arrow, .copy-text {\n cursor: pointer;\n }\n\n .details-link {\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .text-break {\n word-break: break-word;\n }\n\n td {\n padding-left: 0 !important;\n padding-top: 1% !important;\n padding-bottom: 1% !important;\n }\n\n .download-all-btn {\n min-width: 100px;\n height: 31px;\n }\n\n .d-inline-table {\n display: inline-table;\n }\n\n /*** BOOTSTRAP ***/\n button:focus {\n outline:0;\n }\n .options, .download {\n .dropdown-menu {\n .dropdown-item {\n &:hover {\n color: initial;\n background-color: initial;\n }\n }\n }\n }\n.spinner-grow {\n width: 20px;\n height: 20px;\n}\n\n /*** FONT AWESOME ICONS ***/\n .fa-check-square {\n color: #28a745;\n width: 16px;\n height: 16px;\n }\n\n /*** MATERIAL ICONS ***/\n %modal-icon {\n font-size: 18px;\n cursor: default;\n }\n\n .help-icon {\n @extend %modal-icon;\n }\n\n .check-icon {\n @extend %modal-icon;\n color: #28a745;\n }\n\n .material-icons.small-icon {\n font-size: 20px;\n }\n\n .distributions {\n\n &__item {\n position: relative;\n\n &--preview {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, white 55%);\n z-index: 10;\n }\n }\n\n &__actions {\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100%;\n z-index: 11;\n }\n }\n .mt-4 {\n margin-top: 1.5rem !important;\n }\n\n .keywords {\n\n &__item {\n position: relative;\n }\n\n &__actions {\n display: flex;\n justify-content: center;\n align-items: flex-end;\n height: 100%;\n z-index: 11;\n }\n }\n .sectionList {\n list-style-type: '→ ';\n margin-left:6.5%;\n }\n @media only screen and (max-width: 991px) {\n .sectionList {\n margin-left: 0;\n }\n}\n</style>\n"],"names":["_hoisted_4","_component_dataset_details_properties","_resolveComponent","_createVNode","_component_resource_access_popup","_cache","_createTextVNode","getReleaseDate","_hoisted_1","getModificationDate","_hoisted_2","$data","_openBlock","_createElementBlock","_hoisted_3","_createCommentVNode","$props","_createBlock","_component_dataset_details_description","$options","_component_distributions","getDistributions","_ctx","getKeywords","_component_dataset_details_features","_withCtx","_renderSlot"],"mappings":";;;;wDAQuCA,IAAM;AAAA,EAAA,KAAA;AAAA;;;4KAsErCC,IAAAC,EAAA,4BAAA;;IA3EJC,EAA4DC,GAAA,EAAA,KAAA,wBAAA,GAAA,MAAA,GAAA;AAAA,IAAAC,EAAtD,OAASA,EAAW,CAAA,IAAAC,EAAA;AAAA,IAAWC,EAAAA,QAAAA;AAAAA,MAAAA,UAAAA;AAAAA;OAC8B,MAAA,GAAAC,CAAA;AAAA,IAAAH,EAA7D,OAASA,EAAa,CAAA,IAAAC,EAAA;AAAA,IAAWG,EAAAA,QAAAA;AAAAA,MAAAA,UAAAA;AAAAA;IAC5B,GAAA,MAAA,GAAAC,CAAA;AAAA,IAAAL,EAAA,CAAA,MAAAA,EAAX,CAEM,IAAAC,EAAA;AAAA,IADJK,EAAA,yBAAAC,EAAA,GAAAC,EAAA,OAAAC,GAAA;AAAA;UAEUC,EAAqB,IAAA,EAAA;AAAA,IAAAV,EAAA,CAAA,MAAAA,EAAjC,CAqEM,IAAAC,EAAA;AAAA,IAAAK,EAnEI,qCAINC,EAAA,GAAAC,EAAA,OAAAb,GAAA;AAAA,MAHCgB,EAAA,0BAAAJ,KAAaK,EAAEC,GAAa;AAAA,QAC5B,KAAA;AAAA,QACA,eAAuBC,EAAA;AAAA,QAAA,mBAAAR,EAAA;AAAA;wFAE1BI,EA4CE,IAAA,EAAA;AAAA,MAAAV,EA3CC,OAAWA,EAAS,CAAA,IAAAC,EAAA;AAAA,MAAAH,EACpBiB,GAAkBC;AAAAA,QAClB,WAAAF,EAAA;AAAA,QACA,kBAAAG,EAAA;AAAA,QACA,uBAAsBX,EAAE;AAAA,QACxB,kCAA6BA,EAAA;AAAA,QAC7B,wBAAeQ,EAAA;AAAA,QACf,6BAA4BA,EAAE;AAAA,QAC9B,eAAOR,EAAK;AAAA,QACZ,8BAAkBQ,EAAA;AAAA,QAClB,OAAYR,EAAA;AAAA,QACZ,kBAAuBQ,EAAA;AAAA,QACvB,cAAAA,EAAA;AAAA,QACA,uBAAsBA,EAAA;AAAA,QACtB,6BAA4BA,EAAA;AAAA,QAC5B,sBAA6BA,EAAA;AAAA,QAC7B,4BAAmCH,EAAA;AAAA,QACnC,6BAAmCA,EAAA;AAAA,QACnC,mCAAwBG,EAAA;AAAA,QACxB,qCAAsBA,EAAA;AAAA,QACtB,wBAAYA,EAAU;AAAA,QACtB,YAAoBA,EAAA;AAAA,QACpB,YAAWA,EAAE;AAAA,QACb,sBAAsBA,EAAE;AAAA,QACxB,aAAoBA,EAAA;AAAA,QACpB,wBAAWA,EAAS;AAAA,QACpB,oBAAiBA,EAAA;AAAA,QACjB,WAAoBA,EAAA;AAAA,QACpB,iBAAgBA,EAAA;AAAA,QAChB,sBAAWA,EAAS;AAAA,QACpB,gBAAgBA,EAAA;AAAA,QAChB,WAAWA,EAAE;AAAA,QACb,gBAAqBA,EAAA;AAAA,QACrB,aAAoBA,EAAA;AAAA,QACpB,qBAA6BA,EAAA;AAAA,QAC7B,oBAAAA,EAAA;AAAA,QACA,+BAAwCA,EAAA;AAAA,QACxC,mCAA0BA,EAAA;AAAA,QAC1B,0CAA0BA,EAAA;AAAA,QAC1B,0BAAgBA,EAAA;AAAA,QAChB,cAAAA,EAAA;AAAA,QACA,gBAAeA,EAAA;AAAA,QACf,4BAAYA,EAAA;AAAA,QAAA,eAAAH,EAAA;AAAA;MAYb,GAAA,MAAA,GAAA,CAAA,aAAA,oBAAA,yBAAA,oCAAA,0BAAA,+BAAA,iBAAA,gCAAA,SAAA,oBAAA,gBAAA,yBAAA,+BAAA,wBAAA,8BAAA,+BAAA,qCAAA,uCAAA,0BAAA,cAAA,cAAA,wBAAA,eAAA,0BAAA,sBAAA,aAAA,mBAAA,wBAAA,kBAAA,aAAA,kBAAA,eAAA,uBAAA,sBAAA,iCAAA,qCAAA,4CAAA,4BAAA,gBAAA,kBAAA,8BAAA,iBAAA,OAAA,CAAA;AAAA,MATCX,EAAA,CAAA,MAAWA,EAAEkB,CAAW,IAAAjB,EAAA;AAAA,MAAAH,EACjBqB,GAAK;AAAA,QACZ,aAAAF,EAAA;AAAA,QACA,OAAAX,EAAA;AAAA,QACA,2BAAaQ,EAAW;AAAA,QACxB,kCAAoBA,EAAA;AAAA,QACpB,aAAiBA,EAAA;AAAA,QACjB,WAAWA,EAAA;AAAA,QACX,iBAAYA,EAAA;AAAA,QAAA,WAAAA,EAAA;AAAA;SAEmB,MAAqB,GAAA,CAAA,eAAA,SAAA,6BAAA,oCAAA,eAAA,aAAA,mBAAA,aAAA,YAAA,CAAA;AAAA,MAAAd,EAAA,CAAA,MAAAA,EAAvD,CAK6B,IAAAC,EAAA;AAAA,MAAAU,EAJhB,8BAAoDC,EAAAhB,GAAA,EAAA,KAAA,KAAA;AAAA,QAAA,mBAAAwB,EAAA,MAAA;AAAA,UACpDC,EAAAJ,EAAA,QAAqB,mBAA2C,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA,CAAA;AAAA;UAChEI,EAAAJ,EAAc,QAAC,yBAAmC,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA,CAAA;AAAA;UAClDI,EAAAJ,EAAA,QAAoB,kBAA0C,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA,CAAA;AAAA;;;;;;;;;;"}
|
|
@@ -40,9 +40,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
40
40
|
getOriginalLanguage: import('vuex').Computed;
|
|
41
41
|
}, {
|
|
42
42
|
getDatasetOriginalLanguage(originalLanguage: any): {
|
|
43
|
-
query:
|
|
44
|
-
locale: any;
|
|
45
|
-
};
|
|
43
|
+
query: any;
|
|
46
44
|
};
|
|
47
45
|
setDatasetOriginalLanguage(originalLanguage: any): void;
|
|
48
46
|
showString(string: any): string is string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsDescription.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsDescription.vue"],"sourcesContent":["<template>\n <div ref=\"datasetDescription\" class=\"mt-4 mb-4 dsd-description\" data-cy=\"dataset-description\">\n <div v-if=\"getDatasetDescription !== 'No description available'\" class=\"col-12 col-lg-11 offset-lg-1 dsd-description-content\" property=\"dc:description\">\n <app-markdown-content\n v-if=\"$env.content.datasetDetails.description.enableMarkdownInterpretation\"\n :text=\"truncate(getDatasetDescription, datasetDescriptionLength)\"\n />\n <p v-else style=\"word-wrap:break-word;\">\n <span class=\"mr-2\">{{ truncate(getDatasetDescription, datasetDescriptionLength) | stripHtml }}</span>\n<!-- <small v-if=\"!isDatasetDescriptionExpanded && datasetDescriptionLength < getDatasetDescriptionLength\" class=\"cursor-pointer text-nowrap\" @click=\"toggleDatasetDescription\">-->\n<!-- {{ $t('message.metadata.showMore') }}-->\n<!-- </small>-->\n<!-- <small v-else-if=\"isDatasetDescriptionExpanded\" class=\"cursor-pointer text-nowrap\" @click=\"toggleDatasetDescription\">-->\n<!-- {{ $t('message.metadata.showLess') }}-->\n<!-- </small>-->\n </p>\n <pv-show-more\n v-if=\"isDatasetDescriptionExpanded || (datasetDescriptionLength < getDatasetDescriptionLength)\"\n :label=\"isDatasetDescriptionExpanded? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"isDatasetDescriptionExpanded\"\n :action=\"toggleDatasetDescription\"\n class=\"row text-primary\"\n />\n </div>\n <div v-else class=\"col-10 offset-1 text-muted font-italic dsd-description-content\">\n <p style=\"word-wrap:break-word;\">\n {{ $t('message.catalogsAndDatasets.noDescriptionAvailable') }}\n </p>\n </div>\n <dataset-details-banners\n :dateIncorrect=\"dateIncorrect\"\n :machineTranslated=\"machineTranslated\"\n :translationNotAvailable=\"translationNotAvailable\"\n />\n </div>\n</template>\n\n<script>\nimport AppMarkdownContent from \"../datasetDetails/AppMarkdownContent\";\nimport filtersMixin from \"../mixins/filters\";\nimport {getTranslationFor, truncate} from \"../utils/helpers\";\nimport { mapGetters, mapActions } from \"vuex\";\nimport DatasetDetailsBanners from \"../datasetDetails/DatasetDetailsBanners.vue\";\nexport default {\n name: \"DatasetDetailsDescription\",\n components: {AppMarkdownContent, DatasetDetailsBanners},\n mixins: [filtersMixin],\n props: {\n dateIncorrect: Boolean,\n machineTranslated: Boolean,\n translationNotAvailable: Boolean\n },\n data() {\n return {\n isDatasetDescriptionExpanded: false,\n datasetDescriptionLength: 1500,\n INITIAL_DATASET_DESCRIPTION_LENGTH: 1500,\n MAX_DATASET_DESCRIPTION_LENGTH: 100000\n }\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDescription',\n 'getLanguages'\n ]),\n getDatasetDescription() {\n return getTranslationFor(this.getDescription, this.$route.query.locale, this.getLanguages);\n },\n getDatasetDescriptionLength() {\n return this.getDatasetDescription ? this.getDatasetDescription.length : 0;\n }\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'setDatasetDescriptionHeight'\n ]),\n truncate,\n toggleDatasetDescription() {\n this.isDatasetDescriptionExpanded = !this.isDatasetDescriptionExpanded;\n if (this.datasetDescriptionLength === this.INITIAL_DATASET_DESCRIPTION_LENGTH) this.datasetDescriptionLength = this.MAX_DATASET_DESCRIPTION_LENGTH;\n else this.datasetDescriptionLength = this.INITIAL_DATASET_DESCRIPTION_LENGTH;\n },\n calculateDatasetDescriptionHeight() {\n return this.$refs.datasetDescription.querySelector('.dsd-description-content').clientHeight;\n }\n },\n mounted() {\n this.setDatasetDescriptionHeight(this.calculateDatasetDescriptionHeight());\n }\n}\n</script>\n\n<style scoped>\n.dsd-description{\n max-width: 100%;\n overflow: hidden\n}\n\n</style>\n"],"names":["_sfc_main","AppMarkdownContent","DatasetDetailsBanners","filtersMixin","mapGetters","getTranslationFor","mapActions","truncate","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_hoisted_1","$options","_hoisted_2","_ctx","_createBlock","_component_app_markdown_content","$data","_hoisted_3","_createElementVNode","_toDisplayString","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsDescription.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsDescription.vue"],"sourcesContent":["<template>\n <div ref=\"datasetDescription\" class=\"mt-4 mb-4 dsd-description\" data-cy=\"dataset-description\">\n <div v-if=\"getDatasetDescription !== 'No description available'\" class=\"col-12 col-lg-11 offset-lg-1 dsd-description-content\" property=\"dc:description\">\n <app-markdown-content\n v-if=\"$env.content.datasetDetails.description.enableMarkdownInterpretation\"\n :text=\"truncate(getDatasetDescription, datasetDescriptionLength)\"\n />\n <p v-else style=\"word-wrap:break-word;\">\n <span class=\"mr-2\">{{ truncate(getDatasetDescription, datasetDescriptionLength) | stripHtml }}</span>\n<!-- <small v-if=\"!isDatasetDescriptionExpanded && datasetDescriptionLength < getDatasetDescriptionLength\" class=\"cursor-pointer text-nowrap\" @click=\"toggleDatasetDescription\">-->\n<!-- {{ $t('message.metadata.showMore') }}-->\n<!-- </small>-->\n<!-- <small v-else-if=\"isDatasetDescriptionExpanded\" class=\"cursor-pointer text-nowrap\" @click=\"toggleDatasetDescription\">-->\n<!-- {{ $t('message.metadata.showLess') }}-->\n<!-- </small>-->\n </p>\n <pv-show-more\n v-if=\"isDatasetDescriptionExpanded || (datasetDescriptionLength < getDatasetDescriptionLength)\"\n :label=\"isDatasetDescriptionExpanded? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"isDatasetDescriptionExpanded\"\n :action=\"toggleDatasetDescription\"\n class=\"row text-primary\"\n />\n </div>\n <div v-else class=\"col-10 offset-1 text-muted font-italic dsd-description-content\">\n <p style=\"word-wrap:break-word;\">\n {{ $t('message.catalogsAndDatasets.noDescriptionAvailable') }}\n </p>\n </div>\n <dataset-details-banners\n :dateIncorrect=\"dateIncorrect\"\n :machineTranslated=\"machineTranslated\"\n :translationNotAvailable=\"translationNotAvailable\"\n />\n </div>\n</template>\n\n<script>\nimport AppMarkdownContent from \"../datasetDetails/AppMarkdownContent\";\nimport filtersMixin from \"../mixins/filters\";\nimport {getTranslationFor, truncate} from \"../utils/helpers\";\nimport { mapGetters, mapActions } from \"vuex\";\nimport DatasetDetailsBanners from \"../datasetDetails/DatasetDetailsBanners.vue\";\nexport default {\n name: \"DatasetDetailsDescription\",\n components: {AppMarkdownContent, DatasetDetailsBanners},\n mixins: [filtersMixin],\n props: {\n dateIncorrect: Boolean,\n machineTranslated: Boolean,\n translationNotAvailable: Boolean\n },\n data() {\n return {\n isDatasetDescriptionExpanded: false,\n datasetDescriptionLength: 1500,\n INITIAL_DATASET_DESCRIPTION_LENGTH: 1500,\n MAX_DATASET_DESCRIPTION_LENGTH: 100000\n }\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDescription',\n 'getLanguages'\n ]),\n getDatasetDescription() {\n return getTranslationFor(this.getDescription, this.$route.query.locale, this.getLanguages);\n },\n getDatasetDescriptionLength() {\n return this.getDatasetDescription ? this.getDatasetDescription.length : 0;\n }\n },\n methods: {\n ...mapActions('datasetDetails', [\n 'setDatasetDescriptionHeight'\n ]),\n truncate,\n toggleDatasetDescription() {\n this.isDatasetDescriptionExpanded = !this.isDatasetDescriptionExpanded;\n if (this.datasetDescriptionLength === this.INITIAL_DATASET_DESCRIPTION_LENGTH) this.datasetDescriptionLength = this.MAX_DATASET_DESCRIPTION_LENGTH;\n else this.datasetDescriptionLength = this.INITIAL_DATASET_DESCRIPTION_LENGTH;\n },\n calculateDatasetDescriptionHeight() {\n return this.$refs.datasetDescription.querySelector('.dsd-description-content').clientHeight;\n }\n },\n mounted() {\n this.setDatasetDescriptionHeight(this.calculateDatasetDescriptionHeight());\n }\n}\n</script>\n\n<style scoped>\n.dsd-description{\n max-width: 100%;\n overflow: hidden\n}\n\n</style>\n"],"names":["_sfc_main","AppMarkdownContent","DatasetDetailsBanners","filtersMixin","mapGetters","getTranslationFor","mapActions","truncate","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_hoisted_1","$options","_hoisted_2","_ctx","_createBlock","_component_app_markdown_content","$data","_hoisted_3","_createElementVNode","_toDisplayString","_component_pv_show_more","_hoisted_5","_createVNode","_component_dataset_details_banners","$props"],"mappings":";;;;;;;;AA2CA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,EAAC,oBAAAC,GAAoB,uBAAAC,EAAqB;AAAA,EACtD,QAAQ,CAACC,CAAY;AAAA,EACrB,OAAO;AAAA,IACL,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,EAC1B;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,8BAA8B;AAAA,MAC9B,0BAA0B;AAAA,MAC1B,oCAAoC;AAAA,MACpC,gCAAgC;AAAA,IAClC;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,wBAAwB;AACtB,aAAOC,EAAkB,KAAK,gBAAgB,KAAK,OAAO,MAAM,QAAQ,KAAK,YAAY;AAAA,IAC1F;AAAA,IACD,8BAA8B;AAC5B,aAAO,KAAK,wBAAwB,KAAK,sBAAsB,SAAS;AAAA,IAC1E;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACN,GAAGC,EAAW,kBAAkB;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,IACD,UAAAC;AAAA,IACA,2BAA2B;AACzB,WAAK,+BAA+B,CAAC,KAAK,8BACtC,KAAK,6BAA6B,KAAK,qCAAoC,KAAK,2BAA2B,KAAK,iCAC/G,KAAK,2BAA2B,KAAK;AAAA,IAC3C;AAAA,IACD,oCAAoC;AAClC,aAAO,KAAK,MAAM,mBAAmB,cAAc,0BAA0B,EAAE;AAAA,IACjF;AAAA,EACD;AAAA,EACD,UAAU;AACR,SAAK,4BAA4B,KAAK,kCAAmC,CAAA;AAAA,EAC3E;AACF;EAxFO,KAAI;AAAA,EAAqB,OAAM;AAAA,EAA4B,WAAQ;;;EACL,OAAM;AAAA,EAAuD,UAAS;;;EAK3H,OAAA,EAA6B,aAAA,aAAA;GAC/BC,IAAA,EAAA,OAAM,OAAM;;EAgBV,OAAM;GACbC,IAAA,EAAA,OAAA,EAA6B,aAAA,aAAA,EAAA;;;AAxBpC,SAAAC,EAAA,GAAAC,EAiCM,OAjCNC,GAiCM;AAAA,IAhCOC,EAAqB,0BAAA,8BAAhCH,KAAAC,EAqBM,OArBNG,GAqBM;AAAA,MAnBIC,EAAA,KAAK,QAAQ,eAAe,YAAY,qCADhDC,EAGEC,GAAA;AAAA;QADC,MAAMJ,EAAA,SAASA,EAAA,uBAAuBK,EAAwB,wBAAA;AAAA,gCAEjER,KAAAC,EAQI,KARJQ,GAQI;AAAA,QAPFC,EAAqG,QAArGZ,GAAsBa,EAAAR,EAAA,SAASA,EAAqB,uBAAEK,EAAwB,wBAAA,IAAIH,EAAS,SAAA,GAAA,CAAA;AAAA;;MASrFG,EAA4B,gCAAKA,EAAwB,2BAAGL,EAA2B,oCAD/FG,EAMEM,GAAA;AAAA;QAJC,OAAOJ,EAAA,+BAA8BH,EAAA,kCAAkCA,EAAE,GAAA,2BAAA;AAAA,QACzE,SAASG,EAA4B;AAAA,QACrC,QAAQL,EAAwB;AAAA,QACjC,OAAM;AAAA;WAGVH,KAAAC,EAIM,OAJNY,GAIM;AAAA,MAHJH,EAEI,KAFJX,GAEIY,EADCN,EAAE,GAAA,oDAAA,CAAA,GAAA,CAAA;AAAA;;IAGTS,EAIEC,GAAA;AAAA,MAHC,eAAeC,EAAa;AAAA,MAC5B,mBAAmBA,EAAiB;AAAA,MACpC,yBAAyBA,EAAuB;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsFeedbackButton.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsFeedbackButton.vue"],"sourcesContent":["<template>\n <!-- FEEDBACK-BUTTON -->\n <app-link\n v-if=\"getFeedbackQuery(getID, getTitle)\"\n :path=\"`/${this.$route.query.locale}/feedback/form`\"\n :query=\"getFeedbackQuery(getID, getTitle)\"\n @click=\"$emit('track-link', `/${this.$route.query.locale}/feedback/form${getFeedbackQuery(getID, getTitle)}`, 'link')\"\n target=\"_blank\"\n class=\"nav-item nav-link underline text-nowrap dsd-link-feedback\">\n <span :title=\"$t('message.tooltip.datasetDetails.feedback')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n {{ $t('message.datasetDetails.feedback') }}\n </span>\n </app-link>\n</template>\n\n<script>\n // Import Actions and Getters from Store Module\n import { mapGetters } from 'vuex';\n // Import custom helpers\n import { has } from 'lodash-es';\n import { getTranslationFor } from \"../utils/helpers\";\n // Import components used in template\n import AppLink from \"../widgets/AppLink.vue\";\n\n export default {\n name: 'DEU-datasetDetailsFeedbackButton',\n components: {\n appLink: AppLink,\n },\n data() {\n return {\n rootURL: 'https://www.data.europa.eu/',\n };\n },\n computed: {\n // import store-getters\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getLanguages',\n 'getTitle',\n ]),\n },\n methods: {\n // Lodash has function\n has,\n getTranslationFor,\n // Creates the query string for the feedback URL of the dataset\n getFeedbackQuery(id, titles) {\n if (!id || !titles || (typeof titles !== 'object')) return false;\n // Get translated title\n let title = this.getTranslationFor(titles, this.$route.query.locale, this.getLanguages);\n if (!title) return false;\n title = title.replace(/ /g, '+');\n // Create query string\n const type = 'question-specific-dataset';\n const description = `${this.$t('message.datasetDetails.subnav.dataset')}+URL:+${this.rootURL}data/%23/datasets/${id}`;\n const summary = `${this.$t('message.datasetDetails.feedback')}+${this.$t('message.datasetDetails.about')}+${this.$t('message.datasetDetails.subnav.dataset')}:+${title}`;\n // Return query string\n return `?type=${type}&description=${description}&summary=${summary}`;\n },\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .underline {\n text-decoration: underline;\n }\n</style>\n"],"names":["_sfc_main","AppLink","mapGetters","has","getTranslationFor","id","titles","title","type","description","summary","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsFeedbackButton.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsFeedbackButton.vue"],"sourcesContent":["<template>\n <!-- FEEDBACK-BUTTON -->\n <app-link\n v-if=\"getFeedbackQuery(getID, getTitle)\"\n :path=\"`/${this.$route.query.locale}/feedback/form`\"\n :query=\"getFeedbackQuery(getID, getTitle)\"\n @click=\"$emit('track-link', `/${this.$route.query.locale}/feedback/form${getFeedbackQuery(getID, getTitle)}`, 'link')\"\n target=\"_blank\"\n class=\"nav-item nav-link underline text-nowrap dsd-link-feedback\">\n <span :title=\"$t('message.tooltip.datasetDetails.feedback')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">\n {{ $t('message.datasetDetails.feedback') }}\n </span>\n </app-link>\n</template>\n\n<script>\n // Import Actions and Getters from Store Module\n import { mapGetters } from 'vuex';\n // Import custom helpers\n import { has } from 'lodash-es';\n import { getTranslationFor } from \"../utils/helpers\";\n // Import components used in template\n import AppLink from \"../widgets/AppLink.vue\";\n\n export default {\n name: 'DEU-datasetDetailsFeedbackButton',\n components: {\n appLink: AppLink,\n },\n data() {\n return {\n rootURL: 'https://www.data.europa.eu/',\n };\n },\n computed: {\n // import store-getters\n ...mapGetters('datasetDetails', [\n 'getID',\n 'getLanguages',\n 'getTitle',\n ]),\n },\n methods: {\n // Lodash has function\n has,\n getTranslationFor,\n // Creates the query string for the feedback URL of the dataset\n getFeedbackQuery(id, titles) {\n if (!id || !titles || (typeof titles !== 'object')) return false;\n // Get translated title\n let title = this.getTranslationFor(titles, this.$route.query.locale, this.getLanguages);\n if (!title) return false;\n title = title.replace(/ /g, '+');\n // Create query string\n const type = 'question-specific-dataset';\n const description = `${this.$t('message.datasetDetails.subnav.dataset')}+URL:+${this.rootURL}data/%23/datasets/${id}`;\n const summary = `${this.$t('message.datasetDetails.feedback')}+${this.$t('message.datasetDetails.about')}+${this.$t('message.datasetDetails.subnav.dataset')}:+${title}`;\n // Return query string\n return `?type=${type}&description=${description}&summary=${summary}`;\n },\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .underline {\n text-decoration: underline;\n }\n</style>\n"],"names":["_sfc_main","AppLink","mapGetters","has","getTranslationFor","id","titles","title","type","description","summary","$options","_ctx","_createBlock","_component_app_link","_cache","$event","_createElementVNode","_hoisted_1"],"mappings":";;;;;;;AA0BE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAASC;AAAA,EACV;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,SAAS;AAAA;EAEZ;AAAA,EACD,UAAU;AAAA;AAAA,IAER,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,KAAAC;AAAA,IACA,mBAAAC;AAAA;AAAA,IAEA,iBAAiBC,GAAIC,GAAQ;AAC3B,UAAI,CAACD,KAAM,CAACC,KAAW,OAAOA,KAAW;AAAW,eAAO;AAE3D,UAAIC,IAAQ,KAAK,kBAAkBD,GAAQ,KAAK,OAAO,MAAM,QAAQ,KAAK,YAAY;AACtF,UAAI,CAACC;AAAO,eAAO;AACnB,MAAAA,IAAQA,EAAM,QAAQ,MAAM,GAAG;AAE/B,YAAMC,IAAO,6BACPC,IAAc,GAAG,KAAK,GAAG,uCAAuC,CAAC,SAAS,KAAK,OAAO,qBAAqBJ,CAAE,IAC7GK,IAAU,GAAG,KAAK,GAAG,iCAAiC,CAAC,IAAI,KAAK,GAAG,8BAA8B,CAAC,IAAI,KAAK,GAAG,uCAAuC,CAAC,KAAKH,CAAK;AAEtK,aAAO,SAASC,CAAI,gBAAgBC,CAAW,YAAYC,CAAO;AAAA,IACnE;AAAA,EACF;;;;SA3DKC,EAAgB,iBAACC,EAAK,OAAEA,EAAQ,QAAA,UADxCC,EAYWC,GAAA;AAAA;IAVR,MAAe,IAAA,KAAA,OAAO,MAAM,MAAM;AAAA,IAClC,OAAOH,EAAA,iBAAiBC,EAAA,OAAOA,EAAQ,QAAA;AAAA,IACvC,SAAOG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAJ,EAAA,MAA6B,cAAA,IAAA,KAAA,OAAO,MAAM,MAAM,iBAAiBD,EAAA,iBAAiBC,EAAA,OAAOA,EAAQ,QAAA,CAAA,IAAA,MAAA;AAAA,IACzG,QAAO;AAAA,IACP,OAAM;AAAA;eACJ,MAIO;AAAA,MAJPK,EAIO,QAAA;AAAA,QAJA,OAAOL,EAAE,GAAA,yCAAA;AAAA,QACF,eAAY;AAAA,QACZ,kBAAe;AAAA,WACJA,EAAE,GAAA,iCAAA,CAAA,GAAA,GAAAM,CAAA;AAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasetDetailsLinkedMetricsButton.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsLinkedMetricsButton.vue"],"sourcesContent":["<template>\n <app-link class=\"text-decoration-none\" :to=\"createLinkedMetricsURL(format, datasetId)\" target=\"_blank\" >\n <div>{{ text }}</div>\n </app-link>\n</template>\n\n<script>\n // Import components used in template\n import AppLink from \"../widgets/AppLink.vue\";\n\n export default {\n name: 'DEU-datasetDetailsLinkedMetricsButton',\n components: {\n appLink: AppLink,\n },\n data() {\n return {};\n },\n props: {\n format: {\n type: String,\n default: '',\n required: true,\n },\n text: {\n type: String,\n default: '',\n required: true,\n },\n datasetId: {\n type: String,\n required: true,\n },\n },\n computed: {},\n methods: {\n createLinkedMetricsURL(format, datasetId) {\n //\n return `${this.$env.api.hubUrl}datasets/${datasetId}.${format}/metrics`;\n },\n },\n };\n</script>\n"],"names":["_sfc_main","AppLink","format","datasetId","_createBlock","_component_app_link","$options","$props","
|
|
1
|
+
{"version":3,"file":"DatasetDetailsLinkedMetricsButton.vue.mjs","sources":["../../lib/datasetDetails/DatasetDetailsLinkedMetricsButton.vue"],"sourcesContent":["<template>\n <app-link class=\"text-decoration-none\" :to=\"createLinkedMetricsURL(format, datasetId)\" target=\"_blank\" >\n <div>{{ text }}</div>\n </app-link>\n</template>\n\n<script>\n // Import components used in template\n import AppLink from \"../widgets/AppLink.vue\";\n\n export default {\n name: 'DEU-datasetDetailsLinkedMetricsButton',\n components: {\n appLink: AppLink,\n },\n data() {\n return {};\n },\n props: {\n format: {\n type: String,\n default: '',\n required: true,\n },\n text: {\n type: String,\n default: '',\n required: true,\n },\n datasetId: {\n type: String,\n required: true,\n },\n },\n computed: {},\n methods: {\n createLinkedMetricsURL(format, datasetId) {\n //\n return `${this.$env.api.hubUrl}datasets/${datasetId}.${format}/metrics`;\n },\n },\n };\n</script>\n"],"names":["_sfc_main","AppLink","format","datasetId","_createBlock","_component_app_link","$options","$props","_createElementVNode"],"mappings":";;;AAUE,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAASC;AAAA,EACV;AAAA,EACD,OAAO;AACL,WAAO;EACR;AAAA,EACD,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAAA,EACD,UAAU,CAAE;AAAA,EACZ,SAAS;AAAA,IACP,uBAAuBC,GAAQC,GAAW;AAExC,aAAO,GAAG,KAAK,KAAK,IAAI,MAAM,YAAYA,CAAS,IAAID,CAAM;AAAA,IAC9D;AAAA,EACF;;;;cAvCHE,EAEWC,GAAA;AAAA,IAFD,OAAM;AAAA,IAAwB,IAAIC,EAAA,uBAAuBC,EAAA,QAAQA,EAAS,SAAA;AAAA,IAAG,QAAO;AAAA;eAC5F,MAAqB;AAAA,MAArBC,EAAqB,eAAbD,EAAI,IAAA,GAAA,CAAA;AAAA;;;;;"}
|