@piveau/piveau-hub-ui-modules 4.4.19 → 4.4.21
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/data-provider-interface/DPIMenu.vue.d.ts +1 -1
- package/dist/data-provider-interface/DPIMenu.vue.mjs +30 -33
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +88 -86
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserProfilePage.vue.d.ts +1 -0
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs +40 -24
- package/dist/data-provider-interface/views/UserProfilePage.vue.mjs.map +1 -1
- package/dist/datasetDetails/distributions/Distributions.vue.d.ts +1 -0
- package/dist/datasetDetails/distributions/Distributions.vue.mjs +16 -15
- package/dist/datasetDetails/distributions/Distributions.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/package.json +1 -1
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import { getCurrentInstance as
|
|
2
|
-
import { useStore as
|
|
1
|
+
import { getCurrentInstance as te, computed as L, ref as h, onMounted as ne, watch as B, watchEffect as ae, openBlock as r, createElementBlock as i, unref as u, toDisplayString as v, createCommentVNode as O, createTextVNode as p, createElementVNode as s, withDirectives as X, isRef as $, vModelText as le, Fragment as S, renderList as T, vShow as oe, normalizeClass as se } from "vue";
|
|
2
|
+
import { useStore as re } from "vuex";
|
|
3
3
|
import { getTranslationFor as N } from "../../utils/helpers.mjs";
|
|
4
|
-
import { getNode as
|
|
5
|
-
import { onClickOutside as
|
|
6
|
-
import { useI18n as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
const
|
|
4
|
+
import { getNode as ie } from "@formkit/core";
|
|
5
|
+
import { onClickOutside as M } from "../../external/@vueuse/core/index";
|
|
6
|
+
import { useI18n as ue } from "vue-i18n";
|
|
7
|
+
import ce from "qs";
|
|
8
|
+
import de from "axios";
|
|
9
|
+
const fe = { class: "formkitProperty" }, pe = {
|
|
10
10
|
key: 0,
|
|
11
11
|
class: "formkitHeader"
|
|
12
|
-
},
|
|
12
|
+
}, me = ["innerHTML"], ve = { class: "formkitCmpWrap" }, ge = { class: "formkit-outer" }, ye = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "d-flex formkit-inner"
|
|
15
|
-
},
|
|
15
|
+
}, he = { class: "autocompleteInputSingleValue" }, xe = { key: 1 }, ke = { class: "d-flex align-items-center justify-content-center formkit-inner mb-2" }, be = ["placeholder"], we = ["onClick"], _e = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "d-flex flex-wrap"
|
|
18
|
-
},
|
|
18
|
+
}, Ce = { class: "activeResultsAutocompleteWrapper" }, Ie = ["onClick"], Le = ["onClick"], Se = { class: "w-100 mt-4" }, Te = { class: "d-flex justify-content-between align-items-center flex-wrap" }, Ve = {
|
|
19
19
|
key: 0,
|
|
20
20
|
class: "annifresultContainer"
|
|
21
|
-
},
|
|
21
|
+
}, Ae = ["onClick"], Pe = { class: "d-flex" }, Oe = {
|
|
22
22
|
key: 1,
|
|
23
23
|
class: "d-flex flex-wrap"
|
|
24
|
-
},
|
|
24
|
+
}, $e = ["onClick"], Ne = ["innerHTML"], Fe = {
|
|
25
25
|
__name: "AutocompleteInput",
|
|
26
26
|
props: {
|
|
27
27
|
context: Object
|
|
28
28
|
},
|
|
29
|
-
setup(
|
|
30
|
-
let
|
|
31
|
-
const a =
|
|
32
|
-
let g = L(() => a.context.value), c, b = a.context.attrs.voc,
|
|
33
|
-
value: { name:
|
|
34
|
-
}), f = h(),
|
|
29
|
+
setup(J) {
|
|
30
|
+
let k = te().appContext.app.config.globalProperties.$env;
|
|
31
|
+
const a = J, R = re(), { t: j, locale: z } = ue();
|
|
32
|
+
let g = L(() => a.context.value), c, b = a.context.attrs.voc, G = L(() => j("message.dataupload.info.searchVocabulary")), K = L(() => j("message.dataupload.info.matchesNothingFound")), _ = h({
|
|
33
|
+
value: { name: G }
|
|
34
|
+
}), f = h(), D = h(null), E = h(null), x = h({}), m = [], C = [], H = h({
|
|
35
35
|
value: !1
|
|
36
36
|
});
|
|
37
37
|
h();
|
|
38
38
|
let V = h({});
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
ne(async () => {
|
|
40
|
+
x.value = "";
|
|
41
41
|
});
|
|
42
|
-
let
|
|
42
|
+
let q = L(() => {
|
|
43
43
|
try {
|
|
44
44
|
if (a.context.attrs.class.includes("inDistribution"))
|
|
45
45
|
return !0;
|
|
46
46
|
} catch {
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
-
|
|
50
|
-
}),
|
|
49
|
+
B(_, async () => {
|
|
50
|
+
}), B(V, async () => {
|
|
51
51
|
});
|
|
52
|
-
const
|
|
52
|
+
const U = async (n) => {
|
|
53
53
|
if (n != null) {
|
|
54
54
|
let e = b === "iana-media-types" || b === "spdx-checksum-algorithm", t;
|
|
55
|
-
return await
|
|
55
|
+
return await R.dispatch("dpiStore/requestResourceName", { voc: b, uri: n, envs: k }).then(
|
|
56
56
|
(o) => {
|
|
57
57
|
a.context.attrs.property === "dcatde:politicalGeocodingURI" ? o != null && (t = e ? o.data.result.results.filter((l) => l.resource === n).map((l) => l.alt_label)[0].en : N(o.data.result.alt_label, "en", [])) : o != null && (t = e ? o.data.result.results.filter((l) => l.resource === n).map((l) => l.pref_label)[0].en : N(o.data.result.pref_label, "en", []));
|
|
58
58
|
}
|
|
59
59
|
), t;
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
|
|
62
|
+
ae(async () => {
|
|
63
63
|
const n = g.value;
|
|
64
64
|
if (n.hasOwnProperty("name") && n.name === n.resource) {
|
|
65
65
|
let e;
|
|
66
|
-
a.context.attrs.multiple || (e =
|
|
66
|
+
a.context.attrs.multiple || (e = U(n.resource), a.context.node.input({ name: await e, resource: n.resource }));
|
|
67
67
|
}
|
|
68
68
|
if (n.length >= 1) {
|
|
69
69
|
let e = [];
|
|
70
70
|
for (let t = 0; t < n.length; t++)
|
|
71
|
-
n[t].name === n[t].resource && (e.push({ name: await
|
|
71
|
+
n[t].name === n[t].resource && (e.push({ name: await U(n[t].resource), resource: n[t].resource }), a.context.node.input(e));
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
function A(n) {
|
|
@@ -83,53 +83,53 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
83
83
|
} catch {
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
window.removeEventListener("click",
|
|
86
|
+
window.removeEventListener("click", M);
|
|
87
87
|
}
|
|
88
|
-
|
|
89
|
-
let
|
|
88
|
+
M(D, (n) => f.value = !1), M(E, (n) => x.value = "");
|
|
89
|
+
let F = async (n, e) => {
|
|
90
90
|
let t = 10;
|
|
91
91
|
e != null && (t = t + 10);
|
|
92
|
-
let o =
|
|
92
|
+
let o = ce.stringify({
|
|
93
93
|
text: n,
|
|
94
94
|
limit: t
|
|
95
95
|
});
|
|
96
96
|
var d = {
|
|
97
97
|
method: "post",
|
|
98
|
-
url: b == "eurovoc" ?
|
|
98
|
+
url: b == "eurovoc" ? k.content.dataProviderInterface.annifLinkSubject : k.content.dataProviderInterface.annifLinkTheme,
|
|
99
99
|
headers: {
|
|
100
100
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
101
101
|
Accept: "application/json"
|
|
102
102
|
},
|
|
103
103
|
data: o
|
|
104
104
|
};
|
|
105
|
-
|
|
105
|
+
de(d).then(async (l) => {
|
|
106
106
|
for (let y = 0; y < l.data.results.length; y++)
|
|
107
107
|
C[y] = { name: l.data.results[y].label, resource: l.data.results[y].uri, activeValue: !1 };
|
|
108
108
|
let w = [];
|
|
109
109
|
g.value.length > 0 && g.value.forEach((y) => {
|
|
110
110
|
w.push({ name: y.name, resource: y.resource, activeValue: !0 });
|
|
111
|
-
}), l.data.results.length > 9 && (C[C.length + 1] = { name: "...", resource: "invalid", activeValue: !1 }), V.value =
|
|
111
|
+
}), l.data.results.length > 9 && (C[C.length + 1] = { name: "...", resource: "invalid", activeValue: !1 }), V.value = Y(w, C);
|
|
112
112
|
}).catch(function(l) {
|
|
113
113
|
console.log(l);
|
|
114
114
|
});
|
|
115
115
|
};
|
|
116
|
-
async function
|
|
116
|
+
async function Q(n) {
|
|
117
117
|
n.resource === "invalid" ? I(5) : (P({ name: n.name, resource: n.resource }), I());
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function Y(n, e) {
|
|
120
120
|
let t = n.concat(e), o = [], d = /* @__PURE__ */ new Set();
|
|
121
121
|
return t.forEach((l) => {
|
|
122
122
|
d.has(l.resource) || (d.add(l.resource), l.activeValue || o.push(l));
|
|
123
123
|
}), o;
|
|
124
124
|
}
|
|
125
125
|
const I = async (n) => {
|
|
126
|
-
let e =
|
|
126
|
+
let e = ie("Mandatory").value["dct:description"];
|
|
127
127
|
for (let t = 0; t < e.length; t++)
|
|
128
|
-
e[t]["@language"] === "en" && (n != null ? await
|
|
128
|
+
e[t]["@language"] === "en" && (n != null ? await F(e[t]["@value"], 5) : await F(e[t]["@value"]));
|
|
129
129
|
};
|
|
130
130
|
a.context.classes.outer += " autocompleteInput " + a.context.attrs.identifier;
|
|
131
131
|
const P = async (n) => {
|
|
132
|
-
if (
|
|
132
|
+
if (x.value = "", Object.keys(n).length !== 1) {
|
|
133
133
|
if (g.value.length > 0 && (m = g.value), a.context.attrs.multiple)
|
|
134
134
|
if (m.length != 0) {
|
|
135
135
|
let e = { name: n.name, resource: n.resource }, t = m.filter((o) => o.name != n.name);
|
|
@@ -143,56 +143,58 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
143
143
|
}
|
|
144
144
|
A();
|
|
145
145
|
}
|
|
146
|
-
},
|
|
146
|
+
}, Z = async (n) => {
|
|
147
147
|
let e = n.target.value;
|
|
148
|
-
await
|
|
148
|
+
await R.dispatch("dpiStore/requestAutocompleteSuggestions", { voc: b, text: e, base: k.api.baseUrl }).then((t) => {
|
|
149
149
|
const d = t.data.result.results.filter((l) => l.id !== "OP_DATPRO").map((l) => ({
|
|
150
|
-
name: N(l.pref_label,
|
|
150
|
+
name: N(l.pref_label, z.value, []) + " (" + l.id + ")",
|
|
151
151
|
resource: l.resource
|
|
152
152
|
}));
|
|
153
|
-
d.length === 0 ? _.value = { value: { name:
|
|
153
|
+
d.length === 0 ? _.value = { value: { name: K } } : _.value = d;
|
|
154
154
|
});
|
|
155
155
|
};
|
|
156
|
-
function
|
|
156
|
+
function ee(n) {
|
|
157
157
|
a.context.node.input({}), P("erase");
|
|
158
158
|
}
|
|
159
|
-
function
|
|
160
|
-
|
|
159
|
+
function W(n) {
|
|
160
|
+
k.content.dataProviderInterface.annifIntegration && I(), g.value.length > 0 && (m = g.value), m.splice(m.findIndex((e) => e.name == n.name), 1), c = m, a.context.node.input(c), A();
|
|
161
161
|
}
|
|
162
|
-
return (n, e) => (r(), i("div",
|
|
163
|
-
u(
|
|
162
|
+
return (n, e) => (r(), i("div", fe, [
|
|
163
|
+
u(q) ? (r(), i("h4", pe, v(n.$t("message.dataupload.distributions." + a.context.attrs.identifier + ".label")), 1)) : O("", !0),
|
|
164
164
|
e[14] || (e[14] = p()),
|
|
165
|
-
a.context.attrs.identifier != "licence" && !u(
|
|
165
|
+
a.context.attrs.identifier != "licence" && !u(q) ? (r(), i("h4", {
|
|
166
166
|
key: 1,
|
|
167
167
|
innerHTML: n.$t("message.dataupload.datasets." + a.context.attrs.identifier + ".label")
|
|
168
|
-
}, null, 8,
|
|
168
|
+
}, null, 8, me)) : O("", !0),
|
|
169
169
|
e[15] || (e[15] = p()),
|
|
170
|
-
s("div",
|
|
171
|
-
s("div",
|
|
172
|
-
!a.context.attrs.multiple && a.context.value.name ? (r(), i("div",
|
|
173
|
-
s("a",
|
|
170
|
+
s("div", ve, [
|
|
171
|
+
s("div", ge, [
|
|
172
|
+
!a.context.attrs.multiple && a.context.value.name ? (r(), i("div", ye, [
|
|
173
|
+
s("a", he, v(a.context.value.name), 1),
|
|
174
174
|
e[4] || (e[4] = p()),
|
|
175
175
|
s("div", {
|
|
176
176
|
class: "removeX",
|
|
177
|
-
onClick:
|
|
177
|
+
onClick: ee
|
|
178
178
|
})
|
|
179
|
-
])) : (r(), i("div",
|
|
180
|
-
s("div",
|
|
181
|
-
|
|
179
|
+
])) : (r(), i("div", xe, [
|
|
180
|
+
s("div", ke, [
|
|
181
|
+
X(s("input", {
|
|
182
|
+
ref_key: "acInput",
|
|
183
|
+
ref: E,
|
|
182
184
|
class: "autocompleteInputfield",
|
|
183
185
|
placeholder: a.context.attrs.placeholder,
|
|
184
|
-
"onUpdate:modelValue": e[0] || (e[0] = (t) => $(
|
|
186
|
+
"onUpdate:modelValue": e[0] || (e[0] = (t) => $(x) ? x.value = t : x = t),
|
|
185
187
|
type: "text",
|
|
186
|
-
onKeyup: e[1] || (e[1] = (t) =>
|
|
188
|
+
onKeyup: e[1] || (e[1] = (t) => Z(t)),
|
|
187
189
|
onClick: e[2] || (e[2] = (t) => $(f) ? f.value = !u(f) : f = !u(f))
|
|
188
|
-
}, null, 40,
|
|
189
|
-
[
|
|
190
|
+
}, null, 40, be), [
|
|
191
|
+
[le, u(x)]
|
|
190
192
|
])
|
|
191
193
|
]),
|
|
192
194
|
e[11] || (e[11] = p()),
|
|
193
|
-
|
|
195
|
+
X(s("ul", {
|
|
194
196
|
ref_key: "dropdownList",
|
|
195
|
-
ref:
|
|
197
|
+
ref: D,
|
|
196
198
|
class: "autocompleteResultList"
|
|
197
199
|
}, [
|
|
198
200
|
(r(!0), i(S, null, T(u(_), (t) => (r(), i("li", {
|
|
@@ -201,14 +203,14 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
201
203
|
P(t), $(f) ? f.value = !u(f) : f = !u(f);
|
|
202
204
|
},
|
|
203
205
|
class: "p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC"
|
|
204
|
-
}, v(t.name), 9,
|
|
206
|
+
}, v(t.name), 9, we))), 128))
|
|
205
207
|
], 512), [
|
|
206
|
-
[
|
|
208
|
+
[oe, u(f)]
|
|
207
209
|
]),
|
|
208
210
|
e[12] || (e[12] = p()),
|
|
209
|
-
u(
|
|
211
|
+
u(k).content.dataProviderInterface.annifIntegration && a.context.attrs.annifTheme ? (r(), i("div", _e, [
|
|
210
212
|
(r(!0), i(S, null, T(u(g), (t) => (r(), i("div", { key: t }, [
|
|
211
|
-
s("div",
|
|
213
|
+
s("div", Ce, [
|
|
212
214
|
s("div", {
|
|
213
215
|
class: "d-flex",
|
|
214
216
|
onClick: (o) => {
|
|
@@ -219,14 +221,14 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
219
221
|
e[5] || (e[5] = p()),
|
|
220
222
|
s("div", {
|
|
221
223
|
class: "removeX",
|
|
222
|
-
onClick: (o) =>
|
|
223
|
-
}, null, 8,
|
|
224
|
-
], 8,
|
|
224
|
+
onClick: (o) => W(t)
|
|
225
|
+
}, null, 8, Le)
|
|
226
|
+
], 8, Ie)
|
|
225
227
|
])
|
|
226
228
|
]))), 128)),
|
|
227
229
|
e[9] || (e[9] = p()),
|
|
228
|
-
s("div",
|
|
229
|
-
s("div",
|
|
230
|
+
s("div", Se, [
|
|
231
|
+
s("div", Te, [
|
|
230
232
|
s("h3", null, v(n.$t("message.dataupload.info.suggestions")), 1),
|
|
231
233
|
e[6] || (e[6] = p()),
|
|
232
234
|
s("span", null, v(n.$t("message.dataupload.info.suggestionText")), 1),
|
|
@@ -235,30 +237,30 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
235
237
|
class: "navlikeButton",
|
|
236
238
|
type: "button",
|
|
237
239
|
onClick: e[3] || (e[3] = (t) => {
|
|
238
|
-
I(), u(
|
|
240
|
+
I(), u(H).value = !0;
|
|
239
241
|
})
|
|
240
242
|
}, v(n.$t("message.dataupload.info.tryIt")), 1)
|
|
241
243
|
]),
|
|
242
244
|
e[8] || (e[8] = p()),
|
|
243
|
-
u(
|
|
245
|
+
u(H).value ? (r(), i("div", Ve, [
|
|
244
246
|
(r(!0), i(S, null, T(u(V), (t) => (r(), i("div", {
|
|
245
247
|
key: t,
|
|
246
248
|
class: "d-flex"
|
|
247
249
|
}, [
|
|
248
250
|
s("div", {
|
|
249
|
-
class:
|
|
251
|
+
class: se(["activeResultsAutocompleteWrapper annifResults", { loadMore: t.resource === "invalid" }]),
|
|
250
252
|
onClick: (o) => {
|
|
251
|
-
t.activeValue = !t.activeValue,
|
|
253
|
+
t.activeValue = !t.activeValue, Q(t);
|
|
252
254
|
}
|
|
253
255
|
}, [
|
|
254
|
-
s("div",
|
|
256
|
+
s("div", Pe, [
|
|
255
257
|
s("span", null, v(t.name), 1)
|
|
256
258
|
])
|
|
257
|
-
], 10,
|
|
259
|
+
], 10, Ae)
|
|
258
260
|
]))), 128))
|
|
259
261
|
])) : O("", !0)
|
|
260
262
|
])
|
|
261
|
-
])) : (r(), i("div",
|
|
263
|
+
])) : (r(), i("div", Oe, [
|
|
262
264
|
(r(!0), i(S, null, T(a.context.value, (t) => (r(), i("div", {
|
|
263
265
|
class: "activeResultsAutocompleteWrapper",
|
|
264
266
|
key: t
|
|
@@ -267,15 +269,15 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
267
269
|
e[10] || (e[10] = p()),
|
|
268
270
|
s("div", {
|
|
269
271
|
class: "removeX",
|
|
270
|
-
onClick: (o) =>
|
|
271
|
-
}, null, 8,
|
|
272
|
+
onClick: (o) => W(t)
|
|
273
|
+
}, null, 8, $e)
|
|
272
274
|
]))), 128))
|
|
273
275
|
])),
|
|
274
276
|
e[13] || (e[13] = p()),
|
|
275
277
|
s("div", {
|
|
276
278
|
innerHTML: a.context.attrs.info,
|
|
277
279
|
class: "formkit-help"
|
|
278
|
-
}, null, 8,
|
|
280
|
+
}, null, 8, Ne)
|
|
279
281
|
]))
|
|
280
282
|
])
|
|
281
283
|
])
|
|
@@ -283,6 +285,6 @@ const de = { class: "formkitProperty" }, fe = {
|
|
|
283
285
|
}
|
|
284
286
|
};
|
|
285
287
|
export {
|
|
286
|
-
|
|
288
|
+
Fe as default
|
|
287
289
|
};
|
|
288
290
|
//# sourceMappingURL=AutocompleteInput.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <!-- need to make a condition for the licence property of the distribution - otherwise the dropdown doesnt work-->\n\n <h4 class=\"formkitHeader\" v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 v-if=\"props.context.attrs.identifier != 'licence' && !inDis\" v-html=\"$t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label')\">\n </h4>\n\n <div class=\"formkitCmpWrap\">\n\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\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=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n\n <input class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ $t('message.dataupload.info.suggestions') }}</h3>\n <span>{{ $t('message.dataupload.info.suggestionText') }}</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">{{ $t('message.dataupload.info.tryIt')\n }}</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n\n\n <!-- <div class=\"formkit-wrapper mb-3\">\n <div v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\" class=\"formkit-help\"> \n </div> \n </div> -->\n\n <div v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script setup>\nimport { ref, watch, computed, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n';\n\nimport qs from 'qs';\nimport axios from 'axios';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\nconst { t, locale } = useI18n();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\n\nlet matchesSearchstring = computed(() => {\n return t('message.dataupload.info.searchVocabulary')\n})\nlet matchesNothingFound = computed(() => {\n return t('message.dataupload.info.matchesNothingFound')\n})\nlet matches = ref({\n value: { name: matchesSearchstring }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\nlet inDis = computed(() => {\n try {\n if (props.context.attrs.class.includes(\"inDistribution\")) {\n return true\n }\n } catch (error) {\n\n }\n\n\n});\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await store.dispatch('dpiStore/requestResourceName', { voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, 'en', []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, 'en', []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n\n for (let i = 0; i < response.data.results.length; i++) {\n\n\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n inputText.value = \"\"\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: voc, text: innerText, base: instance.api.baseUrl }).then((response) => {\n // filter OP_DATPRO\n const updatedArray = response.data.result.results.filter(obj => obj.id !== 'OP_DATPRO');\n\n const results = updatedArray.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n if (results.length === 0) {\n matches.value = { value: { name: matchesNothingFound } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>\n"],"names":["instance","getCurrentInstance","props","__props","store","useStore","t","locale","useI18n","listOfValues","computed","selection","voc","matchesSearchstring","matchesNothingFound","matches","ref","activeList","dropdownList","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","inDis","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","r","removeProperty","removeMultipleProperty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/AutocompleteInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <!-- need to make a condition for the licence property of the distribution - otherwise the dropdown doesnt work-->\n\n <h4 class=\"formkitHeader\" v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' + props.context.attrs.identifier + '.label') }}\n </h4>\n <h4 v-if=\"props.context.attrs.identifier != 'licence' && !inDis\" v-html=\"$t('message.dataupload.datasets.' + props.context.attrs.identifier + '.label')\">\n </h4>\n\n <div class=\"formkitCmpWrap\">\n\n <div class=\"formkit-outer\">\n <div class=\"d-flex formkit-inner\" v-if=\"!props.context.attrs.multiple && props.context.value.name\">\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=\"d-flex align-items-center justify-content-center formkit-inner mb-2\">\n <!-- <div class=\"infoI\">\n <div class=\"tooltipFormkit\">{{ props.context.attrs.info }}</div>\n </div> -->\n\n <input ref=\"acInput\" class=\"autocompleteInputfield\" :placeholder=\"props.context.attrs.placeholder\" v-model=\"inputText\"\n type=\"text\" v-on:keyup=\"getAutocompleteSuggestions($event)\" @click=\"activeList = !activeList\">\n </div>\n\n <ul ref=\"dropdownList\" v-show=\"activeList\" class=\"autocompleteResultList\">\n <li v-for=\"match in matches\" :key=\"match\" @click=\"setValue(match); activeList = !activeList\"\n class=\"p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC\">{{ match.name }}\n </li>\n </ul>\n <div v-if=\"instance.content.dataProviderInterface.annifIntegration && props.context.attrs.annifTheme\"\n class=\"d-flex flex-wrap\">\n <div v-for=\"item in listOfValues\" :key=\"item\">\n <div class=\"activeResultsAutocompleteWrapper\">\n <div class=\"d-flex\" @click=\"item.activeValue = !item.activeValue;\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n </div>\n <div class=\"w-100 mt-4\">\n <div class=\"d-flex justify-content-between align-items-center flex-wrap\">\n <h3>{{ $t('message.dataupload.info.suggestions') }}</h3>\n <span>{{ $t('message.dataupload.info.suggestionText') }}</span>\n <button class=\"navlikeButton\" type=\"button\"\n @click=\"fillAnnifsuggestions(); annifTrigger.value = true\">{{ $t('message.dataupload.info.tryIt')\n }}</button>\n </div>\n <div class=\"annifresultContainer\" v-if=\"annifTrigger.value\">\n <div v-for=\"item in annifSelectionList\" :key=\"item\" class=\"d-flex \">\n <div class=\"activeResultsAutocompleteWrapper annifResults\"\n :class=\"{ loadMore: item.resource === 'invalid' }\"\n @click=\"item.activeValue = !item.activeValue; updateAnnifselection(item)\">\n <div class=\"d-flex\">\n <span>{{ item.name }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div v-else class=\"d-flex flex-wrap\">\n <div class=\"activeResultsAutocompleteWrapper\" v-for=\"item in props.context.value\" :key=\"item\">\n <span>{{ item.name }}</span>\n <div class=\"removeX\" @click=\"removeMultipleProperty(item)\"></div>\n </div>\n </div>\n\n\n <!-- <div class=\"formkit-wrapper mb-3\">\n <div v-html=\"$t('message.dataupload.distributions.licence.vocabulary.help')\" class=\"formkit-help\"> \n </div> \n </div> -->\n\n <div v-html=\"props.context.attrs.info\" class=\"formkit-help\"></div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script setup>\nimport { ref, watch, computed, onMounted, watchEffect } from 'vue';\nimport { useStore } from 'vuex';\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport { getCurrentInstance } from \"vue\";\nimport { getNode } from '@formkit/core'\nimport { onClickOutside } from '@vueuse/core'\nimport { useI18n } from 'vue-i18n';\n\nimport qs from 'qs';\nimport axios from 'axios';\n\nlet instance = getCurrentInstance().appContext.app.config.globalProperties.$env\n\nconst props = defineProps({\n context: Object\n})\nconst store = useStore();\nconst { t, locale } = useI18n();\n\nlet listOfValues = computed(() => {\n return props.context.value;\n})\n\nlet selection;\nlet voc = props.context.attrs.voc;\n\nlet matchesSearchstring = computed(() => {\n return t('message.dataupload.info.searchVocabulary')\n})\nlet matchesNothingFound = computed(() => {\n return t('message.dataupload.info.matchesNothingFound')\n})\nlet matches = ref({\n value: { name: matchesSearchstring }\n})\nlet activeList = ref()\nlet dropdownList = ref(null)\nlet acInput = ref(null)\nlet inputText = ref({})\nlet cacheList = [];\nlet annifList = [];\nlet annifTrigger = ref({\n value: false\n});\nlet initialValues = ref();\nlet annifSelectionList = ref({})\n\nonMounted(async () => {\n inputText.value = \"\"\n});\nlet inDis = computed(() => {\n try {\n if (props.context.attrs.class.includes(\"inDistribution\")) {\n return true\n }\n } catch (error) {\n\n }\n\n\n});\nwatch(matches, async () => { })\nwatch(annifSelectionList, async () => { })\n\nconst requestURIname = async (res) => {\n\n if (res != undefined) {\n let vocMatch =\n voc === \"iana-media-types\" ||\n voc === \"spdx-checksum-algorithm\";\n\n let name;\n\n await store.dispatch('dpiStore/requestResourceName', { voc: voc, uri: res, envs: instance }).then(\n (response) => {\n if (props.context.attrs.property === 'dcatde:politicalGeocodingURI') {\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.alt_label)[0].en\n : getTranslationFor(response.data.result.alt_label, 'en', []);\n name = result;\n }\n } else {\n\n if (response != undefined) {\n let result = vocMatch\n ? response.data.result.results\n .filter((dataset) => dataset.resource === res)\n .map((dataset) => dataset.pref_label)[0].en\n : getTranslationFor(response.data.result.pref_label, 'en', []);\n name = result;\n\n }\n }\n }\n );\n return name\n }\n\n}\n\nwatchEffect(async () => {\n const values = listOfValues.value;\n\n // single URI's\n if (values.hasOwnProperty('name')) {\n if (values.name === values.resource) {\n let uriName;\n if (!props.context.attrs.multiple) {\n uriName = requestURIname(values.resource)\n props.context.node.input({ name: await uriName, resource: values.resource })\n\n }\n }\n }\n // multiple URI's\n if (values.length >= 1) {\n let uriNameList = [];\n for (let index = 0; index < values.length; index++) {\n if (values[index].name === values[index].resource) {\n uriNameList.push({ name: await requestURIname(values[index].resource), resource: values[index].resource })\n props.context.node.input(uriNameList)\n }\n }\n }\n});\nfunction findPropertyToUpdate(trigger) {\n\n let finalPath = { step: '', prop: props.context.node.name }\n let pathToLocalStorage = JSON.parse(localStorage.getItem('dpi_datasets'));\n\n for (let index = 0; index < Object.keys(pathToLocalStorage).length; index++) {\n for (let innerIndex = 0; innerIndex < Object.keys(pathToLocalStorage)[index].length; innerIndex++) {\n let ntry = Object.entries((pathToLocalStorage))\n try {\n Object.keys(ntry[index][innerIndex]).filter(e => {\n if (e === props.context.node.name) {\n finalPath.step = ntry[index][0]\n\n if (trigger === 'erase') {\n\n selection = {}\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n if (typeof selection === 'object') {\n\n pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n }\n else pathToLocalStorage[finalPath.step][finalPath.prop] = selection\n localStorage.setItem('dpi_datasets', JSON.stringify(pathToLocalStorage))\n }\n });\n } catch (error) {\n }\n }\n }\n\n window.removeEventListener(\"click\", onClickOutside);\n}\nonClickOutside(dropdownList, event => activeList.value = false)\nonClickOutside(acInput, event => inputText.value = \"\")\n\nlet annifHandlerTheme = async (input, limit) => {\n\n let finalLimit = 10;\n if (limit != undefined) {\n finalLimit = finalLimit + 10\n }\n\n let query = qs.stringify({\n 'text': input,\n 'limit': finalLimit\n });\n\n\n var config = {\n method: 'post',\n url: voc == \"eurovoc\"\n ? instance.content.dataProviderInterface.annifLinkSubject\n : instance.content.dataProviderInterface.annifLinkTheme,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': 'application/json'\n },\n data: query\n };\n\n let list = []\n\n axios(config)\n .then(async (response) => {\n\n for (let i = 0; i < response.data.results.length; i++) {\n\n\n annifList[i] = { \"name\": response.data.results[i].label, \"resource\": response.data.results[i].uri, \"activeValue\": false }\n }\n let annifCacheList = []\n if (listOfValues.value.length > 0) {\n listOfValues.value.forEach(element => {\n annifCacheList.push({ \"name\": element.name, \"resource\": element.resource, \"activeValue\": true })\n });\n }\n if (response.data.results.length > 9) {\n annifList[annifList.length + 1] = { \"name\": \"...\", \"resource\": \"invalid\", \"activeValue\": false }\n }\n\n annifSelectionList.value = eraseDuplicates(annifCacheList, annifList)\n\n })\n .catch(function (error) {\n console.log(error);\n });\n}\nasync function updateAnnifselection(item) {\n\n if (item.resource === 'invalid') {\n fillAnnifsuggestions(5);\n }\n else {\n setValue({ name: item.name, resource: item.resource })\n fillAnnifsuggestions()\n }\n}\nfunction eraseDuplicates(array1, array2) {\n\n let mergedArray = array1.concat(array2);\n let filteredArray = [];\n let resourceSet = new Set();\n\n mergedArray.forEach(obj => {\n if (!resourceSet.has(obj.resource)) {\n resourceSet.add(obj.resource);\n if (!obj.activeValue) {\n filteredArray.push(obj);\n }\n }\n });\n\n\n return filteredArray;\n}\nconst fillAnnifsuggestions = async (limitChange) => {\n\n let arr = getNode('Mandatory').value['dct:description']\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]['@language'] === 'en') {\n if (limitChange != undefined) {\n await annifHandlerTheme(arr[i]['@value'], 5)\n }\n else await annifHandlerTheme(arr[i]['@value'])\n }\n }\n\n}\n\n// Need to append the classes to the formkit-outer element\nprops.context.classes.outer += ' autocompleteInput ' + props.context.attrs.identifier\n\nconst setValue = async (e) => {\n inputText.value = \"\"\n if (Object.keys(e).length === 1) {\n return\n }\n if (listOfValues.value.length > 0) {\n\n cacheList = listOfValues.value\n }\n\n // when its a multi input\n if (props.context.attrs.multiple) {\n // check for doubled values\n if (cacheList.length != 0) {\n let filteredProperty = { name: e.name, resource: e.resource };\n let filteredList = cacheList.filter((element) => element.name != e.name);\n filteredList.push(filteredProperty)\n selection = filteredList;\n await props.context.node.input(selection);\n\n }\n else {\n cacheList.push({ name: e.name, resource: e.resource })\n selection = cacheList\n await props.context.node.input(selection);\n }\n\n }\n else if (e.resource === \"invalid\") return\n else if (e === \"erase\") { await props.context.node.input({}); findPropertyToUpdate(e) }\n else {\n selection = { name: e.name, resource: e.resource };\n await props.context.node.input(selection);\n }\n findPropertyToUpdate();\n}\n\nconst getAutocompleteSuggestions = async (e) => {\n let innerText = e.target.value\n await store.dispatch('dpiStore/requestAutocompleteSuggestions', { voc: voc, text: innerText, base: instance.api.baseUrl }).then((response) => {\n // filter OP_DATPRO\n const updatedArray = response.data.result.results.filter(obj => obj.id !== 'OP_DATPRO');\n\n const results = updatedArray.map((r) => ({\n name: getTranslationFor(r.pref_label, locale.value, []) + \" (\" + r.id + \")\",\n resource: r.resource,\n }));\n if (results.length === 0) {\n matches.value = { value: { name: matchesNothingFound } }\n }\n else matches.value = results;\n });\n}\n\nfunction removeProperty(e) {\n props.context.node.input({})\n setValue('erase');\n}\nfunction removeMultipleProperty(e) {\n\n if (instance.content.dataProviderInterface.annifIntegration) {\n fillAnnifsuggestions()\n }\n if (listOfValues.value.length > 0) {\n cacheList = listOfValues.value\n }\n // Get Index in the array where all values of the Span are stored and cut it out of the list of Values\n cacheList.splice(cacheList.findIndex((element) => element.name == e.name), 1)\n selection = cacheList;\n props.context.node.input(selection);\n findPropertyToUpdate();\n}\n</script>\n"],"names":["instance","getCurrentInstance","props","__props","store","useStore","t","locale","useI18n","listOfValues","computed","selection","voc","matchesSearchstring","matchesNothingFound","matches","ref","activeList","dropdownList","acInput","inputText","cacheList","annifList","annifTrigger","annifSelectionList","onMounted","inDis","watch","requestURIname","res","vocMatch","name","response","dataset","getTranslationFor","watchEffect","values","uriName","uriNameList","index","findPropertyToUpdate","trigger","finalPath","pathToLocalStorage","innerIndex","ntry","e","onClickOutside","event","annifHandlerTheme","input","limit","finalLimit","query","qs","config","axios","i","annifCacheList","element","eraseDuplicates","error","updateAnnifselection","item","fillAnnifsuggestions","setValue","array1","array2","mergedArray","filteredArray","resourceSet","obj","limitChange","arr","getNode","filteredProperty","filteredList","getAutocompleteSuggestions","innerText","results","r","removeProperty","removeMultipleProperty"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {}, {
|
|
2
2
|
values: {};
|
|
3
3
|
}, {
|
|
4
|
+
getUserData: import('vuex').Computed;
|
|
4
5
|
getUserName: import('vuex').Computed;
|
|
5
6
|
}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
6
7
|
export default _default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { mapGetters as
|
|
2
|
-
import { openBlock as
|
|
1
|
+
import { mapGetters as i } from "vuex";
|
|
2
|
+
import { openBlock as n, createElementBlock as r, createElementVNode as e, createTextVNode as s, toDisplayString as l, Fragment as d, renderList as p } from "vue";
|
|
3
3
|
import "./UserProfilePage.vue2.mjs";
|
|
4
|
-
import
|
|
5
|
-
const
|
|
4
|
+
import m from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
+
const u = {
|
|
6
6
|
name: "DataProviderInterface-UserProfile",
|
|
7
7
|
props: [],
|
|
8
8
|
data() {
|
|
@@ -11,38 +11,54 @@ const d = {
|
|
|
11
11
|
};
|
|
12
12
|
},
|
|
13
13
|
computed: {
|
|
14
|
-
...
|
|
15
|
-
"getUserName"
|
|
14
|
+
...i("auth", [
|
|
15
|
+
"getUserName",
|
|
16
|
+
"getUserData"
|
|
16
17
|
])
|
|
17
18
|
},
|
|
18
19
|
methods: {},
|
|
19
20
|
created() {
|
|
20
21
|
}
|
|
21
|
-
},
|
|
22
|
-
function
|
|
23
|
-
return
|
|
24
|
-
t[
|
|
25
|
-
t[
|
|
26
|
-
e("div",
|
|
27
|
-
e("div",
|
|
28
|
-
e("div",
|
|
29
|
-
t[
|
|
30
|
-
t[
|
|
31
|
-
t[
|
|
32
|
-
e("div",
|
|
33
|
-
e("table",
|
|
22
|
+
}, f = { class: "d-flex flex-column bg-transparent container-fluid justify-content-between content" }, g = { class: "panel-body inf-content" }, y = { class: "row" }, b = { class: "col-md-12" }, v = { class: "table-responsive" }, x = { class: "table table-user-information" }, c = { class: "text-primary" }, U = { class: "text-primary" };
|
|
23
|
+
function N(o, t, P, D, _, $) {
|
|
24
|
+
return n(), r("div", f, [
|
|
25
|
+
t[8] || (t[8] = e("h1", { class: "small-headline" }, "My Profile", -1)),
|
|
26
|
+
t[9] || (t[9] = s()),
|
|
27
|
+
e("div", g, [
|
|
28
|
+
e("div", y, [
|
|
29
|
+
e("div", b, [
|
|
30
|
+
t[5] || (t[5] = e("strong", { class: "table-header" }, "User Information", -1)),
|
|
31
|
+
t[6] || (t[6] = e("br", null, null, -1)),
|
|
32
|
+
t[7] || (t[7] = s()),
|
|
33
|
+
e("div", v, [
|
|
34
|
+
e("table", x, [
|
|
34
35
|
e("tbody", null, [
|
|
35
36
|
e("tr", null, [
|
|
36
37
|
t[0] || (t[0] = e("td", null, [
|
|
37
38
|
e("strong", null, [
|
|
38
39
|
e("span", { class: "glyphicon glyphicon-user text-primary" }),
|
|
39
40
|
s(`
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
Name:
|
|
42
|
+
`)
|
|
42
43
|
])
|
|
43
44
|
], -1)),
|
|
44
45
|
t[1] || (t[1] = s()),
|
|
45
|
-
e("td",
|
|
46
|
+
e("td", c, l(o.getUserName), 1)
|
|
47
|
+
]),
|
|
48
|
+
t[4] || (t[4] = s()),
|
|
49
|
+
e("tr", null, [
|
|
50
|
+
t[2] || (t[2] = e("td", null, [
|
|
51
|
+
e("strong", null, [
|
|
52
|
+
e("span", { class: "glyphicon glyphicon-user text-primary" }),
|
|
53
|
+
s(`
|
|
54
|
+
Roles:
|
|
55
|
+
`)
|
|
56
|
+
])
|
|
57
|
+
], -1)),
|
|
58
|
+
t[3] || (t[3] = s()),
|
|
59
|
+
e("td", U, [
|
|
60
|
+
(n(!0), r(d, null, p(o.getUserData.roles, (a) => (n(), r("p", null, l(a), 1))), 256))
|
|
61
|
+
])
|
|
46
62
|
])
|
|
47
63
|
])
|
|
48
64
|
])
|
|
@@ -52,8 +68,8 @@ function v(o, t, y, _, x, N) {
|
|
|
52
68
|
])
|
|
53
69
|
]);
|
|
54
70
|
}
|
|
55
|
-
const
|
|
71
|
+
const E = /* @__PURE__ */ m(u, [["render", N], ["__scopeId", "data-v-aecff259"]]);
|
|
56
72
|
export {
|
|
57
|
-
|
|
73
|
+
E as default
|
|
58
74
|
};
|
|
59
75
|
//# sourceMappingURL=UserProfilePage.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserProfilePage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserProfilePage.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content\">\n <h1 class=\"small-headline\">My Profile</h1>\n <div class=\"panel-body inf-content\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <strong class=\"table-header\">User Information</strong><br>\n <div class=\"table-responsive\">\n
|
|
1
|
+
{"version":3,"file":"UserProfilePage.vue.mjs","sources":["../../../lib/data-provider-interface/views/UserProfilePage.vue"],"sourcesContent":["<template>\n <div class=\"d-flex flex-column bg-transparent container-fluid justify-content-between content\">\n <h1 class=\"small-headline\">My Profile</h1>\n <div class=\"panel-body inf-content\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <strong class=\"table-header\">User Information</strong><br>\n <div class=\"table-responsive\">\n <table class=\"table table-user-information\">\n <tbody>\n <tr>\n <td>\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n Name:\n </strong>\n </td>\n <td class=\"text-primary\">\n {{ getUserName }}\n </td>\n\n </tr>\n <tr>\n <td>\n <strong>\n <span class=\"glyphicon glyphicon-user text-primary\"></span>\n Roles:\n </strong>\n </td>\n <td class=\"text-primary\">\n <p v-for=\"i in getUserData['roles']\">\n {{ i }}\n </p>\n </td>\n\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'DataProviderInterface-UserProfile',\n props: [],\n data() {\n return {\n values: {},\n };\n },\n computed: {\n ...mapGetters('auth', [\n 'getUserName',\n 'getUserData'\n ]),\n },\n methods: {},\n created() { },\n};\n</script>\n\n<style scoped>\n.inf-content {\n border: 1px solid #DDDDDD;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n border-radius: 10px;\n box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3);\n}\n\n.table-header {\n padding: 0.75rem;\n}\n</style>\n"],"names":["_sfc_main","mapGetters","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_openBlock","_createElementBlock","_cache","_createElementVNode","_createTextVNode","_toDisplayString","_ctx","_Fragment","_renderList","i"],"mappings":";;;;AAgDA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAE;AAAA,EACT,OAAO;AACL,WAAO;AAAA,MACL,QAAQ,CAAE;AAAA;EAEb;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EACD,SAAS,CAAE;AAAA,EACX,UAAU;AAAA,EAAG;AACf,GA/DOC,IAAA,EAAA,OAAM,oFAAmF,GAEvFC,IAAA,EAAA,OAAM,yBAAwB,GAC5BC,IAAA,EAAA,OAAM,MAAK,GACTC,IAAA,EAAA,OAAM,YAAW,GAEfC,IAAA,EAAA,OAAM,mBAAkB,GACpBC,IAAA,EAAA,OAAM,+BAA8B,GASjCC,IAAA,EAAA,OAAM,eAAc,GAYpBC,IAAA,EAAA,OAAM,eAAc;;AA5BxC,SAAAC,EAAA,GAAAC,EAyCM,OAzCNT,GAyCM;AAAA,IAxCJU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAA0C,MAAtC,EAAA,OAAM,iBAAgB,GAAC,cAAU,EAAA;AAAA,IAFzCD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAA;AAAA,IAGID,EAsCM,OAtCNV,GAsCM;AAAA,MArCJU,EAoCM,OApCNT,GAoCM;AAAA,QAnCJS,EAkCM,OAlCNR,GAkCM;AAAA,UAjCJO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAsD,UAA9C,EAAA,OAAM,eAAc,GAAC,oBAAgB,EAAA;AAAA,0BAASA,EAAI,MAAA,MAAA,MAAA,EAAA;AAAA,UANpED,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAA;AAAA,UAOUD,EA+BM,OA/BNP,GA+BM;AAAA,YA9BJO,EA6BQ,SA7BRN,GA6BQ;AAAA,cA5BNM,EA2BQ,SAAA,MAAA;AAAA,gBA1BNA,EAWK,MAAA,MAAA;AAAA,kCAVHA,EAKK,MAAA,MAAA;AAAA,oBAJHA,EAGS,UAAA,MAAA;AAAA,sBAFPA,EAA2D,QAAA,EAArD,OAAM,wCAAuC,CAAA;AAAA,sBAbzEC,EAaiF;AAAA;AAAA,qBAE7D;AAAA;;kBAfpBF,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAA;AAAA,kBAiBkBD,EAEK,MAFLL,GAEKO,EADAC,EAAW,WAAA,GAAA,CAAA;AAAA;gBAlBlCJ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAA;AAAA,gBAsBgBD,EAaK,MAAA,MAAA;AAAA,kCAZHA,EAKK,MAAA,MAAA;AAAA,oBAJHA,EAGS,UAAA,MAAA;AAAA,sBAFPA,EAA2D,QAAA,EAArD,OAAM,wCAAuC,CAAA;AAAA,sBAzBzEC,EAyBiF;AAAA;AAAA,qBAE7D;AAAA;;kBA3BpBF,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAA;AAAA,kBA6BkBD,EAIK,MAJLJ,GAIK;AAAA,qBAHHC,EAAA,EAAA,GAAAC,EAEIM,GAhCxB,MAAAC,EA8BmCF,EAAW,YAAA,OA9B9C,CA8B8BG,OAAVT,EAAA,GAAAC,EAEI,aADCQ,CAAC,GAAA,CAAA;;;;;;;;;;;;"}
|
|
@@ -48,6 +48,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
48
48
|
previewedDistDownloadUrl: string;
|
|
49
49
|
previewedDistFormat: string;
|
|
50
50
|
selectedDistribution: null;
|
|
51
|
+
showVisualisation: any;
|
|
51
52
|
}, {
|
|
52
53
|
getCatalog: import('vuex').Computed;
|
|
53
54
|
getLanguages: import('vuex').Computed;
|