@piveau/piveau-hub-ui-modules 4.6.52 → 4.6.53
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 +1 -2
- 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 +5 -6
- 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 +3 -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 +10 -5
- package/dist/configurations/config-schema/configSchema.mjs +18 -18
- package/dist/configurations/config-schema/contentSchema.d.ts +3 -0
- package/dist/configurations/config-schema/contentSchema.mjs +7 -6
- package/dist/configurations/config-schema/contentSchema.mjs.map +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 +19 -15
- 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 +1 -2
- 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 +9 -8
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +1 -2
- 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 +6 -5
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs +14 -19
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +16 -12
- package/dist/data-provider-interface/views/InputPage.vue.mjs +2 -4
- 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 +6 -3
- 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 +3 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +2 -3
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +39 -39
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +3 -1
- 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 +1 -2
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +5 -7
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +5 -6
- 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 +12 -15
- 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 +5 -6
- 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 +21 -22
- 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 +1 -7
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +1 -200
- 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 +6 -8
- 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/lib/index +2849 -0
- package/dist/external/zod/lib/index.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 +1 -2
- 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/dist/esm/v3/ZodError +0 -84
- package/dist/external/zod/dist/esm/v3/ZodError.map +0 -1
- package/dist/external/zod/dist/esm/v3/errors +0 -10
- package/dist/external/zod/dist/esm/v3/errors.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil +0 -8
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil +0 -98
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/util +0 -95
- package/dist/external/zod/dist/esm/v3/helpers/util.map +0 -1
- package/dist/external/zod/dist/esm/v3/locales/en +0 -62
- package/dist/external/zod/dist/esm/v3/locales/en.map +0 -1
- package/dist/external/zod/dist/esm/v3/types +0 -2440
- package/dist/external/zod/dist/esm/v3/types.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <!-- need to make a condition for the licence property of the distribution - otherwise the dropdown doesnt work-->\n\n <h4 class=\"formkitHeader\" v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 v-if=\"props.context.attrs.identifier != 'licence' && !inDis\" v-html=\"$t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label')\">\n </h4>\n\n <div class=\"formkitCmpWrap\">\n\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n\n <input ref=\"acInput\" class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ $t('message.dataupload.info.suggestions') }}</h3>\n <span>{{ $t('message.dataupload.info.suggestionText') }}</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">{{ $t('message.dataupload.info.tryIt')\n }}</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n\n\n <!-- <div class=\"formkit-wrapper mb-3\">\n <div v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\" class=\"formkit-help\"> \n </div> \n </div> -->\n\n <div v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script setup>\nimport { ref, watch, computed, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n';\n\nimport qs from 'qs';\nimport axios from 'axios';\nimport { useAutocomplete } from '../composables/aucotomplete';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst { requestAutocompleteSuggestions, requestResourceName } = useAutocomplete()\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\nconst { t, locale } = useI18n();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\n\nlet matchesSearchstring = computed(() => {\n return t('message.dataupload.info.searchVocabulary')\n})\nlet matchesNothingFound = computed(() => {\n return t('message.dataupload.info.matchesNothingFound')\n})\nlet matches = ref({\n value: { name: matchesSearchstring }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet acInput = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\nlet inDis = computed(() => {\n try {\n if (props.context.attrs.class.includes(\"inDistribution\")) {\n return true\n }\n } catch (error) {\n\n }\n\n\n});\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await requestResourceName({ voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, locale.value, []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, locale.value, []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nonClickOutside(acInput, event => inputText.value = \"\")\n\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n\n for (let i = 0; i < response.data.results.length; i++) {\n\n\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n inputText.value = \"\"\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n await requestAutocompleteSuggestions({ voc, text: innerText, base: instance.api.baseUrl }).then((response) => {\n // filter OP_DATPRO\n const updatedArray = response.data.result.results.filter(obj => obj.id !== 'OP_DATPRO');\n\n const results = updatedArray.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n if (results.length === 0) {\n matches.value = { value: { name: matchesNothingFound } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>\n"],"names":["instance","getCurrentInstance","requestAutocompleteSuggestions","requestResourceName","useAutocomplete","props","__props","useStore","t","locale","useI18n","listOfValues","computed","selection","voc","matchesSearchstring","matchesNothingFound","matches","ref","activeList","dropdownList","acInput","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","inDis","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","r","removeProperty","removeMultipleProperty","_openBlock","_createElementBlock","_hoisted_1","_unref","_hoisted_2","_toDisplayString","$t","_createElementVNode","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","$event","_cache","_isRef","_Fragment","_renderList","match","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_16","_hoisted_17","_hoisted_18","_normalizeClass","_hoisted_20","_hoisted_21"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <!-- need to make a condition for the licence property of the distribution - otherwise the dropdown doesnt work-->\n\n <h4 class=\"formkitHeader\" v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 v-if=\"props.context.attrs.identifier != 'licence' && !inDis\" v-html=\"$t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label')\">\n </h4>\n\n <div class=\"formkitCmpWrap\">\n\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n\n <input ref=\"acInput\" class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ $t('message.dataupload.info.suggestions') }}</h3>\n <span>{{ $t('message.dataupload.info.suggestionText') }}</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">{{ $t('message.dataupload.info.tryIt')\n }}</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n\n\n <!-- <div class=\"formkit-wrapper mb-3\">\n <div v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\" class=\"formkit-help\"> \n </div> \n </div> -->\n\n <div v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script setup>\nimport { ref, watch, computed, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n';\n\nimport qs from 'qs';\nimport axios from 'axios';\nimport { useAutocomplete } from '../composables/aucotomplete';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst { requestAutocompleteSuggestions, requestResourceName } = useAutocomplete()\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\nconst { t, locale } = useI18n();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\n\nlet matchesSearchstring = computed(() => {\n return t('message.dataupload.info.searchVocabulary')\n})\nlet matchesNothingFound = computed(() => {\n return t('message.dataupload.info.matchesNothingFound')\n})\nlet matches = ref({\n value: { name: matchesSearchstring }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet acInput = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\nlet inDis = computed(() => {\n try {\n if (props.context.attrs.class.includes(\"inDistribution\")) {\n return true\n }\n } catch (error) {\n\n }\n\n\n});\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await requestResourceName({ voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, locale.value, []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, locale.value, []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nonClickOutside(acInput, event => inputText.value = \"\")\n\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n\n for (let i = 0; i < response.data.results.length; i++) {\n\n\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n inputText.value = \"\"\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n await requestAutocompleteSuggestions({ voc, text: innerText, base: instance.api.baseUrl }).then((response) => {\n // filter OP_DATPRO\n const updatedArray = response.data.result.results.filter(obj => obj.id !== 'OP_DATPRO');\n\n const results = updatedArray.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n if (results.length === 0) {\n matches.value = { value: { name: matchesNothingFound } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>\n"],"names":["instance","getCurrentInstance","requestAutocompleteSuggestions","requestResourceName","useAutocomplete","props","__props","useStore","t","locale","useI18n","listOfValues","computed","selection","voc","matchesSearchstring","matchesNothingFound","matches","ref","activeList","dropdownList","acInput","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","inDis","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","r","removeProperty","removeMultipleProperty"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/ConditionalInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <!-- <h4 class=\"formkitHeader\">{{ props.context.attrs.identifier.charAt(0).toUpperCase() +\n props.context.attrs.identifier.slice(1) }}</h4> -->\n <h4 class=\"formkitHeader\"\n v-if=\"props.context.attrs.class != undefined && props.context.attrs.class.includes('inDistribution')\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 class=\"formkitHeader\" v-else>\n {{ $t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <div v-if=\"props.context.attrs.identifier === 'licence' && env.content.dataProviderInterface.annifIntegration\"\n class=\"d-flex infoLicense py-5\">\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\n that <a 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 without\n prior authorisation, except for the material subject to the third party intellectual property rights. This\n Decision has been implemented under the <a\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\n Commons\n Attribution 4.0 International Public License (CC BY 4.0) is adopted as an open licence for the Commission's\n reuse policy. Additionally, raw data, metadata or other documents of comparable nature may alternatively be\n distributed under the provisions of the Creative Commons Universal Public Domain Dedication deed (CC0\n 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 <p>If you need further information regarding copyright issues, please contact us at <a\n href=\"mailto:op-copyright@publications.europa.eu\" target=\"_blank\"\n rel=\"nofollow noopener\">op-copyright@publications.europa.eu</a></p>\n </div>\n\n </div>\n\n <div v-if=\"props.context.attrs.identifier === 'rights' && env.content.dataProviderInterface.annifIntegration\"\n class=\"d-flex infoLicense py-5\">\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 <p class=\"textInfoI\">As owner of your dataset, you guarantee that it does not violate the copyright, other\n intellectual property 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 necessary.\n <br><br>\n If you need further information regarding copyright issues, please contact us at\n <a href=\"mailto:op-copyright@publications.europa.eu\">op-copyright@publications.europa.eu</a>\n </p>\n </div>\n <!-- Choice between text and URL -->\n <div class=\"formkitCmpWrap simpleConditional\" v-if=\"props.context.attrs.identifier === 'rights'\">\n <div class=\"m-3\">\n <div class=\"conditionalSelectDiv\">\n <input ref=\"I1\" type=\"text\" class=\"conditionalSelect formkit-input formkit-inner\" @click=\"openSelect($event)\"\n :placeholder=\"props.context.attrs.placeholder\" v-model=\"selectModeVal\">\n <div v-if=\"showSelect\">\n <ul class=\"selectListConditional\">\n <li v-for=\"el, index in props.context.attrs.selection\" class=\"p-2 border-b border-gray-200 \"\n @click=\"selectMode(el, $t('message.dataupload.datasets.conditional.' + el))\">{{\n $t('message.dataupload.datasets.conditional.' + el) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"conditionalManual\">\n <div class=\"d-flex\" v-if=\"selectedItem === 'URL' || props.context.node.value['@type'] === 'url'\">\n <FormKit type=\"url\" :placeholder=\"$t('message.dataupload.datasets.conditional.URL')\" name=\"rdfs:label\"\n validation=\"url\" class=\"w-100\" identifier=\"rightsUrl\" v-model=\"props.context.value['rdfs:value']\">\n </FormKit>\n </div>\n </div>\n <div v-if=\"selectedItem === 'Text' || props.context.value['@type'] === 'text'\">\n <FormKit type=\"text\" :placeholder=\"$t('message.dataupload.datasets.conditional.Text')\" name=\"rdfs:label\"\n class=\"w-100\" identifier=\"rightsText\" v-model=\"props.context.value['rdfs:value']\"></FormKit>\n </div>\n </div>\n </div>\n\n <!-- Choice between manualinput and vocabulary search -->\n <div class=\"formkitCmpWrap simpleConditional\" v-else>\n <div class=\"m-3\">\n <div class=\"conditionalSelectDiv\">\n <input ref=\"I1\" type=\"text\" class=\"conditionalSelect formkit-input formkit-inner\" @click=\"openSelect($event)\"\n :placeholder=props.context.attrs.placeholder v-model=\"selectModeVal\">\n\n <div v-if=\"showSelect\">\n <ul class=\"selectListConditional\">\n <li v-for=\"el, index in props.context.attrs.selection\" class=\"p-2 border-b border-gray-200 \"\n @click=\"selectMode(el, $t('message.dataupload.datasets.conditional.' + el))\">{{\n $t('message.dataupload.datasets.conditional.' + el) }}</li>\n </ul>\n </div>\n <div v-if=\"selectedItem === 'vocabulary'\"\n v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\"\n class=\"formkit-help position-absolute\">\n </div>\n </div>\n <div class=\"conditionalManual\">\n <div class=\"d-flex\" v-if=\"selectedItem === 'manually' ||\n Object.keys(props.context.value).length > 0 && props.context.value['foaf:name']\n && selectedItem != 'vocabulary'\">\n <FormKit v-for=\"el, key in props.context.attrs.options\" :type=\"key\"\n :placeholder=\"$t('message.dataupload.datasets.individual.' + el)\" :name=\"el\" :validation=\"key\"\n class=\"w-100\"></FormKit>\n </div>\n </div>\n <div v-if=\"selectedItem === 'vocabulary' && !props.context.value['name']\" class=\"\">\n <AutocompleteInput :context=\"props.context\"></AutocompleteInput>\n </div>\n\n <div v-if=\"props.context.value['name']\" class=\"conditionalVocabulary d-flex\">\n <a class=\"autocompleteInputSingleValue\">{{\n resolvedUriName }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n\n </div>\n <div v-if=\"selectedItem === 'manually'\" v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n\n </div>\n\n </div>\n </div>\n\n</template>\n<script setup>\n\nimport AutocompleteInput from './AutocompleteInput.vue';\nimport { onClickOutside } from '@vueuse/core'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { ref, watch, computed, onMounted, watchEffect, toRef } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { useI18n } from 'vue-i18n';\nimport { useRequestUriName } from '../composables/useRequestUriName';\n\nlet env = useRuntimeEnv()\nconst props = defineProps({\n context: Object,\n})\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nconst { t, locale } = useI18n();\nlet selectModeVal = ref()\nlet selectedItem = ref(false)\nlet showSelect = ref(false)\nlet voc = props.context.attrs.voc;\nconst store = useStore();\nlet resolvedUriName = ref();\n\nconst { execute: requestURIname, error: requestURInameError, isLoading: requestURInameLoading } = useRequestUriName({\n res: computed(() => props.context.value.name),\n voc: computed(() => props.context.attrs.voc),\n property: computed(() => props.context.attrs.property),\n locale,\n})\n\nwatchEffect(() => {\n if (props.context.value['name']) {\n if (resolvedUriName.value != props.context.value.name) {\n\n if (props.context.value.name === props.context.value.resource) {\n requestURIname().then(result => {\n resolvedUriName.value = result;\n }).catch(error => {\n console.error(error);\n })\n }\n else {\n resolvedUriName.value = props.context.value.name\n }\n }\n\n selectModeVal.value = t('message.dataupload.datasets.conditional.' + 'vocabulary');\n }\n if (props.context.value['foaf:name']) {\n selectModeVal.value = t('message.dataupload.datasets.conditional.' + 'manually');\n }\n});\n\nconst I1 = ref(null)\n\nconst openSelect = (e) => {\n\n showSelect.value = !showSelect.value\n\n}\nconst removeProperty = () => {\n props.context.node.reset()\n}\nconst selectMode = (e, translatedString) => {\n selectModeVal.value = translatedString\n selectedItem.value = e\n props.context.node.reset()\n props.context.value = \"\"\n}\n\nonClickOutside(I1, event => showSelect.value = false)\n\n</script>\n<style>\n.conditionalManual {\n .formkit-outer {\n width: 100%;\n }\n}\n\n.hover {\n text-decoration: underline;\n}\n\n.conditionalVocabulary {\n display: flex;\n align-items: center;\n margin: 1rem 0;\n}\n\n.w-80 {\n width: 80%;\n}\n\n.infoLicense {\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.textInfoI {\n width: 95%;\n}\n</style>\n"],"names":["env","useRuntimeEnv","props","__props","getCurrentInstance","t","locale","useI18n","selectModeVal","ref","selectedItem","showSelect","useStore","resolvedUriName","requestURIname","requestURInameError","requestURInameLoading","useRequestUriName","computed","watchEffect","result","error","I1","openSelect","e","removeProperty","selectMode","translatedString","onClickOutside","event","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","$t","_hoisted_3","_unref","_hoisted_4","_cache","_hoisted_5","_hoisted_6","_createElementVNode","_hoisted_7","_hoisted_8","$event","_hoisted_10","_hoisted_11","_Fragment","_renderList","el","index","_hoisted_12","_hoisted_13","_hoisted_14","_createVNode","_component_FormKit","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_24","_hoisted_25","key","_createBlock","_hoisted_26","AutocompleteInput","_hoisted_27","_hoisted_28"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConditionalInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/ConditionalInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <!-- <h4 class=\"formkitHeader\">{{ props.context.attrs.identifier.charAt(0).toUpperCase() +\n props.context.attrs.identifier.slice(1) }}</h4> -->\n <h4 class=\"formkitHeader\"\n v-if=\"props.context.attrs.class != undefined && props.context.attrs.class.includes('inDistribution')\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 class=\"formkitHeader\" v-else>\n {{ $t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <div v-if=\"props.context.attrs.identifier === 'licence' && env.content.dataProviderInterface.annifIntegration\"\n class=\"d-flex infoLicense py-5\">\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\n that <a 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 without\n prior authorisation, except for the material subject to the third party intellectual property rights. This\n Decision has been implemented under the <a\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\n Commons\n Attribution 4.0 International Public License (CC BY 4.0) is adopted as an open licence for the Commission's\n reuse policy. Additionally, raw data, metadata or other documents of comparable nature may alternatively be\n distributed under the provisions of the Creative Commons Universal Public Domain Dedication deed (CC0\n 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 <p>If you need further information regarding copyright issues, please contact us at <a\n href=\"mailto:op-copyright@publications.europa.eu\" target=\"_blank\"\n rel=\"nofollow noopener\">op-copyright@publications.europa.eu</a></p>\n </div>\n\n </div>\n\n <div v-if=\"props.context.attrs.identifier === 'rights' && env.content.dataProviderInterface.annifIntegration\"\n class=\"d-flex infoLicense py-5\">\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 <p class=\"textInfoI\">As owner of your dataset, you guarantee that it does not violate the copyright, other\n intellectual property 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 necessary.\n <br><br>\n If you need further information regarding copyright issues, please contact us at\n <a href=\"mailto:op-copyright@publications.europa.eu\">op-copyright@publications.europa.eu</a>\n </p>\n </div>\n <!-- Choice between text and URL -->\n <div class=\"formkitCmpWrap simpleConditional\" v-if=\"props.context.attrs.identifier === 'rights'\">\n <div class=\"m-3\">\n <div class=\"conditionalSelectDiv\">\n <input ref=\"I1\" type=\"text\" class=\"conditionalSelect formkit-input formkit-inner\" @click=\"openSelect($event)\"\n :placeholder=\"props.context.attrs.placeholder\" v-model=\"selectModeVal\">\n <div v-if=\"showSelect\">\n <ul class=\"selectListConditional\">\n <li v-for=\"el, index in props.context.attrs.selection\" class=\"p-2 border-b border-gray-200 \"\n @click=\"selectMode(el, $t('message.dataupload.datasets.conditional.' + el))\">{{\n $t('message.dataupload.datasets.conditional.' + el) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"conditionalManual\">\n <div class=\"d-flex\" v-if=\"selectedItem === 'URL' || props.context.node.value['@type'] === 'url'\">\n <FormKit type=\"url\" :placeholder=\"$t('message.dataupload.datasets.conditional.URL')\" name=\"rdfs:label\"\n validation=\"url\" class=\"w-100\" identifier=\"rightsUrl\" v-model=\"props.context.value['rdfs:value']\">\n </FormKit>\n </div>\n </div>\n <div v-if=\"selectedItem === 'Text' || props.context.value['@type'] === 'text'\">\n <FormKit type=\"text\" :placeholder=\"$t('message.dataupload.datasets.conditional.Text')\" name=\"rdfs:label\"\n class=\"w-100\" identifier=\"rightsText\" v-model=\"props.context.value['rdfs:value']\"></FormKit>\n </div>\n </div>\n </div>\n\n <!-- Choice between manualinput and vocabulary search -->\n <div class=\"formkitCmpWrap simpleConditional\" v-else>\n <div class=\"m-3\">\n <div class=\"conditionalSelectDiv\">\n <input ref=\"I1\" type=\"text\" class=\"conditionalSelect formkit-input formkit-inner\" @click=\"openSelect($event)\"\n :placeholder=props.context.attrs.placeholder v-model=\"selectModeVal\">\n\n <div v-if=\"showSelect\">\n <ul class=\"selectListConditional\">\n <li v-for=\"el, index in props.context.attrs.selection\" class=\"p-2 border-b border-gray-200 \"\n @click=\"selectMode(el, $t('message.dataupload.datasets.conditional.' + el))\">{{\n $t('message.dataupload.datasets.conditional.' + el) }}</li>\n </ul>\n </div>\n <div v-if=\"selectedItem === 'vocabulary'\"\n v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\"\n class=\"formkit-help position-absolute\">\n </div>\n </div>\n <div class=\"conditionalManual\">\n <div class=\"d-flex\" v-if=\"selectedItem === 'manually' ||\n Object.keys(props.context.value).length > 0 && props.context.value['foaf:name']\n && selectedItem != 'vocabulary'\">\n <FormKit v-for=\"el, key in props.context.attrs.options\" :type=\"key\"\n :placeholder=\"$t('message.dataupload.datasets.individual.' + el)\" :name=\"el\" :validation=\"key\"\n class=\"w-100\"></FormKit>\n </div>\n </div>\n <div v-if=\"selectedItem === 'vocabulary' && !props.context.value['name']\" class=\"\">\n <AutocompleteInput :context=\"props.context\"></AutocompleteInput>\n </div>\n\n <div v-if=\"props.context.value['name']\" class=\"conditionalVocabulary d-flex\">\n <a class=\"autocompleteInputSingleValue\">{{\n resolvedUriName }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n\n </div>\n <div v-if=\"selectedItem === 'manually'\" v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n\n </div>\n\n </div>\n </div>\n\n</template>\n<script setup>\n\nimport AutocompleteInput from './AutocompleteInput.vue';\nimport { onClickOutside } from '@vueuse/core'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { ref, watch, computed, onMounted, watchEffect, toRef } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { useI18n } from 'vue-i18n';\nimport { useRequestUriName } from '../composables/useRequestUriName';\n\nlet env = useRuntimeEnv()\nconst props = defineProps({\n context: Object,\n})\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nconst { t, locale } = useI18n();\nlet selectModeVal = ref()\nlet selectedItem = ref(false)\nlet showSelect = ref(false)\nlet voc = props.context.attrs.voc;\nconst store = useStore();\nlet resolvedUriName = ref();\n\nconst { execute: requestURIname, error: requestURInameError, isLoading: requestURInameLoading } = useRequestUriName({\n res: computed(() => props.context.value.name),\n voc: computed(() => props.context.attrs.voc),\n property: computed(() => props.context.attrs.property),\n locale,\n})\n\nwatchEffect(() => {\n if (props.context.value['name']) {\n if (resolvedUriName.value != props.context.value.name) {\n\n if (props.context.value.name === props.context.value.resource) {\n requestURIname().then(result => {\n resolvedUriName.value = result;\n }).catch(error => {\n console.error(error);\n })\n }\n else {\n resolvedUriName.value = props.context.value.name\n }\n }\n\n selectModeVal.value = t('message.dataupload.datasets.conditional.' + 'vocabulary');\n }\n if (props.context.value['foaf:name']) {\n selectModeVal.value = t('message.dataupload.datasets.conditional.' + 'manually');\n }\n});\n\nconst I1 = ref(null)\n\nconst openSelect = (e) => {\n\n showSelect.value = !showSelect.value\n\n}\nconst removeProperty = () => {\n props.context.node.reset()\n}\nconst selectMode = (e, translatedString) => {\n selectModeVal.value = translatedString\n selectedItem.value = e\n props.context.node.reset()\n props.context.value = \"\"\n}\n\nonClickOutside(I1, event => showSelect.value = false)\n\n</script>\n<style>\n.conditionalManual {\n .formkit-outer {\n width: 100%;\n }\n}\n\n.hover {\n text-decoration: underline;\n}\n\n.conditionalVocabulary {\n display: flex;\n align-items: center;\n margin: 1rem 0;\n}\n\n.w-80 {\n width: 80%;\n}\n\n.infoLicense {\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.textInfoI {\n width: 95%;\n}\n</style>\n"],"names":["env","useRuntimeEnv","props","__props","getCurrentInstance","t","locale","useI18n","selectModeVal","ref","selectedItem","showSelect","useStore","resolvedUriName","requestURIname","requestURInameError","requestURInameLoading","useRequestUriName","computed","watchEffect","result","error","I1","openSelect","e","removeProperty","selectMode","translatedString","onClickOutside","event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmJA,QAAIA,IAAMC,EAAc;AACxB,UAAMC,IAAQC;AAGC,IAAAC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AACtE,UAAC,EAAE,GAAAC,GAAG,QAAAC,MAAWC;AACtB,QAAIC,IAAgBC,EAAI,GACpBC,IAAeD,EAAI,EAAK,GACxBE,IAAaF,EAAI,EAAK;AAChB,IAAAP,EAAM,QAAQ,MAAM,KAChBU,EAAU;AACxB,QAAIC,IAAkBJ,EAAG;AAEzB,UAAM,EAAE,SAASK,GAAgB,OAAOC,IAAqB,WAAWC,GAAuB,IAAGC,EAAkB;AAAA,MAClH,KAAKC,EAAS,MAAMhB,EAAM,QAAQ,MAAM,IAAI;AAAA,MAC5C,KAAKgB,EAAS,MAAMhB,EAAM,QAAQ,MAAM,GAAG;AAAA,MAC3C,UAAUgB,EAAS,MAAMhB,EAAM,QAAQ,MAAM,QAAQ;AAAA,MACrD,QAAAI;AAAA,IACF,CAAC;AAED,IAAAa,EAAY,MAAM;AAChB,MAAIjB,EAAM,QAAQ,MAAM,SAClBW,EAAgB,SAASX,EAAM,QAAQ,MAAM,SAE3CA,EAAM,QAAQ,MAAM,SAASA,EAAM,QAAQ,MAAM,WACnDY,EAAgB,EAAC,KAAK,CAAAM,MAAU;AAC9B,QAAAP,EAAgB,QAAQO;AAAA,MAClC,CAAS,EAAE,MAAM,CAAAC,MAAS;AAChB,gBAAQ,MAAMA,CAAK;AAAA,MAC7B,CAAS,IAGDR,EAAgB,QAAQX,EAAM,QAAQ,MAAM,OAIhDM,EAAc,QAAQH,EAAE,oDAAyD,IAE/EH,EAAM,QAAQ,MAAM,WAAW,MACjCM,EAAc,QAAQH,EAAE,kDAAuD;AAAA,IAEnF,CAAC;AAED,UAAMiB,IAAKb,EAAI,IAAI,GAEbc,IAAa,CAACC,MAAM;AAExB,MAAAb,EAAW,QAAQ,CAACA,EAAW;AAAA,IAEjC,GACMc,IAAiB,MAAM;AAC3B,MAAAvB,EAAM,QAAQ,KAAK,MAAM;AAAA,IAC3B,GACMwB,IAAa,CAACF,GAAGG,MAAqB;AAC1C,MAAAnB,EAAc,QAAQmB,GACtBjB,EAAa,QAAQc,GACrBtB,EAAM,QAAQ,KAAK,MAAM,GACzBA,EAAM,QAAQ,QAAQ;AAAA,IACxB;AAEA,WAAA0B,EAAeN,GAAI,CAAAO,MAASlB,EAAW,QAAQ,EAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,9 +4,9 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
4
4
|
property?: any;
|
|
5
5
|
}, {}, {}, {
|
|
6
6
|
token(): any;
|
|
7
|
-
redirectUri():
|
|
8
|
-
getUserData: import('vuex').Computed;
|
|
7
|
+
redirectUri(): string;
|
|
9
8
|
getIsDraft: import('vuex').Computed;
|
|
9
|
+
getUserData: import('vuex').Computed;
|
|
10
10
|
}, {
|
|
11
11
|
setupEditPage(): Promise<void>;
|
|
12
12
|
convertToInput: import('vuex').ActionMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DistributionStepper.vue.mjs","sources":["../../../lib/data-provider-interface/components/DistributionStepper.vue"],"sourcesContent":["<template>\n <FormKit type=\"form\" :actions=\"false\" :plugins=\"[stepPlugin]\">\n <div name=\"distribution-stepper\" class=\"singleDistributions\">\n <div class=\"disInfoWrapper\" v-if=\"!isCollapsed\">\n <ul class=\"steps\">\n <li v-for=\"(step, stepName, index) in steps\" :key=\"index\" class=\"step\"\n :data-step-active=\"activeStep === stepName\" :data-step-valid=\"step.valid && step.errorCount === 0\" :class=\"{\n activeItem: activeStep === stepName, inactiveStep: stepName != activeStep, 'has-errors': checkStepValidity(stepName)\n }\" @click=\"activeStep = stepName; indexOfDis = index + 1\">\n\n <div class=\"stepBubbleWrap\">\n <div class=\"circle stepCircle\">{{ convertToRoman(index + 1) }}</div>\n <span v-if=\"checkStepValidity(stepName)\" class=\"step--errors\"\n v-text=\"step.errorCount + step.blockingCount\" />\n {{ $t('message.dataupload.steps.' + stepName + 'Step') }}\n </div>\n <div\n v-if=\"index + 1 != Object.keys(getNavSteps($env.content.dataProviderInterface.specification).distributions).length\"\n class=\"seperatorHorizontalStepper\">\n </div>\n <div v-if=\"activeStep === 'overview'\" class=\"seperatorHorizontalStepper\"></div>\n </li>\n <li class=\"step inactiveStep\" v-if=\"activeStep === 'overview'\">\n <div class=\"circle stepCircle\"></div>\n </li>\n </ul>\n <div class=\"d-flex flex-column w-100\">\n <div v-for=\"(stepName, i) in getNavSteps($env.content.dataProviderInterface.specification).distributions\"\n :key=\"i\">\n <InputPageStep :name=\"stepName\">\n <!-- <PropertyChooser></PropertyChooser> -->\n\n <FormKitSchema :schema=\"schema[stepName]\" :library=\"library\" />\n <p v-if=\"stepName === 'Mandatory'\" class=\"p-1\"> <b>*</b> {{ $t('message.dataupload.steps.MandatoryStep')\n }}</p>\n </InputPageStep>\n </div>\n </div>\n </div>\n </div>\n </FormKit>\n\n <div class=\"m-3 d-flex justify-content-end\">\n\n <button v-if=\"indexOfDis > 1\" type=\"button\" class=\"btn btn-secondary\"\n @click=\"goToPreviousStep(); scrollToTop(); indexOfDis = indexOfDis - 1\">{{\n $t('message.dataupload.steps.previousDisStep')\n }}</button>\n <button v-if=\"indexOfDis < 4\" type=\"button\" class=\"btn btn-secondary ml-3\"\n @click=\"goToNextStep(); scrollToTop(); indexOfDis = indexOfDis + 1\">{{\n $t('message.dataupload.steps.nextDisStep')\n }}</button>\n </div>\n</template>\n\n<script>\nimport { defineComponent, markRaw, reactive } from 'vue';\nimport { mapGetters } from 'vuex';\nimport { useDpiStepper } from '../composables/useDpiStepper';\nimport InputPageStep from '../components/InputPageStep.vue';\nimport SelectControlledGroup from './SelectControlledGroup.vue';\nimport { useWindowScroll } from '@vueuse/core'\n\n\nexport default defineComponent({\n props: {\n name: {\n type: String,\n default: '',\n },\n index: {\n required: true\n },\n schema: {\n required: true,\n type: Object,\n },\n context: {\n type: Object,\n },\n distributionIsCollapsed: {\n type: Boolean,\n },\n collapseDistributions: {\n type: Function,\n },\n deleteDistribution: {\n type: Function,\n },\n },\n components: {\n InputPageStep,\n },\n data() {\n return {\n isCollapsed: false,\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n isActive: false,\n indexOfDis: 1,\n\n }\n },\n methods: {\n editDistribution() {\n this.isCollapsed = !this.isCollapsed;\n this.collapseDistributions(this.index);\n },\n scrollToTop() {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n },\n convertToRoman(element) {\n if (element === 1) {\n return \"A\"\n }\n if (element === 2) {\n return \"B\"\n }\n if (element === 3) {\n return \"C\"\n }\n if (element === 4) {\n return \"D\"\n }\n }\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getNavSteps'\n ]),\n getName() {\n return this.name\n || values['Distributions']['distributionList'][this.name - 1]['Mandatory']['dcat:accessURL'][0]['@id'];\n },\n },\n watch: {\n distributionIsCollapsed: {\n handler(newValue) {\n this.isCollapsed = newValue;\n },\n },\n },\n created() { },\n setup() {\n const {\n steps,\n activeStep,\n visitedSteps,\n previousStep,\n nextStep,\n stepPlugin,\n goToNextStep,\n goToPreviousStep,\n } = useDpiStepper();\n\n const checkStepValidity = (stepName) => {\n return (steps[stepName].errorCount > 0 || steps[stepName].blockingCount > 0) && visitedSteps.value.includes(stepName)\n }\n\n const library = markRaw({\n SelectControlledGroup,\n })\n\n return {\n steps,\n visitedSteps,\n activeStep,\n previousStep,\n nextStep,\n stepPlugin,\n checkStepValidity,\n goToNextStep,\n goToPreviousStep,\n library,\n }\n }\n});\n</script>\n\n<style></style>"],"names":["_sfc_main","defineComponent","InputPageStep","str","match","x","y","useWindowScroll","element","mapGetters","newValue","steps","activeStep","visitedSteps","previousStep","nextStep","stepPlugin","goToNextStep","goToPreviousStep","useDpiStepper","checkStepValidity","stepName","library","markRaw","SelectControlledGroup","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_11","_hoisted_13","_createVNode","_component_FormKit","_ctx","_createElementVNode","_hoisted_1","_openBlock","_createElementBlock","_hoisted_2","_Fragment","step","index","_toDisplayString","_hoisted_8","_hoisted_9","_hoisted_10","_cache","_renderList","i","_component_InputPageStep","_component_FormKitSchema","_hoisted_12","_createTextVNode"],"mappings":";;;;;;;AAgEA,MAAKA,IAAaC,EAAa;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,IACD,OAAO;AAAA,MACL,UAAU;AAAA,IACX;AAAA,IACD,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACD,yBAAyB;AAAA,MACvB,MAAM;AAAA,IACP;AAAA,IACD,uBAAuB;AAAA,MACrB,MAAM;AAAA,IACP;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,IACP;AAAA,EACF;AAAA,EACD,YAAY;AAAA,mBACVC;AAAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,aAAa;AAAA,MACb,aAAa,CAACC,MACZA,EACG,QAAQ,YAAY,CAACC,MAAU,IAAIA,CAAK,EAAE,EAC1C,QAAQ,MAAM,CAACA,MAAUA,EAAM,YAAW,CAAE,EAC5C,KAAM;AAAA,MACX,UAAU;AAAA,MACV,YAAY;AAAA,IAEd;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,mBAAmB;AACjB,WAAK,cAAc,CAAC,KAAK,aACzB,KAAK,sBAAsB,KAAK,KAAK;AAAA,IACtC;AAAA,IACD,cAAc;AACZ,UAAI,EAAE,GAAAC,GAAG,GAAAC,MAAMC,EAAgB,EAAE,UAAU,UAAU;AACrD,MAAAD,EAAE,QAAQ;AAAA,IAEX;AAAA,IACD,eAAeE,GAAS;AACtB,UAAIA,MAAY;AACd,eAAO;AAET,UAAIA,MAAY;AACd,eAAO;AAET,UAAIA,MAAY;AACd,eAAO;AAET,UAAIA,MAAY;AACd,eAAO;AAAA,IAEX;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,YAAY;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,UAAU;AACR,aAAO,KAAK,QACP,OAAO,cAAiB,iBAAoB,KAAK,OAAO,CAAC,EAAE,UAAa,gBAAgB,EAAE,CAAC,EAAE,KAAK;AAAA,IACxG;AAAA,EACF;AAAA,EACD,OAAO;AAAA,IACL,yBAAyB;AAAA,MACvB,QAAQC,GAAU;AAChB,aAAK,cAAcA;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAAA,EACD,UAAU;AAAA,EAAG;AAAA,EACb,QAAQ;AACN,UAAM;AAAA,MACJ,OAAAC;AAAA,MACA,YAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,UAAAC;AAAA,MACA,YAAAC;AAAA,MACA,cAAAC;AAAA,MACA,kBAAAC;AAAA,IACF,IAAIC,EAAa,GAEXC,IAAoB,CAACC,OACjBV,EAAMU,CAAQ,EAAE,aAAa,KAAKV,EAAMU,CAAQ,EAAE,gBAAgB,MAAMR,EAAa,MAAM,SAASQ,CAAQ,GAGhHC,IAAUC,EAAQ;AAAA,MACtB,uBAAAC;AAAAA,KACD;AAED,WAAO;AAAA,MACL,OAAAb;AAAA,MACA,cAAAE;AAAA,MACA,YAAAD;AAAA,MACA,cAAAE;AAAA,MACA,UAAAC;AAAA,MACA,YAAAC;AAAA,MACA,mBAAAI;AAAA,MACA,cAAAH;AAAA,MACA,kBAAAC;AAAA,MACA,SAAAI;AAAA,IACF;AAAA,EACF;AACF,CAAC;EAnLQ,MAAK;AAAA,EAAuB,OAAM;;;EAChC,OAAM;GACLG,IAAA,EAAA,OAAM,QAAO,2DAMRC,IAAA,EAAA,OAAM,iBAAgB,GACpBC,IAAA,EAAA,OAAM,oBAAmB;;EAO9B,OAAM;;;EAE8B,OAAM;;;EAE1C,OAAM;GAIPC,IAAA,EAAA,OAAM,2BAA0B;;EAOI,OAAM;GAShDC,IAAA,EAAA,OAAM,iCAAgC;;;;IAzC3CC,EAuCUC,GAAA;AAAA,MAvCD,MAAK;AAAA,MAAQ,SAAS;AAAA,MAAQ,UAAUC,EAAU,UAAA;AAAA;iBACzD,MAqCM;AAAA,QArCNC,EAqCM,OArCNC,GAqCM;AAAA,UApC+BF,EAAW,2BAA9CG,KAAAC,EAmCM,OAnCNC,GAmCM;AAAA,YAlCJJ,EAqBK,MArBLR,GAqBK;AAAA,eApBHU,EAAA,EAAA,GAAAC,EAgBKE,WAhBiCN,EAAK,OAAA,CAA/BO,GAAMlB,GAAUmB,YAA5BJ,EAgBK,MAAA;AAAA,gBAhByC,KAAKI;AAAA,gBAAO,UAAM,QAAM;AAAA,8BACmER,EAAU,eAAKX;AAAA,kBAAwB,cAAAA,KAAYW,EAAU;AAAA,kBAAA,cAAgBA,EAAiB,kBAACX,CAAQ;AAAA;gBAA7O,oBAAkBW,EAAU,eAAKX;AAAA,gBAAW,mBAAiBkB,EAAK,SAASA,EAAK,eAAU;AAAA,gBAEvF;AAAO,kBAAAP,EAAU,aAAGX,GAAUW,EAAA,aAAaQ,IAAK;AAAA,gBAAA;AAAA;gBAEpDP,EAKM,OALNP,GAKM;AAAA,kBAJJO,EAAoE,OAApEN,GAAkCc,EAAAT,EAAA,eAAeQ,IAAK,CAAA,CAAA,GAAA,CAAA;AAAA;kBAC1CR,EAAA,kBAAkBX,CAAQ,UAAtCe,EACkD,QAAA;AAAA;oBADT,OAAM;AAAA,oBAC7C,aAAAK,EAA6CF,EAAhC,aAAaA,EAAK,aAAa;AAAA;oBAAI,MAClDE,EAAGT,EAAE,GAAA,8BAA+BX,IAAQ,MAAA,CAAA,GAAA,CAAA;AAAA;;gBAGtCmB,SAAa,OAAO,KAAKR,cAAYA,EAAA,KAAK,QAAQ,sBAAsB,aAAa,EAAE,aAAa,EAAE,UAD9GG,KAAAC,EAGM,OAHNM,CAGM;;gBACKV,EAAU,eAAA,cAArBG,KAAAC,EAA+E,OAA/EO,CAA+E;;;cAE7CX,EAAU,eAAA,cAA9CG,EAAA,GAAAC,EAEK,MAFLQ,GAEKC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBADHZ,EAAqC,OAAA,EAAhC,OAAM,oBAAmB,GAAA,MAAA,EAAA;AAAA;;;YAGlCA,EAWM,OAXNL,GAWM;AAAA,eAVJO,EAAA,EAAA,GAAAC,EASME,GATuB,MAAAQ,EAAAd,EAAA,YAAYA,EAAA,KAAK,QAAQ,sBAAsB,aAAa,EAAE,eAA9E,CAAAX,GAAU0B,YAAvBX,EASM,OAAA,EARH,KAAKW,KAAC;AAAA,gBACPjB,EAMgBkB,GAAA,EANA,MAAM3B,EAAQ,GAAA;AAAA,6BAG5B,MAA+D;AAAA,oBAA/DS,EAA+DmB,GAAA;AAAA,sBAA/C,QAAQjB,EAAM,OAACX,CAAQ;AAAA,sBAAI,SAASW,EAAO;AAAA;;oBAClDX,MAAQ,eAAjBc,KAAAC,EACM,KADNc,GACM;AAAA,sBAD0CL,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAZ,EAAQ,WAAL,KAAC,EAAA;AAAA,sBAAIkB,EAAA,QAAInB,EAAE,GAAA,wCAAA,CAAA,GAAA,CAAA;AAAA;;;;;;;;;;;;;IAS1EC,EAUM,OAVNJ,GAUM;AAAA,MARUG,EAAU,aAAA,UAAxBI,EAGa,UAAA;AAAA;QAHiB,MAAK;AAAA,QAAS,OAAM;AAAA,QAC/C;AAAO,UAAAJ,EAAgB,iBAAA,GAAIA,cAAW,GAAIA,EAAA,aAAaA,EAAU,aAAA;AAAA,QAAA;AAAA,WAChEA,EAAE,GAAA,0CAAA,CAAA,GAAA,CAAA;;MAEQA,EAAU,aAAA,UAAxBI,EAGa,UAAA;AAAA;QAHiB,MAAK;AAAA,QAAS,OAAM;AAAA,QAC/C;AAAO,UAAAJ,EAAY,aAAA,GAAIA,cAAW,GAAIA,EAAA,aAAaA,EAAU,aAAA;AAAA,QAAA;AAAA,WAC5DA,EAAE,GAAA,sCAAA,CAAA,GAAA,CAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"DistributionStepper.vue.mjs","sources":["../../../lib/data-provider-interface/components/DistributionStepper.vue"],"sourcesContent":["<template>\n <FormKit type=\"form\" :actions=\"false\" :plugins=\"[stepPlugin]\">\n <div name=\"distribution-stepper\" class=\"singleDistributions\">\n <div class=\"disInfoWrapper\" v-if=\"!isCollapsed\">\n <ul class=\"steps\">\n <li v-for=\"(step, stepName, index) in steps\" :key=\"index\" class=\"step\"\n :data-step-active=\"activeStep === stepName\" :data-step-valid=\"step.valid && step.errorCount === 0\" :class=\"{\n activeItem: activeStep === stepName, inactiveStep: stepName != activeStep, 'has-errors': checkStepValidity(stepName)\n }\" @click=\"activeStep = stepName; indexOfDis = index + 1\">\n\n <div class=\"stepBubbleWrap\">\n <div class=\"circle stepCircle\">{{ convertToRoman(index + 1) }}</div>\n <span v-if=\"checkStepValidity(stepName)\" class=\"step--errors\"\n v-text=\"step.errorCount + step.blockingCount\" />\n {{ $t('message.dataupload.steps.' + stepName + 'Step') }}\n </div>\n <div\n v-if=\"index + 1 != Object.keys(getNavSteps($env.content.dataProviderInterface.specification).distributions).length\"\n class=\"seperatorHorizontalStepper\">\n </div>\n <div v-if=\"activeStep === 'overview'\" class=\"seperatorHorizontalStepper\"></div>\n </li>\n <li class=\"step inactiveStep\" v-if=\"activeStep === 'overview'\">\n <div class=\"circle stepCircle\"></div>\n </li>\n </ul>\n <div class=\"d-flex flex-column w-100\">\n <div v-for=\"(stepName, i) in getNavSteps($env.content.dataProviderInterface.specification).distributions\"\n :key=\"i\">\n <InputPageStep :name=\"stepName\">\n <!-- <PropertyChooser></PropertyChooser> -->\n\n <FormKitSchema :schema=\"schema[stepName]\" :library=\"library\" />\n <p v-if=\"stepName === 'Mandatory'\" class=\"p-1\"> <b>*</b> {{ $t('message.dataupload.steps.MandatoryStep')\n }}</p>\n </InputPageStep>\n </div>\n </div>\n </div>\n </div>\n </FormKit>\n\n <div class=\"m-3 d-flex justify-content-end\">\n\n <button v-if=\"indexOfDis > 1\" type=\"button\" class=\"btn btn-secondary\"\n @click=\"goToPreviousStep(); scrollToTop(); indexOfDis = indexOfDis - 1\">{{\n $t('message.dataupload.steps.previousDisStep')\n }}</button>\n <button v-if=\"indexOfDis < 4\" type=\"button\" class=\"btn btn-secondary ml-3\"\n @click=\"goToNextStep(); scrollToTop(); indexOfDis = indexOfDis + 1\">{{\n $t('message.dataupload.steps.nextDisStep')\n }}</button>\n </div>\n</template>\n\n<script>\nimport { defineComponent, markRaw, reactive } from 'vue';\nimport { mapGetters } from 'vuex';\nimport { useDpiStepper } from '../composables/useDpiStepper';\nimport InputPageStep from '../components/InputPageStep.vue';\nimport SelectControlledGroup from './SelectControlledGroup.vue';\nimport { useWindowScroll } from '@vueuse/core'\n\n\nexport default defineComponent({\n props: {\n name: {\n type: String,\n default: '',\n },\n index: {\n required: true\n },\n schema: {\n required: true,\n type: Object,\n },\n context: {\n type: Object,\n },\n distributionIsCollapsed: {\n type: Boolean,\n },\n collapseDistributions: {\n type: Function,\n },\n deleteDistribution: {\n type: Function,\n },\n },\n components: {\n InputPageStep,\n },\n data() {\n return {\n isCollapsed: false,\n camel2title: (str) =>\n str\n .replace(/([A-Z])/g, (match) => ` ${match}`)\n .replace(/^./, (match) => match.toUpperCase())\n .trim(),\n isActive: false,\n indexOfDis: 1,\n\n }\n },\n methods: {\n editDistribution() {\n this.isCollapsed = !this.isCollapsed;\n this.collapseDistributions(this.index);\n },\n scrollToTop() {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n },\n convertToRoman(element) {\n if (element === 1) {\n return \"A\"\n }\n if (element === 2) {\n return \"B\"\n }\n if (element === 3) {\n return \"C\"\n }\n if (element === 4) {\n return \"D\"\n }\n }\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getNavSteps'\n ]),\n getName() {\n return this.name\n || values['Distributions']['distributionList'][this.name - 1]['Mandatory']['dcat:accessURL'][0]['@id'];\n },\n },\n watch: {\n distributionIsCollapsed: {\n handler(newValue) {\n this.isCollapsed = newValue;\n },\n },\n },\n created() { },\n setup() {\n const {\n steps,\n activeStep,\n visitedSteps,\n previousStep,\n nextStep,\n stepPlugin,\n goToNextStep,\n goToPreviousStep,\n } = useDpiStepper();\n\n const checkStepValidity = (stepName) => {\n return (steps[stepName].errorCount > 0 || steps[stepName].blockingCount > 0) && visitedSteps.value.includes(stepName)\n }\n\n const library = markRaw({\n SelectControlledGroup,\n })\n\n return {\n steps,\n visitedSteps,\n activeStep,\n previousStep,\n nextStep,\n stepPlugin,\n checkStepValidity,\n goToNextStep,\n goToPreviousStep,\n library,\n }\n }\n});\n</script>\n\n<style></style>"],"names":["_sfc_main","defineComponent","InputPageStep","str","match","x","y","useWindowScroll","element","mapGetters","newValue","steps","activeStep","visitedSteps","previousStep","nextStep","stepPlugin","goToNextStep","goToPreviousStep","useDpiStepper","checkStepValidity","stepName","library","markRaw","SelectControlledGroup","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_11","_hoisted_13","_openBlock","_createElementBlock","_Fragment","_createVNode","_component_FormKit","_ctx","_withCtx","_createElementVNode","_hoisted_1","_createCommentVNode","_hoisted_2","_renderList","step","index","_normalizeClass","_toDisplayString","_cache","_createTextVNode","_hoisted_8","_hoisted_9","_hoisted_10","i","_component_InputPageStep","_component_FormKitSchema","_hoisted_12"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
32
32
|
};
|
|
33
33
|
}>> & Readonly<{}>, {
|
|
34
34
|
isCatalog: boolean;
|
|
35
|
-
isOperator: boolean;
|
|
36
35
|
show: boolean;
|
|
36
|
+
isOperator: boolean;
|
|
37
37
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
38
38
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropup.vue.mjs","sources":["../../../lib/data-provider-interface/components/Dropup.vue"],"sourcesContent":["<template>\n <div class=\"btn-group dropup\" v-if=\"(show && !isCatalog) || (show && isCatalog && isOperator)\">\n <button type=\"button\" class=\"dpi-menu-dropup-btn btn btn-default dropdown-toggle\" data-toggle=\"dropdown\"\n aria-haspopup=\"true\" aria-expanded=\"false\">\n {{ $t('message.dataupload.menu.'+ groupName ) }}<span class=\"caret\"></span>\n </button>\n <ul class=\"dropdown-menu\">\n <li v-for=\"item in groupItems\" :key=\"item.key\" :data-cy=\"item.key\">\n <!-- Menu items are either buttons or router-link -->\n <!-- depending if they have a 'to' or 'handler' property -->\n <component :is=\"item.handler ? 'a' : 'router-link'\" class=\"dropdown-item\" :class=\"{ 'disabled': item.disabled }\"\n :to=\"item.to || { name: 'Datasets' }\" :href=\"item.handler ? '#' : ''\"\n @click=\"item.handler ? item.handler() : null\">\n {{ $t('message.dataupload.menu.'+ item.name ) }}\n </component>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Dropup',\n props: {\n groupName: {\n type: String,\n },\n groupItems: {\n type: Array,\n },\n show: {\n type: Boolean,\n },\n isCatalog: {\n type: Boolean,\n },\n isOperator: {\n type: Boolean,\n }\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\nbutton.dpi-menu-dropup-btn {\n color: white;\n}\n</style>"],"names":["_sfc_main","_hoisted_3","$props","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createTextVNode","_toDisplayString","_ctx","_Fragment","_renderList","item","_createBlock","_resolveDynamicComponent","_normalizeClass"],"mappings":";;;AAqBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,IACR;AAAA,EACD;AACH
|
|
1
|
+
{"version":3,"file":"Dropup.vue.mjs","sources":["../../../lib/data-provider-interface/components/Dropup.vue"],"sourcesContent":["<template>\n <div class=\"btn-group dropup\" v-if=\"(show && !isCatalog) || (show && isCatalog && isOperator)\">\n <button type=\"button\" class=\"dpi-menu-dropup-btn btn btn-default dropdown-toggle\" data-toggle=\"dropdown\"\n aria-haspopup=\"true\" aria-expanded=\"false\">\n {{ $t('message.dataupload.menu.'+ groupName ) }}<span class=\"caret\"></span>\n </button>\n <ul class=\"dropdown-menu\">\n <li v-for=\"item in groupItems\" :key=\"item.key\" :data-cy=\"item.key\">\n <!-- Menu items are either buttons or router-link -->\n <!-- depending if they have a 'to' or 'handler' property -->\n <component :is=\"item.handler ? 'a' : 'router-link'\" class=\"dropdown-item\" :class=\"{ 'disabled': item.disabled }\"\n :to=\"item.to || { name: 'Datasets' }\" :href=\"item.handler ? '#' : ''\"\n @click=\"item.handler ? item.handler() : null\">\n {{ $t('message.dataupload.menu.'+ item.name ) }}\n </component>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'Dropup',\n props: {\n groupName: {\n type: String,\n },\n groupItems: {\n type: Array,\n },\n show: {\n type: Boolean,\n },\n isCatalog: {\n type: Boolean,\n },\n isOperator: {\n type: Boolean,\n }\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\nbutton.dpi-menu-dropup-btn {\n color: white;\n}\n</style>"],"names":["_sfc_main","_hoisted_3","_hoisted_4","$props","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createTextVNode","_toDisplayString","_ctx","_cache","_Fragment","_renderList","item","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createCommentVNode"],"mappings":";;;AAqBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,IACR;AAAA,EACD;AACH;EAxCA,KAAA;AAAA,EACO,OAAM;;EACD,MAAK;AAAA,EAAS,OAAM;AAAA,EAAsD,eAAY;AAAA,EAC5F,iBAAc;AAAA,EAAO,iBAAc;GAGjCC,IAAA,EAAA,OAAM,gBAAe,GAN7BC,IAAA,CAAA,SAAA;;AACuC,SAAAC,EAAA,SAASA,EAAS,aAAMA,UAAQA,EAAA,aAAaA,EAAU,cAA5FC,KAAAC,EAgBM,OAhBNC,GAgBM;AAAA,IAfJC,EAGS,UAHTC,GAGS;AAAA,MALbC,EAISC,EAAAC,EAAA,gCAA+BR,EAAS,UAAA,GAAA,CAAA;AAAA,sBAAKI,EAA2B,QAAA,EAArB,OAAM,QAAO,GAAA,MAAA,EAAA;AAAA;IAJzEK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAH,EAAA;AAAA,IAMIF,EAUK,MAVLN,GAUK;AAAA,OATHG,EAAA,EAAA,GAAAC,EAQKQ,GAfX,MAAAC,EAOyBX,EAAU,YAPnC,CAOiBY,YAAXV,EAQK,MAAA;AAAA,QAR2B,KAAKU,EAAK;AAAA,QAAM,WAASA,EAAK;AAAA;SAG5DX,EAAA,GAAAY,EAIYC,EAJIF,EAAK,UAAO,MAAA,aAAA,GAAA;AAAA,UAAwB,OAV5DG,EAUkE,CAAA,iBAAsC,EAAA,UAAAH,EAAK,SAAQ,CAAA,CAAA;AAAA,UAC1G,IAAIA,EAAK,MAAE,EAAA,MAAA,WAAA;AAAA,UAA2B,MAAMA,EAAK,UAAO,MAAA;AAAA,UACxD,gBAAOA,EAAK,UAAUA,EAAK,QAAO,IAAA;AAAA;UAZ7C,SAAAI,EAaU,MAAiD;AAAA,YAb3DV,EAAAC,EAaaC,EAAE,GAAA,6BAA6BI,EAAK,KAAI,GAAA,CAAA;AAAA;UAbrD,GAAA;AAAA;MAAA,GAAA,GAAAb,CAAA;;QAAAkB,EAAA,IAAA,EAAA;;;"}
|
|
@@ -29,8 +29,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
29
29
|
validExtensions: any;
|
|
30
30
|
}, {
|
|
31
31
|
getData: import('vuex').Computed;
|
|
32
|
-
getUserData: import('vuex').Computed;
|
|
33
32
|
getIsEditMode: import('vuex').Computed;
|
|
33
|
+
getUserData: import('vuex').Computed;
|
|
34
34
|
}, {
|
|
35
35
|
toggleUploadUrl(): void;
|
|
36
36
|
toggleUploadFileSwitch(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.vue.mjs","sources":["../../../lib/data-provider-interface/components/FileUpload.vue"],"sourcesContent":["<template>\n <div class=\"position-relative w-100 \">\n <FormKit name=\"mode\" validation=\"required\" type=\"text\" class=\"selectInputField formkit-inner \" readonly=\"readonly\"\n @click=\"triggerDropdown()\" :placeholder=\"t('message.dataupload.info.preferredInput')\" v-model=\"inputChoice\" :validation-messages=\"{\n required: t('message.dataupload.info.preferredInput'),\n }\" />\n <ul ref=\"fLoad\" v-if=\"drop.active\" class=\"selectListUpload fileuploadList\">\n <li @click=\"uploadFileSwitch = true; toggleUploadUrl()\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{$t('message.dataupload.datasets.conditional.fileupload')}}</li>\n <li @click=\"uploadURL = true; toggleUploadFileSwitch()\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{$t('message.dataupload.datasets.conditional.URL')}}</li>\n </ul>\n </div>\n <div class=\"w-100 position-relative\" v-if=\"uploadURL && !uploadFileSwitch\">\n\n <FormKit id=\"aUrlLink\" v-model=\"URLValue\" class=\"selectInputField formkit-inner\" type=\"url\" name=\"@id\" :placeholder=\"context.attrs.placeholder\"\n @input=\"saveUrl\" validation=\"required|url\" validation-visibility=\"live\" :validation-messages=\"{\n required: t('message.dataupload.datasets.conditional.URL'),\n url: t('message.dataupload.info.urlFormat')\n }\" />\n\n </div>\n <div v-if=\"uploadFileSwitch\" ref=\"fileupload\" class=\"p-3 w-100\"\n :class=\"`formkit-input-element formkit-input-element--${context.type}`\" :data-type=\"context.type\" v-bind=\"$attrs\">\n <input type=\"text\" v-model=\"context.model\" @blur=\"context.blurHandler\" hidden />\n <div class=\"file-div position-relative\">\n <input class=\"mt-3\" type=\"file\" id=\"aUrlFL\" name=\"fileUpload\" @change=\"validateFile($event)\"\n :accept=\"validExtensions\" :disabled=\"isLoading || !catalogId\">\n <div class=\"upload-feedback position-absolute d-flex\" style=\"right: 0\">\n <div v-if=\"isLoading\" class=\"lds-ring\">\n </div>\n <div v-if=\"success\"><i class=\"material-icons d-flex check-icon\">check_circle</i></div>\n <div v-if=\"fail\"><i class=\"material-icons d-flex close-icon\">error</i></div>\n </div>\n </div>\n <p class=\"dURLText my-3\" v-if=\"success\">{{ $t('message.metadata.downloadUrl') }}: <a :href=\"context.value?.['@id']\">{{\n context.value?.['@id'] }}</a></p>\n <div v-if=\"validExtensions && validExtensions.length\" class=\"allowedTypesWrapper\">\n <p class=\"errorSub my-3 d-flex \" v-if=\"!success\">Allowed types: </p>\n <div class=\"d-flex flex-wrap w-100\">\n <span v-for=\"types in validExtensions\" :key=\"types\" class=\"mr-1 mb-1 allowedFTypes \">\n {{ types }}\n </span>\n </div>\n\n </div>\n\n\n </div>\n\n</template>\n\n<script>\n/* eslint-disable consistent-return, no-unused-vars */\nimport { mapGetters, mapActions } from 'vuex';\nimport axios from 'axios';\nimport helper from '../utils/general-helper'\nimport { getNode } from '@formkit/core'\n\nimport { reactive, ref, onMounted, computed, defineComponent } from 'vue';\nimport { onClickOutside } from '@vueuse/core'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { FormKit, useFormKitNodeById } from '@formkit/vue';\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\n\nexport default defineComponent({\n props: {\n context: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n inputChoice: '',\n error: '',\n URLValue: '',\n uploadURL: false,\n uploadFileSwitch: false,\n checkifSet: false,\n isLoading: false,\n success: false,\n fail: false,\n \n validExtensions: this.$env.content.dataProviderInterface.uploadFileTypes?.split(',') || []\n };\n },\n computed: {\n\n ...mapGetters('auth', [\n 'getUserData',\n 'getIsEditMode'\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n toggleUploadUrl() {\n this.inputChoice = this.t('message.dataupload.datasets.conditional.fileupload')\n if (this.uploadURL) { this.uploadURL = !this.uploadURL }\n },\n toggleUploadFileSwitch() {\n this.inputChoice = this.t('message.dataupload.datasets.conditional.URL')\n if (this.uploadFileSwitch) { this.uploadFileSwitch = !this.uploadFileSwitch }\n },\n validateFile(event) {\n const file = event.target.files[0];\n const fileExtension = '.' + file.name.split('.').pop().toLowerCase();\n if (this.validExtensions && this.validExtensions.length) {\n if (!this.validExtensions.includes(fileExtension)) {\n console.log('Wrong filetype');\n } else {\n this.uploadOrReplaceFile({ file: event.target.files[0] })\n }\n } else {\n this.error = \"\"\n this.uploadOrReplaceFile({ file: event.target.files[0] })\n }\n },\n async saveUrl() {\n\n if (this.URLValue.includes('http://') || this.URLValue.includes('https://')) {\n await this.context.node.input({ '@id': this.URLValue, 'mode': this.inputChoice })\n }\n else await this.context.node.input({ '@id': 'https://' + this.URLValue, 'mode': this.inputChoice })\n\n },\n checkIfPresent() {\n // console.log(this.context.value['@id']);\n if (this.context.value['@id']) {\n // console.log(this.context.value['@id']);\n this.URLValue = this.context.value['@id']\n return true\n }\n else false\n },\n // finds the parent input group of a given element.\n findParentInputGroupOfElement(element) {\n // Start with the given element.\n let currentElement = element;\n\n // Traverse the DOM tree upwards.\n while (currentElement) {\n // If the current element is an input group, return it.\n if (currentElement.classList.contains('formkit-input-group-repeatable')) {\n return currentElement;\n }\n // If not, move to the parent element.\n currentElement = currentElement.parentElement;\n }\n\n // If no input group was found, return null.\n return null;\n },\n // finds the index of the distribution access URL based on the root of this component.\n findDistributionAccessUrlIndex() {\n // todo: find a more stable way to find the index of the distribution access URL.\n // this way uses the DOM tree, which is not stable.\n\n // Start at the root of this component.\n const rootElement = this.$refs.fileupload;\n\n // Find the parent input group of the root element.\n const parentInputGroup = this.findParentInputGroupOfElement(rootElement);\n if (!parentInputGroup) return null;\n\n // Get the parent element of all input groups.\n const parentOfAllInputGroups = parentInputGroup.parentElement;\n const allInputGroupsNodeList = parentOfAllInputGroups.querySelectorAll('.formkit-input-group-repeatable');\n const allInputGroupsArray = Array.from(allInputGroupsNodeList);\n\n // Find the index of the parent input group within the array of all input groups.\n const indexOfParentInputGroup = allInputGroupsArray.indexOf(parentInputGroup);\n\n return indexOfParentInputGroup;\n },\n async uploadOrReplaceFile({ file }) {\n\n const replaceEnabled = this.$env?.content?.dataProviderInterface?.enableFileUploadReplace || false;\n const wantsToReplace = this.$route.query?.edit ?? false;\n\n if (replaceEnabled && wantsToReplace) {\n const distributionIndexToReplace = this.$route.query?.edit;\n const fileIndexToReplace = this.findDistributionAccessUrlIndex();\n\n const targetDistribution = this.getData('distributions')?.[distributionIndexToReplace];\n const targetFile = targetDistribution?.['dcat:accessURL']?.[fileIndexToReplace];\n const accessUrl = targetFile?.['@id'];\n if (accessUrl) {\n const fileUploadUrl = this.$env.api.fileUploadUrl;\n\n const fileId = helper.getFileIdByAccessUrl({ accessUrl, fileUploadUrl })\n\n return await this.uploadFile(file, {\n method: 'PUT',\n url: `${this.$env.api.fileUploadUrl}data/${fileId}?catalog=${this.catalogId}`,\n });\n }\n\n }\n\n return await this.uploadFile(file);\n },\n async uploadFile(file, options = {}) {\n\n this.isLoading = true;\n\n const form = new FormData();\n form.append('file', file);\n\n const catalog = this.catalogId;\n const token = this.getUserData.rtpToken;\n\n const resolvedOptions = {\n method: 'POST',\n url: `${this.$env.api.fileUploadUrl}data?catalog=${catalog}`,\n ...options,\n };\n\n const requestOptions = {\n method: resolvedOptions.method,\n url: resolvedOptions.url,\n headers: {\n 'Content-Type': 'multipart/form-data',\n Authorization: `Bearer ${token}`,\n },\n data: form,\n };\n\n try {\n\n const result = await axios.request(requestOptions);\n const path = result.data.result.location.substring(result.data.result.location.indexOf('/') + 1);\n this.isLoading = false;\n this.success = true;\n this.context.node.input({ '@id': `${this.$env.api.fileUploadUrl}${path}`, 'mode': this.inputChoice })\n\n } catch (err) {\n\n this.isLoading = false;\n this.fail = true;\n console.error(err); // eslint-disable-line\n }\n },\n },\n mounted() {\n\n this.$nextTick(function () {\n\n if (this.context.value['@id']) {\n this.uploadURL = true\n this.URLValue = this.context.value['@id']\n this.inputChoice = \"Provide an URL\"\n return true\n }\n else false\n })\n },\n setup() {\n const { t } = useI18n();\n const env = useRuntimeEnv();\n \n\n\n var drop = reactive({\n active: false,\n })\n\n\n const fLoad = ref('fload');\n\n onClickOutside(fLoad, event => {\n drop.active = false\n })\n function triggerDropdown(e) {\n drop.active = !drop.active\n }\n\n const dpiContext = useDpiContext();\n\n const catalogIdFromFormkit = useFormKitNodeById('catalog')\n\n const catalogId = computed(() =>\n // Extract from catalog input field\n catalogIdFromFormkit?.value.value\n // Try to recover if catalog is empty for some reason\n || dpiContext.value.edit?.catalog \n );\n\n return {\n drop,\n onClickOutside,\n triggerDropdown,\n t,\n catalogId,\n };\n },\n});\n</script>\n\n<style lang=\"scss\" scoped>\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';\n.dURLText {}\n\n\n.accessUrl {\n .formkit-outer {}\n}\n\n.file-div {\n display: flex;\n align-items: center;\n}\n\n.upload-feedback {\n padding: 10px;\n}\n\n/*** MATERIAL ICONS ***/\n%modal-icon {\n font-size: 20px;\n cursor: default;\n}\n\n.check-icon {\n @extend %modal-icon;\n color: #28a745;\n}\n\n.close-icon {\n @extend %modal-icon;\n color: red;\n}\n\n.lds-ring {\n display: inline-block;\n position: relative;\n width: 30px;\n height: 30px;\n}\n\n.lds-ring div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n right: 0;\n width: 30px;\n height: 30px;\n border: 8px solid lightgray;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: lightgray transparent transparent transparent;\n}\n\n.lds-ring div:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.lds-ring div:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.lds-ring div:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n.error {\n color: red;\n}\n\n.errorSub {\n color: black;\n}\n\n@keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.allowedFTypes {\n padding: 0.5rem;\n border-radius: 5px;\n border: 1px solid lightgrey;\n}\n\n.allowedTypesWrapper {\n max-width: 100%;\n display: flex;\n flex-wrap: wrap;\n}\n\n.fileuploadList {\n width: 96.7%;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_a","mapGetters","mapActions","event","fileExtension","element","currentElement","rootElement","parentInputGroup","allInputGroupsNodeList","file","replaceEnabled","_c","_b","wantsToReplace","_d","distributionIndexToReplace","_e","fileIndexToReplace","targetDistribution","_f","targetFile","_g","accessUrl","fileUploadUrl","fileId","helper","options","form","catalog","token","resolvedOptions","requestOptions","result","axios","path","err","useI18n","useRuntimeEnv","drop","reactive","fLoad","ref","onClickOutside","triggerDropdown","e","dpiContext","useDpiContext","catalogIdFromFormkit","useFormKitNodeById","catalogId","computed","_hoisted_1","_hoisted_5","_hoisted_15","_createElementVNode","_createVNode","_component_FormKit","_ctx","$event","_openBlock","_createElementBlock","_hoisted_2","_cache","_hoisted_3","_mergeProps","args","_vModelText","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_createTextVNode","_toDisplayString","_hoisted_12","_hoisted_13","_hoisted_14","_Fragment","_renderList","types"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileUpload.vue.mjs","sources":["../../../lib/data-provider-interface/components/FileUpload.vue"],"sourcesContent":["<template>\n <div class=\"position-relative w-100 \">\n <FormKit name=\"mode\" validation=\"required\" type=\"text\" class=\"selectInputField formkit-inner \" readonly=\"readonly\"\n @click=\"triggerDropdown()\" :placeholder=\"t('message.dataupload.info.preferredInput')\" v-model=\"inputChoice\" :validation-messages=\"{\n required: t('message.dataupload.info.preferredInput'),\n }\" />\n <ul ref=\"fLoad\" v-if=\"drop.active\" class=\"selectListUpload fileuploadList\">\n <li @click=\"uploadFileSwitch = true; toggleUploadUrl()\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{$t('message.dataupload.datasets.conditional.fileupload')}}</li>\n <li @click=\"uploadURL = true; toggleUploadFileSwitch()\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{$t('message.dataupload.datasets.conditional.URL')}}</li>\n </ul>\n </div>\n <div class=\"w-100 position-relative\" v-if=\"uploadURL && !uploadFileSwitch\">\n\n <FormKit id=\"aUrlLink\" v-model=\"URLValue\" class=\"selectInputField formkit-inner\" type=\"url\" name=\"@id\" :placeholder=\"context.attrs.placeholder\"\n @input=\"saveUrl\" validation=\"required|url\" validation-visibility=\"live\" :validation-messages=\"{\n required: t('message.dataupload.datasets.conditional.URL'),\n url: t('message.dataupload.info.urlFormat')\n }\" />\n\n </div>\n <div v-if=\"uploadFileSwitch\" ref=\"fileupload\" class=\"p-3 w-100\"\n :class=\"`formkit-input-element formkit-input-element--${context.type}`\" :data-type=\"context.type\" v-bind=\"$attrs\">\n <input type=\"text\" v-model=\"context.model\" @blur=\"context.blurHandler\" hidden />\n <div class=\"file-div position-relative\">\n <input class=\"mt-3\" type=\"file\" id=\"aUrlFL\" name=\"fileUpload\" @change=\"validateFile($event)\"\n :accept=\"validExtensions\" :disabled=\"isLoading || !catalogId\">\n <div class=\"upload-feedback position-absolute d-flex\" style=\"right: 0\">\n <div v-if=\"isLoading\" class=\"lds-ring\">\n </div>\n <div v-if=\"success\"><i class=\"material-icons d-flex check-icon\">check_circle</i></div>\n <div v-if=\"fail\"><i class=\"material-icons d-flex close-icon\">error</i></div>\n </div>\n </div>\n <p class=\"dURLText my-3\" v-if=\"success\">{{ $t('message.metadata.downloadUrl') }}: <a :href=\"context.value?.['@id']\">{{\n context.value?.['@id'] }}</a></p>\n <div v-if=\"validExtensions && validExtensions.length\" class=\"allowedTypesWrapper\">\n <p class=\"errorSub my-3 d-flex \" v-if=\"!success\">Allowed types: </p>\n <div class=\"d-flex flex-wrap w-100\">\n <span v-for=\"types in validExtensions\" :key=\"types\" class=\"mr-1 mb-1 allowedFTypes \">\n {{ types }}\n </span>\n </div>\n\n </div>\n\n\n </div>\n\n</template>\n\n<script>\n/* eslint-disable consistent-return, no-unused-vars */\nimport { mapGetters, mapActions } from 'vuex';\nimport axios from 'axios';\nimport helper from '../utils/general-helper'\nimport { getNode } from '@formkit/core'\n\nimport { reactive, ref, onMounted, computed, defineComponent } from 'vue';\nimport { onClickOutside } from '@vueuse/core'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { FormKit, useFormKitNodeById } from '@formkit/vue';\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\n\nexport default defineComponent({\n props: {\n context: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n inputChoice: '',\n error: '',\n URLValue: '',\n uploadURL: false,\n uploadFileSwitch: false,\n checkifSet: false,\n isLoading: false,\n success: false,\n fail: false,\n \n validExtensions: this.$env.content.dataProviderInterface.uploadFileTypes?.split(',') || []\n };\n },\n computed: {\n\n ...mapGetters('auth', [\n 'getUserData',\n 'getIsEditMode'\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n toggleUploadUrl() {\n this.inputChoice = this.t('message.dataupload.datasets.conditional.fileupload')\n if (this.uploadURL) { this.uploadURL = !this.uploadURL }\n },\n toggleUploadFileSwitch() {\n this.inputChoice = this.t('message.dataupload.datasets.conditional.URL')\n if (this.uploadFileSwitch) { this.uploadFileSwitch = !this.uploadFileSwitch }\n },\n validateFile(event) {\n const file = event.target.files[0];\n const fileExtension = '.' + file.name.split('.').pop().toLowerCase();\n if (this.validExtensions && this.validExtensions.length) {\n if (!this.validExtensions.includes(fileExtension)) {\n console.log('Wrong filetype');\n } else {\n this.uploadOrReplaceFile({ file: event.target.files[0] })\n }\n } else {\n this.error = \"\"\n this.uploadOrReplaceFile({ file: event.target.files[0] })\n }\n },\n async saveUrl() {\n\n if (this.URLValue.includes('http://') || this.URLValue.includes('https://')) {\n await this.context.node.input({ '@id': this.URLValue, 'mode': this.inputChoice })\n }\n else await this.context.node.input({ '@id': 'https://' + this.URLValue, 'mode': this.inputChoice })\n\n },\n checkIfPresent() {\n // console.log(this.context.value['@id']);\n if (this.context.value['@id']) {\n // console.log(this.context.value['@id']);\n this.URLValue = this.context.value['@id']\n return true\n }\n else false\n },\n // finds the parent input group of a given element.\n findParentInputGroupOfElement(element) {\n // Start with the given element.\n let currentElement = element;\n\n // Traverse the DOM tree upwards.\n while (currentElement) {\n // If the current element is an input group, return it.\n if (currentElement.classList.contains('formkit-input-group-repeatable')) {\n return currentElement;\n }\n // If not, move to the parent element.\n currentElement = currentElement.parentElement;\n }\n\n // If no input group was found, return null.\n return null;\n },\n // finds the index of the distribution access URL based on the root of this component.\n findDistributionAccessUrlIndex() {\n // todo: find a more stable way to find the index of the distribution access URL.\n // this way uses the DOM tree, which is not stable.\n\n // Start at the root of this component.\n const rootElement = this.$refs.fileupload;\n\n // Find the parent input group of the root element.\n const parentInputGroup = this.findParentInputGroupOfElement(rootElement);\n if (!parentInputGroup) return null;\n\n // Get the parent element of all input groups.\n const parentOfAllInputGroups = parentInputGroup.parentElement;\n const allInputGroupsNodeList = parentOfAllInputGroups.querySelectorAll('.formkit-input-group-repeatable');\n const allInputGroupsArray = Array.from(allInputGroupsNodeList);\n\n // Find the index of the parent input group within the array of all input groups.\n const indexOfParentInputGroup = allInputGroupsArray.indexOf(parentInputGroup);\n\n return indexOfParentInputGroup;\n },\n async uploadOrReplaceFile({ file }) {\n\n const replaceEnabled = this.$env?.content?.dataProviderInterface?.enableFileUploadReplace || false;\n const wantsToReplace = this.$route.query?.edit ?? false;\n\n if (replaceEnabled && wantsToReplace) {\n const distributionIndexToReplace = this.$route.query?.edit;\n const fileIndexToReplace = this.findDistributionAccessUrlIndex();\n\n const targetDistribution = this.getData('distributions')?.[distributionIndexToReplace];\n const targetFile = targetDistribution?.['dcat:accessURL']?.[fileIndexToReplace];\n const accessUrl = targetFile?.['@id'];\n if (accessUrl) {\n const fileUploadUrl = this.$env.api.fileUploadUrl;\n\n const fileId = helper.getFileIdByAccessUrl({ accessUrl, fileUploadUrl })\n\n return await this.uploadFile(file, {\n method: 'PUT',\n url: `${this.$env.api.fileUploadUrl}data/${fileId}?catalog=${this.catalogId}`,\n });\n }\n\n }\n\n return await this.uploadFile(file);\n },\n async uploadFile(file, options = {}) {\n\n this.isLoading = true;\n\n const form = new FormData();\n form.append('file', file);\n\n const catalog = this.catalogId;\n const token = this.getUserData.rtpToken;\n\n const resolvedOptions = {\n method: 'POST',\n url: `${this.$env.api.fileUploadUrl}data?catalog=${catalog}`,\n ...options,\n };\n\n const requestOptions = {\n method: resolvedOptions.method,\n url: resolvedOptions.url,\n headers: {\n 'Content-Type': 'multipart/form-data',\n Authorization: `Bearer ${token}`,\n },\n data: form,\n };\n\n try {\n\n const result = await axios.request(requestOptions);\n const path = result.data.result.location.substring(result.data.result.location.indexOf('/') + 1);\n this.isLoading = false;\n this.success = true;\n this.context.node.input({ '@id': `${this.$env.api.fileUploadUrl}${path}`, 'mode': this.inputChoice })\n\n } catch (err) {\n\n this.isLoading = false;\n this.fail = true;\n console.error(err); // eslint-disable-line\n }\n },\n },\n mounted() {\n\n this.$nextTick(function () {\n\n if (this.context.value['@id']) {\n this.uploadURL = true\n this.URLValue = this.context.value['@id']\n this.inputChoice = \"Provide an URL\"\n return true\n }\n else false\n })\n },\n setup() {\n const { t } = useI18n();\n const env = useRuntimeEnv();\n \n\n\n var drop = reactive({\n active: false,\n })\n\n\n const fLoad = ref('fload');\n\n onClickOutside(fLoad, event => {\n drop.active = false\n })\n function triggerDropdown(e) {\n drop.active = !drop.active\n }\n\n const dpiContext = useDpiContext();\n\n const catalogIdFromFormkit = useFormKitNodeById('catalog')\n\n const catalogId = computed(() =>\n // Extract from catalog input field\n catalogIdFromFormkit?.value.value\n // Try to recover if catalog is empty for some reason\n || dpiContext.value.edit?.catalog \n );\n\n return {\n drop,\n onClickOutside,\n triggerDropdown,\n t,\n catalogId,\n };\n },\n});\n</script>\n\n<style lang=\"scss\" scoped>\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';\n.dURLText {}\n\n\n.accessUrl {\n .formkit-outer {}\n}\n\n.file-div {\n display: flex;\n align-items: center;\n}\n\n.upload-feedback {\n padding: 10px;\n}\n\n/*** MATERIAL ICONS ***/\n%modal-icon {\n font-size: 20px;\n cursor: default;\n}\n\n.check-icon {\n @extend %modal-icon;\n color: #28a745;\n}\n\n.close-icon {\n @extend %modal-icon;\n color: red;\n}\n\n.lds-ring {\n display: inline-block;\n position: relative;\n width: 30px;\n height: 30px;\n}\n\n.lds-ring div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n right: 0;\n width: 30px;\n height: 30px;\n border: 8px solid lightgray;\n border-radius: 50%;\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: lightgray transparent transparent transparent;\n}\n\n.lds-ring div:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.lds-ring div:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.lds-ring div:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n.error {\n color: red;\n}\n\n.errorSub {\n color: black;\n}\n\n@keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.allowedFTypes {\n padding: 0.5rem;\n border-radius: 5px;\n border: 1px solid lightgrey;\n}\n\n.allowedTypesWrapper {\n max-width: 100%;\n display: flex;\n flex-wrap: wrap;\n}\n\n.fileuploadList {\n width: 96.7%;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_a","mapGetters","mapActions","event","fileExtension","element","currentElement","rootElement","parentInputGroup","allInputGroupsNodeList","file","replaceEnabled","_c","_b","wantsToReplace","_d","distributionIndexToReplace","_e","fileIndexToReplace","targetDistribution","_f","targetFile","_g","accessUrl","fileUploadUrl","fileId","helper","options","form","catalog","token","resolvedOptions","requestOptions","result","axios","path","err","useI18n","useRuntimeEnv","drop","reactive","fLoad","ref","onClickOutside","triggerDropdown","e","dpiContext","useDpiContext","catalogIdFromFormkit","useFormKitNodeById","catalogId","computed","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_12","_hoisted_15","_openBlock","_createElementBlock","_Fragment","_createElementVNode","_createVNode","_component_FormKit","_ctx","_cache","$event","_createTextVNode","_hoisted_2","_createCommentVNode","_hoisted_3","_mergeProps","args","_vModelText","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","_hoisted_13","_hoisted_14","_renderList","types"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoSlot.vue.mjs","sources":["../../../lib/data-provider-interface/components/InfoSlot.vue"],"sourcesContent":["<template>\n <label :for=\"context.id\" class=\"w-100\">\n <button\n class=\"btn p-0 w-100 d-flex align-items-center justify-content-between\"\n data-cy=\"collapsible-input-group-button\"\n @click.prevent.stop=\"toggleCollapse\"\n >\n <div class=\"\">\n <span class=\"form-label\">{{ context.label }}</span>\n <a v-if=\"info\" class=\"infoButton\"><i class=\"material-icons\" :title=\"info\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">info</i>\n </a>\n </div>\n <i\n v-if=\"!context.isSubField()\"\n class=\"material-icons\">\n {{ isCollapsed ? 'expand_more' : 'expand_less' }}\n </i>\n </button>\n </label>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport {\n has,\n isArray,\n isEmpty,\n} from 'lodash';\nconst COLLAPSED_CLASS_NAME = 'collapsed';\n\nexport default {\n data: () => ({\n isCollapsed: false,\n }),\n props: {\n context: {\n type: Object,\n required: true,\n },\n info: {\n type: [String, Boolean],\n default: false,\n },\n collapsed: {\n // if true, the fieldset will be collapsed by default\n type: Boolean,\n default: false,\n },\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n propertyIsEmpty() {\n let property;\n let data = this.getData(this.$route.params.property);\n if (this.$route.params.property === 'distributions') data = data[this.$route.params.id];\n\n property = data[this.context.name];\n\n if (!isEmpty(property)) {\n if (has(property, 'skos:exactMatch') && has(property['skos:exactMatch'], '@id') && isEmpty(property['skos:exactMatch']['@id'])) return true\n if (has(property, '@language') && has(property, '@value')) return isEmpty(property['@value']);\n if (isArray(property)) {\n return property\n .map(el => {\n if (has(el, '@language') && has(el, '@value') && isEmpty(el['@value'])) return true;\n if (!isEmpty(el)) return false;\n return true;\n })\n .reduce((a,b) => {\n return a && b;\n }, true);\n }\n return false;\n } else return true;\n },\n },\n mounted() {\n if (this.collapsed && this.propertyIsEmpty) {\n this.toggleCollapse();\n }\n },\n methods: {\n toggleCollapse() {\n // Collapse the input fields using DOM manipulation.\n // todo: find a more elegant way to do this using vue.\n\n const element = this.$el;\n for (const sibling of element.parentNode.children) {\n // Siblings only with the exception of elements with class=\"formkit-input-help\"\n if (sibling !== element && !sibling.classList.contains('formkit-input-help')) {\n // toggle display:none!important on sibling\n sibling.classList.toggle('d-none');\n }\n }\n // add collapse class to the element\n element.parentNode.classList.toggle(COLLAPSED_CLASS_NAME);\n this.isCollapsed = !this.isCollapsed;\n },\n },\n};\n</script>\n\n<style>\n .collapsed .d-none {\n display: none !important;\n }\n</style>\n\n<style scoped>\n.infoButton{\n border-radius: 5px;\n cursor: pointer;\n}\n\n.infoButton .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-left: 5px;\n margin-bottom: 1px;\n}\n\n.form-label {\n font-size: 20px;\n}\n</style>\n"],"names":["COLLAPSED_CLASS_NAME","_sfc_main","mapGetters","property","data","isEmpty","has","isArray","el","a","b","element","sibling","_hoisted_2","_hoisted_3","_createElementBlock","$props","_createElementVNode","$options","args","_toDisplayString","_openBlock","_hoisted_4","
|
|
1
|
+
{"version":3,"file":"InfoSlot.vue.mjs","sources":["../../../lib/data-provider-interface/components/InfoSlot.vue"],"sourcesContent":["<template>\n <label :for=\"context.id\" class=\"w-100\">\n <button\n class=\"btn p-0 w-100 d-flex align-items-center justify-content-between\"\n data-cy=\"collapsible-input-group-button\"\n @click.prevent.stop=\"toggleCollapse\"\n >\n <div class=\"\">\n <span class=\"form-label\">{{ context.label }}</span>\n <a v-if=\"info\" class=\"infoButton\"><i class=\"material-icons\" :title=\"info\"\n data-toggle=\"tooltip\"\n data-placement=\"top\">info</i>\n </a>\n </div>\n <i\n v-if=\"!context.isSubField()\"\n class=\"material-icons\">\n {{ isCollapsed ? 'expand_more' : 'expand_less' }}\n </i>\n </button>\n </label>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport {\n has,\n isArray,\n isEmpty,\n} from 'lodash';\nconst COLLAPSED_CLASS_NAME = 'collapsed';\n\nexport default {\n data: () => ({\n isCollapsed: false,\n }),\n props: {\n context: {\n type: Object,\n required: true,\n },\n info: {\n type: [String, Boolean],\n default: false,\n },\n collapsed: {\n // if true, the fieldset will be collapsed by default\n type: Boolean,\n default: false,\n },\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n propertyIsEmpty() {\n let property;\n let data = this.getData(this.$route.params.property);\n if (this.$route.params.property === 'distributions') data = data[this.$route.params.id];\n\n property = data[this.context.name];\n\n if (!isEmpty(property)) {\n if (has(property, 'skos:exactMatch') && has(property['skos:exactMatch'], '@id') && isEmpty(property['skos:exactMatch']['@id'])) return true\n if (has(property, '@language') && has(property, '@value')) return isEmpty(property['@value']);\n if (isArray(property)) {\n return property\n .map(el => {\n if (has(el, '@language') && has(el, '@value') && isEmpty(el['@value'])) return true;\n if (!isEmpty(el)) return false;\n return true;\n })\n .reduce((a,b) => {\n return a && b;\n }, true);\n }\n return false;\n } else return true;\n },\n },\n mounted() {\n if (this.collapsed && this.propertyIsEmpty) {\n this.toggleCollapse();\n }\n },\n methods: {\n toggleCollapse() {\n // Collapse the input fields using DOM manipulation.\n // todo: find a more elegant way to do this using vue.\n\n const element = this.$el;\n for (const sibling of element.parentNode.children) {\n // Siblings only with the exception of elements with class=\"formkit-input-help\"\n if (sibling !== element && !sibling.classList.contains('formkit-input-help')) {\n // toggle display:none!important on sibling\n sibling.classList.toggle('d-none');\n }\n }\n // add collapse class to the element\n element.parentNode.classList.toggle(COLLAPSED_CLASS_NAME);\n this.isCollapsed = !this.isCollapsed;\n },\n },\n};\n</script>\n\n<style>\n .collapsed .d-none {\n display: none !important;\n }\n</style>\n\n<style scoped>\n.infoButton{\n border-radius: 5px;\n cursor: pointer;\n}\n\n.infoButton .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-left: 5px;\n margin-bottom: 1px;\n}\n\n.form-label {\n font-size: 20px;\n}\n</style>\n"],"names":["COLLAPSED_CLASS_NAME","_sfc_main","mapGetters","property","data","isEmpty","has","isArray","el","a","b","element","sibling","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_5","_createElementBlock","$props","_createElementVNode","_cache","_withModifiers","$options","args","_toDisplayString","_createTextVNode","_openBlock","_hoisted_4","_createCommentVNode","_hoisted_6","_ctx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputPageStep.vue.mjs","sources":["../../../lib/data-provider-interface/components/InputPageStep.vue"],"sourcesContent":["<template>\n <section :class=\"{ activeSection: isActive }\" v-show=\"isActive\">\n <FormKit type=\"group\" :id=\"props.name\" :name=\"props.name\" :ref=\"props.name\">\n <slot />\n </FormKit>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from 'vue';\nimport { dpiStepperKey } from '../utils/injectionKeys';\n\nconst props = defineProps<{\n name: string;\n}>();\n\nconst dpiStepper = inject(dpiStepperKey);\n\nif (!dpiStepper) {\n throw new Error('dpiStepper is not provided. Please make sure to use this component inside InputPage');\n}\n\ndpiStepper.registerStep(props.name);\n\nconst isActive = computed(() => dpiStepper.activeStep.value === props.name);\n\nconst {\n activeStep,\n} = dpiStepper;\n</script>\n\n<style scoped></style>"],"names":["props","__props","dpiStepper","inject","dpiStepperKey","isActive","computed"
|
|
1
|
+
{"version":3,"file":"InputPageStep.vue.mjs","sources":["../../../lib/data-provider-interface/components/InputPageStep.vue"],"sourcesContent":["<template>\n <section :class=\"{ activeSection: isActive }\" v-show=\"isActive\">\n <FormKit type=\"group\" :id=\"props.name\" :name=\"props.name\" :ref=\"props.name\">\n <slot />\n </FormKit>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from 'vue';\nimport { dpiStepperKey } from '../utils/injectionKeys';\n\nconst props = defineProps<{\n name: string;\n}>();\n\nconst dpiStepper = inject(dpiStepperKey);\n\nif (!dpiStepper) {\n throw new Error('dpiStepper is not provided. Please make sure to use this component inside InputPage');\n}\n\ndpiStepper.registerStep(props.name);\n\nconst isActive = computed(() => dpiStepper.activeStep.value === props.name);\n\nconst {\n activeStep,\n} = dpiStepper;\n</script>\n\n<style scoped></style>"],"names":["props","__props","dpiStepper","inject","dpiStepperKey","isActive","computed"],"mappings":";;;;;;;;AAYA,UAAMA,IAAQC,GAIRC,IAAaC,EAAOC,CAAa;AAEvC,QAAI,CAACF;AACG,YAAA,IAAI,MAAM,qFAAqF;AAG5F,IAAAA,EAAA,aAAaF,EAAM,IAAI;AAElC,UAAMK,IAAWC,EAAS,MAAMJ,EAAW,WAAW,UAAUF,EAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageSelector.vue.mjs","sources":["../../../lib/data-provider-interface/components/LanguageSelector.vue"],"sourcesContent":["<!-- LANGUAGE SELECTOR -->\n<template>\n <span class=\"d-inline-block\">\n <select v-model=\"locale\">\n <option v-for=\"lang in Object.keys(languages)\" :key=\"lang\" :value=\"lang\">{{ languages[lang] }}</option>\n </select>\n </span>\n</template>\n \n <script>\n import { useVModel } from '@vueuse/core';\nimport { defineComponent } from 'vue';\n\n export default defineComponent({\n name: 'LanguageSelector',\n data() {\n return {\n languages: {\n bg: 'Български',\n cs: 'čeština',\n da: 'dansk',\n de: 'Deutsch',\n el: 'Ελληνικά',\n en: 'English',\n es: 'español',\n et: 'eesti',\n fr: 'français',\n ga: 'Gaeilge',\n hr: 'Hrvatski',\n hu: 'Magyar',\n it: 'italiano',\n lt: 'lietuvių',\n lv: 'latviešu',\n mt: 'Malti',\n nl: 'Nederlands',\n pl: 'polski',\n pt: 'português',\n ro: 'română',\n sk: 'slovenčina',\n sl: 'slovenščina',\n fi: 'suomi',\n sv: 'svenska',\n },\n };\n },\n props: {\n modelValue: {\n type: String,\n default: 'en',\n },\n },\n created() {},\n setup(props, { emit }) {\n const locale = useVModel(props, 'modelValue', emit, { passive: true });\n\n return { locale }\n }\n });\n </script>\n \n <style lang=\"scss\" scoped>\n </style>\n "],"names":["_sfc_main","defineComponent","props","emit","useVModel","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","
|
|
1
|
+
{"version":3,"file":"LanguageSelector.vue.mjs","sources":["../../../lib/data-provider-interface/components/LanguageSelector.vue"],"sourcesContent":["<!-- LANGUAGE SELECTOR -->\n<template>\n <span class=\"d-inline-block\">\n <select v-model=\"locale\">\n <option v-for=\"lang in Object.keys(languages)\" :key=\"lang\" :value=\"lang\">{{ languages[lang] }}</option>\n </select>\n </span>\n</template>\n \n <script>\n import { useVModel } from '@vueuse/core';\nimport { defineComponent } from 'vue';\n\n export default defineComponent({\n name: 'LanguageSelector',\n data() {\n return {\n languages: {\n bg: 'Български',\n cs: 'čeština',\n da: 'dansk',\n de: 'Deutsch',\n el: 'Ελληνικά',\n en: 'English',\n es: 'español',\n et: 'eesti',\n fr: 'français',\n ga: 'Gaeilge',\n hr: 'Hrvatski',\n hu: 'Magyar',\n it: 'italiano',\n lt: 'lietuvių',\n lv: 'latviešu',\n mt: 'Malti',\n nl: 'Nederlands',\n pl: 'polski',\n pt: 'português',\n ro: 'română',\n sk: 'slovenčina',\n sl: 'slovenščina',\n fi: 'suomi',\n sv: 'svenska',\n },\n };\n },\n props: {\n modelValue: {\n type: String,\n default: 'en',\n },\n },\n created() {},\n setup(props, { emit }) {\n const locale = useVModel(props, 'modelValue', emit, { passive: true });\n\n return { locale }\n }\n });\n </script>\n \n <style lang=\"scss\" scoped>\n </style>\n "],"names":["_sfc_main","defineComponent","props","emit","useVModel","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_cache","$event","_ctx","_Fragment","_renderList","lang"],"mappings":";;;AAaE,MAAKA,IAAaC,EAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AACL,WAAO;AAAA,MACL,WAAW;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL;AAAA;EAEJ;AAAA,EACD,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACF;AAAA,EACD,UAAU;AAAA,EAAE;AAAA,EACZ,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AAGrB,WAAO,EAAE,QAFMC,EAAUF,GAAO,cAAcC,GAAM,EAAE,SAAS,GAAK,CAAC,EAErD;AAAA,EAClB;AACF,CAAC,GAvDOE,IAAA,EAAA,OAAM,iBAAgB,GAFhCC,IAAA,CAAA,OAAA;;AAEI,SAAAC,EAAA,GAAAC,EAIO,QAJPH,GAIO;AAAA,MAHHI,EAES,UAAA;AAAA,MALjB,uBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAGyBC,EAAM,SAAAD;AAAA;cACnBH,EAAuGK,GAAA,MAJnHC,EAImC,OAAO,KAAKF,EAAA,SAAS,GAJxD,CAI2BG,YAAfP,EAAuG,UAAA;AAAA,QAAvD,KAAKO;AAAA,QAAO,OAAOA;AAAA,WAASH,EAAS,UAACG,CAAI,CAJtG,GAAA,GAAAT,CAAA;;UAGyBM,EAAM,MAAA;AAAA;;;;"}
|