@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.
Files changed (69) hide show
  1. package/dist/configurations/configureComponents.mjs +20 -18
  2. package/dist/configurations/configureComponents.mjs.map +1 -1
  3. package/dist/data-provider-interface/DataProviderInterface.vue.d.ts +59 -20
  4. package/dist/data-provider-interface/DataProviderInterface.vue.mjs.map +1 -1
  5. package/dist/data-provider-interface/DataProviderInterface.vue2.mjs +36 -25
  6. package/dist/data-provider-interface/DataProviderInterface.vue2.mjs.map +1 -1
  7. package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +92 -89
  8. package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
  9. package/dist/data-provider-interface/components/ConditionalInput.vue.mjs +104 -107
  10. package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
  11. package/dist/data-provider-interface/components/SpatialInput.vue.mjs +190 -148
  12. package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
  13. package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs +19 -8
  14. package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
  15. package/dist/data-provider-interface/composables/aucotomplete.d.ts +27 -0
  16. package/dist/data-provider-interface/composables/aucotomplete.mjs +52 -0
  17. package/dist/data-provider-interface/composables/aucotomplete.mjs.map +1 -0
  18. package/dist/data-provider-interface/composables/index.d.ts +4 -0
  19. package/dist/data-provider-interface/composables/useDpiContext.mjs +7 -9
  20. package/dist/data-provider-interface/composables/useDpiContext.mjs.map +1 -1
  21. package/dist/data-provider-interface/composables/useRequestUriName.d.ts +18 -0
  22. package/dist/data-provider-interface/composables/useRequestUriName.mjs +59 -0
  23. package/dist/data-provider-interface/composables/useRequestUriName.mjs.map +1 -0
  24. package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs +1 -1
  25. package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs.map +1 -1
  26. package/dist/data-provider-interface/index.mjs +10 -6
  27. package/dist/data-provider-interface/index.mjs.map +1 -1
  28. package/dist/data-provider-interface/store/dpiStore.d.ts +0 -26
  29. package/dist/data-provider-interface/store/dpiStore.mjs +12 -14
  30. package/dist/data-provider-interface/store/dpiStore.mjs.map +1 -1
  31. package/dist/data-provider-interface/views/InputPage.vue.d.ts +49 -20
  32. package/dist/data-provider-interface/views/InputPage.vue.mjs +125 -107
  33. package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
  34. package/dist/data-provider-interface/views/OverviewPage/CatalogueOverview.vue.d.ts +16 -6
  35. package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.d.ts +32 -14
  36. package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs +27 -31
  37. package/dist/data-provider-interface/views/OverviewPage/DatasetOverview.vue.mjs.map +1 -1
  38. package/dist/data-provider-interface/views/OverviewPage/DistributionOverview.vue.d.ts +16 -6
  39. package/dist/data-provider-interface/views/OverviewPage/Properties/SpecialProp.vue.d.ts +8 -3
  40. package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.d.ts +8 -3
  41. package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs +57 -47
  42. package/dist/data-provider-interface/views/OverviewPage/Properties/URIProp.vue.mjs.map +1 -1
  43. package/dist/data-provider-interface/views/OverviewPage/PropertyEntry.vue.d.ts +16 -6
  44. package/dist/data-provider-interface/views/OverviewPage.vue.d.ts +48 -20
  45. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +50 -36
  46. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
  47. package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs +4 -4
  48. package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
  49. package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +3 -3
  50. package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs +3 -3
  51. package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
  52. package/dist/datasetDetails/features/DatasetDetailsIsUsedBy.vue.mjs +18 -18
  53. package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs +58 -50
  54. package/dist/datasetDetails/properties/DatasetDetailsProperties.vue.mjs.map +1 -1
  55. package/dist/external/@vueuse/core/index +3 -2
  56. package/dist/external/@vueuse/shared/index +86 -72
  57. package/dist/external/@vueuse/shared/index.map +1 -1
  58. package/dist/form/Repeatable.vue.d.ts +11 -10
  59. package/dist/form/Repeatable.vue.mjs +5 -62
  60. package/dist/form/Repeatable.vue.mjs.map +1 -1
  61. package/dist/form/Repeatable.vue2.mjs +72 -2
  62. package/dist/form/Repeatable.vue2.mjs.map +1 -1
  63. package/dist/form/Repeatable.vue3.mjs +5 -0
  64. package/dist/form/Repeatable.vue3.mjs.map +1 -0
  65. package/dist/piveau-hub-ui-modules.css +1 -1
  66. package/package.json +1 -1
  67. package/dist/data-provider-interface/store/modules/autocompleteStore.d.ts +0 -27
  68. package/dist/data-provider-interface/store/modules/autocompleteStore.mjs +0 -54
  69. package/dist/data-provider-interface/store/modules/autocompleteStore.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import e from "../facets/ExpandableSelectFacet.vue.mjs";
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/distributions/Distribution.vue.mjs";
16
- import P from "../datasetDetails/distributions/distributionActions/DistributionActions.vue.mjs";
17
- import S from "../datasetDetails/properties/DatasetDetailsProperties.vue.mjs";
18
- import g from "../datasetDetails/features/DatasetDetailsFeatures.vue.mjs";
19
- import x from "../datasetDetails/features/DatasetDetailsFeatureHeader.vue.mjs";
20
- import B from "../datasetDetails/distributions/distributionPreview/DistributionVisualisationSlot.vue.mjs";
21
- const C = {
22
- SelectFacet: e,
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
- Distribution: F,
37
- DistributionActions: P,
38
- DatasetDetailsProperties: S,
39
- DatasetDetailsFeatures: g,
40
- DatasetDetailsFeatureHeader: x,
41
- DistributionVisualisationSlot: B
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 T(r, i) {
44
- const t = { ...C, ...i };
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
- T as configureComponents
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":";;;;;;;;;;;;;;;;;;;;AAuBA,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,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,GAAGxB,GAAmB,GAAGuB,EAAW;AAE5D,EADkB,OAAO,KAAKC,CAAa,EAC3C,QAAQ,CAACC,MAAgB;AACrC,IAAAH,EAAI,UAAUG,GAAKD,EAAcC,CAAG,CAAC;AAAA,EAAA,CACtC;AACH;"}
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 h } from "./composables/useDpiContext.mjs";
2
- import { defineComponent as g, defineAsyncComponent as v, toRef as y, computed as s, toValue as $, watchEffect as E } from "vue";
3
- import { mapGetters as S, mapActions as n, useStore as w } from "vuex";
4
- import { config as C } from "./config/dpi-spec-config.mjs";
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 I } from "vue-router";
7
- import { useDpiEditMode as b } from "./composables/useDpiEditMode.mjs";
8
- const M = g({
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: v(() => import("./views/InputPage.vue.mjs"))
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
- ...n("dpiStore", [
55
+ ...d("dpiStore", [
50
56
  "saveLocalstorageValues"
51
57
  ]),
52
- ...n("auth", [
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 a, t, e;
65
+ var o, t, a;
60
66
  try {
61
- (a = document.getElementById("stepperAnchor")) != null && a.offsetTop || 0 >= 35 ? (t = document.getElementById("stepperAnchor")) == null || t.classList.add("border-bottom-lightgray") : (e = document.getElementById("stepperAnchor")) == null || e.classList.remove("border-bottom-lightgray");
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(a) {
76
- const t = I(), e = w(), i = D().content.dataProviderInterface.specification, c = C[i], p = y(a, "dpiContext"), o = s(() => {
77
- const f = $(p);
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: i,
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
- ...f
92
+ ...h
87
93
  };
88
- }), m = s(() => o.value.specification), r = s(() => o.value.specificationName);
89
- h(o), E(() => {
90
- e.dispatch("dpiStore/setSpecification", m.value), e.dispatch("dpiStore/setSpecificationname", r.value);
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 u = s(() => `${t.query.key}@${r.value}`), { isReady: l } = b(o);
103
+ const l = s(() => `${t.query.key}@${n.value}`), { isReady: f } = x(e);
93
104
  return {
94
- resolvedDpiContext: o,
95
- key: u,
96
- isReady: l
105
+ resolvedDpiContext: e,
106
+ key: l,
107
+ isReady: f
97
108
  };
98
109
  }
99
110
  });
100
111
  export {
101
- M as default
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":";;;;;;;;AAsBA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,WAAWC,EAAqB,MAAM,OAAO,2BAAuB,CAAC;AAAA,EACvE;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,MAAM;AAAA;AAAA,IACjB;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,MAAM;AAAA;AAAA,IACjB;AAAA,EACF;AAAA,EACA,WAAW;AACF,WAAA;AAAA,MACL,OAAO,GAAG,KAAK,GAAG,yBAAyB,CAAC,MAAM,KAAK,GAAG,yCAAyC,CAAC;AAAA,MACpG,MAAM;AAAA,QACJ,EAAE,MAAM,eAAe,MAAM,eAAe,SAAS,GAAG,KAAK,GAAG,mCAAmC,CAAC,GAAG;AAAA,QACvG,EAAE,MAAM,YAAY,MAAM,YAAY,SAAS,GAAG,KAAK,KAAK,SAAS,QAAQ,IAAI,KAAK,GAAG,mCAAmC,CAAC,IAAI;AAAA,QACjI,EAAE,MAAM,UAAU,SAAS,kBAAkB;AAAA,MAC/C;AAAA,IAAA;AAAA,EAEJ;AAAA,EACA,OAAO;AACE,WAAA;AAAA,MACL,UAAU,KAAK,OAAO,OAAO;AAAA,MAC7B,IAAI,KAAK,OAAO,OAAO;AAAA,IAAA;AAAA,EAE3B;AAAA,EACA,UAAU;AAAA,IACR,GAAGC,EAAW,QAAQ;AAAA,MACpB;AAAA,IAAA,CACD;AAAA,IACD,OAAO;AACE,aAAA,KAAK,aAAa,eACrB,KAAK,gBACH,KAAK,GAAG,uCAAuC,IAC/C,KAAK,GAAG,uCAAuC,IACjD,KAAK,aAAa,aAChB,KAAK,gBACH,KAAK,GAAG,qCAAqC,IAC7C,KAAK,GAAG,qCAAqC,IAC/C;AAAA,IACR;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,GAAGC,EAAW,YAAY;AAAA,MACxB;AAAA,IAAA,CACD;AAAA,IACD,GAAGA,EAAW,QAAQ;AAAA,MACpB;AAAA,IAAA,CACD;AAAA,IACD,eAAe;AACb,aAAO,GAAG,KAAK,KAAK,QAAQ,sBAAsB,QAAQ,IAAI,KAAK,QAAQ,WAAW,KAAK,MAAM,MAAM;AAAA,IACzG;AAAA,IACA,eAAe;;AACT,UAAA;AACF,SAAIC,IAAA,SAAS,eAAe,eAAe,MAAvC,QAAAA,EAA0C,aAAa,KAAK,MAC9DC,IAAA,SAAS,eAAe,eAAe,MAAvC,QAAAA,EAA0C,UAAU,IAAI,8BAGxDC,IAAA,SAAS,eAAe,eAAe,MAAvC,QAAAA,EAA0C,UAAU,OAAO;AAAA,cAE/C;AAAA,MAEhB;AAAA,IACF;AAAA,EAEF;AAAA,EACA,UAAU;AACD,WAAA,iBAAiB,UAAU,KAAK,YAAY,GACnD,KAAK,qBAAqB;AAAA,EAC5B;AAAA,EACA,UAAU;AACH,SAAA,uBAAuB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EACA,YAAY;AACH,WAAA,oBAAoB,UAAU,KAAK,YAAY;AAAA,EACxD;AAAA,EACA,MAAMC,GAAO;AACX,UAAMC,IAAQC,KACRC,IAAQC,KACRC,IAAMC,KACNC,IAAWF,EAAI,QAAQ,sBAAsB,eAC7CG,IAAeC,EAASF,CAAQ,GAChCG,IAAaC,EAAMX,GAAO,YAAY,GAEtCY,IAAqBC,EAAqB,MAAM;AAC9C,YAAAC,IAAcC,EAAQL,CAAU;AAE/B,aAAA;AAAA,QACL,eAAeF;AAAA,QACf,mBAAmBD;AAAA,QACnB,MAAM;AAAA,UACJ,SAASN,EAAM,MAAM,SAAS;AAAA,UAC9B,IAAIA,EAAM,MAAM,MAAgB;AAAA,UAChC,WAAWA,EAAM,MAAM,cAAc;AAAA,QACvC;AAAA,QACA,GAAGa;AAAA,MAAA;AAAA,IACL,CACD,GAEKE,IAAgBH,EAAS,MACtBD,EAAmB,MAAM,aACjC,GAEKK,IAAoBJ,EAAS,MAC1BD,EAAmB,MAAM,iBACjC;AAED,IAAAM,EAAgBN,CAAkB;AAClC,UAAMO,IAA8BC,EAA2B;AAAA,MAC7D,MAAMf;AAAA,MACN,YAAYO;AAAA,IAAA,CACb;AACD,IAAAS,EAAQC,GAAiBtB,EAAM,gBAAgBmB,EAA4B,OAAO,GAElFI,EAAY,MAAM;AACV,MAAApB,EAAA,SAAS,6BAA6Ba,EAAc,KAAK,GACzDb,EAAA,SAAS,iCAAiCc,EAAkB,KAAK;AAAA,IAAA,CACxE;AAEK,UAAAO,IAAMX,EAAS,MACZ,GAAGZ,EAAM,MAAM,GAAG,IAAIgB,EAAkB,KAAK,EACrD,GAEK,EAAE,SAAAQ,EAAA,IAAYC,EAAed,CAAkB;AAE9C,WAAA;AAAA,MACL,oBAAAA;AAAA,MACA,KAAAY;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,EAGJ;AACF,CAAC;"}