@piveau/piveau-hub-ui-modules 4.3.0-beta.0 → 4.3.1
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/composables/useRuntimeEnv.d.ts +1 -0
- package/dist/configurations/config-schema/configSchema.d.ts +9 -0
- package/dist/configurations/config-schema/contentSchema.d.ts +7 -0
- package/dist/configurations/config-schema/contentSchema.mjs +78 -77
- package/dist/configurations/config-schema/contentSchema.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +98 -98
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs +129 -135
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs +60 -60
- package/dist/data-provider-interface/components/DistributionStepper.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/FileUpload.vue.mjs +2 -2
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.d.ts +1 -0
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs +20 -16
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs +31 -31
- package/dist/data-provider-interface/components/SimpleSelect.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs +94 -90
- package/dist/data-provider-interface/components/SpatialInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SpatialInput.vue2.mjs +2 -2
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs +30 -41
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs +39 -19
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs.map +1 -1
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs +52 -52
- package/dist/data-provider-interface/views/DistributionInputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/DraftsPage.vue.d.ts +1 -0
- package/dist/data-provider-interface/views/InputPage.vue.mjs +67 -67
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs +25 -28
- package/dist/datasetDetails/DatasetDetailsSimilarDatasets.vue.mjs.map +1 -1
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.d.ts +1 -0
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs +145 -78
- package/dist/datasetDetails/features/DatasetDetailsFeatures.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue.mjs +18 -18
- package/dist/form/Repeatable.vue.mjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +152 -150
- package/dist/index.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/services/datasetService.d.ts +6 -5
- package/dist/services/datasetService.mjs +6 -5
- package/dist/services/datasetService.mjs.map +1 -1
- package/dist/store/modules/datasetDetailsStore.d.ts +2 -1
- package/dist/store/modules/datasetDetailsStore.mjs +85 -80
- package/dist/store/modules/datasetDetailsStore.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit v-if=\"isEditMode.value && !isDuplicate\" class=\"autocompleteInputfield\" type=\"text\" readonly\n :placeholder=\"getNode('dcat:catalog').value\" :name=\"props.context.node.name\" />\n <FormKit v-else class=\"autocompleteInputfield\" v-model=\"catVal\"\n :placeholder=\"props.context.attrs.placeholder\" type=\"text\" @click=\"showList = !showList\"\n validation=\"required\" mandatory=\"true\" readonly :validation-messages=\"{\n required:
|
|
1
|
+
{"version":3,"file":"SimpleSelect.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleSelect.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n <h4>{{ props.context.label }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit v-if=\"isEditMode.value && !isDuplicate\" class=\"autocompleteInputfield\" type=\"text\" readonly\n :placeholder=\"getNode('dcat:catalog').value\" :name=\"props.context.node.name\" />\n <FormKit v-else class=\"autocompleteInputfield\" v-model=\"catVal\"\n :placeholder=\"props.context.attrs.placeholder\" type=\"text\" @click=\"showList = !showList\"\n validation=\"required\" mandatory=\"true\" readonly :validation-messages=\"{\n required: 'The catalog is required',\n }\" :name=\"props.context.node.name\" />\n\n <ul ref=\"dropdownList\" v-show=\"showList\" class=\"autocompleteResultList selectListFK catSelectList\">\n\n <li v-for=\"match in filteredCatalogs\" :key=\"match\" @click=\"setvalue(match)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n match.name }}\n </li>\n <li v-if=\"filteredCatalogs.length === 0\" v-for=\"idMatch in userCats\" :key=\"idMatch\"\n @click=\"setvalue(idMatch)\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{\n idMatch }}\n </li>\n </ul>\n </div>\n </div>\n\n</template>\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useStore } from 'vuex';\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport axios from 'axios'\nimport { useRuntimeEnv } from \"../../composables/useRuntimeEnv.ts\";\nimport {\n has,\n isNil,\n} from 'lodash-es';\nimport { FormKit } from '@formkit/vue';\n\nconst props = defineProps({\n context: Object\n})\n\nconst isDuplicate = computed(()=> localStorage.getItem('dpi_duplicate'))\nconst userCats = computed(() => store.getters['auth/getUserCatalogIds']);\nlet showList = ref()\nconst store = useStore()\nconst dropdownList = ref(null)\nconst isEditMode = ref()\nlet validationTrigger = ref(true)\nisEditMode.value = computed(() => store.getters['auth/getIsEditMode']);\nlet filteredCatalogs = ref([])\nlet env = useRuntimeEnv()\nlet catVal = ref()\n\ncatVal = getNode('dcat:catalog').value\n\nonClickOutside(dropdownList, event => showList.value = false)\n\nconst setvalue = async (e) => {\n \n validationTrigger = false\n if (e.id) {\n props.context.node.input(e.id)\n showList.value = !showList.value;\n getNode('dcat:catalog').value = e.id\n catVal = e.name\n } else {\n props.context.node.input(e)\n showList.value = !showList.value;\n getNode('dcat:catalog').value = e\n catVal = e\n }\n\n}\nlet filterCatList = async () => {\n let cache;\n await axios\n .get(env.api.baseUrl + 'search?filter=catalogue&limit=1000')\n .then(response => (cache = response))\n .catch((err) => {\n reject(err);\n });\n\n \n cache.data.result.results.forEach((e) => {\n if (has(e, 'title') && !isNil(e.title) && has(e, 'id') && !isNil(e.id)) filteredCatalogs.value.push({ title: Object.values(e.title)[0], id: e.id })\n });\n\n filteredCatalogs.value = await filteredCatalogs.value\n .filter(item => userCats.value.includes(item.id))\n .map(item => ({ id: item.id, name: item.title }));\n\n // Check if theres only one catalog and set it directly\n\n let clone = JSON.parse(JSON.stringify(filteredCatalogs.value))\n if (clone.length === 1) {\n catVal = clone[0].id\n }\n}\n\n\nonMounted(async () => {\n filterCatList();\n});\n\n</script>\n<style>\n.catSelectList {\n width: 97.3% !important;\n margin: 0 1rem;\n}\n\n.selectListFK {\n\n max-height: 20rem;\n overflow: overlay;\n overflow-x: hidden;\n}\n</style>"],"names":["props","__props","isDuplicate","computed","userCats","store","showList","ref","useStore","dropdownList","isEditMode","filteredCatalogs","env","useRuntimeEnv","catVal","getNode","onClickOutside","event","setvalue","e","filterCatList","cache","axios","response","err","has","isNil","item","clone","onMounted"],"mappings":";;;;;;;;;;;;;;;AAyCA,UAAMA,IAAQC,GAIRC,IAAcC,EAAS,MAAK,aAAa,QAAQ,eAAe,CAAC,GACjEC,IAAWD,EAAS,MAAME,EAAM,QAAQ,wBAAwB,CAAC;AACvE,QAAIC,IAAWC,EAAK;AACpB,UAAMF,IAAQG,EAAU,GAClBC,IAAeF,EAAI,IAAI,GACvBG,IAAaH,EAAK;AACA,IAAAA,EAAI,EAAI,GAChCG,EAAW,QAAQP,EAAS,MAAME,EAAM,QAAQ,oBAAoB,CAAC;AACrE,QAAIM,IAAmBJ,EAAI,EAAE,GACzBK,IAAMC,EAAe,GACrBC,IAASP,EAAK;AAElB,IAAAO,IAASC,EAAQ,cAAc,EAAE,OAEjCC,EAAeP,GAAc,CAAAQ,MAASX,EAAS,QAAQ,EAAK;AAE5D,UAAMY,IAAW,OAAOC,MAAM;AAG1B,MAAIA,EAAE,MACFnB,EAAM,QAAQ,KAAK,MAAMmB,EAAE,EAAE,GAC7Bb,EAAS,QAAQ,CAACA,EAAS,OAC3BS,EAAQ,cAAc,EAAE,QAAQI,EAAE,IAClCL,IAASK,EAAE,SAEXnB,EAAM,QAAQ,KAAK,MAAMmB,CAAC,GAC1Bb,EAAS,QAAQ,CAACA,EAAS,OAC3BS,EAAQ,cAAc,EAAE,QAAQI,GAChCL,IAASK;AAAA,IAGjB;AACA,QAAIC,IAAgB,YAAY;AAC5B,UAAIC;AACJ,YAAMC,EACD,IAAIV,EAAI,IAAI,UAAU,oCAAoC,EAC1D,KAAK,CAAAW,MAAaF,IAAQE,CAAS,EACnC,MAAM,CAACC,MAAQ;AACZ,eAAOA,CAAG;AAAA,MACtB,CAAS,GAGLH,EAAM,KAAK,OAAO,QAAQ,QAAQ,CAAC,MAAM;AACrC,QAAII,EAAI,GAAG,OAAO,KAAK,CAACC,EAAM,EAAE,KAAK,KAAKD,EAAI,GAAG,IAAI,KAAK,CAACC,EAAM,EAAE,EAAE,KAAGf,EAAiB,MAAM,KAAK,EAAE,OAAO,OAAO,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAE,CAAE;AAAA,MAC1J,CAAK,GAEDA,EAAiB,QAAQ,MAAMA,EAAiB,MAC3C,OAAO,CAAAgB,MAAQvB,EAAS,MAAM,SAASuB,EAAK,EAAE,CAAC,EAC/C,IAAI,CAAAA,OAAS,EAAE,IAAIA,EAAK,IAAI,MAAMA,EAAK,MAAO,EAAC;AAIpD,UAAIC,IAAQ,KAAK,MAAM,KAAK,UAAUjB,EAAiB,KAAK,CAAC;AAC7D,MAAIiB,EAAM,WAAW,MACjBd,IAASc,EAAM,CAAC,EAAE;AAAA,IAE1B;AAGA,WAAAC,EAAU,YAAY;AAClB,MAAAT;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCurrentInstance as
|
|
1
|
+
import { getCurrentInstance as N, ref as f, watch as I, onMounted as D, nextTick as P, reactive as j, openBlock as s, createElementBlock as l, unref as p, createElementVNode as c, toDisplayString as _, createTextVNode as u, withDirectives as L, vShow as q, createCommentVNode as h, Fragment as x, renderList as w, isRef as b, vModelText as B } from "vue";
|
|
2
2
|
import { useStore as J } from "vuex";
|
|
3
3
|
import { getTranslationFor as $ } from "../../utils/helpers.mjs";
|
|
4
4
|
import { onClickOutside as S } from "../../external/@vueuse/core/index";
|
|
@@ -8,79 +8,79 @@ import X from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
|
8
8
|
const z = { class: "d-flex flex-column w-100 spatialWrap" }, H = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "d-flex formkit-inner mx-3 mb-3"
|
|
11
|
-
}, Q = { class: "autocompleteInputSingleValue" }, Y = { key: 1 }, Z = { class: "w-100 d-flex" }, ee = { class: "d-flex position-relative m-3 w-100" }, te =
|
|
11
|
+
}, Q = { class: "autocompleteInputSingleValue" }, Y = { key: 1 }, Z = { class: "w-100 d-flex" }, ee = { class: "d-flex position-relative m-3 w-100" }, te = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "d-flex position-relative m-3 w-100"
|
|
14
|
-
},
|
|
14
|
+
}, ae = { class: "w-100" }, oe = {
|
|
15
15
|
key: 1,
|
|
16
16
|
class: "d-flex position-relative m-3 w-100"
|
|
17
|
-
}, ie = { class: "w-100" },
|
|
17
|
+
}, ie = { class: "w-100" }, se = ["onClick"], le = {
|
|
18
18
|
key: 0,
|
|
19
19
|
class: "m-3"
|
|
20
|
-
},
|
|
20
|
+
}, ne = {
|
|
21
21
|
key: 0,
|
|
22
22
|
class: "w-100"
|
|
23
|
-
},
|
|
23
|
+
}, re = ["placeholder"], ce = ["onClick"], ue = {
|
|
24
24
|
data() {
|
|
25
25
|
return {
|
|
26
26
|
man: !1,
|
|
27
27
|
vocSearch: !1
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
},
|
|
30
|
+
}, de = /* @__PURE__ */ Object.assign(ue, {
|
|
31
31
|
__name: "SpatialInput",
|
|
32
32
|
props: {
|
|
33
33
|
context: Object
|
|
34
34
|
},
|
|
35
35
|
setup(E) {
|
|
36
|
-
let C =
|
|
36
|
+
let C = N().appContext.app.config.globalProperties.$env, U = W();
|
|
37
37
|
const n = E;
|
|
38
|
-
let y = f([]),
|
|
38
|
+
let y = f([]), i = f({}), v = f({}), g = f({}), k = f({});
|
|
39
39
|
const V = J();
|
|
40
|
-
n.context.attrs.identifier === "politicalGeocodingURI" && y.value.push({ item: "Municipality Key", active: !1 }, { item: "Regional Key", active: !1 }, { item: "Municipal Association Key", active: !1 }, { item: "District Key", active: !1 }, { item: "Government District Key", active: !1 }, { item: "State Key", active: !1 }), n.context.attrs.identifier === "spatial" && y.value.push({ item: "Country", active: !1 }, { item: "Place", active: !1 }, { item: "Continent", active: !1 }),
|
|
40
|
+
n.context.attrs.identifier === "politicalGeocodingURI" && y.value.push({ item: "Municipality Key", active: !1 }, { item: "Regional Key", active: !1 }, { item: "Municipal Association Key", active: !1 }, { item: "District Key", active: !1 }, { item: "Government District Key", active: !1 }, { item: "State Key", active: !1 }), n.context.attrs.identifier === "spatial" && y.value.push({ item: "Country", active: !1 }, { item: "Place", active: !1 }, { item: "Continent", active: !1 }), I(i, async () => {
|
|
41
41
|
K();
|
|
42
|
-
}),
|
|
42
|
+
}), I(v, async () => {
|
|
43
43
|
v.value = v.value.toLowerCase();
|
|
44
|
-
}),
|
|
45
|
-
n.context.node.input({ name:
|
|
46
|
-
}),
|
|
47
|
-
|
|
44
|
+
}), I(k, async () => {
|
|
45
|
+
n.context.node.input({ name: k, resource: k });
|
|
46
|
+
}), D(async () => {
|
|
47
|
+
g = [{ name: "--- Type in anything for a live search of the vocabulary ---", resource: "invalid" }], await P(), n.context.value.name === void 0 || n.context.value.name === "" ? o.activeValue = !1 : o.activeValue = !0;
|
|
48
48
|
});
|
|
49
49
|
function G() {
|
|
50
|
-
y.value.forEach((
|
|
51
|
-
|
|
50
|
+
y.value.forEach((t) => {
|
|
51
|
+
t.active = !1;
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
function O(
|
|
54
|
+
function O(t) {
|
|
55
55
|
o.activeValue = !1, n.context.node.input({});
|
|
56
56
|
}
|
|
57
|
-
function F(
|
|
58
|
-
let a = JSON.parse(localStorage.getItem(`dpi_${U.params.property}`)),
|
|
59
|
-
n.context.attrs.identifier === "politicalGeocodingURI" ?
|
|
60
|
-
Object.keys(r).length === 0 &&
|
|
61
|
-
}),
|
|
57
|
+
function F(t) {
|
|
58
|
+
let a = JSON.parse(localStorage.getItem(`dpi_${U.params.property}`)), e;
|
|
59
|
+
n.context.attrs.identifier === "politicalGeocodingURI" ? e = a.Advised["dcatde:politicalGeocodingURI"] : e = a.Advised["dct:spatial"], e.forEach((r, d) => {
|
|
60
|
+
Object.keys(r).length === 0 && e.splice(d, 1);
|
|
61
|
+
}), e.push(n.context.node._value), n.context.attrs.identifier === "politicalGeocodingURI" ? a.Advised["dcatde:politicalGeocodingURI"] = e : a.Advised["dct:spatial"] = e, localStorage.setItem(`dpi_${U.params.property}`, JSON.stringify(a));
|
|
62
62
|
}
|
|
63
63
|
const K = async () => {
|
|
64
|
-
let
|
|
64
|
+
let t = v.value;
|
|
65
65
|
if (n.context.attrs.identifier === "politicalGeocodingURI") {
|
|
66
|
-
|
|
66
|
+
t = "political-geocoding-" + t.toLowerCase().replaceAll(" ", "-");
|
|
67
67
|
try {
|
|
68
|
-
let a =
|
|
69
|
-
await V.dispatch("dpiStore/requestAutocompleteSuggestions", { voc:
|
|
70
|
-
|
|
71
|
-
name: $(
|
|
72
|
-
resource:
|
|
68
|
+
let a = i.value;
|
|
69
|
+
await V.dispatch("dpiStore/requestAutocompleteSuggestions", { voc: t, text: a, base: C.api.baseUrl }).then((e) => {
|
|
70
|
+
g = e.data.result.results.map((d) => ({
|
|
71
|
+
name: $(d.alt_label, "en", []) + " (" + d.id + ")",
|
|
72
|
+
resource: d.resource
|
|
73
73
|
}));
|
|
74
74
|
});
|
|
75
75
|
} catch {
|
|
76
76
|
}
|
|
77
77
|
} else
|
|
78
78
|
try {
|
|
79
|
-
let a =
|
|
80
|
-
await V.dispatch("dpiStore/requestAutocompleteSuggestions", { voc:
|
|
81
|
-
|
|
82
|
-
name: $(
|
|
83
|
-
resource:
|
|
79
|
+
let a = i.value;
|
|
80
|
+
await V.dispatch("dpiStore/requestAutocompleteSuggestions", { voc: t, text: a, base: C.api.baseUrl }).then((e) => {
|
|
81
|
+
g = e.data.result.results.map((d) => ({
|
|
82
|
+
name: $(d.pref_label, "en", []) + " (" + d.id + ")",
|
|
83
|
+
resource: d.resource
|
|
84
84
|
}));
|
|
85
85
|
});
|
|
86
86
|
} catch {
|
|
@@ -93,22 +93,22 @@ const z = { class: "d-flex flex-column w-100 spatialWrap" }, H = {
|
|
|
93
93
|
activeValue: !1
|
|
94
94
|
});
|
|
95
95
|
const T = f(null), A = f(null), R = f(null);
|
|
96
|
-
S(T, (
|
|
97
|
-
function m(
|
|
98
|
-
|
|
96
|
+
S(T, (t) => o.first = !1), S(A, (t) => o.second = !1), S(R, (t) => o.third = !1);
|
|
97
|
+
function m(t) {
|
|
98
|
+
t === "showTable" && (o.first = !o.first), t === "showVocTable" && (o.second = !o.second), t === "showVocEntries" && (o.third === !0 || (o.third = !o.third));
|
|
99
99
|
}
|
|
100
|
-
function
|
|
101
|
-
n.context.node.input({ name:
|
|
100
|
+
function M(t) {
|
|
101
|
+
n.context.node.input({ name: t.target.value, resource: t.target.value });
|
|
102
102
|
}
|
|
103
|
-
return (
|
|
104
|
-
!n.context.attrs.multiple && p(o).activeValue ? (
|
|
105
|
-
c("a", Q,
|
|
106
|
-
|
|
103
|
+
return (t, a) => (s(), l("div", z, [
|
|
104
|
+
!n.context.attrs.multiple && p(o).activeValue ? (s(), l("div", H, [
|
|
105
|
+
c("a", Q, _(n.context.value.name), 1),
|
|
106
|
+
u(),
|
|
107
107
|
c("div", {
|
|
108
108
|
class: "removeX",
|
|
109
109
|
onClick: O
|
|
110
110
|
})
|
|
111
|
-
])) : (
|
|
111
|
+
])) : (s(), l("div", Y, [
|
|
112
112
|
c("div", Z, [
|
|
113
113
|
c("div", ee, [
|
|
114
114
|
c("input", {
|
|
@@ -116,49 +116,53 @@ const z = { class: "d-flex flex-column w-100 spatialWrap" }, H = {
|
|
|
116
116
|
type: "text",
|
|
117
117
|
class: "selectInputField formkit-inner",
|
|
118
118
|
readonly: "readonly",
|
|
119
|
-
placeholder:
|
|
120
|
-
onClick: a[0] || (a[0] = (
|
|
121
|
-
}
|
|
122
|
-
|
|
119
|
+
placeholder: "Select input method",
|
|
120
|
+
onClick: a[0] || (a[0] = (e) => m("showTable"))
|
|
121
|
+
}),
|
|
122
|
+
u(),
|
|
123
123
|
L(c("ul", {
|
|
124
124
|
ref_key: "I1",
|
|
125
125
|
ref: T,
|
|
126
126
|
class: "spatialListUpload"
|
|
127
127
|
}, [
|
|
128
128
|
c("li", {
|
|
129
|
-
onClick: a[1] || (a[1] = (
|
|
130
|
-
m("showTable"),
|
|
129
|
+
onClick: a[1] || (a[1] = (e) => {
|
|
130
|
+
m("showTable"), t.man = !0, t.vocSearch && (t.vocSearch = !1);
|
|
131
131
|
}),
|
|
132
132
|
class: "p-2 border-b border-gray-200 choosableItemsAC"
|
|
133
|
-
},
|
|
134
|
-
|
|
133
|
+
}, `
|
|
134
|
+
Manually submit information
|
|
135
|
+
`),
|
|
136
|
+
u(),
|
|
135
137
|
c("li", {
|
|
136
|
-
onClick: a[2] || (a[2] = (
|
|
137
|
-
m("showTable"),
|
|
138
|
+
onClick: a[2] || (a[2] = (e) => {
|
|
139
|
+
m("showTable"), t.vocSearch = !0, t.man && (t.man = !1);
|
|
138
140
|
}),
|
|
139
141
|
class: "p-2 border-b border-gray-200 choosableItemsAC"
|
|
140
|
-
},
|
|
142
|
+
}, `
|
|
143
|
+
Choose from vocabulary
|
|
144
|
+
`)
|
|
141
145
|
], 512), [
|
|
142
146
|
[q, p(o).first]
|
|
143
147
|
])
|
|
144
148
|
]),
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
c("label",
|
|
148
|
-
|
|
149
|
+
u(),
|
|
150
|
+
t.man ? (s(), l("div", te, [
|
|
151
|
+
c("label", ae, [
|
|
152
|
+
u(` Provide an URL
|
|
149
153
|
`),
|
|
150
154
|
c("input", {
|
|
151
155
|
type: "URL",
|
|
152
156
|
class: "selectInputField formkit-inner",
|
|
153
157
|
placeholder: "URL",
|
|
154
|
-
onInput: a[3] || (a[3] = (
|
|
158
|
+
onInput: a[3] || (a[3] = (e) => M(e))
|
|
155
159
|
}, null, 32)
|
|
156
160
|
])
|
|
157
161
|
])) : h("", !0),
|
|
158
|
-
|
|
159
|
-
|
|
162
|
+
u(),
|
|
163
|
+
t.vocSearch ? (s(), l("div", oe, [
|
|
160
164
|
c("label", ie, [
|
|
161
|
-
|
|
165
|
+
u(` Choose type of vocabulary
|
|
162
166
|
`),
|
|
163
167
|
c("input", {
|
|
164
168
|
id: "I2",
|
|
@@ -166,72 +170,72 @@ const z = { class: "d-flex flex-column w-100 spatialWrap" }, H = {
|
|
|
166
170
|
class: "selectInputField formkit-inner",
|
|
167
171
|
readonly: "readonly",
|
|
168
172
|
placeholder: "Search the vocabulary",
|
|
169
|
-
onClick: a[4] || (a[4] = (
|
|
173
|
+
onClick: a[4] || (a[4] = (e) => {
|
|
170
174
|
m("showVocTable");
|
|
171
175
|
})
|
|
172
176
|
})
|
|
173
177
|
]),
|
|
174
|
-
|
|
175
|
-
p(o).second ? (
|
|
178
|
+
u(),
|
|
179
|
+
p(o).second ? (s(), l("ul", {
|
|
176
180
|
key: 0,
|
|
177
181
|
ref_key: "I2",
|
|
178
182
|
ref: A,
|
|
179
183
|
class: "spatialListUpload"
|
|
180
184
|
}, [
|
|
181
|
-
(
|
|
182
|
-
key:
|
|
185
|
+
(s(!0), l(x, null, w(p(y), (e) => (s(), l("li", {
|
|
186
|
+
key: e,
|
|
183
187
|
class: "p-2 border-b border-gray-200 choosableItemsAC",
|
|
184
188
|
onClick: (r) => {
|
|
185
|
-
G(),
|
|
189
|
+
G(), e.active = !e.active, m("showVocTable"), b(i) ? i.value = "" : i = "", b(v) ? v.value = e.item : v = e.item;
|
|
186
190
|
}
|
|
187
|
-
},
|
|
191
|
+
}, _(e.item), 9, se))), 128))
|
|
188
192
|
], 512)) : h("", !0)
|
|
189
193
|
])) : h("", !0)
|
|
190
194
|
]),
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
(
|
|
194
|
-
key:
|
|
195
|
+
u(),
|
|
196
|
+
t.vocSearch ? (s(), l("div", le, [
|
|
197
|
+
(s(!0), l(x, null, w(p(y), (e) => (s(), l("div", {
|
|
198
|
+
key: e,
|
|
195
199
|
class: "position-relative"
|
|
196
200
|
}, [
|
|
197
|
-
|
|
198
|
-
|
|
201
|
+
e.active ? (s(), l("label", ne, [
|
|
202
|
+
u(" Search the vocabulary "),
|
|
199
203
|
L(c("input", {
|
|
200
204
|
id: "I3",
|
|
201
205
|
type: "text",
|
|
202
|
-
"onUpdate:modelValue": a[5] || (a[5] = (r) =>
|
|
206
|
+
"onUpdate:modelValue": a[5] || (a[5] = (r) => b(i) ? i.value = r : i = r),
|
|
203
207
|
class: "selectInputField formkit-inner",
|
|
204
|
-
placeholder:
|
|
208
|
+
placeholder: e.item,
|
|
205
209
|
onClick: a[6] || (a[6] = (r) => {
|
|
206
|
-
m("showVocEntries"),
|
|
210
|
+
m("showVocEntries"), b(i) ? i.value = "" : i = "";
|
|
207
211
|
})
|
|
208
|
-
}, null, 8,
|
|
209
|
-
[B, p(
|
|
212
|
+
}, null, 8, re), [
|
|
213
|
+
[B, p(i)]
|
|
210
214
|
])
|
|
211
215
|
])) : h("", !0),
|
|
212
|
-
|
|
213
|
-
p(o).third &&
|
|
216
|
+
u(),
|
|
217
|
+
p(o).third && e.active ? (s(), l("ul", {
|
|
214
218
|
key: 1,
|
|
215
219
|
ref_for: !0,
|
|
216
220
|
ref_key: "I3",
|
|
217
221
|
ref: R,
|
|
218
222
|
class: "spatialListUpload"
|
|
219
223
|
}, [
|
|
220
|
-
(
|
|
224
|
+
(s(!0), l(x, null, w(p(g), (r) => (s(), l("li", {
|
|
221
225
|
key: r,
|
|
222
226
|
class: "p-2 border-b border-gray-200 choosableItemsAC",
|
|
223
|
-
onClick: (
|
|
224
|
-
n.context.node.input(r),
|
|
227
|
+
onClick: (d) => {
|
|
228
|
+
n.context.node.input(r), b(i) ? i.value = r.name : i = r.name, m("showVocEntries"), p(o).third = !1, F();
|
|
225
229
|
}
|
|
226
|
-
},
|
|
230
|
+
}, _(r.name), 9, ce))), 128))
|
|
227
231
|
], 512)) : h("", !0)
|
|
228
232
|
]))), 128))
|
|
229
233
|
])) : h("", !0)
|
|
230
234
|
]))
|
|
231
235
|
]));
|
|
232
236
|
}
|
|
233
|
-
}),
|
|
237
|
+
}), ge = /* @__PURE__ */ X(de, [["__scopeId", "data-v-87799d8f"]]);
|
|
234
238
|
export {
|
|
235
|
-
|
|
239
|
+
ge as default
|
|
236
240
|
};
|
|
237
241
|
//# sourceMappingURL=SpatialInput.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\n\nconst props = defineProps({\n context: Object,\n})\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push({ item: 'Municipality Key', active: false }, { item: 'Regional Key', active: false }, { item: 'Municipal Association Key', active: false }, { item: 'District Key', active: false }, { item: 'Government District Key', active: false }, { item: 'State Key', active: false })\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push({ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false })\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async () => {\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: '--- Type in anything for a live search of the vocabulary ---', resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n let vocCache = voc.value\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, 'en', []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, 'en', []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div class=\"d-flex position-relative m-3 w-100\">\n <input id=\"I1\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n :placeholder=\"$t('message.dataupload.info.preferredInput')\"\n @click=\"activeInput('showTable')\" />\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.manually') }}\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n {{ $t('message.dataupload.datasets.conditional.vocabulary') }}\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> Provide an URL\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> Choose type of vocabulary\n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n placeholder=\"Search the vocabulary\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item\">\n {{ el.item }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\"> Search the vocabulary <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"el.item\"\n @click=\"activeInput('showVocEntries'); inputText = ''\">\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"props.context.node.input(el); inputText = el.name; activeInput('showVocEntries'); showTable.third = false; saveToLocal(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\nexport default {\n data() {\n return {\n man: false,\n vocSearch: false,\n }\n },\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top: 78px;\n }\n}\n</style>\n"],"names":["__default__","instance","getCurrentInstance","route","useRoute","props","__props","listOfVoc","ref","inputText","voc","matches","manURL","store","useStore","watch","getAutocompleteSuggestions","onMounted","nextTick","showTable","closeAll","element","removeProperty","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","activeInput","manURLInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpatialInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SpatialInput.vue"],"sourcesContent":["<script setup>\n\nimport { ref, reactive, watch, computed, onBeforeMount, onMounted, nextTick } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { onClickOutside } from '@vueuse/core'\nimport { getCurrentInstance } from \"vue\";\nimport { useRoute } from 'vue-router';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\nlet route = useRoute();\n\nconst props = defineProps({\n context: Object,\n})\n// let listOfVoc: [{ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false }],\nlet listOfVoc = ref([])\nlet inputText = ref({})\nlet voc = ref({})\nlet matches = ref({})\nlet manURL = ref({})\nconst store = useStore();\n\nif (props.context.attrs.identifier === 'politicalGeocodingURI') {\n listOfVoc.value.push({ item: 'Municipality Key', active: false }, { item: 'Regional Key', active: false }, { item: 'Municipal Association Key', active: false }, { item: 'District Key', active: false }, { item: 'Government District Key', active: false }, { item: 'State Key', active: false })\n\n}\nif (props.context.attrs.identifier === 'spatial') {\n listOfVoc.value.push({ item: 'Country', active: false }, { item: 'Place', active: false }, { item: 'Continent', active: false })\n\n}\n\nwatch(inputText, async () => {\n getAutocompleteSuggestions();\n})\nwatch(voc, async () => {\n voc.value = voc.value.toLowerCase();\n})\nwatch(manURL, async () => {\n props.context.node.input({ 'name': manURL, 'resource': manURL })\n})\nonMounted(async () => {\n matches = [{ name: '--- Type in anything for a live search of the vocabulary ---', resource: 'invalid' }]\n\n await nextTick()\n // DOM loaded\n if (props.context.value.name === undefined || props.context.value.name === \"\") {\n showTable.activeValue = false\n } else showTable.activeValue = true\n // console.log(showTable.activeValue);\n\n});\n\nfunction closeAll() {\n listOfVoc.value.forEach(element => {\n element.active = false;\n });\n}\nfunction removeProperty(e) {\n // props.context.value = {}\n showTable.activeValue = false\n props.context.node.input({})\n}\nfunction saveToLocal(el) {\n\n let pathToLocalStorage = JSON.parse(localStorage.getItem(`dpi_${route.params.property}`));\n let arr\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n arr = pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'];\n }\n else arr = pathToLocalStorage.Advised['dct:spatial'];\n\n arr.forEach((element, index) => {\n if (Object.keys(element).length === 0) {\n arr.splice(index, 1)\n }\n })\n arr.push(props.context.node._value)\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n pathToLocalStorage.Advised['dcatde:politicalGeocodingURI'] = arr\n }\n else pathToLocalStorage.Advised['dct:spatial'] = arr\n\n localStorage.setItem(`dpi_${route.params.property}`, JSON.stringify(pathToLocalStorage))\n}\nconst getAutocompleteSuggestions = async () => {\n let vocCache = voc.value\n\n if (props.context.attrs.identifier === 'politicalGeocodingURI') {\n\n vocCache = 'political-geocoding-' + vocCache.toLowerCase().replaceAll(\" \", '-')\n\n try {\n let text = inputText.value;\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.alt_label, 'en', []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n else {\n try {\n let text = inputText.value;\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: vocCache, text: text, base: instance.api.baseUrl }).then((response) => {\n const results = response.data.result.results.map((r) => ({\n name: getTranslationFor(r.pref_label, 'en', []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n matches = results;\n });\n } catch (error) {\n }\n }\n\n}\n\nvar showTable = reactive({\n first: false,\n second: false,\n third: false,\n activeValue: false\n})\n\nconst I1 = ref(null);\nconst I2 = ref(null);\nconst I3 = ref(null);\n\nonClickOutside(I1, event => showTable.first = false)\nonClickOutside(I2, event => showTable.second = false)\nonClickOutside(I3, event => showTable.third = false)\nfunction activeInput(e) {\n\n // console.log('in', showTable);\n if (e === \"showTable\") showTable.first = !showTable.first;\n if (e === \"showVocTable\") showTable.second = !showTable.second;\n if (e === \"showVocEntries\") {\n if (showTable.third === true) {\n }\n else showTable.third = !showTable.third;\n }\n}\nfunction manURLInput(e) {\n props.context.node.input({ 'name': e.target.value, 'resource': e.target.value })\n}\n// console.log(voc);\n</script>\n\n<template>\n <div class=\"d-flex flex-column w-100 spatialWrap\">\n <div class=\"d-flex formkit-inner mx-3 mb-3\" v-if=\"!props.context.attrs.multiple && showTable.activeValue\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n <a class=\"autocompleteInputSingleValue \">{{ props.context.value.name }}</a>\n <div class=\"removeX\" @click=\"removeProperty\"></div>\n </div>\n <div v-else>\n <div class=\" w-100 d-flex\">\n <div class=\"d-flex position-relative m-3 w-100\">\n <input id=\"I1\" type=\"text\"\n class=\"selectInputField formkit-inner\" readonly=\"readonly\" placeholder=\"Select input method\"\n @click=\"activeInput('showTable')\"/>\n <ul ref=\"I1\" v-show=\"showTable.first\" class=\"spatialListUpload\">\n <li @click=\"activeInput('showTable'); man = true; if (vocSearch) { vocSearch = false; };\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n Manually submit information\n </li>\n <li @click=\"activeInput('showTable'); vocSearch = true; if (man) { man = false }\"\n class=\"p-2 border-b border-gray-200 choosableItemsAC\">\n Choose from vocabulary\n </li>\n </ul>\n </div>\n <div v-if=\"man\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> Provide an URL\n <input type=\"URL\" class=\"selectInputField formkit-inner\" placeholder=\"URL\"\n @input=\"manURLInput($event)\">\n </label>\n </div>\n <div v-if=\"vocSearch\" class=\"d-flex position-relative m-3 w-100\">\n <label class=\"w-100\"> Choose type of vocabulary\n <input id=\"I2\" type=\"text\" class=\"selectInputField formkit-inner\" readonly=\"readonly\"\n placeholder=\"Search the vocabulary\" @click=\"activeInput('showVocTable');\">\n </label>\n <ul ref=\"I2\" v-if=\"showTable.second\" class=\"spatialListUpload\">\n <li v-for=\"el in listOfVoc\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\" closeAll(); el.active = !el.active; activeInput('showVocTable'); inputText = ''; voc = el.item\">\n {{ el.item }}</li>\n </ul>\n </div>\n </div>\n <div class=\"m-3\" v-if=\"vocSearch\">\n <div v-for=\"el in listOfVoc\" :key=\"el\" class=\"position-relative\">\n <label class=\"w-100\" v-if=\"el.active\"> Search the vocabulary <input id=\"I3\" type=\"text\"\n v-model=\"inputText\" class=\"selectInputField formkit-inner\" :placeholder=\"el.item\"\n @click=\"activeInput('showVocEntries'); inputText = ''\">\n </label>\n <ul ref=\"I3\" v-if=\"showTable.third && el.active\" class=\"spatialListUpload\">\n <li v-for=\"el in matches\" :key=\"el\" class=\"p-2 border-b border-gray-200 choosableItemsAC\"\n @click=\"props.context.node.input(el); inputText = el.name; activeInput('showVocEntries'); showTable.third = false; saveToLocal(el)\">\n {{ el.name }}</li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\n\nexport default {\n data() {\n return {\n man: false,\n vocSearch: false,\n }\n },\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.spatialWrap label {\n font-family: var(--fk-font-family-label);\n font-size: var(--fk-font-size-label);\n font-weight: var(--fk-font-weight-label);\n line-height: var(--fk-line-height-label);\n}\n\n.spatialWrap {\n .spatialListUpload {\n width: 100%;\n left: 0;\n top:78px;\n }\n}\n</style>\n"],"names":["__default__","instance","getCurrentInstance","route","useRoute","props","__props","listOfVoc","ref","inputText","voc","matches","manURL","store","useStore","watch","getAutocompleteSuggestions","onMounted","nextTick","showTable","closeAll","element","removeProperty","e","saveToLocal","el","pathToLocalStorage","arr","index","vocCache","text","response","r","getTranslationFor","reactive","I1","I2","I3","onClickOutside","event","activeInput","manURLInput"],"mappings":"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"}
|
|
@@ -1,43 +1,32 @@
|
|
|
1
|
-
import { getCurrentInstance as
|
|
2
|
-
import { isNil as
|
|
3
|
-
import
|
|
4
|
-
import { useStore as
|
|
5
|
-
|
|
6
|
-
const M = { class: "formkitProperty DSid" }, N = {
|
|
1
|
+
import { getCurrentInstance as v, ref as d, resolveComponent as h, openBlock as s, createElementBlock as I, createElementVNode as g, toDisplayString as D, createTextVNode as _, createBlock as n } from "vue";
|
|
2
|
+
import { isNil as y } from "lodash-es";
|
|
3
|
+
import $ from "axios";
|
|
4
|
+
import { useStore as b } from "vuex";
|
|
5
|
+
const q = { class: "formkitProperty DSid" }, k = {
|
|
7
6
|
props: ["context"]
|
|
8
|
-
},
|
|
7
|
+
}, B = /* @__PURE__ */ Object.assign(k, {
|
|
9
8
|
__name: "UniqueIdentifierInput",
|
|
10
|
-
setup(
|
|
11
|
-
let
|
|
12
|
-
const
|
|
13
|
-
o.value = localStorage.getItem("dpi_duplicate"), l.value =
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
idunique: "",
|
|
18
|
-
required: ""
|
|
9
|
+
setup(U) {
|
|
10
|
+
let r = v().appContext.app.config.globalProperties.$env;
|
|
11
|
+
const i = b(), l = d(), o = d();
|
|
12
|
+
o.value = localStorage.getItem("dpi_duplicate"), l.value = i.getters["auth/getIsEditMode"];
|
|
13
|
+
const u = {
|
|
14
|
+
idformatvalid: "Dataset ID must only contain lower case letters, numbers and single dashes (-). Please choose a different ID.",
|
|
15
|
+
idunique: "This ID is already in use, please choose a different one."
|
|
19
16
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
idunique: s("message.dataupload.datasets.datasetID.duplicate"),
|
|
24
|
-
required: s("message.dataupload.datasets.datasetID.required")
|
|
25
|
-
};
|
|
26
|
-
}), h(() => {
|
|
27
|
-
});
|
|
28
|
-
async function m(e) {
|
|
29
|
-
let t = !0, a = p.api.hubUrl;
|
|
30
|
-
const f = d.getters["auth/getUserDraftIds"];
|
|
17
|
+
async function p(e) {
|
|
18
|
+
let t = !0, a = r.api.hubUrl;
|
|
19
|
+
const m = i.getters["auth/getUserDraftIds"];
|
|
31
20
|
return new Promise(() => {
|
|
32
|
-
if (
|
|
21
|
+
if (y(e.value) || e.value === "" || e.value === void 0)
|
|
33
22
|
t = !0;
|
|
34
|
-
else if (
|
|
23
|
+
else if (m.includes(e.value))
|
|
35
24
|
t = !1;
|
|
36
25
|
else {
|
|
37
|
-
const
|
|
38
|
-
|
|
26
|
+
const f = `${a}datasets/${e.value}?useNormalizedId=true`;
|
|
27
|
+
$.head(f).then(() => {
|
|
39
28
|
t = !1;
|
|
40
|
-
}).catch((
|
|
29
|
+
}).catch((C) => {
|
|
41
30
|
t = !0;
|
|
42
31
|
});
|
|
43
32
|
}
|
|
@@ -47,11 +36,11 @@ const M = { class: "formkitProperty DSid" }, N = {
|
|
|
47
36
|
return /^[a-z0-9-]*$/.test(e.value);
|
|
48
37
|
}
|
|
49
38
|
return (e, t) => {
|
|
50
|
-
const a =
|
|
51
|
-
return
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
!l.value || o.value ? (
|
|
39
|
+
const a = h("FormKit");
|
|
40
|
+
return s(), I("div", q, [
|
|
41
|
+
g("h4", null, D(e.$t("message.dataupload.datasets.datasetID.label")), 1),
|
|
42
|
+
_(),
|
|
43
|
+
!l.value || o.value ? (s(), n(a, {
|
|
55
44
|
key: 0,
|
|
56
45
|
type: "text",
|
|
57
46
|
name: "datasetID",
|
|
@@ -59,12 +48,12 @@ const M = { class: "formkitProperty DSid" }, N = {
|
|
|
59
48
|
placeholder: e.$t("message.dataupload.datasets.datasetID.label"),
|
|
60
49
|
info: e.$t("message.dataupload.datasets.datasetID.info"),
|
|
61
50
|
help: e.$t("message.dataupload.datasets.datasetID.help"),
|
|
62
|
-
"validation-rules": { idformatvalid: c, idunique:
|
|
51
|
+
"validation-rules": { idformatvalid: c, idunique: p },
|
|
63
52
|
validation: "idformatvalid|idunique|required",
|
|
64
53
|
"validation-visibility": "live",
|
|
65
|
-
"validation-messages":
|
|
54
|
+
"validation-messages": u,
|
|
66
55
|
"outer-class": "formkitCmpWrap p-3"
|
|
67
|
-
}, null, 8, ["placeholder", "info", "help", "validation-rules"
|
|
56
|
+
}, null, 8, ["placeholder", "info", "help", "validation-rules"])) : (s(), n(a, {
|
|
68
57
|
key: 1,
|
|
69
58
|
type: "text",
|
|
70
59
|
name: "datasetID",
|
|
@@ -78,6 +67,6 @@ const M = { class: "formkitProperty DSid" }, N = {
|
|
|
78
67
|
}
|
|
79
68
|
});
|
|
80
69
|
export {
|
|
81
|
-
|
|
70
|
+
B as default
|
|
82
71
|
};
|
|
83
72
|
//# sourceMappingURL=UniqueIdentifierInput.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect } from 'vue'\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\
|
|
1
|
+
{"version":3,"file":"UniqueIdentifierInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/UniqueIdentifierInput.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, watchEffect } from 'vue'\nimport { isNil } from 'lodash';\nimport axios from 'axios';\nimport { useStore } from 'vuex';\nimport { getCurrentInstance } from \"vue\";\n\nlet env = getCurrentInstance().appContext.app.config.globalProperties.$env;\n\nconst store = useStore();\nconst isEditMode = ref();\nconst isDuplicate =ref();\nisDuplicate.value = localStorage.getItem('dpi_duplicate');\nisEditMode.value = store.getters['auth/getIsEditMode'];\n\nconst validationMessages = {\n idformatvalid: \"Dataset ID must only contain lower case letters, numbers and single dashes (-). Please choose a different ID.\",\n idunique: \"This ID is already in use, please choose a different one.\"\n};\n\nasync function idunique(node) {\n let isUniqueID = true;\n let hubUrl = env.api.hubUrl;\n const draftIDs = store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(node.value) || node.value === '' || node.value === undefined) isUniqueID = true;\n else if (draftIDs.includes(node.value)) isUniqueID = false;\n else {\n const request = `${hubUrl}datasets/${node.value}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID;\n}\n\nfunction idformatvalid(node) {\n return /^[a-z0-9-]*$/.test(node.value);\n}\n\n</script>\n\n<template>\n <div class=\"formkitProperty DSid\">\n <h4>{{ $t(`message.dataupload.datasets.datasetID.label`) }}</h4>\n <FormKit v-if=\"!isEditMode || isDuplicate\" type=\"text\" name=\"datasetID\" id=\"datasetID\"\n :placeholder=\"$t(`message.dataupload.datasets.datasetID.label`)\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\"\n :validation-rules=\"{ idformatvalid, idunique }\" validation=\"idformatvalid|idunique|required\"\n validation-visibility=\"live\" :validation-messages=\"validationMessages\" outer-class=\"formkitCmpWrap p-3\">\n </FormKit>\n <FormKit v-else type=\"text\" name=\"datasetID\" id=\"datasetID\" :disabled=\"true\"\n :info=\"$t(`message.dataupload.datasets.datasetID.info`)\" :help=\"$t(`message.dataupload.datasets.datasetID.help`)\">\n </FormKit>\n </div>\n</template>\n\n<script>\nexport default {\n props: ['context']\n}\n</script>\n\n<style></style>\n"],"names":["__default__","env","getCurrentInstance","store","useStore","isEditMode","ref","isDuplicate","validationMessages","idunique","node","isUniqueID","hubUrl","draftIDs","isNil","request","axios","e","idformatvalid"],"mappings":";;;;6CAgEAA,IAAe;AAAA,EACb,OAAO,CAAC,SAAS;AACnB;;;AA3DA,QAAIC,IAAMC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAEtE,UAAMC,IAAQC,EAAQ,GAChBC,IAAaC,EAAG,GAChBC,IAAaD,EAAG;AACtB,IAAAC,EAAY,QAAQ,aAAa,QAAQ,eAAe,GACxDF,EAAW,QAAQF,EAAM,QAAQ,oBAAoB;AAErD,UAAMK,IAAqB;AAAA,MACzB,eAAe;AAAA,MACf,UAAU;AAAA,IACZ;AAEA,mBAAeC,EAASC,GAAM;AAC5B,UAAIC,IAAa,IACbC,IAASX,EAAI,IAAI;AACrB,YAAMY,IAAWV,EAAM,QAAQ,sBAAsB;AAErD,iBAAI,QAAQ,MAAM;AAChB,YAAIW,EAAMJ,EAAK,KAAK,KAAKA,EAAK,UAAU,MAAMA,EAAK,UAAU;AAAW,UAAAC,IAAa;AAAA,iBAC5EE,EAAS,SAASH,EAAK,KAAK;AAAG,UAAAC,IAAa;AAAA,aAChD;AACH,gBAAMI,IAAU,GAAGH,CAAM,YAAYF,EAAK,KAAK;AAC/C,UAAAM,EAAM,KAAKD,CAAO,EACf,KAAK,MAAM;AACV,YAAAJ,IAAa;AAAA,UACvB,CAAS,EACA,MAAM,CAACM,MAAM;AACZ,YAAAN,IAAa;AAAA,UACvB,CAAS;AAAA,QACJ;AAAA,MACL,CAAG,GACMA;AAAA,IACT;AAEA,aAASO,EAAcR,GAAM;AAC3B,aAAO,eAAe,KAAKA,EAAK,KAAK;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|