@piveau/piveau-hub-ui-modules 4.6.49 → 4.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PvBadge/PvBadge.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +2 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxDescription.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFooter.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFormats.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPage.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs +6 -5
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs.map +1 -1
- package/dist/catalogues/Catalogues.vue.mjs.map +1 -1
- package/dist/catalogues/cataloguesFacets/CataloguesFacets.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationModal.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationTable.vue.mjs.map +1 -1
- package/dist/composables/useRuntimeEnv.d.ts +2 -2
- package/dist/configurations/config-schema/apiSchema.mjs +1 -1
- package/dist/configurations/config-schema/authenticationSchema.mjs +1 -1
- package/dist/configurations/config-schema/configSchema.d.ts +5 -5
- package/dist/configurations/config-schema/configSchema.mjs +18 -18
- package/dist/configurations/config-schema/contentSchema.mjs +1 -1
- package/dist/configurations/config-schema/languagesSchema.d.ts +2 -2
- package/dist/configurations/config-schema/languagesSchema.mjs +1 -1
- package/dist/configurations/config-schema/metadataSchema.mjs +1 -1
- package/dist/configurations/config-schema/routingSchema.mjs +1 -1
- package/dist/configurations/config-schema/themesSchema.mjs +1 -1
- package/dist/configurations/config-schema/trackerSchema.mjs +1 -1
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.d.ts +10 -10
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +15 -17
- package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/DataFetchingComponent.vue.d.ts +2 -2
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +2 -1
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InfoSlot.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InputPageStep.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/LanguageSelector.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.d.ts +8 -8
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +2 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleAccessURLInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/WidgetInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +2 -2
- package/dist/data-provider-interface/views/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +5 -5
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs +19 -14
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +12 -14
- package/dist/data-provider-interface/views/InputPage.vue.mjs +4 -2
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/LinkedDataViewer.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/MultilingualProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/StringProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URLProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +3 -5
- package/dist/data-provider-interface/views/OverviewPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/PropertyChooser.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
- package/dist/datasetDetails/AppMarkdownContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsActivityStream.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +3 -2
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +61 -50
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsFeedbackButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsLinkedMetricsButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsQuality.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsShareButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSkeleton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distribution.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionAdded.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionDownloadAsModal.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/DistributionFormat.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +8 -8
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs +2 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +7 -5
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs +15 -12
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownloadAs.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/LinkedDataButtonsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +22 -21
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.d.ts +6 -6
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.d.ts +16 -16
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsDataServices.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +2 -2
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsMap.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsRelations.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsVisualisations.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +2 -2
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.d.ts +7 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +200 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
- package/dist/datasets/DatasetDate.vue.mjs.map +1 -1
- package/dist/datasets/DatasetList.vue.mjs.map +1 -1
- package/dist/datasets/Datasets.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFilters.vue.d.ts +1 -1
- package/dist/datasets/DatasetsFilters.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFiltersTabs.vue.d.ts +2 -2
- package/dist/datasets/DatasetsFiltersTabs.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsTopControls.vue.d.ts +5 -5
- package/dist/datasets/DatasetsTopControls.vue.mjs +8 -6
- package/dist/datasets/DatasetsTopControls.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacetsItem.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsMapFacet.vue.mjs.map +1 -1
- package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
- package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
- package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
- package/dist/external/zod/dist/esm/v3/ZodError +84 -0
- package/dist/external/zod/dist/esm/v3/ZodError.map +1 -0
- package/dist/external/zod/dist/esm/v3/errors +10 -0
- package/dist/external/zod/dist/esm/v3/errors.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil +8 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil +98 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/util +95 -0
- package/dist/external/zod/dist/esm/v3/helpers/util.map +1 -0
- package/dist/external/zod/dist/esm/v3/locales/en +62 -0
- package/dist/external/zod/dist/esm/v3/locales/en.map +1 -0
- package/dist/external/zod/dist/esm/v3/types +2440 -0
- package/dist/external/zod/dist/esm/v3/types.map +1 -0
- package/dist/facets/CatalogDetailsFacet.vue.mjs.map +1 -1
- package/dist/facets/ExpandableSelectFacet.vue.mjs.map +1 -1
- package/dist/facets/Facet.vue.mjs.map +1 -1
- package/dist/facets/FacetTitle.vue.mjs.map +1 -1
- package/dist/facets/RadioFacet.vue.mjs.map +1 -1
- package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -2
- package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
- package/dist/form/FormKitGroup.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue2.mjs +2 -1
- package/dist/form/Repeatable.vue2.mjs.map +1 -1
- package/dist/map/MapBasic.vue.mjs.map +1 -1
- package/dist/map/MapBoundsReceiver.vue.mjs.map +1 -1
- package/dist/map/MapBoundsSender.vue.mjs.map +1 -1
- package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
- package/dist/modal/AppSnackbar.vue.mjs.map +1 -1
- package/dist/modal/AppToast.vue.mjs.map +1 -1
- package/dist/navigation/SubNavigation.vue.mjs.map +1 -1
- package/dist/pages/NotFound.vue.mjs.map +1 -1
- package/dist/pages/SparqlSearch.vue.mjs.map +1 -1
- package/dist/pages/user/UserImprint.vue.mjs.map +1 -1
- package/dist/pages/user/UserPrivacyPolicy.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/search/Search.vue.mjs.map +1 -1
- package/dist/services/datasetService.d.ts +1 -1
- package/dist/widgets/AppLink.vue.mjs.map +1 -1
- package/dist/widgets/Dropdown.vue.mjs.map +1 -1
- package/dist/widgets/Pagination.vue.d.ts +1 -1
- package/dist/widgets/Pagination.vue.mjs.map +1 -1
- package/dist/widgets/PropertyValue.vue.mjs.map +1 -1
- package/dist/widgets/PvBanner.vue.mjs.map +1 -1
- package/dist/widgets/PvButton.vue.mjs.map +1 -1
- package/dist/widgets/PvShowMore.vue.mjs.map +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.d.ts +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.mjs.map +1 -1
- package/dist/widgets/ResourceDetailsLinkedDataButton.vue.mjs.map +1 -1
- package/dist/widgets/Tooltip.vue.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/external/zod/lib/index +0 -2849
- package/dist/external/zod/lib/index.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"URLProp.vue.mjs","sources":["../../../../../lib/data-provider-interface/views/OverviewPage/Properties/URLProp.vue"],"sourcesContent":["<template>\n \n <td class=\"font-weight-bold\">{{ $t(`${value.label}`) }}:</td>\n <!-- SINGULAR URL -->\n <td v-if=\"value.type === 'singularURL'\">\n \n <app-link :to=\"data[property]\">\n {{ data[property]['@type'] }}\n </app-link>\n\n </td>\n\n <!-- MULTI URLs -->\n <td class=\"d-flex align-items-center\" v-if=\"value.type === 'multiURL' && data[property][0]['@id'] != ''\">\n\n <div v-if=\"isEditMode\">\n <input type=\"text\" v-model=\"contentOfProp\">\n </div>\n <div v-else>\n \n <div v-for=\"(el, index) in data[property]\" :key=\"index\">\n \n <!-- regular multiple URLs wit ID Notation-->\n <app-link v-if=\"showValue(el, '@id')\" :to=\"el['@id']\">\n {{ el['@id'] }}\n </app-link>\n \n <!-- IS USED BY -->\n <app-link v-if=\"showValue(el, 'dext:isUsedBy')\" :to=\"el['dext:isUsedBy']\">\n {{ el['dext:isUsedBy'] }}\n </app-link>\n <!-- regular multiple URLs as an array -->\n <app-link v-if=\"typeof el === 'string'\" :to=\"el\" >\n {{ el }} \n </app-link>\n\n </div>\n </div>\n <!-- <div class=\"infoI\" @click=\"editProp(property)\"></div> -->\n </td>\n \n \n</template>\n\n<script>\nimport { string } from \"zod\";\nimport AppLink from \"../../../../widgets/AppLink.vue\";\nimport { has, isNil, isEmpty } from 'lodash-es';\n\nexport default {\n data() {\n return {\n isEditMode: false,\n contentOfProp: ''\n }\n\n },\n props: {\n property: String,\n value: Object,\n data: Object,\n },\n components: {\n AppLink,\n },\n methods: {\n showValue(property, value) {\n return has(property, value) && !isNil(property[value]) && !isEmpty(property[value]);\n },\n async editProp(e) {\n if (this.isEditMode) {\n await this.$formkit.get(e).context.node.input([{ '@id': this.contentOfProp }])\n }\n else {\n this.contentOfProp = this.$formkit.get(e).context.value[0]['@id']\n }\n this.isEditMode = !this.isEditMode;\n\n }\n }\n}\n</script>\n"],"names":["_sfc_main","AppLink","property","value","has","isNil","isEmpty","e","_hoisted_1","
|
|
1
|
+
{"version":3,"file":"URLProp.vue.mjs","sources":["../../../../../lib/data-provider-interface/views/OverviewPage/Properties/URLProp.vue"],"sourcesContent":["<template>\n \n <td class=\"font-weight-bold\">{{ $t(`${value.label}`) }}:</td>\n <!-- SINGULAR URL -->\n <td v-if=\"value.type === 'singularURL'\">\n \n <app-link :to=\"data[property]\">\n {{ data[property]['@type'] }}\n </app-link>\n\n </td>\n\n <!-- MULTI URLs -->\n <td class=\"d-flex align-items-center\" v-if=\"value.type === 'multiURL' && data[property][0]['@id'] != ''\">\n\n <div v-if=\"isEditMode\">\n <input type=\"text\" v-model=\"contentOfProp\">\n </div>\n <div v-else>\n \n <div v-for=\"(el, index) in data[property]\" :key=\"index\">\n \n <!-- regular multiple URLs wit ID Notation-->\n <app-link v-if=\"showValue(el, '@id')\" :to=\"el['@id']\">\n {{ el['@id'] }}\n </app-link>\n \n <!-- IS USED BY -->\n <app-link v-if=\"showValue(el, 'dext:isUsedBy')\" :to=\"el['dext:isUsedBy']\">\n {{ el['dext:isUsedBy'] }}\n </app-link>\n <!-- regular multiple URLs as an array -->\n <app-link v-if=\"typeof el === 'string'\" :to=\"el\" >\n {{ el }} \n </app-link>\n\n </div>\n </div>\n <!-- <div class=\"infoI\" @click=\"editProp(property)\"></div> -->\n </td>\n \n \n</template>\n\n<script>\nimport { string } from \"zod\";\nimport AppLink from \"../../../../widgets/AppLink.vue\";\nimport { has, isNil, isEmpty } from 'lodash-es';\n\nexport default {\n data() {\n return {\n isEditMode: false,\n contentOfProp: ''\n }\n\n },\n props: {\n property: String,\n value: Object,\n data: Object,\n },\n components: {\n AppLink,\n },\n methods: {\n showValue(property, value) {\n return has(property, value) && !isNil(property[value]) && !isEmpty(property[value]);\n },\n async editProp(e) {\n if (this.isEditMode) {\n await this.$formkit.get(e).context.node.input([{ '@id': this.contentOfProp }])\n }\n else {\n this.contentOfProp = this.$formkit.get(e).context.value[0]['@id']\n }\n this.isEditMode = !this.isEditMode;\n\n }\n }\n}\n</script>\n"],"names":["_sfc_main","AppLink","property","value","has","isNil","isEmpty","e","_hoisted_1","_createElementVNode","_toDisplayString","_ctx","$props","_createElementBlock","_hoisted_2","_createVNode","_component_app_link","_createTextVNode","_openBlock","_hoisted_3","$data","_hoisted_4","$event","_hoisted_5","_Fragment","el","index","$options","_createBlock"],"mappings":";;;;AAiDA,MAAKA,IAAU;AAAA,EACX,OAAO;AACH,WAAO;AAAA,MACH,YAAY;AAAA,MACZ,eAAe;AAAA,IACnB;AAAA,EAEH;AAAA,EACD,OAAO;AAAA,IACH,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACT;AAAA,EACD,YAAY;AAAA,IACR,SAAAC;AAAA,EACH;AAAA,EACD,SAAS;AAAA,IACL,UAAUC,GAAUC,GAAO;AACvB,aAAOC,EAAIF,GAAUC,CAAK,KAAK,CAACE,EAAMH,EAASC,CAAK,CAAC,KAAK,CAACG,EAAQJ,EAASC,CAAK,CAAC;AAAA,IACrF;AAAA,IACD,MAAM,SAASI,GAAG;AACd,MAAI,KAAK,aACL,MAAM,KAAK,SAAS,IAAIA,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC,EAAE,OAAO,KAAK,cAAe,CAAA,CAAC,IAG7E,KAAK,gBAAgB,KAAK,SAAS,IAAIA,CAAC,EAAE,QAAQ,MAAM,CAAC,EAAE,KAAK,GAEpE,KAAK,aAAa,CAAC,KAAK;AAAA,IAE5B;AAAA,EACJ;AACJ,GA9EYC,IAAA,EAAA,OAAM,mBAAkB;;EAWxB,OAAM;;;;;IAXVC,EAA6D,MAA7DD,GAAgCE,EAAAC,EAAA,MAAMC,EAAK,MAAC,KAAK,EAAA,CAAA,IAAM,KAAC,CAAA;AAAA;IAE9CA,EAAA,MAAM,SAAI,sBAApBC,EAMK,MAAAC,GAAA;AAAA,MAJDC,EAEWC,GAAA;AAAA,QAFA,IAAIJ,EAAI,KAACA,EAAQ,QAAA;AAAA;mBACxB,MAA6B;AAAA,UAA1BK,EAAAP,EAAAE,EAAA,KAAKA,EAAQ,QAAA,EAAA,OAAA,CAAA,GAAA,CAAA;AAAA;;;;;IAMoBA,EAAA,MAAM,SAAuB,cAAAA,EAAA,KAAKA,EAAQ,QAAA,EAAA,CAAA,EAAA,KAAA,KAAA,MAAtFM,KAAAL,EA0BK,MA1BLM,GA0BK;AAAA,MAxBUC,EAAU,mBAArBP,EAEM,OAAAQ,GAAA;AAAA,UADFZ,EAA2C,SAAA;AAAA,UAApC,MAAK;AAAA,wDAAgBW,EAAa,gBAAAE;AAAA;cAAbF,EAAa,aAAA;AAAA;kBAE7CP,EAmBM,OAAAU,GAAA;AAAA,SAjBFL,EAAA,EAAA,GAAAL,EAgBMW,WAhBqBZ,EAAI,KAACA,UAAQ,GAA3B,CAAAa,GAAIC,YAAjBb,EAgBM,OAAA,EAhBsC,KAAKa,KAAK;AAAA,UAGlCC,EAAA,UAAUF,GAAE,KAAA,UAA5BG,EAEWZ,GAAA;AAAA;YAF4B,IAAIS,EAAE,KAAA;AAAA;uBACzC,MAAe;AAAA,kBAAZA,EAAE,KAAA,CAAA,GAAA,CAAA;AAAA;;;;UAIOE,EAAA,UAAUF,GAAE,eAAA,UAA5BG,EAEWZ,GAAA;AAAA;YAFsC,IAAIS,EAAE,eAAA;AAAA;uBACnD,MAAyB;AAAA,kBAAtBA,EAAE,eAAA,CAAA,GAAA,CAAA;AAAA;;;;iBAGcA,KAAE,iBAAzBG,EAEWZ,GAAA;AAAA;YAF8B,IAAIS;AAAA;uBACzC,MAAQ;AAAA,kBAALA,CAAE,GAAA,CAAA;AAAA;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyEntry.vue.mjs","sources":["../../../../lib/data-provider-interface/views/OverviewPage/PropertyEntry.vue"],"sourcesContent":["<template>\n <div>\n\n <tr class=\"align-items-center\" v-if=\"isSet\">\n <!-- <td class=\" font-weight-bold\" v-if=\"value.type !== 'special'\">{{ $t(`${value.label}`) }}:</td> -->\n <URIProp v-if=\"value.type === 'singularURI' || value.type === 'multiURI' || value.type === 'singularURI'\"\n :property=\"property\" :value=\"value\" :data=\"data\" :inHeader=\"inHeader\">\n </URIProp>\n <URLProp v-if=\"value.type === 'singularURL' || value.type === 'multiURL'\" :property=\"property\"\n :value=\"value\" :data=\"data\"></URLProp>\n <StringProp v-if=\"value.type === 'singularString' || value.type === 'multiString'\" :property=\"property\"\n :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></StringProp>\n <MultilingualProp v-if=\"value.type === 'multiLingual' \" :property=\"property\"\n :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></MultilingualProp>\n\n <!-- SPECIAL -->\n <div class=\"w-100\" v-if=\"value.type === 'special'\">\n <div v-if=\"property === 'dct:publisher' || property === 'dct:license'\">\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></SpecialProp>\n </div>\n <div\n v-else-if=\"property != 'dct:creator' && property != 'dcat:temporalResolution' && property != 'spdx:checksum'\">\n <div v-for=\"(elem, index) in data[property]\" :key=\"index\">\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"elem\" :dpiLocale=\"dpiLocale\">\n </SpecialProp>\n </div>\n </div>\n <div v-else>\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"data[property]\" :dpiLocale=\"dpiLocale\">\n </SpecialProp>\n </div>\n\n </div>\n\n </tr>\n </div>\n</template>\n\n<script>\nimport URIProp from './Properties/URIProp.vue';\nimport URLProp from './Properties/URLProp.vue';\nimport StringProp from './Properties/StringProp.vue';\nimport SpecialProp from './Properties/SpecialProp.vue';\nimport MultilingualProp from './Properties/MultilingualProp.vue';\nimport generalHelper from '../../utils/general-helper';\n\nimport { has, isNil, isEmpty } from 'lodash';\n\nexport default {\n components: {\n URIProp,\n URLProp,\n StringProp,\n SpecialProp,\n MultilingualProp\n },\n props: {\n profile: String,\n data: Object,\n property: String,\n value: Object,\n dpiLocale: String,\n distId: Number,\n type: String,\n inHeader: String\n },\n computed: {\n isSet() {\n return generalHelper.propertyHasValue(this.data[this.property]);\n }\n }\n}\n</script>\n"],"names":["_sfc_main","URIProp","URLProp","StringProp","SpecialProp","MultilingualProp","generalHelper","_createElementBlock","$options","_openBlock","_hoisted_1","$props","_createBlock","_component_URIProp","
|
|
1
|
+
{"version":3,"file":"PropertyEntry.vue.mjs","sources":["../../../../lib/data-provider-interface/views/OverviewPage/PropertyEntry.vue"],"sourcesContent":["<template>\n <div>\n\n <tr class=\"align-items-center\" v-if=\"isSet\">\n <!-- <td class=\" font-weight-bold\" v-if=\"value.type !== 'special'\">{{ $t(`${value.label}`) }}:</td> -->\n <URIProp v-if=\"value.type === 'singularURI' || value.type === 'multiURI' || value.type === 'singularURI'\"\n :property=\"property\" :value=\"value\" :data=\"data\" :inHeader=\"inHeader\">\n </URIProp>\n <URLProp v-if=\"value.type === 'singularURL' || value.type === 'multiURL'\" :property=\"property\"\n :value=\"value\" :data=\"data\"></URLProp>\n <StringProp v-if=\"value.type === 'singularString' || value.type === 'multiString'\" :property=\"property\"\n :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></StringProp>\n <MultilingualProp v-if=\"value.type === 'multiLingual' \" :property=\"property\"\n :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></MultilingualProp>\n\n <!-- SPECIAL -->\n <div class=\"w-100\" v-if=\"value.type === 'special'\">\n <div v-if=\"property === 'dct:publisher' || property === 'dct:license'\">\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"data\" :dpiLocale=\"dpiLocale\"></SpecialProp>\n </div>\n <div\n v-else-if=\"property != 'dct:creator' && property != 'dcat:temporalResolution' && property != 'spdx:checksum'\">\n <div v-for=\"(elem, index) in data[property]\" :key=\"index\">\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"elem\" :dpiLocale=\"dpiLocale\">\n </SpecialProp>\n </div>\n </div>\n <div v-else>\n <SpecialProp :property=\"property\" :value=\"value\" :data=\"data[property]\" :dpiLocale=\"dpiLocale\">\n </SpecialProp>\n </div>\n\n </div>\n\n </tr>\n </div>\n</template>\n\n<script>\nimport URIProp from './Properties/URIProp.vue';\nimport URLProp from './Properties/URLProp.vue';\nimport StringProp from './Properties/StringProp.vue';\nimport SpecialProp from './Properties/SpecialProp.vue';\nimport MultilingualProp from './Properties/MultilingualProp.vue';\nimport generalHelper from '../../utils/general-helper';\n\nimport { has, isNil, isEmpty } from 'lodash';\n\nexport default {\n components: {\n URIProp,\n URLProp,\n StringProp,\n SpecialProp,\n MultilingualProp\n },\n props: {\n profile: String,\n data: Object,\n property: String,\n value: Object,\n dpiLocale: String,\n distId: Number,\n type: String,\n inHeader: String\n },\n computed: {\n isSet() {\n return generalHelper.propertyHasValue(this.data[this.property]);\n }\n }\n}\n</script>\n"],"names":["_sfc_main","URIProp","URLProp","StringProp","SpecialProp","MultilingualProp","generalHelper","_createElementBlock","$options","_openBlock","_hoisted_1","$props","_createBlock","_component_URIProp","_component_URLProp","_component_StringProp","_component_MultilingualProp","_hoisted_2","_hoisted_3","_createVNode","_component_SpecialProp","_hoisted_4","_Fragment","elem","index","_hoisted_5"],"mappings":";;;;;;;;;AAgDA,MAAKA,IAAU;AAAA,EACX,YAAY;AAAA,IACR,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,kBAAAC;AAAAA,EACH;AAAA,EACD,OAAO;AAAA,IACH,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,UAAU;AAAA,EACb;AAAA,EACD,UAAU;AAAA,IACN,QAAQ;AACJ,aAAOC,EAAc,iBAAiB,KAAK,KAAK,KAAK,QAAQ,CAAC;AAAA,IAClE;AAAA,EACJ;AACJ;;EApEY,OAAM;;;EAaD,OAAM;;;;cAfnBC,EAkCM,OAAA,MAAA;AAAA,IAhCmCC,EAAK,SAA1CC,KAAAF,EA+BK,MA/BLG,GA+BK;AAAA,MA7BcC,EAAK,MAAC,SAA0B,iBAAAA,EAAA,MAAM,SAAI,cAAmBA,EAAK,MAAC,SAAI,sBAAtFC,EAEUC,GAAA;AAAA;QADL,UAAUF,EAAQ;AAAA,QAAG,OAAOA,EAAK;AAAA,QAAG,MAAMA,EAAI;AAAA,QAAG,UAAUA,EAAQ;AAAA;;MAEzDA,EAAA,MAAM,SAA0B,iBAAAA,EAAA,MAAM,SAAI,mBAAzDC,EAC0CE,GAAA;AAAA;QADiC,UAAUH,EAAQ;AAAA,QACxF,OAAOA,EAAK;AAAA,QAAG,MAAMA,EAAI;AAAA;;MACZA,EAAA,MAAM,SAA6B,oBAAAA,EAAA,MAAM,SAAI,sBAA/DC,EACoEG,GAAA;AAAA;QADgB,UAAUJ,EAAQ;AAAA,QACjG,OAAOA,EAAK;AAAA,QAAG,MAAMA,EAAI;AAAA,QAAG,WAAWA,EAAS;AAAA;;MAC7BA,EAAA,MAAM,SAAI,uBAAlCC,EAC0EI,GAAA;AAAA;QADjB,UAAUL,EAAQ;AAAA,QACtE,OAAOA,EAAK;AAAA,QAAG,MAAMA,EAAI;AAAA,QAAG,WAAWA,EAAS;AAAA;;MAG5BA,EAAA,MAAM,SAAI,aAAnCF,KAAAF,EAgBM,OAhBNU,GAgBM;AAAA,QAfSN,EAAA,gCAAgCA,EAAQ,aAAA,sBAAnDJ,EAEM,OAAAW,GAAA;AAAA,UADFC,EAAmGC,GAAA;AAAA,YAArF,UAAUT,EAAQ;AAAA,YAAG,OAAOA,EAAK;AAAA,YAAG,MAAMA,EAAI;AAAA,YAAG,WAAWA,EAAS;AAAA;cAGxEA,EAAQ,YAAA,iBAAqBA,EAAQ,YAAA,6BAAiCA,EAAQ,YAAA,wBAD7FJ,EAMM,OAAAc,GAAA;AAAA,WAJFZ,EAAA,EAAA,GAAAF,EAGMe,WAHuBX,EAAI,KAACA,UAAQ,GAA7B,CAAAY,GAAMC,YAAnBjB,EAGM,OAAA,EAHwC,KAAKiB,KAAK;AAAA,YACpDL,EACcC,GAAA;AAAA,cADA,UAAUT,EAAQ;AAAA,cAAG,OAAOA,EAAK;AAAA,cAAG,MAAMY;AAAA,cAAO,WAAWZ,EAAS;AAAA;;oBAI3FJ,EAGM,OAAAkB,GAAA;AAAA,UAFFN,EACcC,GAAA;AAAA,YADA,UAAUT,EAAQ;AAAA,YAAG,OAAOA,EAAK;AAAA,YAAG,MAAMA,EAAI,KAACA,EAAQ,QAAA;AAAA,YAAI,WAAWA,EAAS;AAAA;;;;;;;"}
|
|
@@ -26,7 +26,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
26
26
|
corsproxyApiUrl: string;
|
|
27
27
|
};
|
|
28
28
|
authentication: {
|
|
29
|
-
useService: boolean;
|
|
30
29
|
login: {
|
|
31
30
|
useLogin: boolean;
|
|
32
31
|
loginTitle: string;
|
|
@@ -36,6 +35,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
36
35
|
logoutURL: string;
|
|
37
36
|
logoutRedirectUri: string;
|
|
38
37
|
};
|
|
38
|
+
useService: boolean;
|
|
39
39
|
keycloak: {
|
|
40
40
|
realm: string;
|
|
41
41
|
clientId: string;
|
|
@@ -316,9 +316,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
316
316
|
};
|
|
317
317
|
};
|
|
318
318
|
languages: {
|
|
319
|
+
useLanguageSelector: boolean;
|
|
319
320
|
locale: string;
|
|
320
321
|
fallbackLocale: string;
|
|
321
|
-
useLanguageSelector: boolean;
|
|
322
322
|
};
|
|
323
323
|
themes: {
|
|
324
324
|
header: string;
|
|
@@ -329,9 +329,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
329
329
|
trackerUrl: string;
|
|
330
330
|
};
|
|
331
331
|
};
|
|
332
|
-
dpiLocale:
|
|
333
|
-
[x: string]: string[];
|
|
334
|
-
} | import('vue-router').LocationQueryValue[];
|
|
332
|
+
dpiLocale: any;
|
|
335
333
|
}, {
|
|
336
334
|
showDatasetsOverview(): boolean;
|
|
337
335
|
showCatalogsOverview(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverviewPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/OverviewPage.vue"],"sourcesContent":["<template>\n <div ref=\"overview-page\" class=\"col-12\">\n <!-- LANGUAGE SELECTOR -->\n <div class=\"mt-5 mb-0\">\n <div class=\"row\">\n <div class=\"col-10 \">\n {{ $t('message.dataupload.info.selectDisplayLanguage') }}:\n <LanguageSelector class=\"ml-1\" v-model=\"dpiLocale\"></LanguageSelector>\n </div>\n </div>\n </div>\n <div class=\"mb-3\" v-if=\"showDatasetsOverview && overviewPageIsVisible\">\n <DatasetOverview :dpiLocale=\"dpiLocale\" :key=\"dpiLocale\" />\n </div>\n <div class=\"mb-3\" v-if=\"showCatalogsOverview && overviewPageIsVisible\">\n <CatalogueOverview :dpiLocale=\"dpiLocale\" :key=\"dpiLocale\" />\n </div>\n </div>\n<!-- Legal notice *** Checks for ANNIF to determine that this UI is DEU -->\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration\" class=\"legalnotice py-5\" style=\"width: 90%; margin: 0 auto;\">\n <div class=\"d-flex align-items-start\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" fill=\"currentColor\"\n class=\"bi bi-info-circle mx-3 mb-3 mt-1 infoboxI\" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" />\n <path\n d=\"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\" />\n </svg>\n <div class=\"w-80\">\n <p>For <strong>European</strong> <strong>Commission's datasets</strong>, bear in mind that <a\n class=\"external-link\" href=\"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011D0833\"\n target=\"_blank\" rel=\"nofollow noopener\"><ins>Decision 2011/833/EU</ins></a> allows for their commercial\n reuse\n without prior authorisation, except for the material subject to the third party intellectual property rights.\n This\n Decision has been implemented under the <a class=\"external-link\"\n href=\"https://ec.europa.eu/transparency/documents-register/detail?ref=C(2019)1655&lang=en\"\n target=\"_blank\" rel=\"nofollow noopener\"><ins>Decision C(2019) 1655 final</ins></a> by which Creative Commons\n Attribution 4.0\n International Public License (CC BY 4.0) is adopted as an open licence for the Commission's reuse policy.\n Additionally, raw data, metadata or other documents of comparable nature may alternatively be distributed\n under\n the provisions of the Creative Commons Universal Public Domain Dedication deed (CC0 1.0).</p>\n <p>The <strong>Council</strong> and the <strong>European Court of Auditors</strong> have\n approved similar decisions on reuse. It is advisable that you check <strong>the reuse policy of your\n organisation</strong> before publishing or submitting your dataset.</p>\n </div>\n </div>\n <!-- <p> </p>\n <hr />\n <p> </p> -->\n\n <div class=\"d-flex align-items-start mt-4\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" fill=\"currentColor\"\n class=\"bi bi-info-circle mx-3 mb-3 mt-1 infoboxI \" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" />\n <path\n d=\"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\" />\n </svg>\n <div class=\"w-80\">\n <p>As owner of your dataset, you guarantee that it does not violate the copyright, other intellectual property\n or\n privacy rights of any third party. In particular, if third party material is included in the dataset, you must\n ensure that all necessary permissions have been obtained and appropriate acknowledgment is given, if\n necessary.\n </p>\n <p>If you need further information regarding <strong>licenses or copyright</strong> issues, please contact us\n at <span class=\"nobr\"><a class=\"external-link\" href=\"mailto:op-copyright@publications.europa.eu\"\n target=\"_blank\" rel=\"nofollow noopener\">op-copyright@publications.europa.eu</a></span></p>\n </div>\n </div>\n </div>\n\n</template>\n\n<script>\n/* eslint-disable no-restricted-syntax,guard-for-in */\nimport axios from 'axios';\nimport { mapActions, mapGetters } from 'vuex';\n\nimport LanguageSelector from '../components/LanguageSelector';\nimport DatasetOverview from './OverviewPage/DatasetOverview.vue';\nimport CatalogueOverview from './OverviewPage/CatalogueOverview.vue';\n\nimport { useIntersectionObserver } from '@vueuse/core'\nimport { ref, useTemplateRef } from 'vue'\nimport { getCurrentInstance } from \"vue\";\n\nexport default {\n components: {\n LanguageSelector,\n DatasetOverview,\n CatalogueOverview,\n },\n props: {\n property: {\n type: String\n },\n context: {\n type: Object,\n },\n },\n data() {\n return {\n instance : getCurrentInstance().appContext.app.config.globalProperties.$env,\n dpiLocale: this.$route.query?.locale || this.$i18n.locale || this.$i18n.fallbackLocale || 'en',\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n showDatasetsOverview() {\n return this.property === 'datasets';\n },\n showCatalogsOverview() {\n return this.property === 'catalogues';\n }\n },\n methods: {\n ...mapActions('dpiStore', [\n 'clearAll',\n 'saveLocalstorageValues',\n ]),\n clear() {\n this.clearAll();\n },\n /*** Overview Page checker functionality ***/\n // checkDatasetMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['datasets']) {\n // this.$router.push({ \n // name: 'DataProviderInterface-Input', \n // params: { \n // property: 'datasets', \n // page: 'step1' \n // }, \n // query: { \n // error: 'mandatoryDataset', \n // locale: this.$route.query.locale \n // } \n // });\n // }\n // },\n // checkDistributionMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['distributions'].length > 0 && !JSON.parse(localStorage.getItem('dpi_mandatory'))['distributions'].every(el => el === true)) {\n // this.$router.push({\n // name: 'DataProviderInterface-Input',\n // path: '/dpi/datasets/distoverview',\n // params: {\n // property: 'datasets',\n // page: 'distoverview',\n // },\n // query: {\n // error: 'mandatoryDistribution',\n // locale: this.$route.query.locale\n // },\n // });\n // }\n // },\n // checkCatalogueMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['catalogues']) {\n // this.$router.push({ \n // name: 'DataProviderInterface-Input', \n // params: { \n // property: 'catalogues', \n // page: 'step1' \n // }, \n // query: { \n // error: 'mandatoryCatalog', \n // locale: this.$route.query.locale\n // } \n // });\n // }\n // },\n checkID(property) {\n // Check uniqueness of Dataset ID\n if (!this.getIsEditMode) {\n this.checkUniqueID(property)\n .then((isUniqueID) => {\n if (!isUniqueID) {\n // Dataset ID not unique / taken in meantime --> Redirect to step1 where the user can choose a new ID\n this.$router.push({\n name: 'DataProviderInterface-Input',\n params: {\n property: property,\n page: 'step1'\n },\n query: {\n error: 'id',\n locale: this.$route.query.locale\n }\n });\n }\n });\n }\n },\n checkUniqueID(property) {\n return new Promise((resolve) => {\n if (this.getData(property)['@id'] !== '') {\n const request = `${this.$env.api.hubUrl}${property}/${this.getData(property)['@id']}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n resolve(false);\n })\n .catch(() => {\n resolve(true);\n });\n }\n });\n },\n },\n created() {\n this.$nextTick(() => {\n if (this.property === 'datasets') {\n // this.checkID('datasets');\n // this.checkDatasetMandatory();\n // this.checkDistributionMandatory();\n }\n\n if (this.property === 'catalogues') {\n // this.checkID('catalogues')\n // this.checkCatalogueMandatory();\n }\n });\n },\n setup() {\n const target = useTemplateRef('overview-page')\n const overviewPageIsVisible = ref(false)\n\n // Workaround.\n // Ensure the individual overview pages are only mounted whenever this overview page is visible.\n // For some reason, the form values are not reactive so on initial load, the distribution values are not displayed properly.\n // This workaround delays the initial mount of the overview page until the overview page is visible.\n // We use the IntersectionObserver to check if the overview page is visible, but we could also use more proper datamodels to determine this.\n // todo: figure out why the form values are not reactive on initial load\n useIntersectionObserver(\n target,\n ([{ isIntersecting }]) => {\n overviewPageIsVisible.value = isIntersecting\n },\n {\n rootMargin: '999999px 999999px 999999px 999999px'\n }\n )\n\n return {overviewPageIsVisible}\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.heading,\n.description,\n.arrow {\n cursor: pointer;\n}\n\n.options,\n.download {\n .dropdown-menu {\n min-width: 300px;\n\n .dropdown-item {\n &:hover {\n color: initial;\n background-color: initial;\n }\n }\n }\n}\n\n.legalnotice {\n a {\n color: blue;\n }\n\n padding: 1rem;\n background-color: rgb(171, 225, 165)\n}\n\n.infoboxI {\n width: 5%;\n}\n\n.w-80 {\n width: 80%;\n}\n\n</style>\n"],"names":["_sfc_main","LanguageSelector","DatasetOverview","CatalogueOverview","getCurrentInstance","_a","mapGetters","mapActions","property","isUniqueID","resolve","request","axios","target","useTemplateRef","overviewPageIsVisible","ref","useIntersectionObserver","isIntersecting","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_createElementVNode","_hoisted_1","_createTextVNode","_toDisplayString","_ctx","_createVNode","_component_LanguageSelector","$data","_cache","$event","$options","$setup","_hoisted_5","_createBlock","_component_DatasetOverview","_createCommentVNode","_hoisted_6","_component_CatalogueOverview","_hoisted_7","_createStaticVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OverviewPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/OverviewPage.vue"],"sourcesContent":["<template>\n <div ref=\"overview-page\" class=\"col-12\">\n <!-- LANGUAGE SELECTOR -->\n <div class=\"mt-5 mb-0\">\n <div class=\"row\">\n <div class=\"col-10 \">\n {{ $t('message.dataupload.info.selectDisplayLanguage') }}:\n <LanguageSelector class=\"ml-1\" v-model=\"dpiLocale\"></LanguageSelector>\n </div>\n </div>\n </div>\n <div class=\"mb-3\" v-if=\"showDatasetsOverview && overviewPageIsVisible\">\n <DatasetOverview :dpiLocale=\"dpiLocale\" :key=\"dpiLocale\" />\n </div>\n <div class=\"mb-3\" v-if=\"showCatalogsOverview && overviewPageIsVisible\">\n <CatalogueOverview :dpiLocale=\"dpiLocale\" :key=\"dpiLocale\" />\n </div>\n </div>\n<!-- Legal notice *** Checks for ANNIF to determine that this UI is DEU -->\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration\" class=\"legalnotice py-5\" style=\"width: 90%; margin: 0 auto;\">\n <div class=\"d-flex align-items-start\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" fill=\"currentColor\"\n class=\"bi bi-info-circle mx-3 mb-3 mt-1 infoboxI\" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" />\n <path\n d=\"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\" />\n </svg>\n <div class=\"w-80\">\n <p>For <strong>European</strong> <strong>Commission's datasets</strong>, bear in mind that <a\n class=\"external-link\" href=\"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32011D0833\"\n target=\"_blank\" rel=\"nofollow noopener\"><ins>Decision 2011/833/EU</ins></a> allows for their commercial\n reuse\n without prior authorisation, except for the material subject to the third party intellectual property rights.\n This\n Decision has been implemented under the <a class=\"external-link\"\n href=\"https://ec.europa.eu/transparency/documents-register/detail?ref=C(2019)1655&lang=en\"\n target=\"_blank\" rel=\"nofollow noopener\"><ins>Decision C(2019) 1655 final</ins></a> by which Creative Commons\n Attribution 4.0\n International Public License (CC BY 4.0) is adopted as an open licence for the Commission's reuse policy.\n Additionally, raw data, metadata or other documents of comparable nature may alternatively be distributed\n under\n the provisions of the Creative Commons Universal Public Domain Dedication deed (CC0 1.0).</p>\n <p>The <strong>Council</strong> and the <strong>European Court of Auditors</strong> have\n approved similar decisions on reuse. It is advisable that you check <strong>the reuse policy of your\n organisation</strong> before publishing or submitting your dataset.</p>\n </div>\n </div>\n <!-- <p> </p>\n <hr />\n <p> </p> -->\n\n <div class=\"d-flex align-items-start mt-4\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" fill=\"currentColor\"\n class=\"bi bi-info-circle mx-3 mb-3 mt-1 infoboxI \" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16\" />\n <path\n d=\"m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\" />\n </svg>\n <div class=\"w-80\">\n <p>As owner of your dataset, you guarantee that it does not violate the copyright, other intellectual property\n or\n privacy rights of any third party. In particular, if third party material is included in the dataset, you must\n ensure that all necessary permissions have been obtained and appropriate acknowledgment is given, if\n necessary.\n </p>\n <p>If you need further information regarding <strong>licenses or copyright</strong> issues, please contact us\n at <span class=\"nobr\"><a class=\"external-link\" href=\"mailto:op-copyright@publications.europa.eu\"\n target=\"_blank\" rel=\"nofollow noopener\">op-copyright@publications.europa.eu</a></span></p>\n </div>\n </div>\n </div>\n\n</template>\n\n<script>\n/* eslint-disable no-restricted-syntax,guard-for-in */\nimport axios from 'axios';\nimport { mapActions, mapGetters } from 'vuex';\n\nimport LanguageSelector from '../components/LanguageSelector';\nimport DatasetOverview from './OverviewPage/DatasetOverview.vue';\nimport CatalogueOverview from './OverviewPage/CatalogueOverview.vue';\n\nimport { useIntersectionObserver } from '@vueuse/core'\nimport { ref, useTemplateRef } from 'vue'\nimport { getCurrentInstance } from \"vue\";\n\nexport default {\n components: {\n LanguageSelector,\n DatasetOverview,\n CatalogueOverview,\n },\n props: {\n property: {\n type: String\n },\n context: {\n type: Object,\n },\n },\n data() {\n return {\n instance : getCurrentInstance().appContext.app.config.globalProperties.$env,\n dpiLocale: this.$route.query?.locale || this.$i18n.locale || this.$i18n.fallbackLocale || 'en',\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n showDatasetsOverview() {\n return this.property === 'datasets';\n },\n showCatalogsOverview() {\n return this.property === 'catalogues';\n }\n },\n methods: {\n ...mapActions('dpiStore', [\n 'clearAll',\n 'saveLocalstorageValues',\n ]),\n clear() {\n this.clearAll();\n },\n /*** Overview Page checker functionality ***/\n // checkDatasetMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['datasets']) {\n // this.$router.push({ \n // name: 'DataProviderInterface-Input', \n // params: { \n // property: 'datasets', \n // page: 'step1' \n // }, \n // query: { \n // error: 'mandatoryDataset', \n // locale: this.$route.query.locale \n // } \n // });\n // }\n // },\n // checkDistributionMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['distributions'].length > 0 && !JSON.parse(localStorage.getItem('dpi_mandatory'))['distributions'].every(el => el === true)) {\n // this.$router.push({\n // name: 'DataProviderInterface-Input',\n // path: '/dpi/datasets/distoverview',\n // params: {\n // property: 'datasets',\n // page: 'distoverview',\n // },\n // query: {\n // error: 'mandatoryDistribution',\n // locale: this.$route.query.locale\n // },\n // });\n // }\n // },\n // checkCatalogueMandatory() {\n // if (!JSON.parse(localStorage.getItem('dpi_mandatory'))['catalogues']) {\n // this.$router.push({ \n // name: 'DataProviderInterface-Input', \n // params: { \n // property: 'catalogues', \n // page: 'step1' \n // }, \n // query: { \n // error: 'mandatoryCatalog', \n // locale: this.$route.query.locale\n // } \n // });\n // }\n // },\n checkID(property) {\n // Check uniqueness of Dataset ID\n if (!this.getIsEditMode) {\n this.checkUniqueID(property)\n .then((isUniqueID) => {\n if (!isUniqueID) {\n // Dataset ID not unique / taken in meantime --> Redirect to step1 where the user can choose a new ID\n this.$router.push({\n name: 'DataProviderInterface-Input',\n params: {\n property: property,\n page: 'step1'\n },\n query: {\n error: 'id',\n locale: this.$route.query.locale\n }\n });\n }\n });\n }\n },\n checkUniqueID(property) {\n return new Promise((resolve) => {\n if (this.getData(property)['@id'] !== '') {\n const request = `${this.$env.api.hubUrl}${property}/${this.getData(property)['@id']}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n resolve(false);\n })\n .catch(() => {\n resolve(true);\n });\n }\n });\n },\n },\n created() {\n this.$nextTick(() => {\n if (this.property === 'datasets') {\n // this.checkID('datasets');\n // this.checkDatasetMandatory();\n // this.checkDistributionMandatory();\n }\n\n if (this.property === 'catalogues') {\n // this.checkID('catalogues')\n // this.checkCatalogueMandatory();\n }\n });\n },\n setup() {\n const target = useTemplateRef('overview-page')\n const overviewPageIsVisible = ref(false)\n\n // Workaround.\n // Ensure the individual overview pages are only mounted whenever this overview page is visible.\n // For some reason, the form values are not reactive so on initial load, the distribution values are not displayed properly.\n // This workaround delays the initial mount of the overview page until the overview page is visible.\n // We use the IntersectionObserver to check if the overview page is visible, but we could also use more proper datamodels to determine this.\n // todo: figure out why the form values are not reactive on initial load\n useIntersectionObserver(\n target,\n ([{ isIntersecting }]) => {\n overviewPageIsVisible.value = isIntersecting\n },\n {\n rootMargin: '999999px 999999px 999999px 999999px'\n }\n )\n\n return {overviewPageIsVisible}\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.heading,\n.description,\n.arrow {\n cursor: pointer;\n}\n\n.options,\n.download {\n .dropdown-menu {\n min-width: 300px;\n\n .dropdown-item {\n &:hover {\n color: initial;\n background-color: initial;\n }\n }\n }\n}\n\n.legalnotice {\n a {\n color: blue;\n }\n\n padding: 1rem;\n background-color: rgb(171, 225, 165)\n}\n\n.infoboxI {\n width: 5%;\n}\n\n.w-80 {\n width: 80%;\n}\n\n</style>\n"],"names":["_sfc_main","LanguageSelector","DatasetOverview","CatalogueOverview","getCurrentInstance","_a","mapGetters","mapActions","property","isUniqueID","resolve","request","axios","target","useTemplateRef","overviewPageIsVisible","ref","useIntersectionObserver","isIntersecting","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_1","_createTextVNode","_toDisplayString","_ctx","_createVNode","_component_LanguageSelector","$data","$event","$options","$setup","_openBlock","_createElementBlock","_hoisted_5","_createBlock","_component_DatasetOverview","_hoisted_6","_component_CatalogueOverview","_hoisted_7","_cache"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyChooser.vue.mjs","sources":["../../../lib/data-provider-interface/views/PropertyChooser.vue"],"sourcesContent":["<template>\n <div class=\"propertyChooser\">\n \n <!-- ToDo Weblate translations -->\n <div v-if=\"step ==='recommended'\">\n <h4>Recommended properties</h4>\n The following properties are decribing recommended Informations regarding the dataset. If you'd like to\n display any of the properties in the following list, just klick them. You can also find information on them when\n you hover over the<div class=\"infoI d-inline-block\"></div>symbol.\n </div>\n <div v-if=\"step ==='advised'\">\n <h4>Advised properties</h4>\n The following properties are decribing advised Informations regarding the dataset. If you'd like to\n display any of the properties in the following list, just klick them. You can also find information on them when\n you hover over the<div class=\"infoI d-inline-block\"></div>symbol.\n </div>\n <hr>\n <ul>\n <li v-for=\"items in properties\" :key=\"items\" class=\"\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ items.help }}</div>\n </div> -->\n {{ camel2title(items.identifier) }}\n </li>\n </ul>\n <hr>\n </div>\n</template>\n<script>\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n props: {\n properties: {},\n step:\"\",\n },\n data() {\n return {\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n }\n }\n});\n\n</script>\n<style></style>"],"names":["_sfc_main","defineComponent","str","match","_hoisted_1","_openBlock","_createElementBlock","_ctx","_hoisted_2","_cache","_createElementVNode","
|
|
1
|
+
{"version":3,"file":"PropertyChooser.vue.mjs","sources":["../../../lib/data-provider-interface/views/PropertyChooser.vue"],"sourcesContent":["<template>\n <div class=\"propertyChooser\">\n \n <!-- ToDo Weblate translations -->\n <div v-if=\"step ==='recommended'\">\n <h4>Recommended properties</h4>\n The following properties are decribing recommended Informations regarding the dataset. If you'd like to\n display any of the properties in the following list, just klick them. You can also find information on them when\n you hover over the<div class=\"infoI d-inline-block\"></div>symbol.\n </div>\n <div v-if=\"step ==='advised'\">\n <h4>Advised properties</h4>\n The following properties are decribing advised Informations regarding the dataset. If you'd like to\n display any of the properties in the following list, just klick them. You can also find information on them when\n you hover over the<div class=\"infoI d-inline-block\"></div>symbol.\n </div>\n <hr>\n <ul>\n <li v-for=\"items in properties\" :key=\"items\" class=\"\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ items.help }}</div>\n </div> -->\n {{ camel2title(items.identifier) }}\n </li>\n </ul>\n <hr>\n </div>\n</template>\n<script>\nimport { defineComponent } from \"vue\";\n\nexport default defineComponent({\n props: {\n properties: {},\n step:\"\",\n },\n data() {\n return {\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n }\n }\n});\n\n</script>\n<style></style>"],"names":["_sfc_main","defineComponent","str","match","_hoisted_1","_openBlock","_createElementBlock","_ctx","_hoisted_2","_cache","_createElementVNode","_hoisted_3","_Fragment","_renderList","items"],"mappings":";;AA+BA,MAAKA,IAAaC,EAAa;AAAA,EAC3B,OAAO;AAAA,IACH,YAAY,CAAE;AAAA,IACd,MAAK;AAAA,EACR;AAAA,EACD,OAAO;AACH,WAAO;AAAA,MACH,aAAa,CAACC,MACVA,EACK,QAAQ,YAAY,CAACC,MAAU,IAAIA,CAAK,EAAE,EAC1C,QAAQ,MAAM,CAACA,MAAUA,EAAM,YAAW,CAAE,EAC5C,KAAM;AAAA,IACnB;AAAA,EACJ;AACJ,CAAC,GA5CQC,IAAA,EAAA,OAAM,kBAAiB;;AAA5B,SAAAC,EAAA,GAAAC,EAyBM,OAzBNF,GAyBM;AAAA,IAtBSG,EAAI,SAAA,sBAAfD,EAKM,OAAAE,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,MAJFC,EAA+B,YAA3B,0BAAsB,EAAA;AAAA,QAAK;AAAA;AAAA;AAAA,+BAGb;AAAA,MAAAA,EAAwC,OAAA,EAAnC,OAAM,uBAAsB,GAAA,MAAA,EAAA;AAAA,QAAO;AAAA,SAC9D;AAAA;;IACWH,EAAI,SAAA,kBAAfD,EAKM,OAAAK,GAAAF,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,MAJFC,EAA2B,YAAvB,sBAAkB,EAAA;AAAA,QAAK;AAAA;AAAA;AAAA,+BAGT;AAAA,MAAAA,EAAwC,OAAA,EAAnC,OAAM,uBAAsB,GAAA,MAAA,EAAA;AAAA,QAAO;AAAA,SAC9D;AAAA;;oBACAA,EAAI,MAAA,MAAA,MAAA,EAAA;AAAA;IACJA,EAOK,MAAA,MAAA;AAAA,cANDJ,EAKKM,GAAA,MAAAC,EALeN,EAAU,YAAA,CAAnBO,YAAXR,EAKK,MAAA;AAAA,QAL4B,KAAKQ;AAAA,QAAO,OAAM;AAAA,WAI5CP,EAAW,YAACO,EAAM,UAAU,CAAA,GAAA,CAAA;;;oBAGvCJ,EAAI,MAAA,MAAA,MAAA,EAAA;AAAA;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserCataloguesPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserCataloguesPage.vue"],"sourcesContent":["<script setup>\nimport { useStore } from 'vuex';\nimport { ref, computed, onMounted, } from 'vue';\nimport AppLink from \"../../widgets/AppLink.vue\";\nimport axios from 'axios'\nimport { useRouter, useRoute } from 'vue-router';\nimport { getCurrentInstance } from \"vue\";\n\nimport {\n has,\n isNil,\n} from 'lodash-es';\n\nconst router = useRouter();\nconst route = useRoute();\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\nconst store = useStore();\nlet filteredCatalogs = ref([])\nlet userCatIDList = computed(() => store.getters['auth/getUserCatalogIds'])\n\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n .then(response => (cache = response))\n .catch((err) => {\n reject(err);\n });\n\n cache.data.result.results.forEach((e) => {\n if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n });\n\n filteredCatalogs.value = filteredCatalogs.value\n .filter(item => userCatIDList.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n}\nconst handleMQA = (cat) => {\n\n router.push({\n name: 'DataProviderInterface-MQASettings',\n params: { id: cat.id },\n query: { locale: route.query.locale }\n }).catch(() => { });\n}\nconst handleEdit = () => {\n\n}\nonMounted(async () => {\n filterCatList()\n});\n</script>\n<template>\n <div class=\"catOverview\">\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content \">\n <h1 class=\"small-headline\">{{ $t('message.dataupload.info.userCatalogues') }}</h1>\n <p class=\"m-0 \">{{ $t('message.dataupload.info.userCatDescription') }}</p>\n <!-- <div class=\"catWrap\">\n <div v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\" class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.name }}</app-link>\n </div>\n <div v-if=\"filteredCatalogs.length === 0\" v-for=\"(catalog, index) in userCatIDList\" :key=\"index\"\n class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog } }\">{{\n catalog }}</app-link>\n </div>\n </div> -->\n\n\n\n\n\n\n\n <table>\n <thead>\n <tr>\n <th>{{ $t('message.metadata.catalog') }} - ID</th>\n <th>{{ $t('message.metadata.description') }}</th>\n <th>{{ $t('message.dataupload.menu.actions') }}</th>\n </tr>\n </thead>\n\n <tr v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\">\n <td>\n\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.id }}</app-link>\n\n </td>\n <td>\n <span>{{ catalog.name }}</span>\n\n </td>\n <td>\n <!-- <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.metadata.linkedData') }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.dataupload.menu.edit') }}</button> -->\n\n <button type=\"button\" class=\"btn btn-action\" @click=\"handleMQA(catalog)\">Configure MQA notifications</button>\n\n </td>\n </tr>\n\n\n\n </table>\n\n</div>\n </div>\n\n</template>\n<style scoped>\n\ntable {\nmargin-top: 50px !important;\nmargin-left: 0px !important;\n}\n.catOverview {\n min-height: 60vh;\n}\n\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\n.catWrap {\n display: flex;\n flex-wrap: wrap;\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid lightgray;\n justify-content: space-between;\n}\n\n.catWrap .annifItems {\n background: #ECECEC;\n flex-grow: 1;\n text-align: center;\n}\n\n.subline {\n font-size: 12px;\n color: lightgray;\n\n}\n\n\nth,\ntd {\n padding: 1rem;\n\n}\n\ntr {\n padding: 1rem;\n border-bottom: 1px solid lightgray;\n}\n\nthead {\n border-bottom: 1px solid lightgray;\n}\n</style>\n"],"names":["router","useRouter","route","useRoute","env","getCurrentInstance","store","useStore","filteredCatalogs","ref","userCatIDList","computed","filterCatList","cache","axios","response","err","e","has","isNil","item","handleMQA","cat","onMounted"],"mappings":";;;;;;;;;;;AAaA,UAAMA,IAASC,EAAS,GAClBC,IAAQC,EAAQ;AAEtB,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AACtE,UAAMC,IAAQC,EAAQ;AACtB,QAAIC,IAAmBC,EAAI,EAAE,GACzBC,IAAgBC,EAAS,MAAML,EAAM,QAAQ,wBAAwB,CAAC,GAEtEM,IAAgB,YAAY;AAC9B,UAAIC;AACJ,YAAMC,EACH,IAAIV,EAAI,IAAI,UAAU,oCAAoC,EAC1D,KAAK,CAAAW,MAAaF,IAAQE,CAAS,EACnC,MAAM,CAACC,MAAQ;AACd,eAAOA,CAAG;AAAA,MAChB,CAAK,GAEHH,EAAM,KAAK,OAAO,QAAQ,QAAQ,CAACI,MAAM;AACvC,QAAIC,EAAID,GAAG,OAAO,KAAK,CAACE,EAAMF,EAAE,KAAK,KAAKC,EAAID,GAAG,IAAI,KAAK,CAACE,EAAMF,EAAE,EAAE,KAAGT,EAAiB,MAAM,KAAK,EAAE,OAAO,OAAO,OAAOS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAIA,EAAE,GAAE,CAAE;AAAA,MACtJ,CAAG,GAEDT,EAAiB,QAAQA,EAAiB,MACvC,OAAO,CAAAY,MAAQV,EAAc,MAAM,SAASU,EAAK,EAAE,CAAC,EACpD,IAAI,CAAAA,OAAS,EAAE,IAAIA,EAAK,IAAI,MAAMA,EAAK,MAAO,EAAC;AAAA,IACpD;AACA,UAAMC,IAAY,CAACC,MAAQ;AAEzB,MAAAtB,EAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,IAAIsB,EAAI,GAAI;AAAA,QACtB,OAAO,EAAE,QAAQpB,EAAM,MAAM,OAAO;AAAA,MACxC,CAAG,EAAE,MAAM,MAAM;AAAA,MAAA,CAAG;AAAA,IACpB;AAIA,WAAAqB,EAAU,YAAY;AACpB,MAAAX,EAAc;AAAA,IAChB,CAAC
|
|
1
|
+
{"version":3,"file":"UserCataloguesPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserCataloguesPage.vue"],"sourcesContent":["<script setup>\nimport { useStore } from 'vuex';\nimport { ref, computed, onMounted, } from 'vue';\nimport AppLink from \"../../widgets/AppLink.vue\";\nimport axios from 'axios'\nimport { useRouter, useRoute } from 'vue-router';\nimport { getCurrentInstance } from \"vue\";\n\nimport {\n has,\n isNil,\n} from 'lodash-es';\n\nconst router = useRouter();\nconst route = useRoute();\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\nconst store = useStore();\nlet filteredCatalogs = ref([])\nlet userCatIDList = computed(() => store.getters['auth/getUserCatalogIds'])\n\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n .then(response => (cache = response))\n .catch((err) => {\n reject(err);\n });\n\n cache.data.result.results.forEach((e) => {\n if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n });\n\n filteredCatalogs.value = filteredCatalogs.value\n .filter(item => userCatIDList.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n}\nconst handleMQA = (cat) => {\n\n router.push({\n name: 'DataProviderInterface-MQASettings',\n params: { id: cat.id },\n query: { locale: route.query.locale }\n }).catch(() => { });\n}\nconst handleEdit = () => {\n\n}\nonMounted(async () => {\n filterCatList()\n});\n</script>\n<template>\n <div class=\"catOverview\">\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content \">\n <h1 class=\"small-headline\">{{ $t('message.dataupload.info.userCatalogues') }}</h1>\n <p class=\"m-0 \">{{ $t('message.dataupload.info.userCatDescription') }}</p>\n <!-- <div class=\"catWrap\">\n <div v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\" class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.name }}</app-link>\n </div>\n <div v-if=\"filteredCatalogs.length === 0\" v-for=\"(catalog, index) in userCatIDList\" :key=\"index\"\n class=\"annifItems \">\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog } }\">{{\n catalog }}</app-link>\n </div>\n </div> -->\n\n\n\n\n\n\n\n <table>\n <thead>\n <tr>\n <th>{{ $t('message.metadata.catalog') }} - ID</th>\n <th>{{ $t('message.metadata.description') }}</th>\n <th>{{ $t('message.dataupload.menu.actions') }}</th>\n </tr>\n </thead>\n\n <tr v-for=\"(catalog, index) in filteredCatalogs\" :key=\"index\">\n <td>\n\n <app-link\n :to=\"{ name: 'CatalogueDetails', query: { locale: $route.query.locale }, params: { ctlg_id: catalog.id } }\">{{\n catalog.id }}</app-link>\n\n </td>\n <td>\n <span>{{ catalog.name }}</span>\n\n </td>\n <td>\n <!-- <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.metadata.linkedData') }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"handleEdit(id, catalog)\">{{\n $t('message.dataupload.menu.edit') }}</button> -->\n\n <button type=\"button\" class=\"btn btn-action\" @click=\"handleMQA(catalog)\">Configure MQA notifications</button>\n\n </td>\n </tr>\n\n\n\n </table>\n\n</div>\n </div>\n\n</template>\n<style scoped>\n\ntable {\nmargin-top: 50px !important;\nmargin-left: 0px !important;\n}\n.catOverview {\n min-height: 60vh;\n}\n\n.btn-action {\n border: solid 1px #3f3f3f;\n}\n\n.btn-action:hover {\n border: solid 1px #3f3f3f;\n background-color: #3f3f3f;\n color: #fff;\n}\n\n.catWrap {\n display: flex;\n flex-wrap: wrap;\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid lightgray;\n justify-content: space-between;\n}\n\n.catWrap .annifItems {\n background: #ECECEC;\n flex-grow: 1;\n text-align: center;\n}\n\n.subline {\n font-size: 12px;\n color: lightgray;\n\n}\n\n\nth,\ntd {\n padding: 1rem;\n\n}\n\ntr {\n padding: 1rem;\n border-bottom: 1px solid lightgray;\n}\n\nthead {\n border-bottom: 1px solid lightgray;\n}\n</style>\n"],"names":["router","useRouter","route","useRoute","env","getCurrentInstance","store","useStore","filteredCatalogs","ref","userCatIDList","computed","filterCatList","cache","axios","response","err","e","has","isNil","item","handleMQA","cat","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","$t","_hoisted_4","_Fragment","_renderList","_unref","catalog","index","_createVNode","AppLink","$route","_createTextVNode","$event","_hoisted_5"],"mappings":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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;;;;;;;"}
|
|
@@ -104,12 +104,13 @@ function _(s, t, o, C, i, e) {
|
|
|
104
104
|
"property-table-after": u(() => [
|
|
105
105
|
b(s.$slots, "property-table-after", {}, void 0, !0)
|
|
106
106
|
]),
|
|
107
|
-
_: 3
|
|
107
|
+
_: 3,
|
|
108
|
+
__: [0, 1, 2]
|
|
108
109
|
})) : d("", !0)
|
|
109
110
|
]))
|
|
110
111
|
]);
|
|
111
112
|
}
|
|
112
|
-
const T = /* @__PURE__ */ k(I, [["render", _], ["__scopeId", "data-v-
|
|
113
|
+
const T = /* @__PURE__ */ k(I, [["render", _], ["__scopeId", "data-v-f6763345"]]);
|
|
113
114
|
export {
|
|
114
115
|
T as default
|
|
115
116
|
};
|