@piveau/piveau-hub-ui-modules 4.6.52 → 4.6.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PvBadge/PvBadge.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs +1 -2
- package/dist/PvDataInfoBox/PvDataInfoBox.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxDescription.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFooter.vue.mjs.map +1 -1
- package/dist/PvDataInfoBox/PvDataInfoBoxFormats.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPage.vue.mjs.map +1 -1
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs +5 -6
- package/dist/catalogues/CatalogPageDatasetCard.vue.mjs.map +1 -1
- package/dist/catalogues/Catalogues.vue.mjs.map +1 -1
- package/dist/catalogues/cataloguesFacets/CataloguesFacets.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationModal.vue.mjs.map +1 -1
- package/dist/citation/DatasetCitationTable.vue.mjs.map +1 -1
- package/dist/composables/useRuntimeEnv.d.ts +3 -2
- package/dist/configurations/config-schema/apiSchema.mjs +1 -1
- package/dist/configurations/config-schema/authenticationSchema.mjs +1 -1
- package/dist/configurations/config-schema/configSchema.d.ts +10 -5
- package/dist/configurations/config-schema/configSchema.mjs +18 -18
- package/dist/configurations/config-schema/contentSchema.d.ts +3 -0
- package/dist/configurations/config-schema/contentSchema.mjs +7 -6
- package/dist/configurations/config-schema/contentSchema.mjs.map +1 -1
- package/dist/configurations/config-schema/languagesSchema.d.ts +2 -2
- package/dist/configurations/config-schema/languagesSchema.mjs +1 -1
- package/dist/configurations/config-schema/metadataSchema.mjs +1 -1
- package/dist/configurations/config-schema/routingSchema.mjs +1 -1
- package/dist/configurations/config-schema/themesSchema.mjs +1 -1
- package/dist/configurations/config-schema/trackerSchema.mjs +1 -1
- package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.d.ts +10 -10
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +19 -15
- package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/DataFetchingComponent.vue.d.ts +2 -2
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +1 -2
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.d.ts +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InfoSlot.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/InputPageStep.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/LanguageSelector.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.d.ts +9 -8
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs +1 -2
- package/dist/data-provider-interface/components/SelectControlledGroup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleAccessURLInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/WidgetInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionOverview.vue.d.ts +2 -2
- package/dist/data-provider-interface/views/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +6 -5
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs +14 -19
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +16 -12
- package/dist/data-provider-interface/views/InputPage.vue.mjs +2 -4
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/LinkedDataViewer.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/MultilingualProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/StringProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/Properties/URLProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +6 -3
- package/dist/data-provider-interface/views/OverviewPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/PropertyChooser.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
- package/dist/datasetDetails/AppMarkdownContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsActivityStream.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.d.ts +3 -1
- package/dist/datasetDetails/DatasetDetailsBanners.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCSVLinter.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsCategories.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +2 -3
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +39 -39
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +3 -1
- package/dist/datasetDetails/DatasetDetailsDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsFeedbackButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsLinkedMetricsButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsQuality.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsShareButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSkeleton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distribution.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionAdded.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionDownloadAsModal.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/DistributionFormat.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +8 -8
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs +1 -2
- package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs +5 -7
- package/dist/datasetDetails/distributions/FadingDistributionOverlay.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs +5 -6
- package/dist/datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs +12 -15
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDownloadAs.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionActions/DistributionDropdownDownload.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs +5 -6
- package/dist/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionPreview.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.d.ts +4 -4
- package/dist/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionActions/LinkedDataButtonsDropdown.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +21 -22
- package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.d.ts +6 -6
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDescription.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.d.ts +16 -16
- package/dist/datasetDetails/distributions/distributionDetails/DistributionDetails.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.d.ts +2 -2
- package/dist/datasetDetails/distributions/distributionDetails/DistributionExpand.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsCategoriesKey.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsDataServices.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +2 -2
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsHvdThemes.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsKeywords.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsMap.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsRelations.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.d.ts +1 -1
- package/dist/datasetDetails/features/DatasetDetailsSubject.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsVisualisations.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeader.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderCatalogue.vue.mjs.map +1 -1
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +2 -2
- package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +2 -2
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.d.ts +1 -7
- package/dist/datasetDetails/navigation/DatasetDetailsNavigationPages.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.d.ts +1 -200
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/DatasetDetailsProperty.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
- package/dist/datasets/DatasetDate.vue.mjs.map +1 -1
- package/dist/datasets/DatasetList.vue.mjs.map +1 -1
- package/dist/datasets/Datasets.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFilters.vue.d.ts +1 -1
- package/dist/datasets/DatasetsFilters.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsFiltersTabs.vue.d.ts +2 -2
- package/dist/datasets/DatasetsFiltersTabs.vue.mjs.map +1 -1
- package/dist/datasets/DatasetsTopControls.vue.d.ts +5 -5
- package/dist/datasets/DatasetsTopControls.vue.mjs +6 -8
- package/dist/datasets/DatasetsTopControls.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacets.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsFacetsItem.vue.mjs.map +1 -1
- package/dist/datasets/datasetsFacets/DatasetsMapFacet.vue.mjs.map +1 -1
- package/dist/embed/DatasetEmbedModal.vue.mjs.map +1 -1
- package/dist/embed/EmbedDataset.vue.mjs.map +1 -1
- package/dist/embed/EmbedDatasetSnippet.vue.mjs.map +1 -1
- package/dist/external/zod/lib/index +2849 -0
- package/dist/external/zod/lib/index.map +1 -0
- package/dist/facets/CatalogDetailsFacet.vue.mjs.map +1 -1
- package/dist/facets/ExpandableSelectFacet.vue.mjs.map +1 -1
- package/dist/facets/Facet.vue.mjs.map +1 -1
- package/dist/facets/FacetTitle.vue.mjs.map +1 -1
- package/dist/facets/RadioFacet.vue.mjs.map +1 -1
- package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -2
- package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
- package/dist/form/FormKitGroup.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue2.mjs +1 -2
- package/dist/form/Repeatable.vue2.mjs.map +1 -1
- package/dist/map/MapBasic.vue.mjs.map +1 -1
- package/dist/map/MapBoundsReceiver.vue.mjs.map +1 -1
- package/dist/map/MapBoundsSender.vue.mjs.map +1 -1
- package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
- package/dist/modal/AppSnackbar.vue.mjs.map +1 -1
- package/dist/modal/AppToast.vue.mjs.map +1 -1
- package/dist/navigation/SubNavigation.vue.mjs.map +1 -1
- package/dist/pages/NotFound.vue.mjs.map +1 -1
- package/dist/pages/SparqlSearch.vue.mjs.map +1 -1
- package/dist/pages/user/UserImprint.vue.mjs.map +1 -1
- package/dist/pages/user/UserPrivacyPolicy.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/search/Search.vue.mjs.map +1 -1
- package/dist/services/datasetService.d.ts +1 -1
- package/dist/widgets/AppLink.vue.mjs.map +1 -1
- package/dist/widgets/Dropdown.vue.mjs.map +1 -1
- package/dist/widgets/Pagination.vue.d.ts +1 -1
- package/dist/widgets/Pagination.vue.mjs.map +1 -1
- package/dist/widgets/PropertyValue.vue.mjs.map +1 -1
- package/dist/widgets/PvBanner.vue.mjs.map +1 -1
- package/dist/widgets/PvButton.vue.mjs.map +1 -1
- package/dist/widgets/PvShowMore.vue.mjs.map +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.d.ts +1 -1
- package/dist/widgets/ResourceAccessPopup.vue.mjs.map +1 -1
- package/dist/widgets/ResourceDetailsLinkedDataButton.vue.mjs.map +1 -1
- package/dist/widgets/Tooltip.vue.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/external/zod/dist/esm/v3/ZodError +0 -84
- package/dist/external/zod/dist/esm/v3/ZodError.map +0 -1
- package/dist/external/zod/dist/esm/v3/errors +0 -10
- package/dist/external/zod/dist/esm/v3/errors.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil +0 -8
- package/dist/external/zod/dist/esm/v3/helpers/errorUtil.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil +0 -98
- package/dist/external/zod/dist/esm/v3/helpers/parseUtil.map +0 -1
- package/dist/external/zod/dist/esm/v3/helpers/util +0 -95
- package/dist/external/zod/dist/esm/v3/helpers/util.map +0 -1
- package/dist/external/zod/dist/esm/v3/locales/en +0 -62
- package/dist/external/zod/dist/esm/v3/locales/en.map +0 -1
- package/dist/external/zod/dist/esm/v3/types +0 -2440
- package/dist/external/zod/dist/esm/v3/types.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{
|
|
2
2
|
steps?: any;
|
|
3
|
-
previousStep?: any;
|
|
4
3
|
nextStep?: any;
|
|
4
|
+
previousStep?: any;
|
|
5
5
|
goToNextStep?: any;
|
|
6
6
|
goToPreviousStep?: any;
|
|
7
7
|
}, {
|
|
@@ -25,6 +25,7 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
25
25
|
corsproxyApiUrl: string;
|
|
26
26
|
};
|
|
27
27
|
authentication: {
|
|
28
|
+
useService: boolean;
|
|
28
29
|
login: {
|
|
29
30
|
useLogin: boolean;
|
|
30
31
|
loginTitle: string;
|
|
@@ -34,7 +35,6 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
34
35
|
logoutURL: string;
|
|
35
36
|
logoutRedirectUri: string;
|
|
36
37
|
};
|
|
37
|
-
useService: boolean;
|
|
38
38
|
keycloak: {
|
|
39
39
|
realm: string;
|
|
40
40
|
clientId: string;
|
|
@@ -313,11 +313,12 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
313
313
|
persistentIdentifierType: string;
|
|
314
314
|
};
|
|
315
315
|
};
|
|
316
|
+
useCombinedSearch: boolean;
|
|
316
317
|
};
|
|
317
318
|
languages: {
|
|
318
|
-
useLanguageSelector: boolean;
|
|
319
319
|
locale: string;
|
|
320
320
|
fallbackLocale: string;
|
|
321
|
+
useLanguageSelector: boolean;
|
|
321
322
|
};
|
|
322
323
|
themes: {
|
|
323
324
|
header: string;
|
|
@@ -349,14 +350,14 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
349
350
|
callback: Function;
|
|
350
351
|
};
|
|
351
352
|
};
|
|
352
|
-
property:
|
|
353
|
-
id:
|
|
353
|
+
property: string | string[];
|
|
354
|
+
id: string | string[];
|
|
354
355
|
}, {
|
|
355
356
|
formErrorCount(): boolean;
|
|
356
357
|
getData: import('vuex').Computed;
|
|
357
|
-
getUserData: import('vuex').Computed;
|
|
358
358
|
getIsEditMode: import('vuex').Computed;
|
|
359
359
|
getIsDraft: import('vuex').Computed;
|
|
360
|
+
getUserData: import('vuex').Computed;
|
|
360
361
|
}, {
|
|
361
362
|
closeModal(): void;
|
|
362
363
|
handleIDError(): void;
|
|
@@ -367,15 +368,15 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
367
368
|
createDraft(): void;
|
|
368
369
|
createCatalogue(datasetId: any): void;
|
|
369
370
|
idunique(id: any): Promise<boolean>;
|
|
370
|
-
clearAll: import('vuex').ActionMethod;
|
|
371
371
|
convertToRDF: import('vuex').ActionMethod;
|
|
372
|
+
clearAll: import('vuex').ActionMethod;
|
|
372
373
|
showSnackbar: import('vuex').ActionMethod;
|
|
373
374
|
setIsEditMode: import('vuex').ActionMethod;
|
|
374
375
|
setIsDraft: import('vuex').ActionMethod;
|
|
375
376
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
376
377
|
steps?: any;
|
|
377
|
-
previousStep?: any;
|
|
378
378
|
nextStep?: any;
|
|
379
|
+
previousStep?: any;
|
|
379
380
|
goToNextStep?: any;
|
|
380
381
|
goToPreviousStep?: any;
|
|
381
382
|
}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\" :close=\"modal.confirm\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables/useDpiContext';\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: '',\n message: '',\n callback: this.clearStorage,\n },\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n };\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n created() {\n // this.$i18n.locale = this.$route.query.locale\n this.modals.clear.message = this.$t('message.dataupload.modal.resetForm')\n this.modals.clear.confirm = this.$t('message.dataupload.modal.confirmReset')\n\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress?.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogId =\n this.dpiContext.edit?.catalog\n || this.getData(this.property)['catalog']\n || this.getData(this.property)['dcat:catalog']\n || this.getData(this.property)['dct:catalog']\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogId,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n // if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n // uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n // actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n // actionName = 'auth/createDataset';\n // }\n if (!this.getIsEditMode) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n // if edit mode but no draft\n else if (this.getIsEditMode && !this.getIsDraft) {\n uploadUrl = `${this.$env.api.hubUrl}datasets/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n // if edit mode and draft\n else if (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate')) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogId };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogId}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogId, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress?.finish();\n this.uploading[mode] = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.handleIDError();\n }\n } catch (err) {\n console.error(err)\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.datasetPublished'), variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.draftCreated'), variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.catalogPublished'), variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n setup() {\n const dpiContext = useDpiContext()\n return { dpiContext }\n }\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","_a","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogId","_b","uploadUrl","actionName","actionParams","_c","_d","err","_e","id","isUniqueID","draftIDs","isNil","request","axios","e","useDpiContext","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createVNode","$options","$data","_openBlock","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\" :close=\"modal.confirm\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\nimport { useDpiContext } from '../composables/useDpiContext';\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: '',\n message: '',\n callback: this.clearStorage,\n },\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n };\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n created() {\n // this.$i18n.locale = this.$route.query.locale\n this.modals.clear.message = this.$t('message.dataupload.modal.resetForm')\n this.modals.clear.confirm = this.$t('message.dataupload.modal.confirmReset')\n\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress?.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogId =\n this.dpiContext.edit?.catalog\n || this.getData(this.property)['catalog']\n || this.getData(this.property)['dcat:catalog']\n || this.getData(this.property)['dct:catalog']\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogId,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n // if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n // uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n // actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n // actionName = 'auth/createDataset';\n // }\n if (!this.getIsEditMode) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n // if edit mode but no draft\n else if (this.getIsEditMode && !this.getIsDraft) {\n uploadUrl = `${this.$env.api.hubUrl}datasets/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n // if edit mode and draft\n else if (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate')) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n }\n else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogId };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogId}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogId, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress?.finish();\n this.uploading[mode] = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.handleIDError();\n }\n } catch (err) {\n console.error(err)\n this.uploading[mode] = false;\n this.$Progress?.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.datasetPublished'), variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.draftCreated'), variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.catalogPublished'), variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n setup() {\n const dpiContext = useDpiContext()\n return { dpiContext }\n }\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","_a","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogId","_b","uploadUrl","actionName","actionParams","_c","_d","err","_e","id","isUniqueID","draftIDs","isNil","request","axios","e","useDpiContext","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_cache","_createTextVNode","_createVNode","$options","$data","_withCtx","_openBlock","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog"],"mappings":"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"}
|
|
@@ -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"
|
|
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 +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"
|
|
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;QAIVC;UAEEC,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;;;;;;;;;;;;;;;;;"}
|
|
@@ -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"
|
|
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;QAIVC,IAAQC,EAAS,MAAM;AACvB,UAAI;AACA,YAAIH,EAAM,QAAQ,MAAM,MAAM,SAAS,gBAAgB;AACnD,iBAAO;AAAA,MAEd,QAAe;AAAA,MAEhB;AAAA,IAGJ,CAAC;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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","_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
|
+
{"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":"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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","_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
|
+
{"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 +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"
|
|
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 +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"
|
|
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;AAGX,QAACC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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"
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,8 +5,8 @@ declare const _default: import('vue').DefineComponent<{
|
|
|
5
5
|
distributionToDelete: number;
|
|
6
6
|
distributionData: never[];
|
|
7
7
|
}, {
|
|
8
|
-
getNavSteps: import('vuex').Computed;
|
|
9
8
|
getData: import('vuex').Computed;
|
|
9
|
+
getNavSteps: 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;
|
|
22
21
|
saveLocalstorageValues: import('vuex').ActionMethod;
|
|
23
22
|
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;
|