@piveau/piveau-hub-ui-modules 4.6.49 → 4.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PvBadge/PvBadge.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +2 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxDescription.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFooter.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFormats.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPage.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs +6 -5
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs.map +1 -1
- package/dist/catalogues/Catalogues.vue.mjs.map +1 -1
- package/dist/catalogues/cataloguesFacets/CataloguesFacets.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationModal.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationTable.vue.mjs.map +1 -1
- package/dist/composables/useRuntimeEnv.d.ts +2 -2
- package/dist/configurations/config-schema/apiSchema.mjs +1 -1
- package/dist/configurations/config-schema/authenticationSchema.mjs +1 -1
- package/dist/configurations/config-schema/configSchema.d.ts +5 -5
- package/dist/configurations/config-schema/configSchema.mjs +18 -18
- package/dist/configurations/config-schema/contentSchema.mjs +1 -1
- package/dist/configurations/config-schema/languagesSchema.d.ts +2 -2
- package/dist/configurations/config-schema/languagesSchema.mjs +1 -1
- package/dist/configurations/config-schema/metadataSchema.mjs +1 -1
- package/dist/configurations/config-schema/routingSchema.mjs +1 -1
- package/dist/configurations/config-schema/themesSchema.mjs +1 -1
- package/dist/configurations/config-schema/trackerSchema.mjs +1 -1
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.d.ts +10 -10
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +15 -17
- package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/DataFetchingComponent.vue.d.ts +2 -2
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +2 -1
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InfoSlot.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InputPageStep.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/LanguageSelector.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.d.ts +8 -8
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +2 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleAccessURLInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/WidgetInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +2 -2
- package/dist/data-provider-interface/views/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +5 -5
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs +19 -14
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +12 -14
- package/dist/data-provider-interface/views/InputPage.vue.mjs +4 -2
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/LinkedDataViewer.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/MultilingualProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/StringProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URLProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +3 -5
- package/dist/data-provider-interface/views/OverviewPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/PropertyChooser.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
- package/dist/datasetDetails/AppMarkdownContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsActivityStream.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +3 -2
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +61 -50
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +1 -3
- package/dist/datasetDetails/DatasetDetailsDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsFeedbackButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsLinkedMetricsButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsQuality.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsShareButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSkeleton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distribution.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionAdded.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionDownloadAsModal.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/DistributionFormat.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +8 -8
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs +2 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +7 -5
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs +15 -12
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownloadAs.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs +6 -5
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/LinkedDataButtonsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +22 -21
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.d.ts +6 -6
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.d.ts +16 -16
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsDataServices.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +2 -2
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsMap.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsRelations.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsVisualisations.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +2 -2
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.d.ts +7 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +200 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
- package/dist/datasets/DatasetDate.vue.mjs.map +1 -1
- package/dist/datasets/DatasetList.vue.mjs.map +1 -1
- package/dist/datasets/Datasets.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFilters.vue.d.ts +1 -1
- package/dist/datasets/DatasetsFilters.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFiltersTabs.vue.d.ts +2 -2
- package/dist/datasets/DatasetsFiltersTabs.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsTopControls.vue.d.ts +5 -5
- package/dist/datasets/DatasetsTopControls.vue.mjs +8 -6
- package/dist/datasets/DatasetsTopControls.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacetsItem.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsMapFacet.vue.mjs.map +1 -1
- package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
- package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
- package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
- package/dist/external/zod/dist/esm/v3/ZodError +84 -0
- package/dist/external/zod/dist/esm/v3/ZodError.map +1 -0
- package/dist/external/zod/dist/esm/v3/errors +10 -0
- package/dist/external/zod/dist/esm/v3/errors.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil +8 -0
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil +98 -0
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +1 -0
- package/dist/external/zod/dist/esm/v3/helpers/util +95 -0
- package/dist/external/zod/dist/esm/v3/helpers/util.map +1 -0
- package/dist/external/zod/dist/esm/v3/locales/en +62 -0
- package/dist/external/zod/dist/esm/v3/locales/en.map +1 -0
- package/dist/external/zod/dist/esm/v3/types +2440 -0
- package/dist/external/zod/dist/esm/v3/types.map +1 -0
- package/dist/facets/CatalogDetailsFacet.vue.mjs.map +1 -1
- package/dist/facets/ExpandableSelectFacet.vue.mjs.map +1 -1
- package/dist/facets/Facet.vue.mjs.map +1 -1
- package/dist/facets/FacetTitle.vue.mjs.map +1 -1
- package/dist/facets/RadioFacet.vue.mjs.map +1 -1
- package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -2
- package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
- package/dist/form/FormKitGroup.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue2.mjs +2 -1
- package/dist/form/Repeatable.vue2.mjs.map +1 -1
- package/dist/map/MapBasic.vue.mjs.map +1 -1
- package/dist/map/MapBoundsReceiver.vue.mjs.map +1 -1
- package/dist/map/MapBoundsSender.vue.mjs.map +1 -1
- package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
- package/dist/modal/AppSnackbar.vue.mjs.map +1 -1
- package/dist/modal/AppToast.vue.mjs.map +1 -1
- package/dist/navigation/SubNavigation.vue.mjs.map +1 -1
- package/dist/pages/NotFound.vue.mjs.map +1 -1
- package/dist/pages/SparqlSearch.vue.mjs.map +1 -1
- package/dist/pages/user/UserImprint.vue.mjs.map +1 -1
- package/dist/pages/user/UserPrivacyPolicy.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/search/Search.vue.mjs.map +1 -1
- package/dist/services/datasetService.d.ts +1 -1
- package/dist/widgets/AppLink.vue.mjs.map +1 -1
- package/dist/widgets/Dropdown.vue.mjs.map +1 -1
- package/dist/widgets/Pagination.vue.d.ts +1 -1
- package/dist/widgets/Pagination.vue.mjs.map +1 -1
- package/dist/widgets/PropertyValue.vue.mjs.map +1 -1
- package/dist/widgets/PvBanner.vue.mjs.map +1 -1
- package/dist/widgets/PvButton.vue.mjs.map +1 -1
- package/dist/widgets/PvShowMore.vue.mjs.map +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.d.ts +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.mjs.map +1 -1
- package/dist/widgets/ResourceDetailsLinkedDataButton.vue.mjs.map +1 -1
- package/dist/widgets/Tooltip.vue.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/external/zod/lib/index +0 -2849
- package/dist/external/zod/lib/index.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectControlledGroup.vue.mjs","sources":["../../../lib/data-provider-interface/components/SelectControlledGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * `SelectControlledGroup` is a Vue component wrapping the FormKit group input. \n * It features a central select input that dictates the behavior of all child inputs within the group. \n * This setup allows for conditional display and interaction of child components based on the select input's value. \n * \n * Note that this is not a FormKit input itself, but rather a wrapper around the FormKit group input.\n */\n\nimport { reactive } from 'vue';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps<{\n name?: string;\n selectName: string;\n initialValue?: string;\n options: Record<string, string>;\n index?: number;\n id?: any;\n label?: string;\n placeholder?: string;\n info?: string;\n}>();\n\nconst data = reactive({\n groupValue: {},\n selectValue: props.initialValue ?? Object.keys(props.options)[0],\n});\n</script>\n\n<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.label }}</h4>\n <div class=\"formkitCmpWrap d-flex\">\n <FormKit :id=\"props.id\" type=\"group\" :name=\"name\" :index=\"props.index\" v-model=\"data.groupValue\">\n <FormKit v-model=\"data.selectValue\" type=\"select\" :options=\"props.options\" :name=\"props.selectName\">\n <template #prefix>\n <!-- <div v-if=\"props.info\" class=\"infoI\">\n <div class=\"tooltipFormkit\">\n {{ props.info }}\n </div>\n </div> -->\n </template>\n </FormKit>\n <slot :select-value=\"data.selectValue\" />\n </FormKit>\n </div>\n\n </div>\n\n</template>"],"names":["props","__props","data","reactive"],"mappings":";;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAYRC,IAAOC,EAAS;AAAA,MACpB,YAAY,CAAC;AAAA,MACb,aAAaH,EAAM,gBAAgB,OAAO,KAAKA,EAAM,OAAO,EAAE,CAAC;AAAA,IAAA,CAChE
|
|
1
|
+
{"version":3,"file":"SelectControlledGroup.vue.mjs","sources":["../../../lib/data-provider-interface/components/SelectControlledGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * `SelectControlledGroup` is a Vue component wrapping the FormKit group input. \n * It features a central select input that dictates the behavior of all child inputs within the group. \n * This setup allows for conditional display and interaction of child components based on the select input's value. \n * \n * Note that this is not a FormKit input itself, but rather a wrapper around the FormKit group input.\n */\n\nimport { reactive } from 'vue';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps<{\n name?: string;\n selectName: string;\n initialValue?: string;\n options: Record<string, string>;\n index?: number;\n id?: any;\n label?: string;\n placeholder?: string;\n info?: string;\n}>();\n\nconst data = reactive({\n groupValue: {},\n selectValue: props.initialValue ?? Object.keys(props.options)[0],\n});\n</script>\n\n<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.label }}</h4>\n <div class=\"formkitCmpWrap d-flex\">\n <FormKit :id=\"props.id\" type=\"group\" :name=\"name\" :index=\"props.index\" v-model=\"data.groupValue\">\n <FormKit v-model=\"data.selectValue\" type=\"select\" :options=\"props.options\" :name=\"props.selectName\">\n <template #prefix>\n <!-- <div v-if=\"props.info\" class=\"infoI\">\n <div class=\"tooltipFormkit\">\n {{ props.info }}\n </div>\n </div> -->\n </template>\n </FormKit>\n <slot :select-value=\"data.selectValue\" />\n </FormKit>\n </div>\n\n </div>\n\n</template>"],"names":["props","__props","data","reactive","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","_hoisted_2","_createVNode","_unref","FormKit","name","_cache","$event","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAYRC,IAAOC,EAAS;AAAA,MACpB,YAAY,CAAC;AAAA,MACb,aAAaH,EAAM,gBAAgB,OAAO,KAAKA,EAAM,OAAO,EAAE,CAAC;AAAA,IAAA,CAChE;sBAICI,EAAA,GAAAC,EAiBM,OAjBNC,GAiBM;AAAA,MAhBJC,EAA0B,MAAA,MAAAC,EAAnBR,EAAM,KAAK,GAAA,CAAA;AAAA;MAClBO,EAaM,OAbNE,GAaM;AAAA,QAZJC,EAWUC,EAAAC,CAAA,GAAA;AAAA,UAXA,IAAIZ,EAAM;AAAA,UAAI,MAAK;AAAA,UAAS,MAAMa,EAAI;AAAA,UAAG,OAAOb,EAAM;AAAA,UAAgB,YAAAE,EAAK;AAAA,UAAL,uBAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAb,EAAK,aAAUa;AAAA,QAAA;qBAC7F,MAQU;AAAA,YARVL,EAQUC,EAAAC,CAAA,GAAA;AAAA,cARQ,YAAAV,EAAK;AAAA,cAAL,uBAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAb,EAAK,cAAWa;AAAA,cAAE,MAAK;AAAA,cAAU,SAASf,EAAM;AAAA,cAAU,MAAMA,EAAM;AAAA,YAAA;cAC3E,UAAX,MAMWc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAA,EAAA;AAAA;;;YAEbE,EAAyCC,EAAA,QAAA,WAAA;AAAA,cAAlC,aAAcf,EAAK;AAAA,YAAA;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleAccessURLInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleAccessURLInput.vue"],"sourcesContent":["<script setup>\n\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps({\n context: Object\n})\n\nlet URLValue\n\nconst saveUrl = async () => {\n\n if (this.URLValue.includes('http://') || this.URLValue.includes('https://')) {\n await this.context.node.input({ '@id': this.URLValue})\n }\n else await this.context.node.input({ '@id': 'https://' + this.URLValue })\n\n}\n</script>\n<template>\n <div class=\"formkitProperty w-100\">\n <FormKit id=\"aUrlLink\" v-model=\"URLValue\" class=\"selectInputField formkit-inner\" type=\"url\" name=\"@id\"\n :help=\"props.context.help\" :placeholder=\"props.context.attrs.placeholder\"\n :validation=\"props.context.attrs.validationType\" @input=\"saveUrl\" />\n </div>\n</template>\n<style></style>"],"names":["props","__props","URLValue","saveUrl"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC;
|
|
1
|
+
{"version":3,"file":"SimpleAccessURLInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleAccessURLInput.vue"],"sourcesContent":["<script setup>\n\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps({\n context: Object\n})\n\nlet URLValue\n\nconst saveUrl = async () => {\n\n if (this.URLValue.includes('http://') || this.URLValue.includes('https://')) {\n await this.context.node.input({ '@id': this.URLValue})\n }\n else await this.context.node.input({ '@id': 'https://' + this.URLValue })\n\n}\n</script>\n<template>\n <div class=\"formkitProperty w-100\">\n <FormKit id=\"aUrlLink\" v-model=\"URLValue\" class=\"selectInputField formkit-inner\" type=\"url\" name=\"@id\"\n :help=\"props.context.help\" :placeholder=\"props.context.attrs.placeholder\"\n :validation=\"props.context.attrs.validationType\" @input=\"saveUrl\" />\n </div>\n</template>\n<style></style>"],"names":["props","__props","URLValue","saveUrl","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","FormKit","$event"],"mappings":";;;;;;;;AAIA,UAAMA,IAAQC;AAId,QAAIC;AAEJ,UAAMC,IAAU,YAAY;AAExB,MAAI,KAAK,SAAS,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,UAAU,IACtE,MAAM,KAAK,QAAQ,KAAK,MAAM,EAAE,OAAO,KAAK,SAAQ,CAAC,IAEpD,MAAM,KAAK,QAAQ,KAAK,MAAM,EAAE,OAAO,aAAa,KAAK,UAAU;AAAA,IAE5E;sBAGIC,EAAA,GAAAC,EAIM,OAJNC,GAIM;AAAA,MAHFC,EAEwEC,EAAAC,CAAA,GAAA;AAAA,QAF/D,IAAG;AAAA,oBAAoBD,EAAQN,CAAA;AAAA,6DAARA,EAAQ,QAAAQ,IAAAR,IAAAQ;AAAA,QAAE,OAAM;AAAA,QAAiC,MAAK;AAAA,QAAM,MAAK;AAAA,QAC5F,MAAMV,EAAM,QAAQ;AAAA,QAAO,aAAaA,EAAM,QAAQ,MAAM;AAAA,QAC5D,YAAYA,EAAM,QAAQ,MAAM;AAAA,QAAiB,SAAOG;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <h4 v-if=\"!props.context.attrs.insideRepeatable && !inDis\">{{ $t('message.dataupload.datasets.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <h4 v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit class=\"autocompleteInputfield\" :identifier=\"props.context.attrs.identifier\"\n :name=\"props.context.node.name\" :help=\"props.context.help\"\n :placeholder=\"props.context.attrs.placeholder\" :validation=\"props.context.attrs.validationType\" />\n </div>\n </div>\n</template>\n<script setup>\n\nimport { FormKit } from '@formkit/vue';\nimport { ref, computed } from 'vue';\n\nconst props = defineProps({\n context: Object\n})\n// Need to make sure, that the right header gets displayed\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});\n\n\n\n</script>\n<style></style>"],"names":["props","__props","inDis","computed"],"mappings":";;;;;;;;AAoBA,UAAMA,IAAQC;
|
|
1
|
+
{"version":3,"file":"SimpleInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <h4 v-if=\"!props.context.attrs.insideRepeatable && !inDis\">{{ $t('message.dataupload.datasets.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <h4 v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit class=\"autocompleteInputfield\" :identifier=\"props.context.attrs.identifier\"\n :name=\"props.context.node.name\" :help=\"props.context.help\"\n :placeholder=\"props.context.attrs.placeholder\" :validation=\"props.context.attrs.validationType\" />\n </div>\n </div>\n</template>\n<script setup>\n\nimport { FormKit } from '@formkit/vue';\nimport { ref, computed } from 'vue';\n\nconst props = defineProps({\n context: Object\n})\n// Need to make sure, that the right header gets displayed\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});\n\n\n\n</script>\n<style></style>"],"names":["props","__props","inDis","computed","_openBlock","_createElementBlock","_hoisted_1","_unref","$t","_createElementVNode","_hoisted_4","_createVNode","FormKit"],"mappings":";;;;;;;;AAoBA,UAAMA,IAAQC;AAId,QAAIC,IAAQC,EAAS,MAAM;AACvB,UAAI;AACA,YAAIH,EAAM,QAAQ,MAAM,MAAM,SAAS,gBAAgB;AACnD,iBAAO;AAAA,MAEd,QAAe;AAAA,MAEhB;AAAA,IAGJ,CAAC;sBAjCGI,EAAA,GAAAC,EAYM,OAZNC,GAYM;AAAA,MAVS,CAAAN,EAAM,QAAQ,MAAM,qBAAqBO,EAAKL,CAAA,KAAzDE,EAAA,GAAAC,EACsD,WADQG,EAAE,GAAA,iCAA8CR,EAAM,QAAQ,MAAM,aAAU,QAAA,CAAA,GAAA,CAAA;;MAElIO,EAAKL,CAAA,KAAfE,EAAA,GAAAC,EAE0D,WADnDG,EAAE,GAAA,sCAAuDR,EAAM,QAAQ,MAAM,aAAU,QAAA,CAAA,GAAA,CAAA;;MAE9FS,EAIM,OAJNC,GAIM;AAAA,QAHFC,EAEsGJ,EAAAK,CAAA,GAAA;AAAA,UAF7F,OAAM;AAAA,UAA0B,YAAYZ,EAAM,QAAQ,MAAM;AAAA,UACpE,MAAMA,EAAM,QAAQ,KAAK;AAAA,UAAO,MAAMA,EAAM,QAAQ;AAAA,UACpD,aAAaA,EAAM,QAAQ,MAAM;AAAA,UAAc,YAAYA,EAAM,QAAQ,MAAM;AAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n\n <div v-if=\"isReady\">\n\n <!-- Hidden input that contains the actual catalog id. We rely on that to pass the catalog id to backend later -->\n <FormKit v-show=\"false\" v-model=\"selectedCatalogId\" :name=\"`${props.context.node.name}`\" :id=\"`${props.context.node.id || props.context.node.name}`\" type=\"text\" />\n\n <!-- User-facing input that displays the name of the selected catalog -->\n <FormKit\n class=\"autocompleteInputfield\"\n v-model=\"selectedCatalogTitle\"\n :placeholder=\"props.context.attrs.placeholder\"\n type=\"text\" \n validation=\"required\"\n mandatory=\"true\"\n :validation-messages=\"{\n required: props.context.attrs.placeholder,\n }\" :name=\"`${props.context.node.name}__displayedValue`\"\n :disabled=\"isDisabled\"\n @click=\"showList = !showList\"\n />\n <ul ref=\"dropdownList\" v-show=\"showList\" class=\"autocompleteResultList selectListFK catSelectList\">\n <li v-for=\"match in authorizedCatalogs\" :key=\"match\" @click=\"setvalue(match)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n match.name }}\n </li>\n <li v-if=\"authorizedCatalogs.length === 0\" v-for=\"idMatch in userCats\" :key=\"idMatch\" @click=\"setvalue(idMatch)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n idMatch }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n</template>\n<script setup>\nimport { ref, computed, onMounted, watch, nextTick } from 'vue';\nimport { useStore } from 'vuex';\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport axios from 'axios'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { useI18n } from 'vue-i18n';\nimport { useAsyncState } from '@vueuse/core';\nimport { FormKit } from '@formkit/vue';\nimport { useDpiContext } from '../composables/useDpiContext';\n\nconst props = defineProps({\n context: Object\n})\n\nconst dpiContext = useDpiContext()\nconst { locale, fallbackLocale } = useI18n({ useScope: 'global' })\n\nconst userCats = computed(() => store.getters['auth/getUserCatalogIds']);\nconst showList = ref(false)\nconst store = useStore()\nconst dropdownList = ref(null)\nconst env = useRuntimeEnv()\nconst selectedCatalogTitle = ref('')\nconst selectedCatalogId = ref('')\nconst hasMounted = ref(false)\n\nonClickOutside(dropdownList, event => showList.value = false)\n\nconst setvalue = async (e) => {\n if (e.id) {\n selectedCatalogId.value = e.id\n selectedCatalogTitle.value = e?.name || e.id\n } else {\n selectedCatalogId.value = e\n selectedCatalogTitle.value = e\n }\n\n showList.value = false\n}\n\nconst { execute: filterCatList, state: catalogListData, isReady: isQueryReady, error } = useAsyncState(async () => {\n const catalogListData = await axios.get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n return catalogListData\n}, { data: { result: { results: [] } } }, { immediate: false })\n\n// Wait until everything mounted and loaded tu ensure that the catalog list is available and selected catalog from edit mode is available\nconst isReady = computed(() => hasMounted.value && !!catalogListData.value && isQueryReady.value)\n\nwatch(error, () => {\n console.error(error.value)\n})\n\nconst hasResults = computed(() => {\n return catalogListData?.value?.data?.result?.results?.length > 0\n})\n\nconst hasOneResultOnly = computed(() => {\n return hasResults && catalogListData?.value?.data?.result?.results?.length === 1\n})\n\n/**\n * Computes list of users' authorized catalogs in { id: string; name: string } format\n */\nconst authorizedCatalogs = computed(() => {\n if (!hasResults.value || !isQueryReady.value) return []\n\n const allCatalogs = catalogListData.value?.data?.result?.results || []\n const authorizedCatalogs = allCatalogs.filter(catalog => userCats.value?.includes(catalog.id))\n\n // map to { id: string; name: string } pairs\n const authorizedCatalogsDataModel = authorizedCatalogs.map((catalog) => {\n const id = catalog?.id || ''\n let title = ''\n\n if (!catalog?.title) title = id\n else if (typeof catalog?.title === 'string') title = catalog?.title\n else if (typeof catalog?.title === 'object') title =\n catalog?.title[locale.value]\n || catalog?.title[fallbackLocale.value]\n || Object.values(catalog?.title)?.[0]\n || id\n\n return { id, name: title || id }\n });\n return authorizedCatalogsDataModel\n})\n\nwatch(hasOneResultOnly, (yes) => {\n if (yes) {\n const result = catalogListData.value.data.result.results[0]\n setvalue({ id: result.id, name: result.name })\n }\n}, { immediate: true })\n\nonMounted(async () => {\n // When editing, we can restore the selected catalog id immediately, but we rely on fetching from hub-search for its catalog title.\n // So we need to wait until everything is fetched before proceeding further.\n await filterCatList()\n await nextTick()\n const catalogIdToLoadForEdit =\n dpiContext.value.edit?.catalog\n || getNode?.('catalog')?.value\n || getNode?.('dcat:catalog')?.value\n || getNode?.('dct:catalog')?.value\n || undefined\n const maybeFoundCatalogFromQuery = authorizedCatalogs.value?.find(item => item.id === catalogIdToLoadForEdit)\n if (maybeFoundCatalogFromQuery) {\n setvalue({ id: maybeFoundCatalogFromQuery.id, name: maybeFoundCatalogFromQuery.name })\n }\n await nextTick()\n hasMounted.value = true\n});\n\n// Disable select option if in edit mode\n// Note: Decision is made due to a backend limitation that causes dataset duplicates to occur when changing a catalog\nconst isDisabled = computed(() => {\n const isInEditMode = dpiContext.value.edit?.enabled\n\n // If duplicate, do not disable select option so that they can duplicate datasets into different catalogs\n // todo: code debt due to code replication; usage of localStorage kind of weird here -> see DraftsPage for more on this.\n // We use localStorage to track if the intent is to duplicate or not\n const isDuplicate = localStorage?.getItem('dpi_duplicate')\n\n return isInEditMode && !isDuplicate\n})\n\n</script>\n<style>\n.catSelectList {\n width: 97.3% !important;\n margin: 0 1rem;\n}\n\n.selectListFK {\n\n max-height: 20rem;\n overflow: overlay;\n overflow-x: hidden;\n}\n</style>\n"],"names":["props","__props","dpiContext","useDpiContext","locale","fallbackLocale","useI18n","userCats","computed","store","showList","ref","useStore","dropdownList","env","useRuntimeEnv","selectedCatalogTitle","selectedCatalogId","hasMounted","onClickOutside","event","setvalue","e","filterCatList","catalogListData","isQueryReady","error","useAsyncState","axios","isReady","watch","hasResults","_d","_c","_b","_a","hasOneResultOnly","authorizedCatalogs","catalog","id","title","yes","result","onMounted","nextTick","catalogIdToLoadForEdit","getNode","_e","_g","_f","maybeFoundCatalogFromQuery","_h","item","isDisabled","isInEditMode","isDuplicate"],"mappings":";;;;;;;;;;;;;;;;AAmDA,UAAMA,IAAQC,GAIRC,IAAaC,GAAc,GAC3B,EAAE,QAAAC,GAAQ,gBAAAC,EAAgB,IAAGC,GAAQ,EAAE,UAAU,UAAU,GAE3DC,IAAWC,EAAS,MAAMC,EAAM,QAAQ,wBAAwB,CAAC,GACjEC,IAAWC,EAAI,EAAK,GACpBF,IAAQG,EAAS,GACjBC,IAAeF,EAAI,IAAI,GACvBG,IAAMC,GAAc,GACpBC,IAAuBL,EAAI,EAAE,GAC7BM,IAAoBN,EAAI,EAAE,GAC1BO,IAAaP,EAAI,EAAK;AAE5B,IAAAQ,GAAeN,GAAc,CAAAO,MAASV,EAAS,QAAQ,EAAK;AAE5D,UAAMW,IAAW,OAAOC,MAAM;AAC5B,MAAIA,EAAE,MACJL,EAAkB,QAAQK,EAAE,IAC5BN,EAAqB,SAAQM,KAAA,gBAAAA,EAAG,SAAQA,EAAE,OAE1CL,EAAkB,QAAQK,GAC1BN,EAAqB,QAAQM,IAG/BZ,EAAS,QAAQ;AAAA,IACnB,GAEM,EAAE,SAASa,GAAe,OAAOC,GAAiB,SAASC,GAAc,OAAAC,MAAUC,GAAc,YAC7E,MAAMC,GAAM,IAAId,EAAI,IAAI,UAAU,oCAAoC,GAE7F,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAI,EAAA,KAAM,EAAE,WAAW,IAAO,GAGxDe,IAAUrB,EAAS,MAAMU,EAAW,SAAS,CAAC,CAACM,EAAgB,SAASC,EAAa,KAAK;AAEhG,IAAAK,EAAMJ,GAAO,MAAM;AACjB,cAAQ,MAAMA,EAAM,KAAK;AAAA,IAC3B,CAAC;AAED,UAAMK,IAAavB,EAAS,MAAM;;AAChC,eAAOwB,KAAAC,KAAAC,KAAAC,IAAAX,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAW,EAAwB,SAAxB,gBAAAD,EAA8B,WAA9B,gBAAAD,EAAsC,YAAtC,gBAAAD,EAA+C,UAAS;AAAA,IACjE,CAAC,GAEKI,IAAmB5B,EAAS,MAAM;;AACtC,aAAOuB,OAAcC,KAAAC,KAAAC,KAAAC,IAAAX,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAW,EAAwB,SAAxB,gBAAAD,EAA8B,WAA9B,gBAAAD,EAAsC,YAAtC,gBAAAD,EAA+C,YAAW;AAAA,IACjF,CAAC,GAKKK,IAAqB7B,EAAS,MAAM;;AACxC,aAAI,CAACuB,EAAW,SAAS,CAACN,EAAa,QAAc,CAAC,OAElCQ,KAAAC,KAAAC,IAAAX,EAAgB,UAAhB,gBAAAW,EAAuB,SAAvB,gBAAAD,EAA6B,WAA7B,gBAAAD,EAAqC,YAAW,CAAC,GAC9B,OAAO,CAAAK,MAAO;;AAAI,gBAAAH,IAAA5B,EAAS,UAAT,gBAAA4B,EAAgB,SAASG,EAAQ;AAAA,OAAG,EAGtC,IAAI,CAACA,MAAY;;AACtE,cAAMC,KAAKD,KAAA,gBAAAA,EAAS,OAAM;AAC1B,YAAIE,IAAQ;AAEZ,eAAKF,KAAA,QAAAA,EAAS,QACL,QAAOA,KAAA,gBAAAA,EAAS,UAAU,WAAUE,IAAQF,KAAA,gBAAAA,EAAS,QACrD,QAAOA,KAAA,gBAAAA,EAAS,UAAU,aAAUE,KAC3CF,KAAA,gBAAAA,EAAS,MAAMlC,EAAO,YACnBkC,KAAA,gBAAAA,EAAS,MAAMjC,EAAe,aAC9B8B,IAAA,OAAO,OAAOG,KAAA,gBAAAA,EAAS,KAAK,MAA5B,gBAAAH,EAAgC,OAChCI,KANgBC,IAAQD,GAQtB,EAAE,IAAAA,GAAI,MAAMC,KAASD,EAAG;AAAA,MACnC,CAAG;AAAA,IAEH,CAAC;AAED,IAAAT,EAAMM,GAAkB,CAACK,MAAQ;AAC/B,UAAIA,GAAK;AACP,cAAMC,IAASlB,EAAgB,MAAM,KAAK,OAAO,QAAQ,CAAC;AAC1D,QAAAH,EAAS,EAAE,IAAIqB,EAAO,IAAI,MAAMA,EAAO,MAAM;AAAA,MAC/C;AAAA,IACF,GAAG,EAAE,WAAW,IAAM,GAEtBC,EAAU,YAAY;;AAGpB,YAAMpB,EAAc,GACpB,MAAMqB,EAAS;AACf,YAAMC,MACJV,IAAAjC,EAAW,MAAM,SAAjB,gBAAAiC,EAAuB,cACpBF,KAAAC,IAAAY,MAAA,gBAAAZ,EAAU,eAAV,gBAAAD,EAAsB,YACtBc,KAAAf,IAAAc,MAAA,gBAAAd,EAAU,oBAAV,gBAAAe,EAA2B,YAC3BC,KAAAC,IAAAH,MAAA,gBAAAG,EAAU,mBAAV,gBAAAD,EAA0B,UAC1B,QACCE,KAA6BC,IAAAd,EAAmB,UAAnB,gBAAAc,EAA0B,KAAK,CAAAC,MAAQA,EAAK,OAAOP;AACtF,MAAIK,KACF7B,EAAS,EAAE,IAAI6B,EAA2B,IAAI,MAAMA,EAA2B,MAAM,GAEvF,MAAMN,EAAS,GACf1B,EAAW,QAAQ;AAAA,IACrB,CAAC;UAIKmC,IAAa7C,EAAS,MAAM;;AAChC,YAAM8C,KAAenB,IAAAjC,EAAW,MAAM,SAAjB,gBAAAiC,EAAuB,SAKtCoB,IAAc,6CAAc,QAAQ;AAE1C,aAAOD,KAAgB,CAACC;AAAA,IAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n\n <div v-if=\"isReady\">\n\n <!-- Hidden input that contains the actual catalog id. We rely on that to pass the catalog id to backend later -->\n <FormKit v-show=\"false\" v-model=\"selectedCatalogId\" :name=\"`${props.context.node.name}`\" :id=\"`${props.context.node.id || props.context.node.name}`\" type=\"text\" />\n\n <!-- User-facing input that displays the name of the selected catalog -->\n <FormKit\n class=\"autocompleteInputfield\"\n v-model=\"selectedCatalogTitle\"\n :placeholder=\"props.context.attrs.placeholder\"\n type=\"text\" \n validation=\"required\"\n mandatory=\"true\"\n :validation-messages=\"{\n required: props.context.attrs.placeholder,\n }\" :name=\"`${props.context.node.name}__displayedValue`\"\n :disabled=\"isDisabled\"\n @click=\"showList = !showList\"\n />\n <ul ref=\"dropdownList\" v-show=\"showList\" class=\"autocompleteResultList selectListFK catSelectList\">\n <li v-for=\"match in authorizedCatalogs\" :key=\"match\" @click=\"setvalue(match)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n match.name }}\n </li>\n <li v-if=\"authorizedCatalogs.length === 0\" v-for=\"idMatch in userCats\" :key=\"idMatch\" @click=\"setvalue(idMatch)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n idMatch }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n</template>\n<script setup>\nimport { ref, computed, onMounted, watch, nextTick } from 'vue';\nimport { useStore } from 'vuex';\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport axios from 'axios'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport { useI18n } from 'vue-i18n';\nimport { useAsyncState } from '@vueuse/core';\nimport { FormKit } from '@formkit/vue';\nimport { useDpiContext } from '../composables/useDpiContext';\n\nconst props = defineProps({\n context: Object\n})\n\nconst dpiContext = useDpiContext()\nconst { locale, fallbackLocale } = useI18n({ useScope: 'global' })\n\nconst userCats = computed(() => store.getters['auth/getUserCatalogIds']);\nconst showList = ref(false)\nconst store = useStore()\nconst dropdownList = ref(null)\nconst env = useRuntimeEnv()\nconst selectedCatalogTitle = ref('')\nconst selectedCatalogId = ref('')\nconst hasMounted = ref(false)\n\nonClickOutside(dropdownList, event => showList.value = false)\n\nconst setvalue = async (e) => {\n if (e.id) {\n selectedCatalogId.value = e.id\n selectedCatalogTitle.value = e?.name || e.id\n } else {\n selectedCatalogId.value = e\n selectedCatalogTitle.value = e\n }\n\n showList.value = false\n}\n\nconst { execute: filterCatList, state: catalogListData, isReady: isQueryReady, error } = useAsyncState(async () => {\n const catalogListData = await axios.get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n return catalogListData\n}, { data: { result: { results: [] } } }, { immediate: false })\n\n// Wait until everything mounted and loaded tu ensure that the catalog list is available and selected catalog from edit mode is available\nconst isReady = computed(() => hasMounted.value && !!catalogListData.value && isQueryReady.value)\n\nwatch(error, () => {\n console.error(error.value)\n})\n\nconst hasResults = computed(() => {\n return catalogListData?.value?.data?.result?.results?.length > 0\n})\n\nconst hasOneResultOnly = computed(() => {\n return hasResults && catalogListData?.value?.data?.result?.results?.length === 1\n})\n\n/**\n * Computes list of users' authorized catalogs in { id: string; name: string } format\n */\nconst authorizedCatalogs = computed(() => {\n if (!hasResults.value || !isQueryReady.value) return []\n\n const allCatalogs = catalogListData.value?.data?.result?.results || []\n const authorizedCatalogs = allCatalogs.filter(catalog => userCats.value?.includes(catalog.id))\n\n // map to { id: string; name: string } pairs\n const authorizedCatalogsDataModel = authorizedCatalogs.map((catalog) => {\n const id = catalog?.id || ''\n let title = ''\n\n if (!catalog?.title) title = id\n else if (typeof catalog?.title === 'string') title = catalog?.title\n else if (typeof catalog?.title === 'object') title =\n catalog?.title[locale.value]\n || catalog?.title[fallbackLocale.value]\n || Object.values(catalog?.title)?.[0]\n || id\n\n return { id, name: title || id }\n });\n return authorizedCatalogsDataModel\n})\n\nwatch(hasOneResultOnly, (yes) => {\n if (yes) {\n const result = catalogListData.value.data.result.results[0]\n setvalue({ id: result.id, name: result.name })\n }\n}, { immediate: true })\n\nonMounted(async () => {\n // When editing, we can restore the selected catalog id immediately, but we rely on fetching from hub-search for its catalog title.\n // So we need to wait until everything is fetched before proceeding further.\n await filterCatList()\n await nextTick()\n const catalogIdToLoadForEdit =\n dpiContext.value.edit?.catalog\n || getNode?.('catalog')?.value\n || getNode?.('dcat:catalog')?.value\n || getNode?.('dct:catalog')?.value\n || undefined\n const maybeFoundCatalogFromQuery = authorizedCatalogs.value?.find(item => item.id === catalogIdToLoadForEdit)\n if (maybeFoundCatalogFromQuery) {\n setvalue({ id: maybeFoundCatalogFromQuery.id, name: maybeFoundCatalogFromQuery.name })\n }\n await nextTick()\n hasMounted.value = true\n});\n\n// Disable select option if in edit mode\n// Note: Decision is made due to a backend limitation that causes dataset duplicates to occur when changing a catalog\nconst isDisabled = computed(() => {\n const isInEditMode = dpiContext.value.edit?.enabled\n\n // If duplicate, do not disable select option so that they can duplicate datasets into different catalogs\n // todo: code debt due to code replication; usage of localStorage kind of weird here -> see DraftsPage for more on this.\n // We use localStorage to track if the intent is to duplicate or not\n const isDuplicate = localStorage?.getItem('dpi_duplicate')\n\n return isInEditMode && !isDuplicate\n})\n\n</script>\n<style>\n.catSelectList {\n width: 97.3% !important;\n margin: 0 1rem;\n}\n\n.selectListFK {\n\n max-height: 20rem;\n overflow: overlay;\n overflow-x: hidden;\n}\n</style>\n"],"names":["props","__props","dpiContext","useDpiContext","locale","fallbackLocale","useI18n","userCats","computed","store","showList","ref","useStore","dropdownList","env","useRuntimeEnv","selectedCatalogTitle","selectedCatalogId","hasMounted","onClickOutside","event","setvalue","e","filterCatList","catalogListData","isQueryReady","error","useAsyncState","axios","isReady","watch","hasResults","_d","_c","_b","_a","hasOneResultOnly","authorizedCatalogs","catalog","id","title","yes","result","onMounted","nextTick","catalogIdToLoadForEdit","getNode","_e","_g","_f","maybeFoundCatalogFromQuery","_h","item","isDisabled","isInEditMode","isDuplicate","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_toDisplayString","_hoisted_2","_hoisted_3","_createVNode","_unref","FormKit","$event","_cache","_Fragment","_renderList","match","_hoisted_4","idMatch","_hoisted_5"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside, whenever } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useTed } from '../../composables/useTed';\nimport { useAutocomplete } from '../composables/aucotomplete';\nimport { useRequestUriName } from '../composables/useRequestUriName';\nimport { useDpiContext } from '../composables';\n\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\nconst dpiContext = useDpiContext();\n\nconst props = defineProps({\n context: Object,\n})\n\nconst { requestAutocompleteSuggestions } = useAutocomplete()\n\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nconst typeText = ref('')\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\nconst { t, locale } = useI18n({ inheritLocale: true, useScope: 'global' });\nconst ted = useTed();\n\nconst man = ref(false)\nconst vocSearch = ref(false)\n\nconst isEdit = computed(() => !!dpiContext.value.edit?.enabled)\nconst resourceNameWhenEditing = computed(() => !!isEdit.value && props.context.value.resource)\n// e.g. extract \"municipalityKey\" (second to last) out of resourceName\nconst keyFromResourceName = computed(() => {\n if (resourceNameWhenEditing.value) {\n return resourceNameWhenEditing.value.split('/')[resourceNameWhenEditing.value.split('/').length - 2]\n }\n return ''\n})\nconst spatialVocabName = computed(() => {\n if (!keyFromResourceName.value) {\n return ''\n }\n\n const maybePrefix = props.context.attrs.identifier === 'politicalGeocodingURI'\n ? 'political-geocoding-'\n // todo: extend this for other vocabularies\n : ''\n\n // transform key from camelCase to kebab-case\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n return `${maybePrefix}${vocabKey}`\n})\n\nconst translatedResourceName = computed(() => {\n // transform key 'districtKey' to 'District Key'\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase()\n // make first letters of each word uppercase\n const vocabKeyUpper = vocabKey.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ')\n return t(`message.dataupload.datasets.conditional.${vocabKeyUpper}`)\n})\n\nconst { execute, state, isLoading } = useRequestUriName({\n voc: spatialVocabName,\n res: computed(() => props.context.value.resource),\n // property: 'dcatde:politicalGeocodingURI',\n property: computed(() => props.context.attrs.identifier === 'politicalGeocodingURI' ? 'dcatde:politicalGeocodingURI' : 'dct:spatial'), \n locale,\n})\n\nconst restoredValueFromEditMode = computed(() => {\n if (isEdit.value && !isLoading.value && resourceNameWhenEditing.value && state.value) {\n return `${translatedResourceName.value}: ${state.value} (${resourceNameWhenEditing.value.split('/').pop()})`\n }\n\n return ''\n})\n\nconst once = ref(false)\nwatchEffect(() => {\n if (once.value) return;\n\n if (!!resourceNameWhenEditing.value) {\n once.value = true\n execute()\n }\n}, { immediate: true })\n\nwhenever(restoredValueFromEditMode, () => {\n const v = { name: restoredValueFromEditMode.value, resource: resourceNameWhenEditing.value }\n props.context.node.input(v)\n})\n\n// If true, then:\n// - hides the select input for manual and vocabulary\n// - pre-selects the vocabulary option\n// When using formkit schema, enable this option by setting vocabularyOnly to true\n// {\n// $formkit: 'spatialinput',\n// name: 'dcatde:politicalGeocodingURI',\n// identifier: 'politicalGeocodingURI',\n// vocabularyOnly: true,\n// }\nconst vocabularyOnly = computed(() => !!props.context?.attrs?.vocabularyOnly)\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push(\n { item: 'Municipality Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipality Key', 'Municipality Key') },\n { item: 'Regional Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Regional Key', 'Regional Key') },\n { item: 'Municipal Association Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipal Association Key', 'Municipal Association Key') },\n { item: 'District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.District Key', 'District Key') },\n { item: 'Government District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Government District Key', 'Government District Key') },\n { item: 'State Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.State Key', 'State Key') },\n )\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push(\n { item: 'Country', active: false, placeholder: ted('message.dataupload.datasets.conditional.Country', 'Country') },\n { item: 'Place', active: false, placeholder: ted('message.dataupload.datasets.conditional.Place', 'Place') },\n { item: 'Continent', active: false, placeholder: ted('message.dataupload.datasets.conditional.Continent', 'Continent') },\n )\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async (newValue, oldValue) => {\n if (newValue === oldValue) { return }\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: ted('message.dataupload.info.searchVocabulary', '--- Type in anything for a live search of the vocabulary ---').value, resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n if (vocabularyOnly.value) {\n activeInput('showTable'); vocSearch.value = true; if (man.value) { man.value = false }\n }\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n\n let vocCache = voc.value?.toLowerCase()\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n\nfunction handleSpatielListClick(el) {\n props.context.node.input(el);\n inputText.value = el.name;\n activeInput('showVocEntries');\n showTable.third = false;\n saveToLocal(el)\n}\n\nfunction submitType() {\n activeInput('showVocTable');\n\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ restoredValueFromEditMode }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div v-if=\"!vocabularyOnly\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> {{ $t('message.dataupload.info.preferredInput') }}\n <input id=\"I1\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n :placeholder=\"$t('message.dataupload.info.preferredInput')\"\n @click=\"activeInput('showTable')\" />\n </label>\n\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.manually') }}\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.vocabulary') }}\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n {{ $te('message.dataupload.datasets.isReferencedByUrl.placeholder') ? $t('message.dataupload.datasets.isReferencedByUrl.placeholder') : 'Provide an URL' }}\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <label class=\"w-100\"> {{ $te('message.dataupload.datasets.contributorType.placeholder') ? $t('message.dataupload.datasets.contributorType.placeholder') : 'Choose type of vocabulary' }} \n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\" v-model=\"typeText\"\n :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item; typeText = el.placeholder\">\n {{ $t('message.dataupload.datasets.conditional.' + el.item) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <!-- {{ $te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary' }} -->\n {{ el.placeholder ? el.placeholder : $t('message.dataupload.datasets.conditional.' + el.item) }}\n <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\"\n @click=\"activeInput('showVocEntries'); inputText = ''\"\n >\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"handleSpatielListClick(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top: 78px;\n }\n}\n</style>\n"],"names":["instance","getCurrentInstance","route","useRoute","dpiContext","useDpiContext","props","__props","requestAutocompleteSuggestions","useAutocomplete","listOfVoc","ref","typeText","inputText","voc","matches","manURL","useStore","t","locale","useI18n","ted","useTed","man","vocSearch","isEdit","computed","_a","resourceNameWhenEditing","keyFromResourceName","spatialVocabName","maybePrefix","vocabKey","translatedResourceName","vocabKeyUpper","word","execute","state","isLoading","useRequestUriName","restoredValueFromEditMode","once","watchEffect","whenever","v","vocabularyOnly","_b","watch","getAutocompleteSuggestions","newValue","oldValue","onMounted","nextTick","showTable","activeInput","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","manURLInput","handleSpatielListClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside, whenever } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useTed } from '../../composables/useTed';\nimport { useAutocomplete } from '../composables/aucotomplete';\nimport { useRequestUriName } from '../composables/useRequestUriName';\nimport { useDpiContext } from '../composables';\n\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\nconst dpiContext = useDpiContext();\n\nconst props = defineProps({\n context: Object,\n})\n\nconst { requestAutocompleteSuggestions } = useAutocomplete()\n\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nconst typeText = ref('')\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\nconst { t, locale } = useI18n({ inheritLocale: true, useScope: 'global' });\nconst ted = useTed();\n\nconst man = ref(false)\nconst vocSearch = ref(false)\n\nconst isEdit = computed(() => !!dpiContext.value.edit?.enabled)\nconst resourceNameWhenEditing = computed(() => !!isEdit.value && props.context.value.resource)\n// e.g. extract \"municipalityKey\" (second to last) out of resourceName\nconst keyFromResourceName = computed(() => {\n if (resourceNameWhenEditing.value) {\n return resourceNameWhenEditing.value.split('/')[resourceNameWhenEditing.value.split('/').length - 2]\n }\n return ''\n})\nconst spatialVocabName = computed(() => {\n if (!keyFromResourceName.value) {\n return ''\n }\n\n const maybePrefix = props.context.attrs.identifier === 'politicalGeocodingURI'\n ? 'political-geocoding-'\n // todo: extend this for other vocabularies\n : ''\n\n // transform key from camelCase to kebab-case\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n return `${maybePrefix}${vocabKey}`\n})\n\nconst translatedResourceName = computed(() => {\n // transform key 'districtKey' to 'District Key'\n const vocabKey = keyFromResourceName.value.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase()\n // make first letters of each word uppercase\n const vocabKeyUpper = vocabKey.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ')\n return t(`message.dataupload.datasets.conditional.${vocabKeyUpper}`)\n})\n\nconst { execute, state, isLoading } = useRequestUriName({\n voc: spatialVocabName,\n res: computed(() => props.context.value.resource),\n // property: 'dcatde:politicalGeocodingURI',\n property: computed(() => props.context.attrs.identifier === 'politicalGeocodingURI' ? 'dcatde:politicalGeocodingURI' : 'dct:spatial'), \n locale,\n})\n\nconst restoredValueFromEditMode = computed(() => {\n if (isEdit.value && !isLoading.value && resourceNameWhenEditing.value && state.value) {\n return `${translatedResourceName.value}: ${state.value} (${resourceNameWhenEditing.value.split('/').pop()})`\n }\n\n return ''\n})\n\nconst once = ref(false)\nwatchEffect(() => {\n if (once.value) return;\n\n if (!!resourceNameWhenEditing.value) {\n once.value = true\n execute()\n }\n}, { immediate: true })\n\nwhenever(restoredValueFromEditMode, () => {\n const v = { name: restoredValueFromEditMode.value, resource: resourceNameWhenEditing.value }\n props.context.node.input(v)\n})\n\n// If true, then:\n// - hides the select input for manual and vocabulary\n// - pre-selects the vocabulary option\n// When using formkit schema, enable this option by setting vocabularyOnly to true\n// {\n// $formkit: 'spatialinput',\n// name: 'dcatde:politicalGeocodingURI',\n// identifier: 'politicalGeocodingURI',\n// vocabularyOnly: true,\n// }\nconst vocabularyOnly = computed(() => !!props.context?.attrs?.vocabularyOnly)\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push(\n { item: 'Municipality Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipality Key', 'Municipality Key') },\n { item: 'Regional Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Regional Key', 'Regional Key') },\n { item: 'Municipal Association Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Municipal Association Key', 'Municipal Association Key') },\n { item: 'District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.District Key', 'District Key') },\n { item: 'Government District Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.Government District Key', 'Government District Key') },\n { item: 'State Key', active: false, placeholder: ted('message.dataupload.datasets.conditional.State Key', 'State Key') },\n )\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push(\n { item: 'Country', active: false, placeholder: ted('message.dataupload.datasets.conditional.Country', 'Country') },\n { item: 'Place', active: false, placeholder: ted('message.dataupload.datasets.conditional.Place', 'Place') },\n { item: 'Continent', active: false, placeholder: ted('message.dataupload.datasets.conditional.Continent', 'Continent') },\n )\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async (newValue, oldValue) => {\n if (newValue === oldValue) { return }\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: ted('message.dataupload.info.searchVocabulary', '--- Type in anything for a live search of the vocabulary ---').value, resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n if (vocabularyOnly.value) {\n activeInput('showTable'); vocSearch.value = true; if (man.value) { man.value = false }\n }\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n\n let vocCache = voc.value?.toLowerCase()\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await requestAutocompleteSuggestions({ voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n\nfunction handleSpatielListClick(el) {\n props.context.node.input(el);\n inputText.value = el.name;\n activeInput('showVocEntries');\n showTable.third = false;\n saveToLocal(el)\n}\n\nfunction submitType() {\n activeInput('showVocTable');\n\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ restoredValueFromEditMode }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div v-if=\"!vocabularyOnly\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> {{ $t('message.dataupload.info.preferredInput') }}\n <input id=\"I1\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n :placeholder=\"$t('message.dataupload.info.preferredInput')\"\n @click=\"activeInput('showTable')\" />\n </label>\n\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.manually') }}\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.vocabulary') }}\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n {{ $te('message.dataupload.datasets.isReferencedByUrl.placeholder') ? $t('message.dataupload.datasets.isReferencedByUrl.placeholder') : 'Provide an URL' }}\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <label class=\"w-100\"> {{ $te('message.dataupload.datasets.contributorType.placeholder') ? $t('message.dataupload.datasets.contributorType.placeholder') : 'Choose type of vocabulary' }} \n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\" v-model=\"typeText\"\n :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item; typeText = el.placeholder\">\n {{ $t('message.dataupload.datasets.conditional.' + el.item) }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\">\n <!-- todo: I borrowed this from another input. Maybe refactor? -->\n <!-- {{ $te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary' }} -->\n {{ el.placeholder ? el.placeholder : $t('message.dataupload.datasets.conditional.' + el.item) }}\n <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"$te('message.dataupload.datasets.accessRights.placeholder') ? $t('message.dataupload.datasets.accessRights.placeholder') : 'Choose type of vocabulary'\"\n @click=\"activeInput('showVocEntries'); inputText = ''\"\n >\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"handleSpatielListClick(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top: 78px;\n }\n}\n</style>\n"],"names":["instance","getCurrentInstance","route","useRoute","dpiContext","useDpiContext","props","__props","requestAutocompleteSuggestions","useAutocomplete","listOfVoc","ref","typeText","inputText","voc","matches","manURL","useStore","t","locale","useI18n","ted","useTed","man","vocSearch","isEdit","computed","_a","resourceNameWhenEditing","keyFromResourceName","spatialVocabName","maybePrefix","vocabKey","translatedResourceName","vocabKeyUpper","word","execute","state","isLoading","useRequestUriName","restoredValueFromEditMode","once","watchEffect","whenever","v","vocabularyOnly","_b","watch","getAutocompleteSuggestions","newValue","oldValue","onMounted","nextTick","showTable","activeInput","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","manURLInput","handleSpatielListClick","_openBlock","_createElementBlock","_hoisted_1","_unref","_hoisted_2","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","$t","_vShow","_hoisted_9","_hoisted_10","$te","_cache","$event","_hoisted_11","_hoisted_12","_Fragment","_renderList","_isRef","_hoisted_14","_hoisted_15","_hoisted_16","_createTextVNode","_hoisted_18"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect, computed } from 'vue'\nimport { useRoute } from 'vue-router';\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst dpiContext = useDpiContext();\nconst isDuplicate = ref(localStorage.getItem('dpi_duplicate') || false);\nconst isEditMode = computed(() => !!dpiContext.value.edit?.enabled)\n\nconst { t, locale } = useI18n({ useScope: 'global' });\n\nconst validationMessages = ref({\n idformatvalid: \"\",\n idunique: \"\",\n required: \"\"\n\n});\n\nonMounted(() => {\n // This is kind of buggy, its taking the strings from the wrong json (de and en is switched)\n validationMessages.value.idformatvalid = t('message.dataupload.datasets.datasetID.invalidFormat');\n validationMessages.value.idunique = t('message.dataupload.datasets.datasetID.duplicate');\n validationMessages.value.required = t('message.dataupload.datasets.datasetID.required');\n});\n\nconst draftIDs = store.getters['auth/getUserDraftIds'];\nconst hubUrl = env.api.hubUrl;\nfunction idunique(node) {\n const id = node?.value;\n\n return new Promise(async (resolve) => {\n // resolve(true) -> datasetId is unique\n // resolve(false) -> datasetId is not unique\n\n if (isNil(id) || id === '' || id === undefined) resolve(true)\n\n const existIdInUserDrafts = draftIDs?.includes(id)\n if (existIdInUserDrafts) resolve(false)\n\n const request = `${hubUrl}datasets/${id}?useNormalizedId=true`;\n try {\n const res = await axios.head(request);\n // if 2xx -> datsetId is not unique -> validation error\n const isNotUnique = !(res.status >= 200 && res.status < 300);\n if (isNotUnique) resolve(false)\n } catch (error) {\n // if 404 -> datasetId is unique\n resolve(true);\n }\n\n resolve(false)\n });\n}\n\nfunction idformatvalid(node) {\n return /^[a-z0-9-]*$/.test(node.value);\n}\n\n</script>\n\n<template>\n <div class=\"formkitProperty DSid\">\n <h4>{{ $t(`message.dataupload.datasets.datasetID.label`) }}</h4>\n <FormKit v-if=\"!isEditMode || isDuplicate\" type=\"text\" name=\"datasetID\" id=\"datasetID\"\n :placeholder=\"$t(`message.dataupload.datasets.datasetID.label`)\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\"\n :validation-rules=\"{ idformatvalid, idunique }\" validation=\"required|idformatvalid|(900)idunique\"\n validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n </FormKit>\n <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n </FormKit>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","dpiContext","useDpiContext","isDuplicate","ref","isEditMode","computed","_a","t","locale","useI18n","validationMessages","onMounted","draftIDs","hubUrl","idunique","node","id","resolve","isNil","request","res","axios","idformatvalid"],"mappings":";;;;;;;;;;;;;;;;;;;6CAmFeA,IAAA;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA5EA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAa,GAC1BC,IAAcC,EAAI,aAAa,QAAQ,eAAe,KAAK,EAAK,GAChEC,IAAaC,EAAS;;AAAM,cAAC,GAACC,IAAAN,EAAW,MAAM,SAAjB,QAAAM,EAAuB;AAAA,KAAO,GAE5D,EAAE,GAAAC,GAAG,QAAAC,MAAWC,EAAQ,EAAE,UAAU,SAAQ,CAAE,GAE9CC,IAAqBP,EAAI;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IAEZ,CAAC;AAED,IAAAQ,EAAU,MAAM;AAEd,MAAAD,EAAmB,MAAM,gBAAgBH,EAAE,qDAAqD,GAChGG,EAAmB,MAAM,WAAWH,EAAE,iDAAiD,GACvFG,EAAmB,MAAM,WAAWH,EAAE,gDAAgD;AAAA,IACxF,CAAC;AAED,UAAMK,IAAWd,EAAM,QAAQ,sBAAsB,GAC/Ce,IAASjB,EAAI,IAAI;AACvB,aAASkB,EAASC,GAAM;AACtB,YAAMC,IAAKD,KAAA,gBAAAA,EAAM;AAEjB,aAAO,IAAI,QAAQ,OAAOE,MAAY;AAIpC,SAAIC,EAAMF,CAAE,KAAKA,MAAO,MAAMA,MAAO,WAAWC,EAAQ,EAAI,IAEhCL,KAAA,gBAAAA,EAAU,SAASI,OACtBC,EAAQ,EAAK;AAEtC,cAAME,IAAU,GAAGN,CAAM,YAAYG,CAAE;AACvC,YAAI;AACF,gBAAMI,IAAM,MAAMC,EAAM,KAAKF,CAAO;AAGpC,UADoB,EAAEC,EAAI,UAAU,OAAOA,EAAI,SAAS,QACvCH,EAAQ,EAAK;AAAA,QAC/B,QAAe;AAEd,UAAAA,EAAQ,EAAI;AAAA,QACd;AAEA,QAAAA,EAAQ,EAAK;AAAA,MACjB,CAAG;AAAA,IACH;AAEA,aAASK,EAAcP,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC
|
|
1
|
+
{"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect, computed } from 'vue'\nimport { useRoute } from 'vue-router';\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables';\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst dpiContext = useDpiContext();\nconst isDuplicate = ref(localStorage.getItem('dpi_duplicate') || false);\nconst isEditMode = computed(() => !!dpiContext.value.edit?.enabled)\n\nconst { t, locale } = useI18n({ useScope: 'global' });\n\nconst validationMessages = ref({\n idformatvalid: \"\",\n idunique: \"\",\n required: \"\"\n\n});\n\nonMounted(() => {\n // This is kind of buggy, its taking the strings from the wrong json (de and en is switched)\n validationMessages.value.idformatvalid = t('message.dataupload.datasets.datasetID.invalidFormat');\n validationMessages.value.idunique = t('message.dataupload.datasets.datasetID.duplicate');\n validationMessages.value.required = t('message.dataupload.datasets.datasetID.required');\n});\n\nconst draftIDs = store.getters['auth/getUserDraftIds'];\nconst hubUrl = env.api.hubUrl;\nfunction idunique(node) {\n const id = node?.value;\n\n return new Promise(async (resolve) => {\n // resolve(true) -> datasetId is unique\n // resolve(false) -> datasetId is not unique\n\n if (isNil(id) || id === '' || id === undefined) resolve(true)\n\n const existIdInUserDrafts = draftIDs?.includes(id)\n if (existIdInUserDrafts) resolve(false)\n\n const request = `${hubUrl}datasets/${id}?useNormalizedId=true`;\n try {\n const res = await axios.head(request);\n // if 2xx -> datsetId is not unique -> validation error\n const isNotUnique = !(res.status >= 200 && res.status < 300);\n if (isNotUnique) resolve(false)\n } catch (error) {\n // if 404 -> datasetId is unique\n resolve(true);\n }\n\n resolve(false)\n });\n}\n\nfunction idformatvalid(node) {\n return /^[a-z0-9-]*$/.test(node.value);\n}\n\n</script>\n\n<template>\n <div class=\"formkitProperty DSid\">\n <h4>{{ $t(`message.dataupload.datasets.datasetID.label`) }}</h4>\n <FormKit v-if=\"!isEditMode || isDuplicate\" type=\"text\" name=\"datasetID\" id=\"datasetID\"\n :placeholder=\"$t(`message.dataupload.datasets.datasetID.label`)\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\"\n :validation-rules=\"{ idformatvalid, idunique }\" validation=\"required|idformatvalid|(900)idunique\"\n validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n </FormKit>\n <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n </FormKit>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","dpiContext","useDpiContext","isDuplicate","ref","isEditMode","computed","_a","t","locale","useI18n","validationMessages","onMounted","draftIDs","hubUrl","idunique","node","id","resolve","isNil","request","res","axios","idformatvalid","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","$t","_createBlock","_component_FormKit"],"mappings":";;;;;;;;;;;;;;;;;;;6CAmFeA,IAAA;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA5EA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAa,GAC1BC,IAAcC,EAAI,aAAa,QAAQ,eAAe,KAAK,EAAK,GAChEC,IAAaC,EAAS;;AAAM,cAAC,GAACC,IAAAN,EAAW,MAAM,SAAjB,QAAAM,EAAuB;AAAA,KAAO,GAE5D,EAAE,GAAAC,GAAG,QAAAC,MAAWC,EAAQ,EAAE,UAAU,SAAQ,CAAE,GAE9CC,IAAqBP,EAAI;AAAA,MAC7B,eAAe;AAAA,MACf,UAAU;AAAA,MACV,UAAU;AAAA,IAEZ,CAAC;AAED,IAAAQ,EAAU,MAAM;AAEd,MAAAD,EAAmB,MAAM,gBAAgBH,EAAE,qDAAqD,GAChGG,EAAmB,MAAM,WAAWH,EAAE,iDAAiD,GACvFG,EAAmB,MAAM,WAAWH,EAAE,gDAAgD;AAAA,IACxF,CAAC;AAED,UAAMK,IAAWd,EAAM,QAAQ,sBAAsB,GAC/Ce,IAASjB,EAAI,IAAI;AACvB,aAASkB,EAASC,GAAM;AACtB,YAAMC,IAAKD,KAAA,gBAAAA,EAAM;AAEjB,aAAO,IAAI,QAAQ,OAAOE,MAAY;AAIpC,SAAIC,EAAMF,CAAE,KAAKA,MAAO,MAAMA,MAAO,WAAWC,EAAQ,EAAI,IAEhCL,KAAA,gBAAAA,EAAU,SAASI,OACtBC,EAAQ,EAAK;AAEtC,cAAME,IAAU,GAAGN,CAAM,YAAYG,CAAE;AACvC,YAAI;AACF,gBAAMI,IAAM,MAAMC,EAAM,KAAKF,CAAO;AAGpC,UADoB,EAAEC,EAAI,UAAU,OAAOA,EAAI,SAAS,QACvCH,EAAQ,EAAK;AAAA,QAC/B,QAAe;AAEd,UAAAA,EAAQ,EAAI;AAAA,QACd;AAEA,QAAAA,EAAQ,EAAK;AAAA,MACjB,CAAG;AAAA,IACH;AAEA,aAASK,EAAcP,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;AAKE,aAAAQ,EAAA,GAAAC,EAWM,OAXNC,GAWM;AAAA,QAVJC,EAAgE,cAAzDC,EAAE,GAAA,6CAAA,CAAA,GAAA,CAAA;AAAA;QACO,CAAAvB,EAAA,SAAcF,EAAW,cAAzC0B,EAKUC,GAAA;AAAA;UALiC,MAAK;AAAA,UAAO,MAAK;AAAA,UAAY,IAAG;AAAA,UACxE,aAAaF,EAAE,GAAA,6CAAA;AAAA,UACf,MAAMA,EAAE,GAAA,4CAAA;AAAA,UAAiD,MAAMA,EAAE,GAAA,4CAAA;AAAA,UACjE,oBAAgB,EAAA,eAAIL,GAAa,UAAER,EAAQ;AAAA,UAAI,YAAW;AAAA,UAC3D,yBAAsB;AAAA,UAAQ,uBAAqBJ,EAAkB;AAAA,UAAE,eAAY;AAAA,yGAErFkB,EAEUC,GAAA;AAAA;UAFM,MAAK;AAAA,UAAO,MAAK;AAAA,UAAY,IAAG;AAAA,UAAa,UAAU;AAAA,UACpE,MAAMF,EAAE,GAAA,4CAAA;AAAA,UAAiD,MAAMA,EAAE,GAAA,4CAAA;AAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/WidgetInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4 class=\"\">Tag</h4>\n\n <div class=\"formkitCmpWrap d-flex p-3 w-100\">\n\n <div class=\"formkit-inner\">\n <input readonly=\"\" placeholder=\"Wählen Sie die Art des Widgets aus\" class=\"formkit-input\" type=\"text\"\n name=\"mode\" aria-required=\"true\" :value=\"widgetType\" aria-describedby=\"input_164-rule_required\"\n @click=\"activeList = !activeList\">\n <ul ref=\"dropdownListWidget\" 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\n }}\n </li>\n </ul>\n </div>\n\n <!-- Liste Distribution/ Widget/ Report --- leading kann nur 1 sein und auch nur ein widget -->\n <button class=\"ml-3 widgetButton\" v-if=\"widgetType === 'Widget'\"\n :class=\"{ activeLeading: props.context.value && props.context.value['lead'] === 'true' }\" type=\"button\" @click=\"isLeading\">\n Leading\n </button>\n </div>\n </div>\n\n\n\n</template>\n<script setup>\nimport { ref, watch } from 'vue';\nimport { getNode } from '@formkit/core'\n\nconst props = defineProps({\n context: Object\n})\nlet disList = ref(getNode('Distributions').value['distributionList'])\nlet activeButton = ref(false)\n\nconst isLeading = () => {\n\n checkForLead()\n\n // console.log(!activeLeadingWidget.value);\n if (!activeLeadingWidget.value) {\n props.context.node.input({ '@Tag': 'LeadingWidget', 'lead': 'true' })\n activeButton.value = !activeButton.value\n } else {\n activeLeadingWidget.value = false\n activeButton.value = false\n widgetType.value = \"Widget\"\n props.context.node.input({ '@Tag': 'Widget', 'lead': 'false' })\n }\n\n}\nconst activeList = ref(false)\nconst matches = ref(['Distribution', 'Widget', 'Report'])\nlet activeLeadingWidget = ref(false)\nlet widgetType = ref('')\n\n\n// Init every dis as distribution if there's nothing set - default state\n\n// console.log(props.context.value);\n\nif (props.context.value != undefined) {\n if (props.context.value['@Tag'] === 'LeadingWidget') {\n widgetType.value = 'Widget'\n } else widgetType.value = props.context.value['@Tag']\n} else widgetType.value = 'Distribution'\n\n// console.log(widgetType.value);\n\n\nconst checkForLead = () => {\n disList.value = getNode('Distributions').value['distributionList']\n for (let index = 0; index < disList.value.length; index++) {\n try {\n if (disList.value[index]['Mandatory']['pv:distributionType']['lead'] != undefined || disList.value[index]['Mandatory']['pv:distributionType']['lead'] === \"true\") {\n activeLeadingWidget.value = true\n }\n } catch (error) {\n\n }\n\n // console.log('Is lead?',disList.value[index]['Mandatory']['pv:distributionType']['lead'], activeLeadingWidget.value);\n }\n}\ncheckForLead()\nconst setValue = (item) => {\n // console.log('Item ####', item);\n checkForLead()\n props.context.node.input(item)\n widgetType.value = item\n}\n</script>\n<style scoped>\n.formkit-inner:focus-within {\n margin-top: 0;\n}\n\n.formkit-inner {\n\n flex-grow: 1;\n\n}\n\n.formkitCmpWrap {\n position: relative;\n}\n\n.widgetButton {\n border-color: lightgray;\n\n &:hover {\n background-color: green;\n color: white;\n }\n\n}\n\n.activeLeading {\n background-color: green;\n color: white;\n border-color: green;\n\n}\n</style>"],"names":["props","__props","disList","ref","getNode","activeButton","isLeading","checkForLead","activeLeadingWidget","widgetType","activeList","matches","index","setValue","item"],"mappings":";;;;;;;;;;;;;AAiCA,UAAMA,IAAQC;
|
|
1
|
+
{"version":3,"file":"WidgetInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/WidgetInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4 class=\"\">Tag</h4>\n\n <div class=\"formkitCmpWrap d-flex p-3 w-100\">\n\n <div class=\"formkit-inner\">\n <input readonly=\"\" placeholder=\"Wählen Sie die Art des Widgets aus\" class=\"formkit-input\" type=\"text\"\n name=\"mode\" aria-required=\"true\" :value=\"widgetType\" aria-describedby=\"input_164-rule_required\"\n @click=\"activeList = !activeList\">\n <ul ref=\"dropdownListWidget\" 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\n }}\n </li>\n </ul>\n </div>\n\n <!-- Liste Distribution/ Widget/ Report --- leading kann nur 1 sein und auch nur ein widget -->\n <button class=\"ml-3 widgetButton\" v-if=\"widgetType === 'Widget'\"\n :class=\"{ activeLeading: props.context.value && props.context.value['lead'] === 'true' }\" type=\"button\" @click=\"isLeading\">\n Leading\n </button>\n </div>\n </div>\n\n\n\n</template>\n<script setup>\nimport { ref, watch } from 'vue';\nimport { getNode } from '@formkit/core'\n\nconst props = defineProps({\n context: Object\n})\nlet disList = ref(getNode('Distributions').value['distributionList'])\nlet activeButton = ref(false)\n\nconst isLeading = () => {\n\n checkForLead()\n\n // console.log(!activeLeadingWidget.value);\n if (!activeLeadingWidget.value) {\n props.context.node.input({ '@Tag': 'LeadingWidget', 'lead': 'true' })\n activeButton.value = !activeButton.value\n } else {\n activeLeadingWidget.value = false\n activeButton.value = false\n widgetType.value = \"Widget\"\n props.context.node.input({ '@Tag': 'Widget', 'lead': 'false' })\n }\n\n}\nconst activeList = ref(false)\nconst matches = ref(['Distribution', 'Widget', 'Report'])\nlet activeLeadingWidget = ref(false)\nlet widgetType = ref('')\n\n\n// Init every dis as distribution if there's nothing set - default state\n\n// console.log(props.context.value);\n\nif (props.context.value != undefined) {\n if (props.context.value['@Tag'] === 'LeadingWidget') {\n widgetType.value = 'Widget'\n } else widgetType.value = props.context.value['@Tag']\n} else widgetType.value = 'Distribution'\n\n// console.log(widgetType.value);\n\n\nconst checkForLead = () => {\n disList.value = getNode('Distributions').value['distributionList']\n for (let index = 0; index < disList.value.length; index++) {\n try {\n if (disList.value[index]['Mandatory']['pv:distributionType']['lead'] != undefined || disList.value[index]['Mandatory']['pv:distributionType']['lead'] === \"true\") {\n activeLeadingWidget.value = true\n }\n } catch (error) {\n\n }\n\n // console.log('Is lead?',disList.value[index]['Mandatory']['pv:distributionType']['lead'], activeLeadingWidget.value);\n }\n}\ncheckForLead()\nconst setValue = (item) => {\n // console.log('Item ####', item);\n checkForLead()\n props.context.node.input(item)\n widgetType.value = item\n}\n</script>\n<style scoped>\n.formkit-inner:focus-within {\n margin-top: 0;\n}\n\n.formkit-inner {\n\n flex-grow: 1;\n\n}\n\n.formkitCmpWrap {\n position: relative;\n}\n\n.widgetButton {\n border-color: lightgray;\n\n &:hover {\n background-color: green;\n color: white;\n }\n\n}\n\n.activeLeading {\n background-color: green;\n color: white;\n border-color: green;\n\n}\n</style>"],"names":["props","__props","disList","ref","getNode","activeButton","isLeading","checkForLead","activeLeadingWidget","widgetType","activeList","matches","index","setValue","item","_openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode","_hoisted_2","_hoisted_3","_unref","$event","_withDirectives","_hoisted_5","_Fragment","_renderList","match","_hoisted_6","_normalizeClass"],"mappings":";;;;;;;;;;;;;AAiCA,UAAMA,IAAQC;AAGd,QAAIC,IAAUC,EAAIC,EAAQ,eAAe,EAAE,MAAM,gBAAmB,GAChEC,IAAeF,EAAI,EAAK;AAE5B,UAAMG,IAAY,MAAM;AAEpB,MAAAC,EAAa,GAGRC,EAAoB,SAIrBA,EAAoB,QAAQ,IAC5BH,EAAa,QAAQ,IACrBI,EAAW,QAAQ,UACnBT,EAAM,QAAQ,KAAK,MAAM,EAAE,QAAQ,UAAU,MAAQ,SAAS,MAN9DA,EAAM,QAAQ,KAAK,MAAM,EAAE,QAAQ,iBAAiB,MAAQ,QAAQ,GACpEK,EAAa,QAAQ,CAACA,EAAa;AAAA,IAQ3C,GACMK,IAAaP,EAAI,EAAK,GACtBQ,IAAUR,EAAI,CAAC,gBAAgB,UAAU,QAAQ,CAAC;AACxD,QAAIK,IAAsBL,EAAI,EAAK,GAC/BM,IAAaN,EAAI,EAAE;AAOvB,IAAIH,EAAM,QAAQ,SAAS,OACnBA,EAAM,QAAQ,MAAM,MAAM,MAAM,kBAChCS,EAAW,QAAQ,WAChBA,EAAW,QAAQT,EAAM,QAAQ,MAAM,MAAM,IACjDS,EAAW,QAAQ;AAK1B,UAAMF,IAAe,MAAM;AACvB,MAAAL,EAAQ,QAAQE,EAAQ,eAAe,EAAE,MAAM;AAC/C,eAASQ,IAAQ,GAAGA,IAAQV,EAAQ,MAAM,QAAQU;AAC9C,YAAI;AACA,WAAIV,EAAQ,MAAMU,CAAK,EAAE,UAAa,qBAAqB,EAAE,QAAW,QAAaV,EAAQ,MAAMU,CAAK,EAAE,UAAa,qBAAqB,EAAE,SAAY,YACtJJ,EAAoB,QAAQ;AAAA,QAEnC,QAAe;AAAA,QAEhB;AAAA,IAIR;AACA,IAAAD,EAAa;AACb,UAAMM,IAAW,CAACC,MAAS;AAEvB,MAAAP,EAAa,GACbP,EAAM,QAAQ,KAAK,MAAMc,CAAI,GAC7BL,EAAW,QAAQK;AAAA,IACvB;sBA7FIC,EAAA,GAAAC,EAuBM,OAvBNC,GAuBM;AAAA,MAtBFC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAqB,MAAjB,EAAA,OAAM,GAAE,GAAC,OAAG,EAAA;AAAA;MAEhBA,EAmBM,OAnBNC,GAmBM;AAAA,QAjBFD,EAUM,OAVNE,GAUM;AAAA,UATFF,EAEsC,SAAA;AAAA,YAF/B,UAAS;AAAA,YAAG,aAAY;AAAA,YAAqC,OAAM;AAAA,YAAgB,MAAK;AAAA,YAC3F,MAAK;AAAA,YAAO,iBAAc;AAAA,YAAQ,OAAOG,EAAUb,CAAA;AAAA,YAAE,oBAAiB;AAAA,YACrE,SAAKS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAK,MAAEb,EAAU,QAAA,CAAIA,EAAU;AAAA;;UACpCc,EAAAL,EAKK,MALLM,GAKK;AAAA,oBAJDT,EAGKU,GAAA,MAAAC,EAHehB,EAAO,OAAA,CAAhBiB,YAAXZ,EAGK,MAAA;AAAA,cAHyB,KAAKY;AAAA,cAAQ;AAAO,gBAAAf,EAASe,CAAK,GAAGlB,EAAA,SAAcA,EAAU;AAAA,cAAA;AAAA,cACvF,OAAM;AAAA,iBAAoFkB,CAAK,GAAA,GAAAC,CAAA;;gBAFlEnB,EAAU,KAAA;AAAA;;;QASXY,EAAUb,CAAA,MAAA,iBAAlDO,EAGS,UAAA;AAAA;UAHD,OAAMc,EAAA,CAAA,qBACe,EAAA,eAAA9B,EAAM,QAAQ,SAASA,EAAM,QAAQ,MAAK,SAAA,OAAA,CAAA,CAAA;AAAA,UAAuB,MAAK;AAAA,UAAU,SAAOM;AAAA,WAAW;AAAA;AAAA,eAE/H,CAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DistributionInputPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/DistributionInputPage.vue"],"sourcesContent":["<template>\n <h1>{{ $t('message.dataupload.info.distributions') }}</h1>\n <hr>\n <div name=\"distribution-stepper-list\" class=\"distributionsListClass\">\n\n <FormKit type=\"list\" name=\"distributionList\">\n\n <section v-for=\"(dist, index) in list.disList\" :key=\"index\" class=\"distributionOuter\">\n <div class=\"d-flex m-4 align-items-center justify-content-between\">\n <h2 class=\"m-0\">Distribution {{ index + 1 }}</h2>\n <div>\n <button class=\"btn btn-secondary\" type=\"button\" @click=\"editDis(index)\">{{ $t('message.datasetDetails.edit')\n }}</button>\n <button class=\"btn btn-secondary\" type=\"button\" @click=\"removeDis(index)\">{{\n $t('message.datasetDetails.delete') }}</button>\n </div>\n </div>\n <div class=\"disInputWrapper\" :class=\"{ 'd-none': !list.disList[index].isActive }\">\n <DistributionStepper :name=\"dist.name\" :index=\"index\" :schema=\"props.schema\" :values=\"props.values\"\n :distributionList=\"disIndex\">\n </DistributionStepper>\n\n </div>\n\n </section>\n </FormKit>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"addDistribution\">{{ $t('message.dataupload.info.newDistribution')\n }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"deleteAllDistributions\">{{\n $t('message.dataupload.info.deleteDistribution') }}</button>\n\n </div>\n</template>\n<script setup>\nimport { ref, onMounted, nextTick, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport DistributionStepper from '../components/DistributionStepper.vue';\nimport { cloneDeep } from 'lodash';\nimport { useDpiStepper } from '../composables/useDpiStepper';\n\nconst props = defineProps({\n values: Object,\n schema: Object,\n})\n\nconst disIndex = ref([])\nconst store = useStore();\n\nconst list = ref({\n disList: [],\n})\nonMounted(async () => {\n // Load DOM\n await nextTick()\n if (props.values.Distributions.distributionList.length != 0) {\n for (let index = 0; index < props.values.Distributions.distributionList.length; index++) {\n disIndex.value.push('distribution ' + index)\n list.value.disList.push({ 'name': 'distribution ' + index, 'isActive': false })\n }\n }\n})\nconst addDistribution = () => {\n list.value.disList.push({ 'name': 'distribution ' + list.value.disList.length, 'isActive': false })\n editDis(list.value.disList.length - 1)\n}\nconst editDis = (i) => {\n list.value.disList.forEach((el, index) => {\n if (i != index) {\n el.isActive = false\n }\n }\n )\n list.value.disList[i].isActive = !list.value.disList[i].isActive\n}\nconst removeDis = (i) => {\n const newValues = cloneDeep(props.values);\n newValues.Distributions.distributionList.splice(i, 1);\n\n store.dispatch('dpiStore/saveFormValues', { property: 'datasets', values: newValues });\n list.value.disList.splice(i, 1)\n}\nconst deleteAllDistributions = () => {\n const newValues = cloneDeep(props.values);\n newValues.Distributions.distributionList = [];\n store.dispatch('dpiStore/saveFormValues', { property: 'datasets', values: newValues });\n\n list.value.disList = []\n}\n\n\n</script>"],"names":["props","__props","disIndex","ref","store","useStore","list","onMounted","nextTick","index","addDistribution","editDis","i","el","removeDis","newValues","cloneDeep","deleteAllDistributions"],"mappings":";;;;;;;;;;;;;;;AAwCA,UAAMA,IAAQC,GAKRC,IAAWC,EAAI,EAAE,GACjBC,IAAQC,EAAQ,GAEhBC,IAAOH,EAAI;AAAA,MACf,SAAS,CAAE;AAAA,IACb,CAAC;AACD,IAAAI,EAAU,YAAY;AAGpB,UADA,MAAMC,EAAS,GACXR,EAAM,OAAO,cAAc,iBAAiB,UAAU;AACxD,iBAASS,IAAQ,GAAGA,IAAQT,EAAM,OAAO,cAAc,iBAAiB,QAAQS;AAC9E,UAAAP,EAAS,MAAM,KAAK,kBAAkBO,CAAK,GAC3CH,EAAK,MAAM,QAAQ,KAAK,EAAE,MAAQ,kBAAkBG,GAAO,UAAY,IAAO;AAAA,IAGpF,CAAC;AACD,UAAMC,IAAkB,MAAM;AAC5B,MAAAJ,EAAK,MAAM,QAAQ,KAAK,EAAE,MAAQ,kBAAkBA,EAAK,MAAM,QAAQ,QAAQ,UAAY,GAAK,CAAE,GAClGK,EAAQL,EAAK,MAAM,QAAQ,SAAS,CAAC;AAAA,IACvC,GACMK,IAAU,CAACC,MAAM;AACrB,MAAAN,EAAK,MAAM,QAAQ;AAAA,QAAQ,CAACO,GAAIJ,MAAU;AACxC,UAAIG,KAAKH,MACPI,EAAG,WAAW;AAAA,QAElB;AAAA,MACA,GACAP,EAAK,MAAM,QAAQM,CAAC,EAAE,WAAW,CAACN,EAAK,MAAM,QAAQM,CAAC,EAAE;AAAA,IAC1D,GACME,IAAY,CAACF,MAAM;AACvB,YAAMG,IAAYC,EAAUhB,EAAM,MAAM;AACxC,MAAAe,EAAU,cAAc,iBAAiB,OAAOH,GAAG,CAAC,GAEpDR,EAAM,SAAS,2BAA2B,EAAE,UAAU,YAAY,QAAQW,EAAS,CAAE,GACrFT,EAAK,MAAM,QAAQ,OAAOM,GAAG,CAAC;AAAA,IAChC,GACMK,IAAyB,MAAM;AACnC,YAAMF,IAAYC,EAAUhB,EAAM,MAAM;AACxC,MAAAe,EAAU,cAAc,mBAAmB,IAC3CX,EAAM,SAAS,2BAA2B,EAAE,UAAU,YAAY,QAAQW,EAAS,CAAE,GAErFT,EAAK,MAAM,UAAU,CAAC;AAAA,IACxB
|
|
1
|
+
{"version":3,"file":"DistributionInputPage.vue.mjs","sources":["../../../lib/data-provider-interface/views/DistributionInputPage.vue"],"sourcesContent":["<template>\n <h1>{{ $t('message.dataupload.info.distributions') }}</h1>\n <hr>\n <div name=\"distribution-stepper-list\" class=\"distributionsListClass\">\n\n <FormKit type=\"list\" name=\"distributionList\">\n\n <section v-for=\"(dist, index) in list.disList\" :key=\"index\" class=\"distributionOuter\">\n <div class=\"d-flex m-4 align-items-center justify-content-between\">\n <h2 class=\"m-0\">Distribution {{ index + 1 }}</h2>\n <div>\n <button class=\"btn btn-secondary\" type=\"button\" @click=\"editDis(index)\">{{ $t('message.datasetDetails.edit')\n }}</button>\n <button class=\"btn btn-secondary\" type=\"button\" @click=\"removeDis(index)\">{{\n $t('message.datasetDetails.delete') }}</button>\n </div>\n </div>\n <div class=\"disInputWrapper\" :class=\"{ 'd-none': !list.disList[index].isActive }\">\n <DistributionStepper :name=\"dist.name\" :index=\"index\" :schema=\"props.schema\" :values=\"props.values\"\n :distributionList=\"disIndex\">\n </DistributionStepper>\n\n </div>\n\n </section>\n </FormKit>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"addDistribution\">{{ $t('message.dataupload.info.newDistribution')\n }}</button>\n <button type=\"button\" class=\"btn btn-secondary\" @click=\"deleteAllDistributions\">{{\n $t('message.dataupload.info.deleteDistribution') }}</button>\n\n </div>\n</template>\n<script setup>\nimport { ref, onMounted, nextTick, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport DistributionStepper from '../components/DistributionStepper.vue';\nimport { cloneDeep } from 'lodash';\nimport { useDpiStepper } from '../composables/useDpiStepper';\n\nconst props = defineProps({\n values: Object,\n schema: Object,\n})\n\nconst disIndex = ref([])\nconst store = useStore();\n\nconst list = ref({\n disList: [],\n})\nonMounted(async () => {\n // Load DOM\n await nextTick()\n if (props.values.Distributions.distributionList.length != 0) {\n for (let index = 0; index < props.values.Distributions.distributionList.length; index++) {\n disIndex.value.push('distribution ' + index)\n list.value.disList.push({ 'name': 'distribution ' + index, 'isActive': false })\n }\n }\n})\nconst addDistribution = () => {\n list.value.disList.push({ 'name': 'distribution ' + list.value.disList.length, 'isActive': false })\n editDis(list.value.disList.length - 1)\n}\nconst editDis = (i) => {\n list.value.disList.forEach((el, index) => {\n if (i != index) {\n el.isActive = false\n }\n }\n )\n list.value.disList[i].isActive = !list.value.disList[i].isActive\n}\nconst removeDis = (i) => {\n const newValues = cloneDeep(props.values);\n newValues.Distributions.distributionList.splice(i, 1);\n\n store.dispatch('dpiStore/saveFormValues', { property: 'datasets', values: newValues });\n list.value.disList.splice(i, 1)\n}\nconst deleteAllDistributions = () => {\n const newValues = cloneDeep(props.values);\n newValues.Distributions.distributionList = [];\n store.dispatch('dpiStore/saveFormValues', { property: 'datasets', values: newValues });\n\n list.value.disList = []\n}\n\n\n</script>"],"names":["props","__props","disIndex","ref","store","useStore","list","onMounted","nextTick","index","addDistribution","editDis","i","el","removeDis","newValues","cloneDeep","deleteAllDistributions","_createElementVNode","$t","_hoisted_1","_createVNode","_component_FormKit","_openBlock","_createElementBlock","_Fragment","dist","_hoisted_2","_hoisted_3","$event","_hoisted_4","_hoisted_5","_normalizeClass","DistributionStepper"],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
5
5
|
distributionToDelete: number;
|
|
6
6
|
distributionData: never[];
|
|
7
7
|
}, {
|
|
8
|
-
getData: import('vuex').Computed;
|
|
9
8
|
getNavSteps: import('vuex').Computed;
|
|
9
|
+
getData: import('vuex').Computed;
|
|
10
10
|
getNumberOfDistributions: import('vuex').Computed;
|
|
11
11
|
}, {
|
|
12
12
|
truncate: typeof truncate;
|
|
@@ -18,9 +18,9 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
18
18
|
titleExists(data: any): boolean;
|
|
19
19
|
descriptionExists(data: any): boolean;
|
|
20
20
|
accessExists(data: any): boolean;
|
|
21
|
+
deleteDistribution: import('vuex').ActionMethod;
|
|
21
22
|
saveLocalstorageValues: import('vuex').ActionMethod;
|
|
22
23
|
addDistribution: import('vuex').ActionMethod;
|
|
23
|
-
deleteDistribution: import('vuex').ActionMethod;
|
|
24
24
|
setDeleteDistributionInline: import('vuex').ActionMethod;
|
|
25
25
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
26
26
|
distributionOverviewPage?: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DistributionOverview.vue.mjs","sources":["../../../lib/data-provider-interface/views/DistributionOverview.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"dist-list\">\n <h3>{{ $t('message.metadata.distributions') }}</h3>\n <hr>\n <ul class=\"list-unstyled\" v-if=\"getData('distributions').length > 0\">\n <li v-for=\"(dist, i) in getData('distributions')\" :key=\"i\" class=\"dist-item\">\n \n <div class=\"dist-details\">\n <div class=\"dist-info\">\n <!-- accessURL is always an array of URIs, first one might be enough for displaying -->\n <span v-if=\"accessExists(dist)\" style=\"font-weight: bold\">{{ dist['dcat:accessURL'][0]['@id']\n }}</span><br />\n\n <!-- title and description always an array, first valu emights be enough for displaying-->\n <span v-if=\"titleExists(dist)\" style=\"color: #868e96\">{{ dist['dct:title'][0]['@value'] }}<br /></span>\n <span v-if=\"descriptionExists(dist)\" style=\"color: #868e96\">{{ dist['dct:description'][0]['@value']\n }}</span>\n </div>\n <div class=\"dist-edit justify-content-end\">\n <span @click=\"redirectToDistributionForm(i)\" class=\"dist-edit-button p-2\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" fill=\"currentColor\"\n class=\"bi bi-pencil-square\" viewBox=\"0 0 16 16\">\n <path\n d=\"M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z\" />\n <path fill-rule=\"evenodd\"\n d=\"M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z\" />\n </svg></span>\n <span @click=\"triggerDeleteModal(i)\" class=\"dist-delete-button p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\" height=\"25\" fill=\"currentColor\" class=\"bi bi-x-circle\" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\" />\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\" />\n </svg></span>\n </div>\n </div>\n </li>\n </ul>\n <ul v-else class=\"list-unstyled\">\n <li>{{ $t('message.dataupload.noDistributions') }}</li>\n </ul>\n <button class=\"default\" v-if=\"distributionOverviewPage\" @click=\"createDistribution\">{{\n $t('message.dataupload.newDistribution') }}</button>\n </div>\n <div class=\"modal fade\" id=\"deleteDistributionModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"deleteModalLabel\"\n aria-hidden=\"true\" data-cy=\"citation-modal\">\n <div class=\"modal-dialog modal-lg\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title\" id=\"deleteModalLabel\">\n {{ $t('message.dataupload.deletemodal.deleteDistribution') }}\n </h2>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h3>{{ $t('message.dataupload.deletemodal.areyousure') }}</h3>\n <div class=\"mt-3 d-flex justify-content-start align-items-center\">\n </div>\n </div>\n <div class=\"modal-footer\">\n <button data-dismiss=\"modal\" id=\"cancel\">{{ $t('message.datasetDetails.datasets.modal.cancel') }}</button>\n <button @click=\"deleteDist()\" id=\"delete\">{{ $t('message.datasetDetails.delete') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport $ from 'jquery';\nimport { isEmpty, has } from 'lodash-es';\nimport { mapActions, mapGetters } from 'vuex';\nimport { truncate } from '../../utils/helpers';\n\nexport default {\n props: ['distributionOverviewPage'],\n data() {\n return {\n distributionToDelete: 0,\n distributionData: [],\n };\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getNumberOfDistributions',\n 'getNavSteps',\n 'getData',\n ]),\n },\n methods: {\n ...mapActions('dpiStore', [\n 'addDistribution',\n 'saveLocalstorageValues',\n 'deleteDistribution',\n 'setDeleteDistributionInline',\n ]),\n truncate,\n deleteDist() {\n this.deleteDistribution(this.distributionToDelete);\n this.setDeleteDistributionInline(true);\n $('#deleteDistributionModal').modal('hide');\n this.$router.push({ path: `${this.$env.content.dataProviderInterface.basePath}/datasets/distoverview`, query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n triggerDeleteModal(index) {\n this.distributionToDelete = index;\n $('#deleteDistributionModal').modal({ show: true });\n },\n getDistributionFormat(dist) {\n if (!isEmpty(dist['dct:format'])) {\n return dist['dct:format'].substring(dist['dct:format'].lastIndexOf('/') + 1);\n } else {\n return 'UNKNOWN';\n }\n },\n redirectToDistributionForm(distributionIndex) {\n const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n this.$router.push({\n path: `${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distributionIndex}`,\n query: {\n locale: this.$route.query.locale,\n edit: distributionIndex\n }\n }).catch(() => { });\n },\n createDistribution() {\n // create an new distribution within store\n this.addDistribution();\n const distNumber = this.getNumberOfDistributions;\n const distIndex = distNumber - 1; // distributions are stored within an array and indexed by their position in array\n const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n\n // direct to distribution input form\n this.$router.push(`${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distIndex}?locale=${this.$i18n.locale}`);\n },\n titleExists(data) {\n return !isEmpty(data['dct:title']) && !isEmpty(data['dct:title'][0]) && has(data['dct:title'][0], '@value') && !isEmpty(data['dct:title'][0]['@value']);\n },\n descriptionExists(data) {\n return !isEmpty(data['dct:description']) && !isEmpty(data['dct:description'][0]) && has(data['dct:description'][0], '@value') && !isEmpty(data['dct:description'][0]['@value']);\n },\n accessExists(data) {\n return !isEmpty(data['dcat:accessURL']) && !isEmpty(data['dcat:accessURL'][0]) && has(data['dcat:accessURL'][0], '@id') && !isEmpty(data['dcat:accessURL'][0]['@id']);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.dist {\n &-list {\n margin: 50px;\n }\n\n &-details {\n display: flex;\n flex: 1;\n }\n\n &-edit {\n width: 25%;\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n margin-left: 5px;\n\n &-button {\n cursor: pointer;\n transition: all 0.2s ease;\n }\n &-button:hover {\n opacity: 0.5;\n transform: scale(1.1);\n color: green;\n transition: all 0.2s ease;\n }\n }\n\n &-info {\n width: 75%;\n }\n\n &-item {\n margin: 5px;\n display: flex;\n padding: 20px;\n align-items: center;\n border-bottom: .1em solid #e5e5e5;\n }\n\n &-delete {\n &-button {\n cursor: pointer;\n transition: all 0.2s ease;\n\n }\n &-button:hover {\n transform: scale(1.1);\n opacity: 0.5;\n color: red;\n transition: all 0.2s ease;\n }\n }\n}\n\nbutton {\n &#delete {\n background-color: #B30519;\n color: #fff;\n border-color: #B30519;\n }\n\n &#cancel {\n background-color: #767676;\n border-color: #767676;\n color: #fff;\n }\n\n &.default {\n background-color: #001d85;\n border-color: #001d85;\n color: #fff;\n }\n\n border-radius: 0.3em;\n font-size: 16px;\n font-family: \"Ubuntu\";\n padding: 0.75em;\n font-weight: 100;\n}\n</style>\n"],"names":["_sfc_main","mapGetters","mapActions","truncate","$","index","dist","isEmpty","distributionIndex","firstDistPage","distIndex","data","has","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","_createElementBlock","_createElementVNode","_ctx","_cache","_createTextVNode","_openBlock","_hoisted_2","_Fragment","_renderList","i","$options","_hoisted_5","_toDisplayString","_createCommentVNode","_hoisted_6","_hoisted_7","$event","_hoisted_11","$props","args","_hoisted_12","_hoisted_13","_hoisted_16","_hoisted_19"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DistributionOverview.vue.mjs","sources":["../../../lib/data-provider-interface/views/DistributionOverview.vue"],"sourcesContent":["<template>\n <div>\n <div class=\"dist-list\">\n <h3>{{ $t('message.metadata.distributions') }}</h3>\n <hr>\n <ul class=\"list-unstyled\" v-if=\"getData('distributions').length > 0\">\n <li v-for=\"(dist, i) in getData('distributions')\" :key=\"i\" class=\"dist-item\">\n \n <div class=\"dist-details\">\n <div class=\"dist-info\">\n <!-- accessURL is always an array of URIs, first one might be enough for displaying -->\n <span v-if=\"accessExists(dist)\" style=\"font-weight: bold\">{{ dist['dcat:accessURL'][0]['@id']\n }}</span><br />\n\n <!-- title and description always an array, first valu emights be enough for displaying-->\n <span v-if=\"titleExists(dist)\" style=\"color: #868e96\">{{ dist['dct:title'][0]['@value'] }}<br /></span>\n <span v-if=\"descriptionExists(dist)\" style=\"color: #868e96\">{{ dist['dct:description'][0]['@value']\n }}</span>\n </div>\n <div class=\"dist-edit justify-content-end\">\n <span @click=\"redirectToDistributionForm(i)\" class=\"dist-edit-button p-2\"><svg\n xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" fill=\"currentColor\"\n class=\"bi bi-pencil-square\" viewBox=\"0 0 16 16\">\n <path\n d=\"M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z\" />\n <path fill-rule=\"evenodd\"\n d=\"M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z\" />\n </svg></span>\n <span @click=\"triggerDeleteModal(i)\" class=\"dist-delete-button p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\" height=\"25\" fill=\"currentColor\" class=\"bi bi-x-circle\" viewBox=\"0 0 16 16\">\n <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\" />\n <path\n d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\" />\n </svg></span>\n </div>\n </div>\n </li>\n </ul>\n <ul v-else class=\"list-unstyled\">\n <li>{{ $t('message.dataupload.noDistributions') }}</li>\n </ul>\n <button class=\"default\" v-if=\"distributionOverviewPage\" @click=\"createDistribution\">{{\n $t('message.dataupload.newDistribution') }}</button>\n </div>\n <div class=\"modal fade\" id=\"deleteDistributionModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"deleteModalLabel\"\n aria-hidden=\"true\" data-cy=\"citation-modal\">\n <div class=\"modal-dialog modal-lg\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-title\" id=\"deleteModalLabel\">\n {{ $t('message.dataupload.deletemodal.deleteDistribution') }}\n </h2>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <h3>{{ $t('message.dataupload.deletemodal.areyousure') }}</h3>\n <div class=\"mt-3 d-flex justify-content-start align-items-center\">\n </div>\n </div>\n <div class=\"modal-footer\">\n <button data-dismiss=\"modal\" id=\"cancel\">{{ $t('message.datasetDetails.datasets.modal.cancel') }}</button>\n <button @click=\"deleteDist()\" id=\"delete\">{{ $t('message.datasetDetails.delete') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport $ from 'jquery';\nimport { isEmpty, has } from 'lodash-es';\nimport { mapActions, mapGetters } from 'vuex';\nimport { truncate } from '../../utils/helpers';\n\nexport default {\n props: ['distributionOverviewPage'],\n data() {\n return {\n distributionToDelete: 0,\n distributionData: [],\n };\n },\n computed: {\n ...mapGetters('dpiStore', [\n 'getNumberOfDistributions',\n 'getNavSteps',\n 'getData',\n ]),\n },\n methods: {\n ...mapActions('dpiStore', [\n 'addDistribution',\n 'saveLocalstorageValues',\n 'deleteDistribution',\n 'setDeleteDistributionInline',\n ]),\n truncate,\n deleteDist() {\n this.deleteDistribution(this.distributionToDelete);\n this.setDeleteDistributionInline(true);\n $('#deleteDistributionModal').modal('hide');\n this.$router.push({ path: `${this.$env.content.dataProviderInterface.basePath}/datasets/distoverview`, query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n triggerDeleteModal(index) {\n this.distributionToDelete = index;\n $('#deleteDistributionModal').modal({ show: true });\n },\n getDistributionFormat(dist) {\n if (!isEmpty(dist['dct:format'])) {\n return dist['dct:format'].substring(dist['dct:format'].lastIndexOf('/') + 1);\n } else {\n return 'UNKNOWN';\n }\n },\n redirectToDistributionForm(distributionIndex) {\n const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n this.$router.push({\n path: `${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distributionIndex}`,\n query: {\n locale: this.$route.query.locale,\n edit: distributionIndex\n }\n }).catch(() => { });\n },\n createDistribution() {\n // create an new distribution within store\n this.addDistribution();\n const distNumber = this.getNumberOfDistributions;\n const distIndex = distNumber - 1; // distributions are stored within an array and indexed by their position in array\n const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n\n // direct to distribution input form\n this.$router.push(`${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distIndex}?locale=${this.$i18n.locale}`);\n },\n titleExists(data) {\n return !isEmpty(data['dct:title']) && !isEmpty(data['dct:title'][0]) && has(data['dct:title'][0], '@value') && !isEmpty(data['dct:title'][0]['@value']);\n },\n descriptionExists(data) {\n return !isEmpty(data['dct:description']) && !isEmpty(data['dct:description'][0]) && has(data['dct:description'][0], '@value') && !isEmpty(data['dct:description'][0]['@value']);\n },\n accessExists(data) {\n return !isEmpty(data['dcat:accessURL']) && !isEmpty(data['dcat:accessURL'][0]) && has(data['dcat:accessURL'][0], '@id') && !isEmpty(data['dcat:accessURL'][0]['@id']);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.dist {\n &-list {\n margin: 50px;\n }\n\n &-details {\n display: flex;\n flex: 1;\n }\n\n &-edit {\n width: 25%;\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n margin-left: 5px;\n\n &-button {\n cursor: pointer;\n transition: all 0.2s ease;\n }\n &-button:hover {\n opacity: 0.5;\n transform: scale(1.1);\n color: green;\n transition: all 0.2s ease;\n }\n }\n\n &-info {\n width: 75%;\n }\n\n &-item {\n margin: 5px;\n display: flex;\n padding: 20px;\n align-items: center;\n border-bottom: .1em solid #e5e5e5;\n }\n\n &-delete {\n &-button {\n cursor: pointer;\n transition: all 0.2s ease;\n\n }\n &-button:hover {\n transform: scale(1.1);\n opacity: 0.5;\n color: red;\n transition: all 0.2s ease;\n }\n }\n}\n\nbutton {\n &#delete {\n background-color: #B30519;\n color: #fff;\n border-color: #B30519;\n }\n\n &#cancel {\n background-color: #767676;\n border-color: #767676;\n color: #fff;\n }\n\n &.default {\n background-color: #001d85;\n border-color: #001d85;\n color: #fff;\n }\n\n border-radius: 0.3em;\n font-size: 16px;\n font-family: \"Ubuntu\";\n padding: 0.75em;\n font-weight: 100;\n}\n</style>\n"],"names":["_sfc_main","mapGetters","mapActions","truncate","$","index","dist","isEmpty","distributionIndex","firstDistPage","distIndex","data","has","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_8","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","_createElementBlock","_createElementVNode","_ctx","_openBlock","_hoisted_2","_Fragment","_renderList","i","$options","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","$event","_hoisted_11","$props","args","_hoisted_12","_hoisted_13","_hoisted_16","_hoisted_19"],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
17
17
|
corsproxyApiUrl: string;
|
|
18
18
|
};
|
|
19
19
|
authentication: {
|
|
20
|
-
useService: boolean;
|
|
21
20
|
login: {
|
|
22
21
|
useLogin: boolean;
|
|
23
22
|
loginTitle: string;
|
|
@@ -27,6 +26,7 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
27
26
|
logoutURL: string;
|
|
28
27
|
logoutRedirectUri: string;
|
|
29
28
|
};
|
|
29
|
+
useService: boolean;
|
|
30
30
|
keycloak: {
|
|
31
31
|
realm: string;
|
|
32
32
|
clientId: string;
|
|
@@ -307,9 +307,9 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
307
307
|
};
|
|
308
308
|
};
|
|
309
309
|
languages: {
|
|
310
|
+
useLanguageSelector: boolean;
|
|
310
311
|
locale: string;
|
|
311
312
|
fallbackLocale: string;
|
|
312
|
-
useLanguageSelector: boolean;
|
|
313
313
|
};
|
|
314
314
|
themes: {
|
|
315
315
|
header: string;
|
|
@@ -325,7 +325,7 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
325
325
|
duplicatedID: string;
|
|
326
326
|
modalProps: {
|
|
327
327
|
loading: boolean;
|
|
328
|
-
message:
|
|
328
|
+
message: any;
|
|
329
329
|
confirm: () => null;
|
|
330
330
|
};
|
|
331
331
|
}, {
|
|
@@ -337,7 +337,7 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
337
337
|
path: string;
|
|
338
338
|
query: {
|
|
339
339
|
useNormalizedId: boolean;
|
|
340
|
-
locale:
|
|
340
|
+
locale: any;
|
|
341
341
|
catalogue: any;
|
|
342
342
|
};
|
|
343
343
|
};
|
|
@@ -354,8 +354,8 @@ declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
|
354
354
|
url: any;
|
|
355
355
|
token: any;
|
|
356
356
|
}): Promise<void>;
|
|
357
|
-
convertToRDF: import('vuex').ActionMethod;
|
|
358
357
|
clearAll: import('vuex').ActionMethod;
|
|
358
|
+
convertToRDF: import('vuex').ActionMethod;
|
|
359
359
|
convertToInput: import('vuex').ActionMethod;
|
|
360
360
|
showSnackbar: import('vuex').ActionMethod;
|
|
361
361
|
setIsEditMode: import('vuex').ActionMethod;
|
|
@@ -2,10 +2,10 @@ import { mapGetters as v, mapActions as h } from "vuex";
|
|
|
2
2
|
import f from "jquery";
|
|
3
3
|
import w from "../../widgets/AppLink.vue.mjs";
|
|
4
4
|
import { useRuntimeEnv as $ } from "../../composables/useRuntimeEnv.mjs";
|
|
5
|
-
import { resolveComponent as y, openBlock as c, createElementBlock as b, createElementVNode as e, createTextVNode as o, toDisplayString as r, Fragment as P, renderList as
|
|
5
|
+
import { resolveComponent as y, openBlock as c, createElementBlock as b, createElementVNode as e, createTextVNode as o, toDisplayString as r, Fragment as P, renderList as _, createVNode as i, withCtx as p } from "vue";
|
|
6
6
|
import "./DraftsPage.vue2.mjs";
|
|
7
|
-
import
|
|
8
|
-
const
|
|
7
|
+
import I from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
8
|
+
const C = {
|
|
9
9
|
props: [],
|
|
10
10
|
components: {
|
|
11
11
|
AppLink: w
|
|
@@ -105,7 +105,7 @@ const L = {
|
|
|
105
105
|
created() {
|
|
106
106
|
this.updateUserDrafts();
|
|
107
107
|
}
|
|
108
|
-
},
|
|
108
|
+
}, L = { class: "d-flex flex-column bg-transparent container-fluid justify-content-between content draftWrapper" }, S = { class: "d-flex mt-3" }, U = { class: "logoDPIPiveau" }, x = { class: "" }, M = { class: "infoBox" }, R = { class: "d-flex" }, q = ["innerHTML"], T = { class: "d-flex align-items-center justify-content-center" }, B = { class: "table" }, E = { scope: "col" }, N = { scope: "col" }, A = { scope: "col" }, j = ["data-cy"], F = { class: "w33" }, V = { class: "w33" }, W = { class: "buttonWrapper" }, z = {
|
|
109
109
|
type: "button",
|
|
110
110
|
class: "btn btn-secondary dropDownWrap"
|
|
111
111
|
}, H = ["title"], G = {
|
|
@@ -114,9 +114,9 @@ const L = {
|
|
|
114
114
|
}, J = ["onClick"], O = ["onClick"], X = ["onClick"], K = ["onClick"];
|
|
115
115
|
function Q(s, t, u, D, m, n) {
|
|
116
116
|
const l = y("app-link"), k = y("app-confirmation-dialog");
|
|
117
|
-
return c(), b("div",
|
|
118
|
-
e("div",
|
|
119
|
-
e("div",
|
|
117
|
+
return c(), b("div", L, [
|
|
118
|
+
e("div", S, [
|
|
119
|
+
e("div", U, [
|
|
120
120
|
t[0] || (t[0] = e("h2", null, "DPI", -1)),
|
|
121
121
|
t[1] || (t[1] = o()),
|
|
122
122
|
t[2] || (t[2] = e("div", { class: "dpiLogoSeperator" }, null, -1)),
|
|
@@ -159,7 +159,7 @@ function Q(s, t, u, D, m, n) {
|
|
|
159
159
|
]),
|
|
160
160
|
t[24] || (t[24] = o()),
|
|
161
161
|
e("tbody", null, [
|
|
162
|
-
(c(!0), b(P, null,
|
|
162
|
+
(c(!0), b(P, null, _(s.getUserDrafts, ({ id: a, catalog: d }) => (c(), b("tr", {
|
|
163
163
|
key: `draft@${a}`,
|
|
164
164
|
"data-cy": `draft@${a}`
|
|
165
165
|
}, [
|
|
@@ -197,7 +197,8 @@ function Q(s, t, u, D, m, n) {
|
|
|
197
197
|
default: p(() => t[8] || (t[8] = [
|
|
198
198
|
e("div", { class: "px-2 py-1" }, "RDF/XML", -1)
|
|
199
199
|
])),
|
|
200
|
-
_: 2
|
|
200
|
+
_: 2,
|
|
201
|
+
__: [8]
|
|
201
202
|
}, 1032, ["to"]),
|
|
202
203
|
t[13] || (t[13] = o()),
|
|
203
204
|
i(l, {
|
|
@@ -208,7 +209,8 @@ function Q(s, t, u, D, m, n) {
|
|
|
208
209
|
default: p(() => t[9] || (t[9] = [
|
|
209
210
|
e("div", { class: "px-2 py-1" }, "Turtle", -1)
|
|
210
211
|
])),
|
|
211
|
-
_: 2
|
|
212
|
+
_: 2,
|
|
213
|
+
__: [9]
|
|
212
214
|
}, 1032, ["to"]),
|
|
213
215
|
t[14] || (t[14] = o()),
|
|
214
216
|
i(l, {
|
|
@@ -219,7 +221,8 @@ function Q(s, t, u, D, m, n) {
|
|
|
219
221
|
default: p(() => t[10] || (t[10] = [
|
|
220
222
|
e("div", { class: "px-2 py-1" }, "Notation3", -1)
|
|
221
223
|
])),
|
|
222
|
-
_: 2
|
|
224
|
+
_: 2,
|
|
225
|
+
__: [10]
|
|
223
226
|
}, 1032, ["to"]),
|
|
224
227
|
t[15] || (t[15] = o()),
|
|
225
228
|
i(l, {
|
|
@@ -230,7 +233,8 @@ function Q(s, t, u, D, m, n) {
|
|
|
230
233
|
default: p(() => t[11] || (t[11] = [
|
|
231
234
|
e("div", { class: "px-2 py-1" }, "N-Triples", -1)
|
|
232
235
|
])),
|
|
233
|
-
_: 2
|
|
236
|
+
_: 2,
|
|
237
|
+
__: [11]
|
|
234
238
|
}, 1032, ["to"]),
|
|
235
239
|
t[16] || (t[16] = o()),
|
|
236
240
|
i(l, {
|
|
@@ -241,7 +245,8 @@ function Q(s, t, u, D, m, n) {
|
|
|
241
245
|
default: p(() => t[12] || (t[12] = [
|
|
242
246
|
e("div", { class: "px-2 py-1" }, "JSON-LD", -1)
|
|
243
247
|
])),
|
|
244
|
-
_: 2
|
|
248
|
+
_: 2,
|
|
249
|
+
__: [12]
|
|
245
250
|
}, 1032, ["to"])
|
|
246
251
|
])
|
|
247
252
|
]),
|
|
@@ -288,7 +293,7 @@ function Q(s, t, u, D, m, n) {
|
|
|
288
293
|
}, 8, ["loading", "onConfirm"])
|
|
289
294
|
]);
|
|
290
295
|
}
|
|
291
|
-
const rt = /* @__PURE__ */ C
|
|
296
|
+
const rt = /* @__PURE__ */ I(C, [["render", Q], ["__scopeId", "data-v-8f837c12"]]);
|
|
292
297
|
export {
|
|
293
298
|
rt as default
|
|
294
299
|
};
|