@piveau/piveau-hub-ui-modules 4.4.29 → 4.5.0
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/configurations/configureComponents.mjs +20 -18
- package/dist/configurations/configureComponents.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +59 -20
- package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
- package/dist/data-provider-interface/DataProviderInterface.vue2.mjs +36 -25
- package/dist/data-provider-interface/DataProviderInterface.vue2.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +92 -89
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs +104 -107
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs +190 -148
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs +19 -8
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/composables/aucotomplete.d.ts +27 -0
- package/dist/data-provider-interface/composables/aucotomplete.mjs +52 -0
- package/dist/data-provider-interface/composables/aucotomplete.mjs.map +1 -0
- package/dist/data-provider-interface/composables/index.d.ts +4 -0
- package/dist/data-provider-interface/composables/useDpiContext.mjs +7 -9
- package/dist/data-provider-interface/composables/useDpiContext.mjs.map +1 -1
- package/dist/data-provider-interface/composables/useRequestUriName.d.ts +18 -0
- package/dist/data-provider-interface/composables/useRequestUriName.mjs +59 -0
- package/dist/data-provider-interface/composables/useRequestUriName.mjs.map +1 -0
- package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs +1 -1
- package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs.map +1 -1
- package/dist/data-provider-interface/index.mjs +10 -6
- package/dist/data-provider-interface/index.mjs.map +1 -1
- package/dist/data-provider-interface/store/dpiStore.d.ts +0 -26
- package/dist/data-provider-interface/store/dpiStore.mjs +12 -14
- package/dist/data-provider-interface/store/dpiStore.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.d.ts +49 -20
- package/dist/data-provider-interface/views/InputPage.vue.mjs +125 -107
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.d.ts +16 -6
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.d.ts +32 -14
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs +27 -31
- package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.d.ts +16 -6
- package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.d.ts +8 -3
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.d.ts +8 -3
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs +57 -47
- package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.d.ts +16 -6
- package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +48 -20
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +50 -36
- package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +4 -4
- package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +3 -3
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs +3 -3
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs +18 -18
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs +58 -50
- package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
- package/dist/external/@vueuse/core/index +3 -2
- package/dist/external/@vueuse/shared/index +86 -72
- package/dist/external/@vueuse/shared/index.map +1 -1
- package/dist/form/Repeatable.vue.d.ts +11 -10
- package/dist/form/Repeatable.vue.mjs +5 -62
- package/dist/form/Repeatable.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue2.mjs +72 -2
- package/dist/form/Repeatable.vue2.mjs.map +1 -1
- package/dist/form/Repeatable.vue3.mjs +5 -0
- package/dist/form/Repeatable.vue3.mjs.map +1 -0
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/package.json +1 -1
- package/dist/data-provider-interface/store/modules/autocompleteStore.d.ts +0 -27
- package/dist/data-provider-interface/store/modules/autocompleteStore.mjs +0 -54
- package/dist/data-provider-interface/store/modules/autocompleteStore.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import i from "../facets/ExpandableSelectFacet.vue.mjs";
|
|
2
2
|
import a from "../facets/RadioFacet.vue.mjs";
|
|
3
3
|
import m from "../widgets/PvShowMore.vue.mjs";
|
|
4
4
|
import s from "../widgets/PvButton.vue.mjs";
|
|
@@ -12,14 +12,15 @@ import u from "../facets/SelectedFacetsOverview.vue.mjs";
|
|
|
12
12
|
import b from "../navigation/SubNavigation.vue.mjs";
|
|
13
13
|
import v from "../datasetDetails/header/DatasetDetailsHeader.vue.mjs";
|
|
14
14
|
import d from "../datasetDetails/DatasetDetailsDescription.vue.mjs";
|
|
15
|
-
import F from "../datasetDetails/
|
|
16
|
-
import P from "../datasetDetails/distributions/
|
|
17
|
-
import S from "../datasetDetails/
|
|
18
|
-
import g from "../datasetDetails/
|
|
19
|
-
import x from "../datasetDetails/features/
|
|
20
|
-
import B from "../datasetDetails/
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
import F from "../datasetDetails/DatasetDetailsDataset.vue.mjs";
|
|
16
|
+
import P from "../datasetDetails/distributions/Distribution.vue.mjs";
|
|
17
|
+
import S from "../datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs";
|
|
18
|
+
import g from "../datasetDetails/properties/DatasetDetailsProperties.vue.mjs";
|
|
19
|
+
import x from "../datasetDetails/features/DatasetDetailsFeatures.vue.mjs";
|
|
20
|
+
import B from "../datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs";
|
|
21
|
+
import C from "../datasetDetails/distributions/distributionPreview/DistributionVisualisationSlot.vue.mjs";
|
|
22
|
+
const H = {
|
|
23
|
+
SelectFacet: i,
|
|
23
24
|
RadioFacet: a,
|
|
24
25
|
PvShowMore: m,
|
|
25
26
|
PvButton: s,
|
|
@@ -33,20 +34,21 @@ const C = {
|
|
|
33
34
|
SubNavigation: b,
|
|
34
35
|
DatasetDetailsHeader: v,
|
|
35
36
|
DatasetDetailsDescription: d,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
DatasetDetailsDataset: F,
|
|
38
|
+
Distribution: P,
|
|
39
|
+
DistributionActions: S,
|
|
40
|
+
DatasetDetailsProperties: g,
|
|
41
|
+
DatasetDetailsFeatures: x,
|
|
42
|
+
DatasetDetailsFeatureHeader: B,
|
|
43
|
+
DistributionVisualisationSlot: C
|
|
42
44
|
};
|
|
43
|
-
function
|
|
44
|
-
const t = { ...
|
|
45
|
+
function W(r, e) {
|
|
46
|
+
const t = { ...H, ...e };
|
|
45
47
|
Object.keys(t).forEach((o) => {
|
|
46
48
|
r.component(o, t[o]);
|
|
47
49
|
});
|
|
48
50
|
}
|
|
49
51
|
export {
|
|
50
|
-
|
|
52
|
+
W as configureComponents
|
|
51
53
|
};
|
|
52
54
|
//# sourceMappingURL=configureComponents.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureComponents.mjs","sources":["../../lib/configurations/configureComponents.ts"],"sourcesContent":["import ExpandableSelectFacet from \"../facets/ExpandableSelectFacet.vue\";\nimport RadioFacet from \"../facets/RadioFacet.vue\";\nimport PvShowMore from \"../widgets/PvShowMore.vue\";\nimport PvButton from \"../widgets/PvButton.vue\";\nimport PvBanner from \"../widgets/PvBanner.vue\";\nimport DatasetDetailsNavigationPage from \"../datasetDetails/navigation/DatasetDetailsNavigationPage.vue\";\nimport PvDataInfoBox from \"../PvDataInfoBox/PvDataInfoBox.vue\";\nimport Datasets from \"../datasets/Datasets.vue\";\nimport DistributionsHeader from \"../datasetDetails/distributions/DistributionsHeader.vue\";\nimport DistributionDetails from \"../datasetDetails/distributions/distributionDetails/DistributionDetails.vue\";\nimport SelectedFacetsOverview from \"../facets/SelectedFacetsOverview.vue\"\nimport SubNavigation from \"../navigation/SubNavigation.vue\";\nimport DatasetDetailsHeader from \"../datasetDetails/header/DatasetDetailsHeader.vue\";\nimport DatasetDetailsDescription from \"../datasetDetails/DatasetDetailsDescription.vue\";\nimport Distribution from \"../datasetDetails/distributions/Distribution.vue\";\nimport DistributionActions from \"../datasetDetails/distributions/distributionActions/DistributionActions.vue\";\nimport DatasetDetailsProperties from \"../datasetDetails/properties/DatasetDetailsProperties.vue\";\nimport DatasetDetailsFeatures from \"../datasetDetails/features/DatasetDetailsFeatures.vue\";\nimport DatasetDetailsFeatureHeader from \"../datasetDetails/features/DatasetDetailsFeatureHeader.vue\"\nimport DistributionVisualisationSlot from \"../datasetDetails/distributions/distributionPreview/DistributionVisualisationSlot.vue\";\n\nexport type ComponentMap = { [key: string]: any };\n\nconst defaultComponents: ComponentMap = {\n SelectFacet: ExpandableSelectFacet,\n RadioFacet,\n PvShowMore,\n PvButton,\n PvBanner,\n DatasetDetailsNavigationPage,\n PvDataInfoBox,\n Datasets,\n DistributionsHeader,\n DistributionDetails,\n SelectedFacetsOverview,\n SubNavigation,\n DatasetDetailsHeader,\n DatasetDetailsDescription,\n Distribution,\n DistributionActions,\n DatasetDetailsProperties,\n DatasetDetailsFeatures,\n DatasetDetailsFeatureHeader,\n DistributionVisualisationSlot\n};\n\nexport function configureComponents(app: any, components?: ComponentMap) {\n const allComponents: ComponentMap = { ...defaultComponents, ...components };\n const componentKeys: string[] = Object.keys(allComponents);\n componentKeys.forEach((key: string) => { \n app.component(key, allComponents[key]);\n });\n}\n"],"names":["defaultComponents","ExpandableSelectFacet","RadioFacet","PvShowMore","PvButton","PvBanner","DatasetDetailsNavigationPage","PvDataInfoBox","Datasets","DistributionsHeader","DistributionDetails","SelectedFacetsOverview","SubNavigation","DatasetDetailsHeader","DatasetDetailsDescription","Distribution","DistributionActions","DatasetDetailsProperties","DatasetDetailsFeatures","DatasetDetailsFeatureHeader","DistributionVisualisationSlot","configureComponents","app","components","allComponents","key"],"mappings":"
|
|
1
|
+
{"version":3,"file":"configureComponents.mjs","sources":["../../lib/configurations/configureComponents.ts"],"sourcesContent":["import ExpandableSelectFacet from \"../facets/ExpandableSelectFacet.vue\";\nimport RadioFacet from \"../facets/RadioFacet.vue\";\nimport PvShowMore from \"../widgets/PvShowMore.vue\";\nimport PvButton from \"../widgets/PvButton.vue\";\nimport PvBanner from \"../widgets/PvBanner.vue\";\nimport DatasetDetailsNavigationPage from \"../datasetDetails/navigation/DatasetDetailsNavigationPage.vue\";\nimport PvDataInfoBox from \"../PvDataInfoBox/PvDataInfoBox.vue\";\nimport Datasets from \"../datasets/Datasets.vue\";\nimport DistributionsHeader from \"../datasetDetails/distributions/DistributionsHeader.vue\";\nimport DistributionDetails from \"../datasetDetails/distributions/distributionDetails/DistributionDetails.vue\";\nimport SelectedFacetsOverview from \"../facets/SelectedFacetsOverview.vue\"\nimport SubNavigation from \"../navigation/SubNavigation.vue\";\nimport DatasetDetailsHeader from \"../datasetDetails/header/DatasetDetailsHeader.vue\";\nimport DatasetDetailsDescription from \"../datasetDetails/DatasetDetailsDescription.vue\";\nimport DatasetDetailsDataset from \"../datasetDetails/DatasetDetailsDataset.vue\";\nimport Distribution from \"../datasetDetails/distributions/Distribution.vue\";\nimport DistributionActions from \"../datasetDetails/distributions/distributionActions/DistributionActions.vue\";\nimport DatasetDetailsProperties from \"../datasetDetails/properties/DatasetDetailsProperties.vue\";\nimport DatasetDetailsFeatures from \"../datasetDetails/features/DatasetDetailsFeatures.vue\";\nimport DatasetDetailsFeatureHeader from \"../datasetDetails/features/DatasetDetailsFeatureHeader.vue\"\nimport DistributionVisualisationSlot from \"../datasetDetails/distributions/distributionPreview/DistributionVisualisationSlot.vue\";\n\nexport type ComponentMap = { [key: string]: any };\n\nconst defaultComponents: ComponentMap = {\n SelectFacet: ExpandableSelectFacet,\n RadioFacet,\n PvShowMore,\n PvButton,\n PvBanner,\n DatasetDetailsNavigationPage,\n PvDataInfoBox,\n Datasets,\n DistributionsHeader,\n DistributionDetails,\n SelectedFacetsOverview,\n SubNavigation,\n DatasetDetailsHeader,\n DatasetDetailsDescription,\n DatasetDetailsDataset,\n Distribution,\n DistributionActions,\n DatasetDetailsProperties,\n DatasetDetailsFeatures,\n DatasetDetailsFeatureHeader,\n DistributionVisualisationSlot\n};\n\nexport function configureComponents(app: any, components?: ComponentMap) {\n const allComponents: ComponentMap = { ...defaultComponents, ...components };\n const componentKeys: string[] = Object.keys(allComponents);\n componentKeys.forEach((key: string) => { \n app.component(key, allComponents[key]);\n });\n}\n"],"names":["defaultComponents","ExpandableSelectFacet","RadioFacet","PvShowMore","PvButton","PvBanner","DatasetDetailsNavigationPage","PvDataInfoBox","Datasets","DistributionsHeader","DistributionDetails","SelectedFacetsOverview","SubNavigation","DatasetDetailsHeader","DatasetDetailsDescription","DatasetDetailsDataset","Distribution","DistributionActions","DatasetDetailsProperties","DatasetDetailsFeatures","DatasetDetailsFeatureHeader","DistributionVisualisationSlot","configureComponents","app","components","allComponents","key"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,MAAMA,IAAkC;AAAA,EACtC,aAAaC;AAAA,EACb,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,8BAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,2BAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,6BAAAC;AAAA,EACA,+BAAAC;AACF;AAEgB,SAAAC,EAAoBC,GAAUC,GAA2B;AACvE,QAAMC,IAA8B,EAAE,GAAGzB,GAAmB,GAAGwB,EAAW;AAE5D,EADkB,OAAO,KAAKC,CAAa,EAC3C,QAAQ,CAACC,MAAgB;AACrC,IAAAH,EAAI,UAAUG,GAAKD,EAAcC,CAAG,CAAC;AAAA,EAAA,CACtC;AACH;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DpiContext } from './composables/useDpiContext';
|
|
2
2
|
import { PropType } from 'vue';
|
|
3
|
+
import { AutocompleteInstance } from './composables/aucotomplete';
|
|
3
4
|
|
|
4
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
5
6
|
name: {
|
|
@@ -10,6 +11,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
10
11
|
type: PropType<DpiContext>;
|
|
11
12
|
default: () => undefined;
|
|
12
13
|
};
|
|
14
|
+
autocomplete: {
|
|
15
|
+
type: PropType<AutocompleteInstance>;
|
|
16
|
+
default: () => undefined;
|
|
17
|
+
};
|
|
13
18
|
}>, {
|
|
14
19
|
resolvedDpiContext: import('vue').ComputedRef<DpiContext>;
|
|
15
20
|
key: import('vue').ComputedRef<string>;
|
|
@@ -34,8 +39,13 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
34
39
|
type: PropType<DpiContext>;
|
|
35
40
|
default: () => undefined;
|
|
36
41
|
};
|
|
42
|
+
autocomplete: {
|
|
43
|
+
type: PropType<AutocompleteInstance>;
|
|
44
|
+
default: () => undefined;
|
|
45
|
+
};
|
|
37
46
|
}>> & Readonly<{}>, {
|
|
38
47
|
name: string;
|
|
48
|
+
autocomplete: AutocompleteInstance;
|
|
39
49
|
dpiContext: DpiContext;
|
|
40
50
|
}, {}, {
|
|
41
51
|
InputPage: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
@@ -635,8 +645,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
635
645
|
getDate(date: any): string;
|
|
636
646
|
checkIfPropertyValueSet(data: any, property: any, value: any): any;
|
|
637
647
|
reqName(URI: any): Promise<any>;
|
|
638
|
-
requestFirstEntrySuggestions: import('vuex').ActionMethod;
|
|
639
|
-
requestAutocompleteSuggestions: import('vuex').ActionMethod;
|
|
640
648
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
641
649
|
dpiLocale: StringConstructor;
|
|
642
650
|
}>> & Readonly<{}>, {}, {}, {
|
|
@@ -666,15 +674,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
666
674
|
value: ObjectConstructor;
|
|
667
675
|
data: ObjectConstructor;
|
|
668
676
|
inHeader: StringConstructor;
|
|
669
|
-
}>, {
|
|
677
|
+
}>, {
|
|
678
|
+
requestResourceName: (options: {
|
|
679
|
+
voc: string;
|
|
680
|
+
uri: string;
|
|
681
|
+
envs: any;
|
|
682
|
+
}) => Promise<any>;
|
|
683
|
+
getURILabel: (value: any) => Promise<any>;
|
|
684
|
+
}, {
|
|
670
685
|
nameOfProperty: string;
|
|
671
686
|
namesOfMulti: never[];
|
|
672
687
|
}, {}, {
|
|
673
688
|
trimString(str: any, maxLength: any): any;
|
|
674
689
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
675
690
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
676
|
-
getURILabel(value: any): Promise<any>;
|
|
677
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
678
691
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
679
692
|
property: StringConstructor;
|
|
680
693
|
value: ObjectConstructor;
|
|
@@ -738,15 +751,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
738
751
|
value: ObjectConstructor;
|
|
739
752
|
data: ObjectConstructor;
|
|
740
753
|
inHeader: StringConstructor;
|
|
741
|
-
}>, {
|
|
754
|
+
}>, {
|
|
755
|
+
requestResourceName: (options: {
|
|
756
|
+
voc: string;
|
|
757
|
+
uri: string;
|
|
758
|
+
envs: any;
|
|
759
|
+
}) => Promise<any>;
|
|
760
|
+
getURILabel: (value: any) => Promise<any>;
|
|
761
|
+
}, {
|
|
742
762
|
nameOfProperty: string;
|
|
743
763
|
namesOfMulti: never[];
|
|
744
764
|
}, {}, {
|
|
745
765
|
trimString(str: any, maxLength: any): any;
|
|
746
766
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
747
767
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
748
|
-
getURILabel(value: any): Promise<any>;
|
|
749
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
750
768
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
751
769
|
property: StringConstructor;
|
|
752
770
|
value: ObjectConstructor;
|
|
@@ -925,15 +943,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
925
943
|
value: ObjectConstructor;
|
|
926
944
|
data: ObjectConstructor;
|
|
927
945
|
inHeader: StringConstructor;
|
|
928
|
-
}>, {
|
|
946
|
+
}>, {
|
|
947
|
+
requestResourceName: (options: {
|
|
948
|
+
voc: string;
|
|
949
|
+
uri: string;
|
|
950
|
+
envs: any;
|
|
951
|
+
}) => Promise<any>;
|
|
952
|
+
getURILabel: (value: any) => Promise<any>;
|
|
953
|
+
}, {
|
|
929
954
|
nameOfProperty: string;
|
|
930
955
|
namesOfMulti: never[];
|
|
931
956
|
}, {}, {
|
|
932
957
|
trimString(str: any, maxLength: any): any;
|
|
933
958
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
934
959
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
935
|
-
getURILabel(value: any): Promise<any>;
|
|
936
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
937
960
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
938
961
|
property: StringConstructor;
|
|
939
962
|
value: ObjectConstructor;
|
|
@@ -997,15 +1020,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
997
1020
|
value: ObjectConstructor;
|
|
998
1021
|
data: ObjectConstructor;
|
|
999
1022
|
inHeader: StringConstructor;
|
|
1000
|
-
}>, {
|
|
1023
|
+
}>, {
|
|
1024
|
+
requestResourceName: (options: {
|
|
1025
|
+
voc: string;
|
|
1026
|
+
uri: string;
|
|
1027
|
+
envs: any;
|
|
1028
|
+
}) => Promise<any>;
|
|
1029
|
+
getURILabel: (value: any) => Promise<any>;
|
|
1030
|
+
}, {
|
|
1001
1031
|
nameOfProperty: string;
|
|
1002
1032
|
namesOfMulti: never[];
|
|
1003
1033
|
}, {}, {
|
|
1004
1034
|
trimString(str: any, maxLength: any): any;
|
|
1005
1035
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
1006
1036
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
1007
|
-
getURILabel(value: any): Promise<any>;
|
|
1008
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
1009
1037
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
1010
1038
|
property: StringConstructor;
|
|
1011
1039
|
value: ObjectConstructor;
|
|
@@ -1114,15 +1142,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
1114
1142
|
value: ObjectConstructor;
|
|
1115
1143
|
data: ObjectConstructor;
|
|
1116
1144
|
inHeader: StringConstructor;
|
|
1117
|
-
}>, {
|
|
1145
|
+
}>, {
|
|
1146
|
+
requestResourceName: (options: {
|
|
1147
|
+
voc: string;
|
|
1148
|
+
uri: string;
|
|
1149
|
+
envs: any;
|
|
1150
|
+
}) => Promise<any>;
|
|
1151
|
+
getURILabel: (value: any) => Promise<any>;
|
|
1152
|
+
}, {
|
|
1118
1153
|
nameOfProperty: string;
|
|
1119
1154
|
namesOfMulti: never[];
|
|
1120
1155
|
}, {}, {
|
|
1121
1156
|
trimString(str: any, maxLength: any): any;
|
|
1122
1157
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
1123
1158
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
1124
|
-
getURILabel(value: any): Promise<any>;
|
|
1125
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
1126
1159
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
1127
1160
|
property: StringConstructor;
|
|
1128
1161
|
value: ObjectConstructor;
|
|
@@ -1186,15 +1219,20 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
1186
1219
|
value: ObjectConstructor;
|
|
1187
1220
|
data: ObjectConstructor;
|
|
1188
1221
|
inHeader: StringConstructor;
|
|
1189
|
-
}>, {
|
|
1222
|
+
}>, {
|
|
1223
|
+
requestResourceName: (options: {
|
|
1224
|
+
voc: string;
|
|
1225
|
+
uri: string;
|
|
1226
|
+
envs: any;
|
|
1227
|
+
}) => Promise<any>;
|
|
1228
|
+
getURILabel: (value: any) => Promise<any>;
|
|
1229
|
+
}, {
|
|
1190
1230
|
nameOfProperty: string;
|
|
1191
1231
|
namesOfMulti: never[];
|
|
1192
1232
|
}, {}, {
|
|
1193
1233
|
trimString(str: any, maxLength: any): any;
|
|
1194
1234
|
getTranslationFor: typeof import('..').getTranslationFor;
|
|
1195
1235
|
requestURILabel(voc: any, res: any): Promise<undefined>;
|
|
1196
|
-
getURILabel(value: any): Promise<any>;
|
|
1197
|
-
requestResourceName: import('vuex').ActionMethod;
|
|
1198
1236
|
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
1199
1237
|
property: StringConstructor;
|
|
1200
1238
|
value: ObjectConstructor;
|
|
@@ -1218,6 +1256,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
1218
1256
|
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
1219
1257
|
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
1220
1258
|
}>;
|
|
1259
|
+
isEditMode: import('vue').ComputedRef<boolean>;
|
|
1221
1260
|
}, {
|
|
1222
1261
|
heightActiveSec: string;
|
|
1223
1262
|
formValues: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataProviderInterface.vue.mjs","sources":["../../lib/data-provider-interface/DataProviderInterface.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between dpi position-relative w-100\" :key=\"property\">\n <!-- CONTENT -->\n <router-view v-if=\"isReady\" ref=\"view\" :key=\"key\">\n </router-view>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-nested-ternary, no-lonely-if, no-param-reassign */\nimport { DpiContext, setupDpiContext } from './composables/useDpiContext';\nimport { computed, defineAsyncComponent, defineComponent, PropType , ref, toRef, toRefs, toValue, watch, watchEffect} from 'vue';\nimport { mapActions, mapGetters, useStore } from 'vuex';\nimport dpiSpecs from './config/dpi-spec-config';\nimport { useRuntimeEnv } from '../composables/useRuntimeEnv';\nimport { useRoute } from 'vue-router';\nimport { useAsyncState, watchOnce } from '@vueuse/core';\nimport { useDpiEditMode } from './composables/useDpiEditMode';\n\n\n\nexport default defineComponent({\n name: 'DataProviderInterface',\n components: {\n InputPage: defineAsyncComponent(() => import('./views/InputPage.vue')),\n },\n props: {\n name: {\n type: String,\n default: '',\n },\n dpiContext: {\n type: Object as PropType<DpiContext>,\n default: () => undefined,\n }\n },\n metaInfo() {\n return {\n title: `${this.$t('message.metadata.upload')} | ${this.$t('message.header.navigation.data.datasets')}`,\n meta: [\n { name: 'description', vmid: 'description', content: `${this.$t('message.datasets.meta.description')}` },\n { name: 'keywords', vmid: 'keywords', content: `${this.$env.metadata.keywords} ${this.$t('message.datasets.meta.description')}}` },\n { name: 'robots', content: 'noindex, follow' },\n ],\n };\n },\n data() {\n return {\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n mode() {\n return this.property === 'catalogues'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editCatalogue')\n : this.$t('message.dataupload.createNewCatalogue')\n : this.property === 'datasets'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editDataset')\n : this.$t('message.dataupload.createNewDataset')\n : 'Edit Distribution';\n },\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n ...mapActions('auth', [\n 'populateDraftAndEdit',\n ]),\n getClearPath() {\n return `${this.$env.content.dataProviderInterface.basePath}/${this.property}?locale=${this.$i18n.locale}&clear=true`;;\n },\n handleScroll() {\n try {\n if (document.getElementById(\"stepperAnchor\")?.offsetTop || 0 >= 35) {\n document.getElementById(\"stepperAnchor\")?.classList.add(\"border-bottom-lightgray\");\n }\n else {\n document.getElementById(\"stepperAnchor\")?.classList.remove(\"border-bottom-lightgray\");\n }\n } catch (error) {\n \n }\n }\n\n },\n created() {\n window.addEventListener('scroll', this.handleScroll);\n this.populateDraftAndEdit();\n },\n mounted() {\n this.saveLocalstorageValues(this.property);\n },\n unmounted() {\n window.removeEventListener('scroll', this.handleScroll);\n },\n setup(props) {\n const route = useRoute()\n const store = useStore()\n const env = useRuntimeEnv()\n const userSpec = env.content.dataProviderInterface.specification as 'dcatap' | 'dcatapde' | 'dcatapdeODB'\n const fallbackSpec = dpiSpecs[userSpec]\n const dpiContext = toRef(props, 'dpiContext')\n\n const resolvedDpiContext = computed<DpiContext>(() => {\n const _dpiContext = toValue(dpiContext)\n\n return {\n specification: fallbackSpec,\n specificationName: userSpec,\n edit: {\n enabled: route.query.edit === 'true',\n id: route.query.id as string || undefined,\n fromDraft: route.query.fromDraft === 'true',\n },\n ..._dpiContext\n }\n })\n\n const specification = computed(() => {\n return resolvedDpiContext.value.specification\n })\n\n const specificationName = computed(() => {\n return resolvedDpiContext.value.specificationName\n })\n\n setupDpiContext(resolvedDpiContext)\n\n watchEffect(() => {\n store.dispatch('dpiStore/setSpecification', specification.value)\n store.dispatch('dpiStore/setSpecificationname', specificationName.value)\n })\n\n const key = computed(() => {\n return `${route.query.key}@${specificationName.value}`\n })\n\n const { isReady } = useDpiEditMode(resolvedDpiContext)\n\n return {\n resolvedDpiContext,\n key,\n isReady,\n }\n\n }\n});\n</script>\n\n<style lang=\"scss\">\n.border-bottom-lightgray {\n border-bottom: 1px solid lightgray;\n}\n.stickyStepper {\n position: sticky;\n top: 0;\n background: #ffffff;\n z-index: 999;\n}\n\n.stickyStepper .SSfirstRow {\n margin: 1vh 0;\n display: flex;\n align-items: center;\n}\n\n.stickyStepper .stickyNav {\n border-left: 1px solid black;\n margin-left: 1vh;\n padding-left: 1vh;\n}\n\n#stepper {\n width: 100% !important;\n}\n\n#input {\n padding: 10px;\n}\n\n.small-headline {\n font-size: 1.5rem;\n min-width: max-content;\n}\n\n.property {\n margin: 20px;\n background-color: #ffffff;\n border: solid 0.5px rgb(225, 225, 225);\n margin-top: 30px;\n}\n\n.infoBox .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-right: 5px;\n margin-bottom: 1px;\n}\n\n.infoBox {\n width: 100%;\n height: 30%;\n background-color: #f7f7f7;\n padding: 5%;\n border-radius: 0.25rem;\n margin-top: 20px;\n\n .input_subpage_nav {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 15px;\n }\n}\n\n.besides {\n .formkit-input-group-repeatable {\n display: flex;\n flex-direction: row;\n background-color: transparent;\n padding: 0px;\n }\n}\n\n.main {\n width: 75%;\n margin: 0 5px 0 5px;\n}\n\n.sub {\n width: 20%;\n margin: 0 5px 0 5px;\n}\n\n#subStepperBox {\n position: sticky;\n top: 154px;\n z-index: 10;\n width: 100%;\n padding: 0 10%;\n\n .step-progress__bar {\n border-top: none !important;\n }\n\n .step-progress__step--active {\n .step-progress__step-label {\n background-color: lightsteelblue !important;\n }\n\n }\n}\n\n.step-progress__step span{\n \n color:white !important;\n \n}\n// Stepper Customizing -------------\n\n// #stepper,\n// #subStepper {\n// .step-progress__step {\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// height: 70%;\n// width: 20%;\n// display: flex;\n// align-items: center;\n// z-index: 1;\n\n\n// span {\n// color: grey;\n// font-size: 18px;\n// display: none;\n// }\n\n// div {\n// padding: 1rem;\n// height: 100%;\n// display: flex;\n// align-items: center;\n// color: white;\n// font-weight: 300;\n\n// }\n\n// .step-progress__step-label {\n\n// background: lightgrey;\n// background-size: 400% 400%;\n// background-position: 100% 0%;\n// transition: all 300ms ease-in-out;\n// border-right: 1px white solid;\n// font-size: 14px;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n\n\n// }\n\n\n// .step-progress__step-label:hover {\n// background-position: 65% 0%;\n// color: black;\n\n// }\n\n// }\n\n// .step-progress__step--active {\n\n// z-index: 7 !important;\n\n\n// span {\n// color: black;\n// }\n\n// div {\n// background: white;\n// }\n\n// .step-progress__step-label {\n// background: rgb(236, 236, 236);\n// background-position: 50% 0%;\n// box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12) !important;\n// transform: scale(1.1);\n// z-index: 8;\n// font-size: 16px;\n// }\n\n// }\n\n// .step-progress__step--valid {\n// div {\n// color: white;\n\n// }\n\n// .step-progress__step-label {\n// background: rgba(0, 235, 0, 0.2);\n// color: lightslategrey;\n\n\n// }\n\n// .step-progress__step-label:hover {\n// color: black;\n// }\n// }\n\n// .step-progress__step--active .step-progress__step-label {\n// color: rgb(31, 31, 31);\n// }\n\n// .step-progress__wrapper-after {\n// display: none;\n// }\n\n// .step-progress__step-icon {\n// display: none !important;\n// }\n\n// .step-progress__bar {\n// margin: 0;\n// height: 5rem;\n// border-top: 1px solid lightslategray;\n\n// }\n\n// .step-progress__step-label {\n// position: unset;\n// transform: unset;\n// flex-grow: 1;\n// }\n\n// .step-progress__step {}\n\n// .step-progress__wrapper-before {\n// display: none !important;\n// }\n\n// #stepper .step-progress__step::after {\n// display: none !important;\n// }\n// }\n#stepper .step-progress__step{\n border: solid white 20px;\n}\n#stepper .step-progress__step-icon, #subStepper .step-progress__step-icon {\n font-size: 25px;\n}\n.step-progress__step-label{\n cursor: pointer;\n}\n// Input Form Margins & Borders ----\n\n.formkit-input[data-classification=group] [data-is-repeatable] {\n border: none;\n padding: 1em 1em 1em 0em;\n}\n\n.formkit-input[data-classification=group] [data-is-repeatable] .formkit-input-group-repeatable {\n border-bottom: none;\n}\n\n.formkit-input-element--checkbox {\n margin-right: 5px;\n}\n\n.formkit-input-wrapper {\n font-family: \"Ubuntu\";\n}\n\n.formkit-input[data-classification=button] button[data-ghost] {\n font-weight: 400;\n}\n\n.formkit-input-error {\n color: #e13737 !important;\n font-weight: 400 !important;\n}\n\n// General Formkit Styling ----\n\n.formkit {\n &-input {\n .formkit {\n &-input {\n &-element {\n max-width: 100%;\n }\n\n &-error {\n font-weight: bold;\n }\n }\n }\n }\n\n .formkit-input-group-add-more {\n display: flex;\n justify-content: flex-end;\n\n button {\n border: black;\n }\n }\n\n .formkit-input {\n &[data-classification=\"text\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n &[data-classification=\"select\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n }\n\n .formkit-input[data-classification=\"button\"] {\n button {\n &[data-ghost] {\n color: white;\n background-color: #001d85;\n border-color: #001d85;\n border-radius: 1.875rem;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n }\n }\n}\n\n.formkit-input.besides {\n border-bottom: 1px solid lightgrey !important;\n}\n\n.formkit-input-label {\n font-weight: 500 !important;\n}\n\n.formkit-input-element {\n\n &--textarea {\n width: 100%;\n }\n}\n\n.formkit-input-element--group {\n display: block !important;\n}\n\n.formkit-input.besides>.formkit-input-wrapper>.formkit-input-label {\n\n\n text-decoration: underline !important;\n}\n\n// #stepper,\n// #subStepper {\n\n\n// .step-progress__step::after {\n// display: none;\n// }\n\n// .step-progress__step-label {\n// cursor: pointer;\n// }\n// }\n</style>\n"],"names":["_resolveComponent","property","_createElementBlock","isReady","_ctx","_openBlock","_createBlock","_component_router_view","_createCommentVNode"],"mappings":";;;;;YACEA,EAIM,aAAA;SAJmHC,EAAQ,GAAAC,EAAA,OAAA;AAAA,IAAA,OAAA;AAAA,IAE5GC,KAAAA,EAAAA;AAAAA,EAAAA,GAAAA;AAAAA,IAASC,EAAA,WAAAC,KAAoBC,EAAAC,GAAA;AAAA,MAAA,KAAA;AAAA,MAHpD,KAAAH,EAAA;AAAA,IAAA,CAAA,KAAAI,EAAA,IAAA,EAAA;AAAA;;;"}
|
|
1
|
+
{"version":3,"file":"DataProviderInterface.vue.mjs","sources":["../../lib/data-provider-interface/DataProviderInterface.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between dpi position-relative w-100\" :key=\"property\">\n <!-- CONTENT -->\n <router-view v-if=\"isReady\" ref=\"view\" :key=\"key\">\n </router-view>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-nested-ternary, no-lonely-if, no-param-reassign */\nimport { DpiContext, setupDpiContext } from './composables/useDpiContext';\nimport { computed, defineAsyncComponent, defineComponent, PropType , provide, ref, toRef, toRefs, toValue, watch, watchEffect} from 'vue';\nimport { mapActions, mapGetters, useStore } from 'vuex';\nimport dpiSpecs from './config/dpi-spec-config';\nimport { useRuntimeEnv } from '../composables/useRuntimeEnv';\nimport { useRoute } from 'vue-router';\nimport { useAsyncState, watchOnce } from '@vueuse/core';\nimport { useDpiEditMode } from './composables/useDpiEditMode';\nimport { AutocompleteInstance, autocompleteKey, defaultAutocompleteAdapter, useAutocomplete } from './composables/aucotomplete';\n\n\n\nexport default defineComponent({\n name: 'DataProviderInterface',\n components: {\n InputPage: defineAsyncComponent(() => import('./views/InputPage.vue')),\n },\n props: {\n name: {\n type: String,\n default: '',\n },\n dpiContext: {\n type: Object as PropType<DpiContext>,\n default: () => undefined,\n },\n autocomplete: {\n type: Object as PropType<AutocompleteInstance>,\n default: () => undefined,\n }\n },\n metaInfo() {\n return {\n title: `${this.$t('message.metadata.upload')} | ${this.$t('message.header.navigation.data.datasets')}`,\n meta: [\n { name: 'description', vmid: 'description', content: `${this.$t('message.datasets.meta.description')}` },\n { name: 'keywords', vmid: 'keywords', content: `${this.$env.metadata.keywords} ${this.$t('message.datasets.meta.description')}}` },\n { name: 'robots', content: 'noindex, follow' },\n ],\n };\n },\n data() {\n return {\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n mode() {\n return this.property === 'catalogues'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editCatalogue')\n : this.$t('message.dataupload.createNewCatalogue')\n : this.property === 'datasets'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editDataset')\n : this.$t('message.dataupload.createNewDataset')\n : 'Edit Distribution';\n },\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n ...mapActions('auth', [\n 'populateDraftAndEdit',\n ]),\n getClearPath() {\n return `${this.$env.content.dataProviderInterface.basePath}/${this.property}?locale=${this.$i18n.locale}&clear=true`;;\n },\n handleScroll() {\n try {\n if (document.getElementById(\"stepperAnchor\")?.offsetTop || 0 >= 35) {\n document.getElementById(\"stepperAnchor\")?.classList.add(\"border-bottom-lightgray\");\n }\n else {\n document.getElementById(\"stepperAnchor\")?.classList.remove(\"border-bottom-lightgray\");\n }\n } catch (error) {\n \n }\n }\n\n },\n created() {\n window.addEventListener('scroll', this.handleScroll);\n this.populateDraftAndEdit();\n },\n mounted() {\n this.saveLocalstorageValues(this.property);\n },\n unmounted() {\n window.removeEventListener('scroll', this.handleScroll);\n },\n setup(props) {\n const route = useRoute()\n const store = useStore()\n const env = useRuntimeEnv()\n const userSpec = env.content.dataProviderInterface.specification as 'dcatap' | 'dcatapde' | 'dcatapdeODB'\n const fallbackSpec = dpiSpecs[userSpec]\n const dpiContext = toRef(props, 'dpiContext')\n\n const resolvedDpiContext = computed<DpiContext>(() => {\n const _dpiContext = toValue(dpiContext)\n\n return {\n specification: fallbackSpec,\n specificationName: userSpec,\n edit: {\n enabled: route.query.edit === 'true',\n id: route.query.id as string || undefined,\n fromDraft: route.query.fromDraft === 'true',\n },\n ..._dpiContext\n }\n })\n\n const specification = computed(() => {\n return resolvedDpiContext.value.specification\n })\n\n const specificationName = computed(() => {\n return resolvedDpiContext.value.specificationName\n })\n\n setupDpiContext(resolvedDpiContext)\n const defaultAutocompleteInstance = defaultAutocompleteAdapter({\n envs: env,\n dpiContext: resolvedDpiContext\n });\n provide(autocompleteKey, props.autocomplete || defaultAutocompleteInstance.adapter);\n\n watchEffect(() => {\n store.dispatch('dpiStore/setSpecification', specification.value)\n store.dispatch('dpiStore/setSpecificationname', specificationName.value)\n })\n\n const key = computed(() => {\n return `${route.query.key}@${specificationName.value}`\n })\n\n const { isReady } = useDpiEditMode(resolvedDpiContext)\n\n return {\n resolvedDpiContext,\n key,\n isReady,\n }\n\n }\n});\n</script>\n\n<style lang=\"scss\">\n.border-bottom-lightgray {\n border-bottom: 1px solid lightgray;\n}\n.stickyStepper {\n position: sticky;\n top: 0;\n background: #ffffff;\n z-index: 999;\n}\n\n.stickyStepper .SSfirstRow {\n margin: 1vh 0;\n display: flex;\n align-items: center;\n}\n\n.stickyStepper .stickyNav {\n border-left: 1px solid black;\n margin-left: 1vh;\n padding-left: 1vh;\n}\n\n#stepper {\n width: 100% !important;\n}\n\n#input {\n padding: 10px;\n}\n\n.small-headline {\n font-size: 1.5rem;\n min-width: max-content;\n}\n\n.property {\n margin: 20px;\n background-color: #ffffff;\n border: solid 0.5px rgb(225, 225, 225);\n margin-top: 30px;\n}\n\n.infoBox .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-right: 5px;\n margin-bottom: 1px;\n}\n\n.infoBox {\n width: 100%;\n height: 30%;\n background-color: #f7f7f7;\n padding: 5%;\n border-radius: 0.25rem;\n margin-top: 20px;\n\n .input_subpage_nav {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 15px;\n }\n}\n\n.besides {\n .formkit-input-group-repeatable {\n display: flex;\n flex-direction: row;\n background-color: transparent;\n padding: 0px;\n }\n}\n\n.main {\n width: 75%;\n margin: 0 5px 0 5px;\n}\n\n.sub {\n width: 20%;\n margin: 0 5px 0 5px;\n}\n\n#subStepperBox {\n position: sticky;\n top: 154px;\n z-index: 10;\n width: 100%;\n padding: 0 10%;\n\n .step-progress__bar {\n border-top: none !important;\n }\n\n .step-progress__step--active {\n .step-progress__step-label {\n background-color: lightsteelblue !important;\n }\n\n }\n}\n\n.step-progress__step span{\n \n color:white !important;\n \n}\n// Stepper Customizing -------------\n\n// #stepper,\n// #subStepper {\n// .step-progress__step {\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// height: 70%;\n// width: 20%;\n// display: flex;\n// align-items: center;\n// z-index: 1;\n\n\n// span {\n// color: grey;\n// font-size: 18px;\n// display: none;\n// }\n\n// div {\n// padding: 1rem;\n// height: 100%;\n// display: flex;\n// align-items: center;\n// color: white;\n// font-weight: 300;\n\n// }\n\n// .step-progress__step-label {\n\n// background: lightgrey;\n// background-size: 400% 400%;\n// background-position: 100% 0%;\n// transition: all 300ms ease-in-out;\n// border-right: 1px white solid;\n// font-size: 14px;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n\n\n// }\n\n\n// .step-progress__step-label:hover {\n// background-position: 65% 0%;\n// color: black;\n\n// }\n\n// }\n\n// .step-progress__step--active {\n\n// z-index: 7 !important;\n\n\n// span {\n// color: black;\n// }\n\n// div {\n// background: white;\n// }\n\n// .step-progress__step-label {\n// background: rgb(236, 236, 236);\n// background-position: 50% 0%;\n// box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12) !important;\n// transform: scale(1.1);\n// z-index: 8;\n// font-size: 16px;\n// }\n\n// }\n\n// .step-progress__step--valid {\n// div {\n// color: white;\n\n// }\n\n// .step-progress__step-label {\n// background: rgba(0, 235, 0, 0.2);\n// color: lightslategrey;\n\n\n// }\n\n// .step-progress__step-label:hover {\n// color: black;\n// }\n// }\n\n// .step-progress__step--active .step-progress__step-label {\n// color: rgb(31, 31, 31);\n// }\n\n// .step-progress__wrapper-after {\n// display: none;\n// }\n\n// .step-progress__step-icon {\n// display: none !important;\n// }\n\n// .step-progress__bar {\n// margin: 0;\n// height: 5rem;\n// border-top: 1px solid lightslategray;\n\n// }\n\n// .step-progress__step-label {\n// position: unset;\n// transform: unset;\n// flex-grow: 1;\n// }\n\n// .step-progress__step {}\n\n// .step-progress__wrapper-before {\n// display: none !important;\n// }\n\n// #stepper .step-progress__step::after {\n// display: none !important;\n// }\n// }\n#stepper .step-progress__step{\n border: solid white 20px;\n}\n#stepper .step-progress__step-icon, #subStepper .step-progress__step-icon {\n font-size: 25px;\n}\n.step-progress__step-label{\n cursor: pointer;\n}\n// Input Form Margins & Borders ----\n\n.formkit-input[data-classification=group] [data-is-repeatable] {\n border: none;\n padding: 1em 1em 1em 0em;\n}\n\n.formkit-input[data-classification=group] [data-is-repeatable] .formkit-input-group-repeatable {\n border-bottom: none;\n}\n\n.formkit-input-element--checkbox {\n margin-right: 5px;\n}\n\n.formkit-input-wrapper {\n font-family: \"Ubuntu\";\n}\n\n.formkit-input[data-classification=button] button[data-ghost] {\n font-weight: 400;\n}\n\n.formkit-input-error {\n color: #e13737 !important;\n font-weight: 400 !important;\n}\n\n// General Formkit Styling ----\n\n.formkit {\n &-input {\n .formkit {\n &-input {\n &-element {\n max-width: 100%;\n }\n\n &-error {\n font-weight: bold;\n }\n }\n }\n }\n\n .formkit-input-group-add-more {\n display: flex;\n justify-content: flex-end;\n\n button {\n border: black;\n }\n }\n\n .formkit-input {\n &[data-classification=\"text\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n &[data-classification=\"select\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n }\n\n .formkit-input[data-classification=\"button\"] {\n button {\n &[data-ghost] {\n color: white;\n background-color: #001d85;\n border-color: #001d85;\n border-radius: 1.875rem;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n }\n }\n}\n\n.formkit-input.besides {\n border-bottom: 1px solid lightgrey !important;\n}\n\n.formkit-input-label {\n font-weight: 500 !important;\n}\n\n.formkit-input-element {\n\n &--textarea {\n width: 100%;\n }\n}\n\n.formkit-input-element--group {\n display: block !important;\n}\n\n.formkit-input.besides>.formkit-input-wrapper>.formkit-input-label {\n\n\n text-decoration: underline !important;\n}\n\n// #stepper,\n// #subStepper {\n\n\n// .step-progress__step::after {\n// display: none;\n// }\n\n// .step-progress__step-label {\n// cursor: pointer;\n// }\n// }\n</style>\n"],"names":["_resolveComponent","property","_createElementBlock","isReady","_ctx","_openBlock","_createBlock","_component_router_view","_createCommentVNode"],"mappings":";;;;;YACEA,EAIM,aAAA;SAJmHC,EAAQ,GAAAC,EAAA,OAAA;AAAA,IAAA,OAAA;AAAA,IAE5GC,KAAAA,EAAAA;AAAAA,EAAAA,GAAAA;AAAAA,IAASC,EAAA,WAAAC,KAAoBC,EAAAC,GAAA;AAAA,MAAA,KAAA;AAAA,MAHpD,KAAAH,EAAA;AAAA,IAAA,CAAA,KAAAI,EAAA,IAAA,EAAA;AAAA;;;"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { setupDpiContext as
|
|
2
|
-
import { defineComponent as
|
|
3
|
-
import { mapGetters as S, mapActions as
|
|
4
|
-
import { config as
|
|
1
|
+
import { setupDpiContext as g } from "./composables/useDpiContext.mjs";
|
|
2
|
+
import { defineComponent as v, defineAsyncComponent as y, toRef as $, computed as s, toValue as E, provide as C, watchEffect as I } from "vue";
|
|
3
|
+
import { mapGetters as S, mapActions as d, useStore as b } from "vuex";
|
|
4
|
+
import { config as w } from "./config/dpi-spec-config.mjs";
|
|
5
5
|
import { useRuntimeEnv as D } from "../composables/useRuntimeEnv.mjs";
|
|
6
|
-
import { useRoute as
|
|
7
|
-
import { useDpiEditMode as
|
|
8
|
-
|
|
6
|
+
import { useRoute as A } from "vue-router";
|
|
7
|
+
import { useDpiEditMode as x } from "./composables/useDpiEditMode.mjs";
|
|
8
|
+
import { autocompleteKey as k, defaultAutocompleteAdapter as L } from "./composables/aucotomplete.mjs";
|
|
9
|
+
const j = v({
|
|
9
10
|
name: "DataProviderInterface",
|
|
10
11
|
components: {
|
|
11
|
-
InputPage:
|
|
12
|
+
InputPage: y(() => import("./views/InputPage.vue.mjs"))
|
|
12
13
|
},
|
|
13
14
|
props: {
|
|
14
15
|
name: {
|
|
@@ -19,6 +20,11 @@ const M = g({
|
|
|
19
20
|
type: Object,
|
|
20
21
|
default: () => {
|
|
21
22
|
}
|
|
23
|
+
},
|
|
24
|
+
autocomplete: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => {
|
|
27
|
+
}
|
|
22
28
|
}
|
|
23
29
|
},
|
|
24
30
|
metaInfo() {
|
|
@@ -46,19 +52,19 @@ const M = g({
|
|
|
46
52
|
}
|
|
47
53
|
},
|
|
48
54
|
methods: {
|
|
49
|
-
...
|
|
55
|
+
...d("dpiStore", [
|
|
50
56
|
"saveLocalstorageValues"
|
|
51
57
|
]),
|
|
52
|
-
...
|
|
58
|
+
...d("auth", [
|
|
53
59
|
"populateDraftAndEdit"
|
|
54
60
|
]),
|
|
55
61
|
getClearPath() {
|
|
56
62
|
return `${this.$env.content.dataProviderInterface.basePath}/${this.property}?locale=${this.$i18n.locale}&clear=true`;
|
|
57
63
|
},
|
|
58
64
|
handleScroll() {
|
|
59
|
-
var
|
|
65
|
+
var o, t, a;
|
|
60
66
|
try {
|
|
61
|
-
(
|
|
67
|
+
(o = document.getElementById("stepperAnchor")) != null && o.offsetTop || 0 >= 35 ? (t = document.getElementById("stepperAnchor")) == null || t.classList.add("border-bottom-lightgray") : (a = document.getElementById("stepperAnchor")) == null || a.classList.remove("border-bottom-lightgray");
|
|
62
68
|
} catch {
|
|
63
69
|
}
|
|
64
70
|
}
|
|
@@ -72,32 +78,37 @@ const M = g({
|
|
|
72
78
|
unmounted() {
|
|
73
79
|
window.removeEventListener("scroll", this.handleScroll);
|
|
74
80
|
},
|
|
75
|
-
setup(
|
|
76
|
-
const t =
|
|
77
|
-
const
|
|
81
|
+
setup(o) {
|
|
82
|
+
const t = A(), a = b(), i = D(), r = i.content.dataProviderInterface.specification, c = w[r], p = $(o, "dpiContext"), e = s(() => {
|
|
83
|
+
const h = E(p);
|
|
78
84
|
return {
|
|
79
85
|
specification: c,
|
|
80
|
-
specificationName:
|
|
86
|
+
specificationName: r,
|
|
81
87
|
edit: {
|
|
82
88
|
enabled: t.query.edit === "true",
|
|
83
89
|
id: t.query.id || void 0,
|
|
84
90
|
fromDraft: t.query.fromDraft === "true"
|
|
85
91
|
},
|
|
86
|
-
...
|
|
92
|
+
...h
|
|
87
93
|
};
|
|
88
|
-
}), m = s(() =>
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
}), m = s(() => e.value.specification), n = s(() => e.value.specificationName);
|
|
95
|
+
g(e);
|
|
96
|
+
const u = L({
|
|
97
|
+
envs: i,
|
|
98
|
+
dpiContext: e
|
|
99
|
+
});
|
|
100
|
+
C(k, o.autocomplete || u.adapter), I(() => {
|
|
101
|
+
a.dispatch("dpiStore/setSpecification", m.value), a.dispatch("dpiStore/setSpecificationname", n.value);
|
|
91
102
|
});
|
|
92
|
-
const
|
|
103
|
+
const l = s(() => `${t.query.key}@${n.value}`), { isReady: f } = x(e);
|
|
93
104
|
return {
|
|
94
|
-
resolvedDpiContext:
|
|
95
|
-
key:
|
|
96
|
-
isReady:
|
|
105
|
+
resolvedDpiContext: e,
|
|
106
|
+
key: l,
|
|
107
|
+
isReady: f
|
|
97
108
|
};
|
|
98
109
|
}
|
|
99
110
|
});
|
|
100
111
|
export {
|
|
101
|
-
|
|
112
|
+
j as default
|
|
102
113
|
};
|
|
103
114
|
//# sourceMappingURL=DataProviderInterface.vue2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataProviderInterface.vue2.mjs","sources":["../../lib/data-provider-interface/DataProviderInterface.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between dpi position-relative w-100\" :key=\"property\">\n <!-- CONTENT -->\n <router-view v-if=\"isReady\" ref=\"view\" :key=\"key\">\n </router-view>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-nested-ternary, no-lonely-if, no-param-reassign */\nimport { DpiContext, setupDpiContext } from './composables/useDpiContext';\nimport { computed, defineAsyncComponent, defineComponent, PropType , ref, toRef, toRefs, toValue, watch, watchEffect} from 'vue';\nimport { mapActions, mapGetters, useStore } from 'vuex';\nimport dpiSpecs from './config/dpi-spec-config';\nimport { useRuntimeEnv } from '../composables/useRuntimeEnv';\nimport { useRoute } from 'vue-router';\nimport { useAsyncState, watchOnce } from '@vueuse/core';\nimport { useDpiEditMode } from './composables/useDpiEditMode';\n\n\n\nexport default defineComponent({\n name: 'DataProviderInterface',\n components: {\n InputPage: defineAsyncComponent(() => import('./views/InputPage.vue')),\n },\n props: {\n name: {\n type: String,\n default: '',\n },\n dpiContext: {\n type: Object as PropType<DpiContext>,\n default: () => undefined,\n }\n },\n metaInfo() {\n return {\n title: `${this.$t('message.metadata.upload')} | ${this.$t('message.header.navigation.data.datasets')}`,\n meta: [\n { name: 'description', vmid: 'description', content: `${this.$t('message.datasets.meta.description')}` },\n { name: 'keywords', vmid: 'keywords', content: `${this.$env.metadata.keywords} ${this.$t('message.datasets.meta.description')}}` },\n { name: 'robots', content: 'noindex, follow' },\n ],\n };\n },\n data() {\n return {\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n mode() {\n return this.property === 'catalogues'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editCatalogue')\n : this.$t('message.dataupload.createNewCatalogue')\n : this.property === 'datasets'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editDataset')\n : this.$t('message.dataupload.createNewDataset')\n : 'Edit Distribution';\n },\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n ...mapActions('auth', [\n 'populateDraftAndEdit',\n ]),\n getClearPath() {\n return `${this.$env.content.dataProviderInterface.basePath}/${this.property}?locale=${this.$i18n.locale}&clear=true`;;\n },\n handleScroll() {\n try {\n if (document.getElementById(\"stepperAnchor\")?.offsetTop || 0 >= 35) {\n document.getElementById(\"stepperAnchor\")?.classList.add(\"border-bottom-lightgray\");\n }\n else {\n document.getElementById(\"stepperAnchor\")?.classList.remove(\"border-bottom-lightgray\");\n }\n } catch (error) {\n \n }\n }\n\n },\n created() {\n window.addEventListener('scroll', this.handleScroll);\n this.populateDraftAndEdit();\n },\n mounted() {\n this.saveLocalstorageValues(this.property);\n },\n unmounted() {\n window.removeEventListener('scroll', this.handleScroll);\n },\n setup(props) {\n const route = useRoute()\n const store = useStore()\n const env = useRuntimeEnv()\n const userSpec = env.content.dataProviderInterface.specification as 'dcatap' | 'dcatapde' | 'dcatapdeODB'\n const fallbackSpec = dpiSpecs[userSpec]\n const dpiContext = toRef(props, 'dpiContext')\n\n const resolvedDpiContext = computed<DpiContext>(() => {\n const _dpiContext = toValue(dpiContext)\n\n return {\n specification: fallbackSpec,\n specificationName: userSpec,\n edit: {\n enabled: route.query.edit === 'true',\n id: route.query.id as string || undefined,\n fromDraft: route.query.fromDraft === 'true',\n },\n ..._dpiContext\n }\n })\n\n const specification = computed(() => {\n return resolvedDpiContext.value.specification\n })\n\n const specificationName = computed(() => {\n return resolvedDpiContext.value.specificationName\n })\n\n setupDpiContext(resolvedDpiContext)\n\n watchEffect(() => {\n store.dispatch('dpiStore/setSpecification', specification.value)\n store.dispatch('dpiStore/setSpecificationname', specificationName.value)\n })\n\n const key = computed(() => {\n return `${route.query.key}@${specificationName.value}`\n })\n\n const { isReady } = useDpiEditMode(resolvedDpiContext)\n\n return {\n resolvedDpiContext,\n key,\n isReady,\n }\n\n }\n});\n</script>\n\n<style lang=\"scss\">\n.border-bottom-lightgray {\n border-bottom: 1px solid lightgray;\n}\n.stickyStepper {\n position: sticky;\n top: 0;\n background: #ffffff;\n z-index: 999;\n}\n\n.stickyStepper .SSfirstRow {\n margin: 1vh 0;\n display: flex;\n align-items: center;\n}\n\n.stickyStepper .stickyNav {\n border-left: 1px solid black;\n margin-left: 1vh;\n padding-left: 1vh;\n}\n\n#stepper {\n width: 100% !important;\n}\n\n#input {\n padding: 10px;\n}\n\n.small-headline {\n font-size: 1.5rem;\n min-width: max-content;\n}\n\n.property {\n margin: 20px;\n background-color: #ffffff;\n border: solid 0.5px rgb(225, 225, 225);\n margin-top: 30px;\n}\n\n.infoBox .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-right: 5px;\n margin-bottom: 1px;\n}\n\n.infoBox {\n width: 100%;\n height: 30%;\n background-color: #f7f7f7;\n padding: 5%;\n border-radius: 0.25rem;\n margin-top: 20px;\n\n .input_subpage_nav {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 15px;\n }\n}\n\n.besides {\n .formkit-input-group-repeatable {\n display: flex;\n flex-direction: row;\n background-color: transparent;\n padding: 0px;\n }\n}\n\n.main {\n width: 75%;\n margin: 0 5px 0 5px;\n}\n\n.sub {\n width: 20%;\n margin: 0 5px 0 5px;\n}\n\n#subStepperBox {\n position: sticky;\n top: 154px;\n z-index: 10;\n width: 100%;\n padding: 0 10%;\n\n .step-progress__bar {\n border-top: none !important;\n }\n\n .step-progress__step--active {\n .step-progress__step-label {\n background-color: lightsteelblue !important;\n }\n\n }\n}\n\n.step-progress__step span{\n \n color:white !important;\n \n}\n// Stepper Customizing -------------\n\n// #stepper,\n// #subStepper {\n// .step-progress__step {\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// height: 70%;\n// width: 20%;\n// display: flex;\n// align-items: center;\n// z-index: 1;\n\n\n// span {\n// color: grey;\n// font-size: 18px;\n// display: none;\n// }\n\n// div {\n// padding: 1rem;\n// height: 100%;\n// display: flex;\n// align-items: center;\n// color: white;\n// font-weight: 300;\n\n// }\n\n// .step-progress__step-label {\n\n// background: lightgrey;\n// background-size: 400% 400%;\n// background-position: 100% 0%;\n// transition: all 300ms ease-in-out;\n// border-right: 1px white solid;\n// font-size: 14px;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n\n\n// }\n\n\n// .step-progress__step-label:hover {\n// background-position: 65% 0%;\n// color: black;\n\n// }\n\n// }\n\n// .step-progress__step--active {\n\n// z-index: 7 !important;\n\n\n// span {\n// color: black;\n// }\n\n// div {\n// background: white;\n// }\n\n// .step-progress__step-label {\n// background: rgb(236, 236, 236);\n// background-position: 50% 0%;\n// box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12) !important;\n// transform: scale(1.1);\n// z-index: 8;\n// font-size: 16px;\n// }\n\n// }\n\n// .step-progress__step--valid {\n// div {\n// color: white;\n\n// }\n\n// .step-progress__step-label {\n// background: rgba(0, 235, 0, 0.2);\n// color: lightslategrey;\n\n\n// }\n\n// .step-progress__step-label:hover {\n// color: black;\n// }\n// }\n\n// .step-progress__step--active .step-progress__step-label {\n// color: rgb(31, 31, 31);\n// }\n\n// .step-progress__wrapper-after {\n// display: none;\n// }\n\n// .step-progress__step-icon {\n// display: none !important;\n// }\n\n// .step-progress__bar {\n// margin: 0;\n// height: 5rem;\n// border-top: 1px solid lightslategray;\n\n// }\n\n// .step-progress__step-label {\n// position: unset;\n// transform: unset;\n// flex-grow: 1;\n// }\n\n// .step-progress__step {}\n\n// .step-progress__wrapper-before {\n// display: none !important;\n// }\n\n// #stepper .step-progress__step::after {\n// display: none !important;\n// }\n// }\n#stepper .step-progress__step{\n border: solid white 20px;\n}\n#stepper .step-progress__step-icon, #subStepper .step-progress__step-icon {\n font-size: 25px;\n}\n.step-progress__step-label{\n cursor: pointer;\n}\n// Input Form Margins & Borders ----\n\n.formkit-input[data-classification=group] [data-is-repeatable] {\n border: none;\n padding: 1em 1em 1em 0em;\n}\n\n.formkit-input[data-classification=group] [data-is-repeatable] .formkit-input-group-repeatable {\n border-bottom: none;\n}\n\n.formkit-input-element--checkbox {\n margin-right: 5px;\n}\n\n.formkit-input-wrapper {\n font-family: \"Ubuntu\";\n}\n\n.formkit-input[data-classification=button] button[data-ghost] {\n font-weight: 400;\n}\n\n.formkit-input-error {\n color: #e13737 !important;\n font-weight: 400 !important;\n}\n\n// General Formkit Styling ----\n\n.formkit {\n &-input {\n .formkit {\n &-input {\n &-element {\n max-width: 100%;\n }\n\n &-error {\n font-weight: bold;\n }\n }\n }\n }\n\n .formkit-input-group-add-more {\n display: flex;\n justify-content: flex-end;\n\n button {\n border: black;\n }\n }\n\n .formkit-input {\n &[data-classification=\"text\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n &[data-classification=\"select\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n }\n\n .formkit-input[data-classification=\"button\"] {\n button {\n &[data-ghost] {\n color: white;\n background-color: #001d85;\n border-color: #001d85;\n border-radius: 1.875rem;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n }\n }\n}\n\n.formkit-input.besides {\n border-bottom: 1px solid lightgrey !important;\n}\n\n.formkit-input-label {\n font-weight: 500 !important;\n}\n\n.formkit-input-element {\n\n &--textarea {\n width: 100%;\n }\n}\n\n.formkit-input-element--group {\n display: block !important;\n}\n\n.formkit-input.besides>.formkit-input-wrapper>.formkit-input-label {\n\n\n text-decoration: underline !important;\n}\n\n// #stepper,\n// #subStepper {\n\n\n// .step-progress__step::after {\n// display: none;\n// }\n\n// .step-progress__step-label {\n// cursor: pointer;\n// }\n// }\n</style>\n"],"names":["_sfc_main","defineComponent","defineAsyncComponent","mapGetters","mapActions","_a","_b","_c","props","route","useRoute","store","useStore","userSpec","useRuntimeEnv","fallbackSpec","dpiSpecs","dpiContext","toRef","resolvedDpiContext","computed","_dpiContext","toValue","specification","specificationName","setupDpiContext","watchEffect","key","isReady","useDpiEditMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataProviderInterface.vue2.mjs","sources":["../../lib/data-provider-interface/DataProviderInterface.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between dpi position-relative w-100\" :key=\"property\">\n <!-- CONTENT -->\n <router-view v-if=\"isReady\" ref=\"view\" :key=\"key\">\n </router-view>\n </div>\n</template>\n\n<script lang=\"ts\">\n/* eslint-disable no-nested-ternary, no-lonely-if, no-param-reassign */\nimport { DpiContext, setupDpiContext } from './composables/useDpiContext';\nimport { computed, defineAsyncComponent, defineComponent, PropType , provide, ref, toRef, toRefs, toValue, watch, watchEffect} from 'vue';\nimport { mapActions, mapGetters, useStore } from 'vuex';\nimport dpiSpecs from './config/dpi-spec-config';\nimport { useRuntimeEnv } from '../composables/useRuntimeEnv';\nimport { useRoute } from 'vue-router';\nimport { useAsyncState, watchOnce } from '@vueuse/core';\nimport { useDpiEditMode } from './composables/useDpiEditMode';\nimport { AutocompleteInstance, autocompleteKey, defaultAutocompleteAdapter, useAutocomplete } from './composables/aucotomplete';\n\n\n\nexport default defineComponent({\n name: 'DataProviderInterface',\n components: {\n InputPage: defineAsyncComponent(() => import('./views/InputPage.vue')),\n },\n props: {\n name: {\n type: String,\n default: '',\n },\n dpiContext: {\n type: Object as PropType<DpiContext>,\n default: () => undefined,\n },\n autocomplete: {\n type: Object as PropType<AutocompleteInstance>,\n default: () => undefined,\n }\n },\n metaInfo() {\n return {\n title: `${this.$t('message.metadata.upload')} | ${this.$t('message.header.navigation.data.datasets')}`,\n meta: [\n { name: 'description', vmid: 'description', content: `${this.$t('message.datasets.meta.description')}` },\n { name: 'keywords', vmid: 'keywords', content: `${this.$env.metadata.keywords} ${this.$t('message.datasets.meta.description')}}` },\n { name: 'robots', content: 'noindex, follow' },\n ],\n };\n },\n data() {\n return {\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n ]),\n mode() {\n return this.property === 'catalogues'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editCatalogue')\n : this.$t('message.dataupload.createNewCatalogue')\n : this.property === 'datasets'\n ? this.getIsEditMode\n ? this.$t('message.dataupload.menu.editDataset')\n : this.$t('message.dataupload.createNewDataset')\n : 'Edit Distribution';\n },\n },\n methods: {\n ...mapActions('dpiStore', [\n 'saveLocalstorageValues',\n ]),\n ...mapActions('auth', [\n 'populateDraftAndEdit',\n ]),\n getClearPath() {\n return `${this.$env.content.dataProviderInterface.basePath}/${this.property}?locale=${this.$i18n.locale}&clear=true`;;\n },\n handleScroll() {\n try {\n if (document.getElementById(\"stepperAnchor\")?.offsetTop || 0 >= 35) {\n document.getElementById(\"stepperAnchor\")?.classList.add(\"border-bottom-lightgray\");\n }\n else {\n document.getElementById(\"stepperAnchor\")?.classList.remove(\"border-bottom-lightgray\");\n }\n } catch (error) {\n \n }\n }\n\n },\n created() {\n window.addEventListener('scroll', this.handleScroll);\n this.populateDraftAndEdit();\n },\n mounted() {\n this.saveLocalstorageValues(this.property);\n },\n unmounted() {\n window.removeEventListener('scroll', this.handleScroll);\n },\n setup(props) {\n const route = useRoute()\n const store = useStore()\n const env = useRuntimeEnv()\n const userSpec = env.content.dataProviderInterface.specification as 'dcatap' | 'dcatapde' | 'dcatapdeODB'\n const fallbackSpec = dpiSpecs[userSpec]\n const dpiContext = toRef(props, 'dpiContext')\n\n const resolvedDpiContext = computed<DpiContext>(() => {\n const _dpiContext = toValue(dpiContext)\n\n return {\n specification: fallbackSpec,\n specificationName: userSpec,\n edit: {\n enabled: route.query.edit === 'true',\n id: route.query.id as string || undefined,\n fromDraft: route.query.fromDraft === 'true',\n },\n ..._dpiContext\n }\n })\n\n const specification = computed(() => {\n return resolvedDpiContext.value.specification\n })\n\n const specificationName = computed(() => {\n return resolvedDpiContext.value.specificationName\n })\n\n setupDpiContext(resolvedDpiContext)\n const defaultAutocompleteInstance = defaultAutocompleteAdapter({\n envs: env,\n dpiContext: resolvedDpiContext\n });\n provide(autocompleteKey, props.autocomplete || defaultAutocompleteInstance.adapter);\n\n watchEffect(() => {\n store.dispatch('dpiStore/setSpecification', specification.value)\n store.dispatch('dpiStore/setSpecificationname', specificationName.value)\n })\n\n const key = computed(() => {\n return `${route.query.key}@${specificationName.value}`\n })\n\n const { isReady } = useDpiEditMode(resolvedDpiContext)\n\n return {\n resolvedDpiContext,\n key,\n isReady,\n }\n\n }\n});\n</script>\n\n<style lang=\"scss\">\n.border-bottom-lightgray {\n border-bottom: 1px solid lightgray;\n}\n.stickyStepper {\n position: sticky;\n top: 0;\n background: #ffffff;\n z-index: 999;\n}\n\n.stickyStepper .SSfirstRow {\n margin: 1vh 0;\n display: flex;\n align-items: center;\n}\n\n.stickyStepper .stickyNav {\n border-left: 1px solid black;\n margin-left: 1vh;\n padding-left: 1vh;\n}\n\n#stepper {\n width: 100% !important;\n}\n\n#input {\n padding: 10px;\n}\n\n.small-headline {\n font-size: 1.5rem;\n min-width: max-content;\n}\n\n.property {\n margin: 20px;\n background-color: #ffffff;\n border: solid 0.5px rgb(225, 225, 225);\n margin-top: 30px;\n}\n\n.infoBox .material-icons {\n font-size: 20px;\n vertical-align: text-bottom;\n margin-right: 5px;\n margin-bottom: 1px;\n}\n\n.infoBox {\n width: 100%;\n height: 30%;\n background-color: #f7f7f7;\n padding: 5%;\n border-radius: 0.25rem;\n margin-top: 20px;\n\n .input_subpage_nav {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 15px;\n }\n}\n\n.besides {\n .formkit-input-group-repeatable {\n display: flex;\n flex-direction: row;\n background-color: transparent;\n padding: 0px;\n }\n}\n\n.main {\n width: 75%;\n margin: 0 5px 0 5px;\n}\n\n.sub {\n width: 20%;\n margin: 0 5px 0 5px;\n}\n\n#subStepperBox {\n position: sticky;\n top: 154px;\n z-index: 10;\n width: 100%;\n padding: 0 10%;\n\n .step-progress__bar {\n border-top: none !important;\n }\n\n .step-progress__step--active {\n .step-progress__step-label {\n background-color: lightsteelblue !important;\n }\n\n }\n}\n\n.step-progress__step span{\n \n color:white !important;\n \n}\n// Stepper Customizing -------------\n\n// #stepper,\n// #subStepper {\n// .step-progress__step {\n// display: flex;\n// align-items: center;\n// justify-content: center;\n// height: 70%;\n// width: 20%;\n// display: flex;\n// align-items: center;\n// z-index: 1;\n\n\n// span {\n// color: grey;\n// font-size: 18px;\n// display: none;\n// }\n\n// div {\n// padding: 1rem;\n// height: 100%;\n// display: flex;\n// align-items: center;\n// color: white;\n// font-weight: 300;\n\n// }\n\n// .step-progress__step-label {\n\n// background: lightgrey;\n// background-size: 400% 400%;\n// background-position: 100% 0%;\n// transition: all 300ms ease-in-out;\n// border-right: 1px white solid;\n// font-size: 14px;\n// display: flex;\n// align-items: center;\n// justify-content: center;\n\n\n// }\n\n\n// .step-progress__step-label:hover {\n// background-position: 65% 0%;\n// color: black;\n\n// }\n\n// }\n\n// .step-progress__step--active {\n\n// z-index: 7 !important;\n\n\n// span {\n// color: black;\n// }\n\n// div {\n// background: white;\n// }\n\n// .step-progress__step-label {\n// background: rgb(236, 236, 236);\n// background-position: 50% 0%;\n// box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12) !important;\n// transform: scale(1.1);\n// z-index: 8;\n// font-size: 16px;\n// }\n\n// }\n\n// .step-progress__step--valid {\n// div {\n// color: white;\n\n// }\n\n// .step-progress__step-label {\n// background: rgba(0, 235, 0, 0.2);\n// color: lightslategrey;\n\n\n// }\n\n// .step-progress__step-label:hover {\n// color: black;\n// }\n// }\n\n// .step-progress__step--active .step-progress__step-label {\n// color: rgb(31, 31, 31);\n// }\n\n// .step-progress__wrapper-after {\n// display: none;\n// }\n\n// .step-progress__step-icon {\n// display: none !important;\n// }\n\n// .step-progress__bar {\n// margin: 0;\n// height: 5rem;\n// border-top: 1px solid lightslategray;\n\n// }\n\n// .step-progress__step-label {\n// position: unset;\n// transform: unset;\n// flex-grow: 1;\n// }\n\n// .step-progress__step {}\n\n// .step-progress__wrapper-before {\n// display: none !important;\n// }\n\n// #stepper .step-progress__step::after {\n// display: none !important;\n// }\n// }\n#stepper .step-progress__step{\n border: solid white 20px;\n}\n#stepper .step-progress__step-icon, #subStepper .step-progress__step-icon {\n font-size: 25px;\n}\n.step-progress__step-label{\n cursor: pointer;\n}\n// Input Form Margins & Borders ----\n\n.formkit-input[data-classification=group] [data-is-repeatable] {\n border: none;\n padding: 1em 1em 1em 0em;\n}\n\n.formkit-input[data-classification=group] [data-is-repeatable] .formkit-input-group-repeatable {\n border-bottom: none;\n}\n\n.formkit-input-element--checkbox {\n margin-right: 5px;\n}\n\n.formkit-input-wrapper {\n font-family: \"Ubuntu\";\n}\n\n.formkit-input[data-classification=button] button[data-ghost] {\n font-weight: 400;\n}\n\n.formkit-input-error {\n color: #e13737 !important;\n font-weight: 400 !important;\n}\n\n// General Formkit Styling ----\n\n.formkit {\n &-input {\n .formkit {\n &-input {\n &-element {\n max-width: 100%;\n }\n\n &-error {\n font-weight: bold;\n }\n }\n }\n }\n\n .formkit-input-group-add-more {\n display: flex;\n justify-content: flex-end;\n\n button {\n border: black;\n }\n }\n\n .formkit-input {\n &[data-classification=\"text\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n &[data-classification=\"select\"] .formkit-input-wrapper {\n display: flex;\n flex-direction: column;\n }\n }\n\n .formkit-input[data-classification=\"button\"] {\n button {\n &[data-ghost] {\n color: white;\n background-color: #001d85;\n border-color: #001d85;\n border-radius: 1.875rem;\n\n &:hover {\n background-color: #196fd2;\n border-color: #196fd2;\n }\n }\n }\n }\n}\n\n.formkit-input.besides {\n border-bottom: 1px solid lightgrey !important;\n}\n\n.formkit-input-label {\n font-weight: 500 !important;\n}\n\n.formkit-input-element {\n\n &--textarea {\n width: 100%;\n }\n}\n\n.formkit-input-element--group {\n display: block !important;\n}\n\n.formkit-input.besides>.formkit-input-wrapper>.formkit-input-label {\n\n\n text-decoration: underline !important;\n}\n\n// #stepper,\n// #subStepper {\n\n\n// .step-progress__step::after {\n// display: none;\n// }\n\n// .step-progress__step-label {\n// cursor: pointer;\n// }\n// }\n</style>\n"],"names":["_sfc_main","defineComponent","defineAsyncComponent","mapGetters","mapActions","_a","_b","_c","props","route","useRoute","store","useStore","env","useRuntimeEnv","userSpec","fallbackSpec","dpiSpecs","dpiContext","toRef","resolvedDpiContext","computed","_dpiContext","toValue","specification","specificationName","setupDpiContext","defaultAutocompleteInstance","defaultAutocompleteAdapter","provide","autocompleteKey","watchEffect","key","isReady","useDpiEditMode"],"mappings":"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"}
|