@piveau/piveau-hub-ui-modules 4.3.2 → 4.3.3
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.mjs +37 -36
- package/dist/data-provider-interface/DPIMenu.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs +149 -135
- package/dist/data-provider-interface/components/AutocompleteInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/ConditionalInput.vue.mjs +152 -140
- 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/Dropup.vue.mjs +17 -17
- package/dist/data-provider-interface/components/Dropup.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Dropup.vue2.mjs +2 -2
- package/dist/data-provider-interface/components/FileUpload.vue.d.ts +5 -2
- package/dist/data-provider-interface/components/FileUpload.vue.mjs +119 -117
- package/dist/data-provider-interface/components/FileUpload.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/Navigation.vue.mjs +69 -69
- package/dist/data-provider-interface/components/Navigation.vue.mjs.map +1 -1
- package/dist/data-provider-interface/components/SimpleInput.vue.mjs +19 -14
- 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 +90 -94
- 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 +41 -30
- package/dist/data-provider-interface/components/UniqueIdentifierInput.vue.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs +81 -78
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapdeODB/format-types.mjs +3 -272
- package/dist/data-provider-interface/config/dcatapdeODB/format-types.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapdeODB/input-definition.d.ts +4 -15
- package/dist/data-provider-interface/config/dcatapdeODB/input-definition.mjs +13 -2081
- package/dist/data-provider-interface/config/dcatapdeODB/input-definition.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapdeODB/page-content-config.mjs +3 -21
- package/dist/data-provider-interface/config/dcatapdeODB/page-content-config.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapdeODB/prefixes.mjs +3 -24
- package/dist/data-provider-interface/config/dcatapdeODB/prefixes.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapdeODB/vocab-prefixes.mjs +3 -31
- package/dist/data-provider-interface/config/dcatapdeODB/vocab-prefixes.mjs.map +1 -1
- package/dist/data-provider-interface/config/dpi-spec-config.mjs +8 -8
- package/dist/data-provider-interface/config/dpi-spec-config.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.mjs +127 -138
- package/dist/data-provider-interface/views/DraftsPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/InputPage.vue.mjs +68 -68
- package/dist/data-provider-interface/views/InputPage.vue.mjs.map +1 -1
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs +31 -31
- package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
- package/dist/form/Repeatable.vue.mjs +37 -37
- package/dist/form/Repeatable.vue.mjs.map +1 -1
- package/dist/modal/AppConfirmationDialog.vue.d.ts +3 -1
- package/dist/modal/AppConfirmationDialog.vue.mjs +45 -39
- package/dist/modal/AppConfirmationDialog.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/package.json +1 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { isNil as
|
|
3
|
-
import { mapGetters as I, mapActions as
|
|
4
|
-
import { useWindowScroll as
|
|
5
|
-
import
|
|
6
|
-
import { getCurrentInstance as
|
|
1
|
+
import k from "jquery";
|
|
2
|
+
import { isNil as S } from "lodash-es";
|
|
3
|
+
import { mapGetters as I, mapActions as D } from "vuex";
|
|
4
|
+
import { useWindowScroll as E } from "../../external/@vueuse/core/index";
|
|
5
|
+
import _ from "axios";
|
|
6
|
+
import { getCurrentInstance as w, resolveComponent as $, openBlock as r, createElementBlock as g, createElementVNode as v, createBlock as p, createCommentVNode as n, createTextVNode as o, createVNode as C, withCtx as f, toDisplayString as y } from "vue";
|
|
7
|
+
import "vue-i18n";
|
|
7
8
|
import "./Navigation.vue2.mjs";
|
|
8
9
|
import T from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
9
|
-
const
|
|
10
|
+
const q = {
|
|
10
11
|
name: "Navigation",
|
|
11
12
|
props: ["steps", "nextStep", "previousStep", "goToNextStep", "goToPreviousStep"],
|
|
12
13
|
data() {
|
|
13
14
|
return {
|
|
14
|
-
instance:
|
|
15
|
+
instance: w().appContext.app.config.globalProperties.$env,
|
|
15
16
|
uploading: {
|
|
16
17
|
dataset: !1,
|
|
17
18
|
draft: !1
|
|
@@ -28,15 +29,10 @@ const N = {
|
|
|
28
29
|
callback: this.closeModal
|
|
29
30
|
},
|
|
30
31
|
clear: {
|
|
31
|
-
confirm: "
|
|
32
|
-
message: "
|
|
32
|
+
confirm: "",
|
|
33
|
+
message: "",
|
|
33
34
|
callback: this.clearStorage
|
|
34
35
|
}
|
|
35
|
-
// deleteDistribution: {
|
|
36
|
-
// confirm: 'Delete Distribution',
|
|
37
|
-
// message: 'Are you sure you want to delete the distribution? The whole content will be deleted permanently!',
|
|
38
|
-
// callback: this.deleteCurrentDistribution,
|
|
39
|
-
// }
|
|
40
36
|
},
|
|
41
37
|
property: this.$route.params.property,
|
|
42
38
|
id: this.$route.params.id
|
|
@@ -45,7 +41,7 @@ const N = {
|
|
|
45
41
|
setup() {
|
|
46
42
|
return {
|
|
47
43
|
scrollToTop: () => {
|
|
48
|
-
let { x: a, y: s } =
|
|
44
|
+
let { x: a, y: s } = E({ behavior: "smooth" });
|
|
49
45
|
s.value = 0;
|
|
50
46
|
}
|
|
51
47
|
};
|
|
@@ -66,28 +62,31 @@ const N = {
|
|
|
66
62
|
}), t > 0;
|
|
67
63
|
}
|
|
68
64
|
},
|
|
65
|
+
created() {
|
|
66
|
+
this.$i18n.locale = this.$route.query.locale, this.modals.clear.message = this.$t("message.dataupload.modal.resetForm"), this.modals.clear.confirm = this.$t("message.dataupload.modal.confirmReset");
|
|
67
|
+
},
|
|
69
68
|
methods: {
|
|
70
|
-
...
|
|
69
|
+
...D("auth", [
|
|
71
70
|
"setIsEditMode",
|
|
72
71
|
"setIsDraft"
|
|
73
72
|
]),
|
|
74
|
-
...
|
|
73
|
+
...D("snackbar", [
|
|
75
74
|
"showSnackbar"
|
|
76
75
|
]),
|
|
77
|
-
...
|
|
76
|
+
...D("dpiStore", [
|
|
78
77
|
"convertToRDF",
|
|
79
78
|
"clearAll"
|
|
80
79
|
// 'deleteDistribution',
|
|
81
80
|
// 'setDeleteDistributionInline',
|
|
82
81
|
]),
|
|
83
82
|
closeModal() {
|
|
84
|
-
|
|
83
|
+
k("#modal").modal("hide");
|
|
85
84
|
},
|
|
86
85
|
handleIDError() {
|
|
87
|
-
this.modal = this.modals.id,
|
|
86
|
+
this.modal = this.modals.id, k("#modal").modal({ show: !0 });
|
|
88
87
|
},
|
|
89
88
|
handleClear() {
|
|
90
|
-
this.modal = this.modals.clear,
|
|
89
|
+
this.modal = this.modals.clear, k("#modal").modal({ show: !0 });
|
|
91
90
|
},
|
|
92
91
|
clearStorage() {
|
|
93
92
|
this.closeModal(), this.$formkit.reset("dpiForm"), this.clearAll();
|
|
@@ -95,44 +94,44 @@ const N = {
|
|
|
95
94
|
async submit(t) {
|
|
96
95
|
this.uploading[t] = !0, this.$Progress.start();
|
|
97
96
|
const a = this.$env.content.dataProviderInterface.specification, s = await this.convertToRDF({ property: this.property, specification: a }).then((b) => b), h = this.getUserData.rtpToken, e = this.getData(this.property).datasetID, i = this.getData(this.property)["dct:title"], l = this.getData(this.property)["dct:description"], d = this.getData(this.property)["dcat:catalog"] ? this.getData(this.property)["dcat:catalog"] : "";
|
|
98
|
-
let c, u,
|
|
97
|
+
let c, u, m = {
|
|
99
98
|
id: e,
|
|
100
99
|
catalog: d,
|
|
101
100
|
body: s,
|
|
102
101
|
title: i,
|
|
103
102
|
description: l
|
|
104
103
|
};
|
|
105
|
-
t === "dataset" ? !this.getIsEditMode || this.getIsEditMode && !this.getIsDraft || this.getIsEditMode && this.getIsDraft && localStorage.getItem("dpi_duplicate") ? (c = `${this.$env.api.hubUrl}datasets?id=${e}&catalogue=${d}`,
|
|
104
|
+
t === "dataset" ? !this.getIsEditMode || this.getIsEditMode && !this.getIsDraft || this.getIsEditMode && this.getIsDraft && localStorage.getItem("dpi_duplicate") ? (c = `${this.$env.api.hubUrl}datasets?id=${e}&catalogue=${d}`, m = { data: s, token: h, url: c }, u = "auth/createDataset") : (m = { id: e, catalog: d }, u = "auth/publishUserDraftById") : t === "draft" ? !this.getIsEditMode || this.getIsEditMode && this.getIsDraft ? (c = `${this.$env.api.hubUrl}drafts/datasets/${e}?catalogue=${d}`, u = "auth/createUserDraft") : (m = { id: e, catalog: d, title: i, description: l }, u = "auth/putDatasetToDraft") : t === "createcatalogue" && (c = `${this.$env.api.hubUrl}catalogues/${e}`, m = { data: s, token: h, url: c, id: e }, u = "auth/createCatalogue");
|
|
106
105
|
try {
|
|
107
|
-
this.idunique(e) ? (await this.$store.dispatch(u,
|
|
106
|
+
this.idunique(e) ? (await this.$store.dispatch(u, m), this.$Progress.finish(), this.uploading = !1, t === "createcatalogue" && this.createCatalogue(e), t === "dataset" && this.createDataset(e), t === "draft" && this.createDraft(), this.clearAll()) : (this.uploading[t] = !1, this.$Progress.fail(), this.handleIDError());
|
|
108
107
|
} catch {
|
|
109
108
|
this.uploading[t] = !1, this.$Progress.fail(), this.showSnackbar({ message: "Network Error", variant: "error" });
|
|
110
109
|
}
|
|
111
110
|
},
|
|
112
111
|
createDataset(t) {
|
|
113
|
-
this.clearAll(), this.showSnackbar({ message: "
|
|
112
|
+
this.clearAll(), this.showSnackbar({ message: this.$t("message.dataupload.snackBar.datasetPublished"), variant: "success" }), this.$router.push({ name: "DatasetDetailsDataset", params: { ds_id: t }, query: { locale: this.$route.query.locale } }).then(() => {
|
|
114
113
|
this.$router.go(0);
|
|
115
114
|
});
|
|
116
115
|
},
|
|
117
116
|
createDraft() {
|
|
118
|
-
this.clearAll(), this.showSnackbar({ message: "
|
|
117
|
+
this.clearAll(), this.showSnackbar({ message: this.$t("message.dataupload.snackBar.draftCreated"), variant: "success" }), this.$router.push({ name: "DataProviderInterface-Draft", query: { locale: this.$route.query.locale } }).catch(() => {
|
|
119
118
|
});
|
|
120
119
|
},
|
|
121
120
|
createCatalogue(t) {
|
|
122
|
-
this.clearAll(), this.showSnackbar({ message: "
|
|
121
|
+
this.clearAll(), this.showSnackbar({ message: this.$t("message.dataupload.snackBar.catalogPublished"), variant: "success" }), this.$router.push({ name: "CatalogueDetails", query: { locale: this.$route.query.locale }, params: { ctlg_id: t } }).catch(() => {
|
|
123
122
|
});
|
|
124
123
|
},
|
|
125
124
|
async idunique(t) {
|
|
126
125
|
let a = !0;
|
|
127
126
|
const s = this.$store.getters["auth/getUserDraftIds"];
|
|
128
127
|
return new Promise(() => {
|
|
129
|
-
if (
|
|
128
|
+
if (S(t) || t === "" || t === void 0)
|
|
130
129
|
a = !0;
|
|
131
130
|
else if (s.includes(t))
|
|
132
131
|
a = !1;
|
|
133
132
|
else {
|
|
134
133
|
const h = `${this.$env.api.hubUrl}datasets/${t}?useNormalizedId=true`;
|
|
135
|
-
|
|
134
|
+
_.head(h).then(() => {
|
|
136
135
|
a = !1;
|
|
137
136
|
}).catch((e) => {
|
|
138
137
|
a = !0;
|
|
@@ -141,71 +140,71 @@ const N = {
|
|
|
141
140
|
}), a;
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
|
-
},
|
|
143
|
+
}, N = {
|
|
145
144
|
id: "nav",
|
|
146
145
|
class: "d-flex"
|
|
147
|
-
},
|
|
146
|
+
}, P = { class: "left-form-nav w-25" }, U = { class: "right-form-nav w-75" }, M = {
|
|
148
147
|
key: 0,
|
|
149
148
|
class: "loading-spinner"
|
|
150
|
-
},
|
|
149
|
+
}, x = {
|
|
151
150
|
key: 0,
|
|
152
151
|
class: "loading-spinner"
|
|
153
|
-
},
|
|
152
|
+
}, A = {
|
|
154
153
|
key: 0,
|
|
155
154
|
class: "loading-spinner"
|
|
156
|
-
},
|
|
155
|
+
}, B = {
|
|
157
156
|
key: 0,
|
|
158
157
|
class: "loading-spinner"
|
|
159
158
|
};
|
|
160
|
-
function
|
|
161
|
-
const l =
|
|
162
|
-
return
|
|
163
|
-
v("div",
|
|
164
|
-
v("div",
|
|
165
|
-
s.previousStep ? (
|
|
159
|
+
function F(t, a, s, h, e, i) {
|
|
160
|
+
const l = $("FormKit"), d = $("app-confirmation-dialog");
|
|
161
|
+
return r(), g("div", null, [
|
|
162
|
+
v("div", N, [
|
|
163
|
+
v("div", P, [
|
|
164
|
+
s.previousStep ? (r(), p(l, {
|
|
166
165
|
key: 0,
|
|
167
166
|
type: "button",
|
|
168
167
|
label: t.$t("message.dataupload.preview"),
|
|
169
168
|
onClick: s.goToPreviousStep,
|
|
170
169
|
class: "prev-btn mx-1 my-0"
|
|
171
170
|
}, null, 8, ["label", "onClick"])) : n("", !0),
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
o(),
|
|
172
|
+
C(l, {
|
|
174
173
|
type: "button",
|
|
175
174
|
label: t.$t("message.dataupload.clear"),
|
|
176
175
|
onClick: i.handleClear,
|
|
177
176
|
class: "clear-btn"
|
|
178
177
|
}, null, 8, ["label", "onClick"])
|
|
179
178
|
]),
|
|
180
|
-
|
|
181
|
-
v("div",
|
|
182
|
-
!t.getIsEditMode && !t.getIsDraft && e.property === "catalogues" ? (
|
|
179
|
+
o(),
|
|
180
|
+
v("div", U, [
|
|
181
|
+
!t.getIsEditMode && !t.getIsDraft && e.property === "catalogues" ? (r(), p(l, {
|
|
183
182
|
key: 0,
|
|
184
183
|
type: "button",
|
|
185
184
|
onClick: a[0] || (a[0] = (c) => i.submit("createcatalogue")),
|
|
186
185
|
class: "mr-2"
|
|
187
186
|
}, {
|
|
188
187
|
default: f(() => [
|
|
189
|
-
e.uploading.createcatalogue ? (
|
|
190
|
-
|
|
188
|
+
e.uploading.createcatalogue ? (r(), g("span", M)) : n("", !0),
|
|
189
|
+
o(y(t.$t("message.dataupload.publishcatalogue")), 1)
|
|
191
190
|
]),
|
|
192
191
|
_: 1
|
|
193
192
|
})) : n("", !0),
|
|
194
|
-
|
|
195
|
-
t.getIsEditMode && !t.getIsDraft && e.property === "catalogues" ? (
|
|
193
|
+
o(),
|
|
194
|
+
t.getIsEditMode && !t.getIsDraft && e.property === "catalogues" ? (r(), p(l, {
|
|
196
195
|
key: 1,
|
|
197
196
|
type: "button",
|
|
198
197
|
onClick: a[1] || (a[1] = (c) => i.submit("createcatalogue")),
|
|
199
198
|
class: "mx-1 my-0"
|
|
200
199
|
}, {
|
|
201
200
|
default: f(() => [
|
|
202
|
-
e.uploading.createcatalogue ? (
|
|
203
|
-
|
|
201
|
+
e.uploading.createcatalogue ? (r(), g("span", x)) : n("", !0),
|
|
202
|
+
o(y(t.$t("message.dataupload.publishcatalogue")), 1)
|
|
204
203
|
]),
|
|
205
204
|
_: 1
|
|
206
205
|
})) : n("", !0),
|
|
207
|
-
|
|
208
|
-
e.property === "datasets" ? (
|
|
206
|
+
o(),
|
|
207
|
+
e.property === "datasets" ? (r(), p(l, {
|
|
209
208
|
key: 2,
|
|
210
209
|
type: "button",
|
|
211
210
|
onClick: a[2] || (a[2] = (c) => i.submit("dataset")),
|
|
@@ -213,13 +212,13 @@ function B(t, a, s, h, e, i) {
|
|
|
213
212
|
class: "mx-1 my-0"
|
|
214
213
|
}, {
|
|
215
214
|
default: f(() => [
|
|
216
|
-
e.uploading.dataset ? (
|
|
217
|
-
|
|
215
|
+
e.uploading.dataset ? (r(), g("span", A)) : n("", !0),
|
|
216
|
+
o(y(t.$t("message.dataupload.publishdataset")), 1)
|
|
218
217
|
]),
|
|
219
218
|
_: 1
|
|
220
219
|
}, 8, ["disabled"])) : n("", !0),
|
|
221
|
-
|
|
222
|
-
e.property === "datasets" ? (
|
|
220
|
+
o(),
|
|
221
|
+
e.property === "datasets" ? (r(), p(l, {
|
|
223
222
|
key: 3,
|
|
224
223
|
type: "button",
|
|
225
224
|
onClick: a[3] || (a[3] = (c) => i.submit("draft")),
|
|
@@ -227,13 +226,13 @@ function B(t, a, s, h, e, i) {
|
|
|
227
226
|
class: "mx-1 my-0"
|
|
228
227
|
}, {
|
|
229
228
|
default: f(() => [
|
|
230
|
-
e.uploading.draft ? (
|
|
231
|
-
|
|
229
|
+
e.uploading.draft ? (r(), g("span", B)) : n("", !0),
|
|
230
|
+
o(y(t.$t("message.dataupload.saveasdraft")), 1)
|
|
232
231
|
]),
|
|
233
232
|
_: 1
|
|
234
233
|
}, 8, ["disabled"])) : n("", !0),
|
|
235
|
-
|
|
236
|
-
s.nextStep ? (
|
|
234
|
+
o(),
|
|
235
|
+
s.nextStep ? (r(), p(l, {
|
|
237
236
|
key: 4,
|
|
238
237
|
type: "button",
|
|
239
238
|
label: t.$t("message.dataupload.next"),
|
|
@@ -241,21 +240,22 @@ function B(t, a, s, h, e, i) {
|
|
|
241
240
|
}, null, 8, ["label", "onClick"])) : n("", !0)
|
|
242
241
|
])
|
|
243
242
|
]),
|
|
244
|
-
|
|
245
|
-
|
|
243
|
+
o(),
|
|
244
|
+
C(d, {
|
|
246
245
|
id: "modal",
|
|
247
246
|
confirm: e.modal.confirm,
|
|
248
|
-
onConfirm: e.modal.callback
|
|
247
|
+
onConfirm: e.modal.callback,
|
|
248
|
+
close: e.modal.confirm
|
|
249
249
|
}, {
|
|
250
250
|
default: f(() => [
|
|
251
|
-
|
|
251
|
+
o(y(e.modal.message), 1)
|
|
252
252
|
]),
|
|
253
253
|
_: 1
|
|
254
|
-
}, 8, ["confirm", "onConfirm"])
|
|
254
|
+
}, 8, ["confirm", "onConfirm", "close"])
|
|
255
255
|
]);
|
|
256
256
|
}
|
|
257
|
-
const
|
|
257
|
+
const J = /* @__PURE__ */ T(q, [["render", F]]);
|
|
258
258
|
export {
|
|
259
|
-
|
|
259
|
+
J as default
|
|
260
260
|
};
|
|
261
261
|
//# sourceMappingURL=Navigation.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: 'Clear form',\n message: 'Are your sure you want to clear the form? BE AWARE: this can not be reverted and all of your Data is lost!',\n callback: this.clearStorage,\n },\n // deleteDistribution: {\n // confirm: 'Delete Distribution',\n // message: 'Are you sure you want to delete the distribution? The whole content will be deleted permanently!',\n // callback: this.deleteCurrentDistribution,\n // }\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n }\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogName = this.getData(this.property)['dcat:catalog'] ? this.getData(this.property)['dcat:catalog'] : '';\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogName,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogName}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n } else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogName };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogName}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogName, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress.finish();\n this.uploading = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.handleIDError();\n }\n } catch (err) {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: 'Dataset published successfully', variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: 'Draft saved successfully', variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: 'Catalogue saved successfully', variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogName","uploadUrl","actionName","actionParams","id","isUniqueID","draftIDs","isNil","request","axios","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_createTextVNode","_createVNode","$options","$data","_withCtx","_openBlock","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog"],"mappings":";;;;;;;;AAgEA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAC,SAAS,YAAY,gBAAgB,gBAAgB,kBAAkB;AAAA,EAC/E,OAAO;AACL,WAAO;AAAA,MACL,UAAUC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAAA,MACtE,WAAW;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACR;AAAA,MACD,OAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,UAAU;AAAA,MACX;AAAA,MACD,QAAQ;AAAA,QACN,IAAI;AAAA,UACF,SAAS;AAAA,UACT,SAAS;AAAA,UACT,UAAU,KAAK;AAAA,QAChB;AAAA,QACD,OAAO;AAAA,UACL,SAAS;AAAA,UACT,SAAS;AAAA,UACT,UAAU,KAAK;AAAA,QAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMF;AAAA,MACD,UAAU,KAAK,OAAO,OAAO;AAAA,MAC7B,IAAI,KAAK,OAAO,OAAO;AAAA;EAE1B;AAAA,EACD,QAAQ;AAMN,WAAO;AAAA,MACL,aANkB,MAAM;AACxB,YAAI,EAAE,GAAAC,GAAG,GAAAC,MAAMC,EAAgB,EAAE,UAAU,UAAU;AACrD,QAAAD,EAAE,QAAQ;AAAA,MAEZ;AAAA,IAGA;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGE,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,iBAAiB;AACf,UAAIC,IAAa;AACjB,oBAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAAC,MAAO;AACrC,QAAAD,IAAaA,IAAa,KAAK,MAAMC,CAAG,EAAE;AAAA,OAC3C,GAEMD,IAAa;AAAA,IACtB;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,GAAGE,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,MACA;AAAA;AAAA;AAAA,IAGF,CAAC;AAAA,IACD,aAAa;AACX,MAAAC,EAAE,QAAQ,EAAE,MAAM,MAAM;AAAA,IACzB;AAAA,IACD,gBAAgB;AACd,WAAK,QAAQ,KAAK,OAAO,IACzBA,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAK,CAAC;AAAA,IACjC;AAAA,IACD,cAAc;AACZ,WAAK,QAAQ,KAAK,OAAO,OACzBA,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAK,CAAC;AAAA,IACjC;AAAA,IACD,eAAe;AACb,WAAK,WAAU,GACf,KAAK,SAAS,MAAM,SAAS,GAC7B,KAAK,SAAQ;AAAA,IACd;AAAA,IACD,MAAM,OAAOC,GAAM;AACjB,WAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU;AAEf,YAAMC,IAAgB,KAAK,KAAK,QAAQ,sBAAsB,eACxDC,IAAU,MAAM,KAAK,aAAa,EAAE,UAAU,KAAK,UAAU,eAAeD,EAAe,CAAA,EAAE,KAAK,CAACE,MAAsBA,CAAW,GACpIC,IAAW,KAAK,YAAY,UAE5BC,IAAY,KAAK,QAAQ,KAAK,QAAQ,EAAE,WACxCC,IAAQ,KAAK,QAAQ,KAAK,QAAQ,EAAE,WAAW,GAC/CC,IAAc,KAAK,QAAQ,KAAK,QAAQ,EAAE,iBAAiB,GAC3DC,IAAc,KAAK,QAAQ,KAAK,QAAQ,EAAE,cAAc,IAAI,KAAK,QAAQ,KAAK,QAAQ,EAAE,cAAc,IAAI;AAEhH,UAAIC,GACAC,GACAC,IAAe;AAAA,QACjB,IAAIN;AAAA,QACJ,SAASG;AAAA,QACT,MAAMN;AAAA,QACN,OAAAI;AAAA,QACA,aAAAC;AAAA;AAGF,MAAIP,MAAS,YAGP,CAAC,KAAK,iBAAkB,KAAK,iBAAiB,CAAC,KAAK,cAAgB,KAAK,iBAAiB,KAAK,cAAc,aAAa,QAAQ,eAAe,KACnJS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,eAAeJ,CAAS,cAAcG,CAAW,IACpFG,IAAe,EAAE,MAAMT,GAAS,OAAOE,GAAU,KAAKK,KACtDC,IAAa,yBAGbC,IAAe,EAAE,IAAIN,GAAW,SAASG,EAAU,GACnDE,IAAa,+BAGNV,MAAS,UAGd,CAAC,KAAK,iBAAkB,KAAK,iBAAiB,KAAK,cACrDS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,mBAAmBJ,CAAS,cAAcG,CAAW,IACxFE,IAAa,2BAGbC,IAAe,EAAE,IAAIN,GAAW,SAASG,GAAa,OAAAF,GAAO,aAAAC,KAC7DG,IAAa,4BAGNV,MAAS,sBAClBS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,cAAcJ,CAAS,IAC1DM,IAAe,EAAE,MAAMT,GAAS,OAAOE,GAAU,KAAKK,GAAW,IAAIJ,KACrEK,IAAa;AAGf,UAAI;AAKF,QAFmB,KAAK,SAASL,CAAS,KAGxC,MAAM,KAAK,OAAO,SAASK,GAAYC,CAAY,GAGnD,KAAK,UAAU,UACf,KAAK,YAAY,IAEbX,MAAS,qBAAmB,KAAK,gBAAgBK,CAAS,GAC1DL,MAAS,aAAW,KAAK,cAAcK,CAAS,GAChDL,MAAS,WAAS,KAAK,YAAW,GAGtC,KAAK,SAAQ,MAGb,KAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU,QACf,KAAK,cAAa;AAAA,MAEpB,QAAY;AACZ,aAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU,QACf,KAAK,aAAa,EAAE,SAAS,iBAAiB,SAAS,QAAQ,CAAC;AAAA,MAClE;AAAA,IACD;AAAA,IACD,cAAcK,GAAW;AACvB,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,kCAAkC,SAAS,UAAQ,CAAG,GAEnF,KAAK,QACF,KAAK,EAAE,MAAM,yBAAyB,QAAQ,EAAE,OAAOA,EAAQ,GAAK,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAO,GAAG,EACjH,KAAK,MAAM;AAAE,aAAK,QAAQ,GAAG,CAAC;AAAA,OAAG;AAAA,IACrC;AAAA,IACD,cAAc;AACZ,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,4BAA4B,SAAS,UAAQ,CAAG,GAC7E,KAAK,QAAQ,KAAK,EAAE,MAAM,+BAA+B,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAS,EAAA,CAAC,EAAE,MAAM,MAAM;AAAA,MAAA,CAAG;AAAA,IACxH;AAAA,IACD,gBAAgBA,GAAW;AACzB,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,gCAAgC,SAAS,UAAQ,CAAG,GACjF,KAAK,QAAQ,KAAK,EAAE,MAAM,oBAAoB,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAQ,GAAE,QAAQ,EAAE,SAASA,EAAY,EAAA,CAAC,EAAE,MAAM,MAAM;AAAA,MAAA,CAAG;AAAA,IAC7I;AAAA,IACD,MAAM,SAASO,GAAI;AACjB,UAAIC,IAAa;AAEjB,YAAMC,IAAW,KAAK,OAAO,QAAQ,sBAAsB;AAE3D,iBAAI,QAAQ,MAAM;AAChB,YAAIC,EAAMH,CAAE,KAAKA,MAAO,MAAMA,MAAO;AAAW,UAAAC,IAAa;AAAA,iBACpDC,EAAS,SAASF,CAAE;AAAG,UAAAC,IAAa;AAAA,aACxC;AACH,gBAAMG,IAAU,GAAG,KAAK,KAAK,IAAI,MAAM,YAAYJ,CAAE;AACrD,UAAAK,EAAM,KAAKD,CAAO,EACf,KAAK,MAAM;AACV,YAAAH,IAAa;AAAA,WACd,EACA,MAAM,CAAC,MAAM;AACZ,YAAAA,IAAa;AAAA,UACf,CAAC;AAAA,QACL;AAAA,MACF,CAAC,GACMA;AAAA,IACT;AAAA,EACD;AACH;EAxRS,IAAG;AAAA,EAAM,OAAM;GACbK,IAAA,EAAA,OAAM,qBAAoB,GAQ1BC,IAAA,EAAA,OAAM,sBAAqB;EAXtC,KAAA;AAAA,EAoBiD,OAAM;;EApBvD,KAAA;AAAA,EA2BiD,OAAM;;EA3BvD,KAAA;AAAA,EAkCyC,OAAM;;EAlC/C,KAAA;AAAA,EAwCuC,OAAM;;;;cAvC3CC,EAkDM,OAAA,MAAA;AAAA,IAjDJC,EA4CM,OA5CNC,GA4CM;AAAA,MA3CJD,EAOM,OAPNH,GAOM;AAAA,QAL6FK,EAAY,qBAA7GC,EACuCC,GAAA;AAAA,UAN/C,KAAA;AAAA,UAKiB,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,4BAAA;AAAA,UAAiC,SAAOH,EAAgB;AAAA,UACvF,OAAM;AAAA,6CANhBI,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QASQC,EAAgHJ,GAAA;AAAA,UAAvG,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,0BAAA;AAAA,UAA+B,SAAOI,EAAW;AAAA,UAAE,OAAM;AAAA;;MATlGF,EAAA;AAAA,MAWMP,EAkCM,OAlCNF,GAkCM;AAAA,SA1BKO,EAAa,iBAAA,CAAKA,EAAU,cAAIK,EAAQ,aAAA,qBADjDP,EAIUC,GAAA;AAAA,UAtBlB,KAAA;AAAA,UAkBiB,MAAK;AAAA,UAAU,gCAAOK,EAAM,OAAA,iBAAA;AAAA,UAC+B,OAAM;AAAA;UAnBlF,SAAAE,EAoBU,MAAsE;AAAA,YAA1DD,EAAA,UAAU,mBAAtBE,KAAAb,EAAsE,QAAtEc,CAAsE,KApBhFP,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAqBYT,EAAE,GAAA,qCAAA,CAAA,GAAA,CAAA;AAAA;UArBd,GAAA;AAAA,cAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QA0BgBF,EAAa,iBAAA,CAAKA,EAAU,cAAIK,EAAQ,aAAA,qBADhDP,EAIUC,GAAA;AAAA,UA7BlB,KAAA;AAAA,UAyBiB,MAAK;AAAA,UAAU,gCAAOK,EAAM,OAAA,iBAAA;AAAA,UAC8B,OAAM;AAAA;UA1BjF,SAAAE,EA2BU,MAAsE;AAAA,YAA1DD,EAAA,UAAU,mBAAtBE,KAAAb,EAAsE,QAAtEgB,CAAsE,KA3BhFT,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EA4BYT,EAAE,GAAA,qCAAA,CAAA,GAAA,CAAA;AAAA;UA5Bd,GAAA;AAAA,cAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QAgCqCG,EAAQ,aAAA,mBAArCP,EAGUC,GAAA;AAAA,UAnClB,KAAA;AAAA,UAgCiB,MAAK;AAAA,UAAyC,gCAAOK,EAAM,OAAA,SAAA;AAAA,UAAc,UAAUA,EAAc;AAAA,UACxG,OAAM;AAAA;UAjChB,SAAAE,EAkCU,MAA8D;AAAA,YAAlDD,EAAA,UAAU,WAAtBE,KAAAb,EAA8D,QAA9DiB,CAA8D,KAlCxEV,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAkC2ET,EAAE,GAAA,mCAAA,CAAA,GAAA,CAAA;AAAA;UAlC7E,GAAA;AAAA,+BAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QAsCqCG,EAAQ,aAAA,mBAArCP,EAGUC,GAAA;AAAA,UAzClB,KAAA;AAAA,UAsCiB,MAAK;AAAA,UAAyC,gCAAOK,EAAM,OAAA,OAAA;AAAA,UAAY,UAAUA,EAAc;AAAA,UACtG,OAAM;AAAA;UAvChB,SAAAE,EAwCU,MAA4D;AAAA,YAAhDD,EAAA,UAAU,SAAtBE,KAAAb,EAA4D,QAA5DkB,CAA4D,KAxCtEX,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAwCyET,EAAE,GAAA,gCAAA,CAAA,GAAA,CAAA;AAAA;UAxC3E,GAAA;AAAA,+BAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QA4CkGL,EAAQ,iBAAlGC,EAA8GC,GAAA;AAAA,UA5CtH,KAAA;AAAA,UA4CiB,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,yBAAA;AAAA,UAA8B,SAAOH,EAAY;AAAA,6CA5C1FI,EAAA,IAAA,EAAA;AAAA;;IAAAC,EAAA;AAAA,IAgDIC,EAE0BU,GAAA;AAAA,MAFD,IAAG;AAAA,MAAS,SAASR,EAAK,MAAC;AAAA,MAAU,WAASA,EAAK,MAAC;AAAA;MAhDjF,SAAAC,EAiDM,MAAmB;AAAA,QAjDzBJ,EAiDSO,EAAAJ,EAAA,MAAM,OAAO,GAAA,CAAA;AAAA;MAjDtB,GAAA;AAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Navigation.vue.mjs","sources":["../../../lib/data-provider-interface/components/Navigation.vue"],"sourcesContent":["<template>\n <div>\n <div id=\"nav\" class=\"d-flex \">\n <div class=\"left-form-nav w-25\">\n <!-- PREVIOUS STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.preview')\" @click=\"goToPreviousStep\" v-if=\"previousStep\"\n class=\"prev-btn mx-1 my-0\"></FormKit>\n\n <!-- CLEAR FORM -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.clear')\" @click=\"handleClear\" class=\"clear-btn\"></FormKit>\n </div>\n <div class=\"right-form-nav w-75\">\n\n <!-- DELETE DISTRIBUTION -->\n <!-- <FormKit type=\"button\" label=\"Delete Distribution\" @click=\"handleDeleteDistribution()\"\n v-if=\"isDistribution\" class=\"mx-1 my-0 delDisBtn\"></FormKit> -->\n\n <!-- PUBLISH NEW CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"!getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mr-2\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH EDITED CATALOGUE -->\n <FormKit type=\"button\" @click=\"submit('createcatalogue')\"\n v-if=\"getIsEditMode && !getIsDraft && property === 'catalogues'\" class=\"mx-1 my-0\">\n <span v-if=\"uploading.createcatalogue\" class=\"loading-spinner\"></span>{{\n $t('message.dataupload.publishcatalogue') }}\n </FormKit>\n\n <!-- PUBLISH DATASET -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('dataset')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.dataset\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.publishdataset') }}\n </FormKit>\n\n <!-- SAVE AS DRAFT -->\n <FormKit type=\"button\" v-if=\"property === 'datasets'\" @click=\"submit('draft')\" :disabled=\"formErrorCount\"\n class=\"mx-1 my-0\">\n <span v-if=\"uploading.draft\" class=\"loading-spinner\"></span>{{ $t('message.dataupload.saveasdraft') }}\n </FormKit>\n\n <!-- NEXT STEP -->\n <FormKit type=\"button\" :label=\"$t('message.dataupload.next')\" @click=\"goToNextStep\" v-if=\"nextStep\"></FormKit>\n </div>\n </div>\n\n <app-confirmation-dialog id=\"modal\" :confirm=\"modal.confirm\" @confirm=\"modal.callback\" :close=\"modal.confirm\">\n {{ modal.message }}\n </app-confirmation-dialog>\n </div>\n</template>\n\n<script>\n/* eslint-disable */\nimport $ from 'jquery';\nimport { isNil } from 'lodash';\nimport { mapGetters, mapActions } from 'vuex';\nimport { useWindowScroll } from '@vueuse/core'\nimport axios from 'axios';\nimport { ref, nextTick } from 'vue'\nimport { getCurrentInstance } from \"vue\";\nimport { useI18n } from 'vue-i18n';\n\nexport default {\n name: 'Navigation',\n props: ['steps', 'nextStep', 'previousStep', 'goToNextStep', 'goToPreviousStep'],\n data() {\n return {\n instance: getCurrentInstance().appContext.app.config.globalProperties.$env,\n uploading: {\n dataset: false,\n draft: false,\n },\n modal: {\n confirm: '',\n message: '',\n callback: '',\n },\n modals: {\n id: {\n confirm: '',\n message: 'Dataset ID already exists',\n callback: this.closeModal,\n },\n clear: {\n confirm: '',\n message: '',\n callback: this.clearStorage,\n },\n },\n property: this.$route.params.property,\n id: this.$route.params.id,\n };\n },\n setup() {\n const scrollToTop = () => {\n let { x, y } = useWindowScroll({ behavior: 'smooth' })\n y.value = 0\n\n };\n return {\n scrollToTop\n }\n },\n computed: {\n ...mapGetters('auth', [\n 'getIsEditMode',\n 'getIsDraft',\n 'getUserData',\n ]),\n ...mapGetters('dpiStore', [\n 'getData',\n ]),\n formErrorCount() {\n let errorCount = 0;\n Object.keys(this.steps).forEach(key => {\n errorCount = errorCount + this.steps[key].blockingCount\n })\n\n return errorCount > 0;\n }\n },\n created() {\n this.$i18n.locale = this.$route.query.locale\n this.modals.clear.message = this.$t('message.dataupload.modal.resetForm')\n this.modals.clear.confirm = this.$t('message.dataupload.modal.confirmReset')\n\n },\n methods: {\n ...mapActions('auth', [\n 'setIsEditMode',\n 'setIsDraft',\n ]),\n ...mapActions('snackbar', [\n 'showSnackbar',\n ]),\n ...mapActions('dpiStore', [\n 'convertToRDF',\n 'clearAll',\n // 'deleteDistribution',\n // 'setDeleteDistributionInline',\n ]),\n closeModal() {\n $('#modal').modal('hide');\n },\n handleIDError() {\n this.modal = this.modals.id;\n $('#modal').modal({ show: true });\n },\n handleClear() {\n this.modal = this.modals.clear;\n $('#modal').modal({ show: true });\n },\n clearStorage() {\n this.closeModal();\n this.$formkit.reset('dpiForm');\n this.clearAll();\n },\n async submit(mode) {\n this.uploading[mode] = true;\n this.$Progress.start();\n\n const specification = this.$env.content.dataProviderInterface.specification;\n const RDFdata = await this.convertToRDF({ property: this.property, specification: specification }).then((response) => { return response; });\n const rtpToken = this.getUserData.rtpToken;\n\n const datasetId = this.getData(this.property)['datasetID'];\n const title = this.getData(this.property)['dct:title'];\n const description = this.getData(this.property)['dct:description'];\n const catalogName = this.getData(this.property)['dcat:catalog'] ? this.getData(this.property)['dcat:catalog'] : '';\n\n let uploadUrl;\n let actionName;\n let actionParams = {\n id: datasetId,\n catalog: catalogName,\n body: RDFdata,\n title,\n description,\n };\n\n if (mode === 'dataset') {\n // if no edit mode: just publish dataset regularly\n // if edit mode but no draft: publish/save dataset regularly\n if (!this.getIsEditMode || (this.getIsEditMode && !this.getIsDraft) || (this.getIsEditMode && this.getIsDraft && localStorage.getItem('dpi_duplicate'))) {\n uploadUrl = `${this.$env.api.hubUrl}datasets?id=${datasetId}&catalogue=${catalogName}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl };\n actionName = 'auth/createDataset';\n } else {\n // if edit mode and draft: publish user draft (remove from draft database and add to dataset database)-> publishUserDraftById\n actionParams = { id: datasetId, catalog: catalogName };\n actionName = 'auth/publishUserDraftById';\n }\n\n } else if (mode === 'draft') {\n //if no edit mode: save draft regularly\n // if edit mode and draft: save draft regularly\n if (!this.getIsEditMode || (this.getIsEditMode && this.getIsDraft)) {\n uploadUrl = `${this.$env.api.hubUrl}drafts/datasets/${datasetId}?catalogue=${catalogName}`;\n actionName = 'auth/createUserDraft';\n } else {\n // if edit mode and no draft: save dataset as draft (remove from dataset database and add to draft database)-> putDatasetToDraft\n actionParams = { id: datasetId, catalog: catalogName, title, description };\n actionName = 'auth/putDatasetToDraft';\n }\n\n } else if (mode === 'createcatalogue') {\n uploadUrl = `${this.$env.api.hubUrl}catalogues/${datasetId}`;\n actionParams = { data: RDFdata, token: rtpToken, url: uploadUrl, id: datasetId };\n actionName = 'auth/createCatalogue';\n }\n\n try {\n // Dispatch the right action depending on the mode\n\n const idIsUnqiue = this.idunique(datasetId);\n\n if (idIsUnqiue) {\n await this.$store.dispatch(actionName, actionParams);\n // await new Promise(resolve => setTimeout(resolve, 250));\n\n this.$Progress.finish();\n this.uploading = false;\n\n if (mode === 'createcatalogue') this.createCatalogue(datasetId);\n if (mode === 'dataset') this.createDataset(datasetId);\n if (mode === 'draft') this.createDraft();\n\n // store needs to be reset\n this.clearAll();\n }\n else {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.handleIDError();\n }\n } catch (err) {\n this.uploading[mode] = false;\n this.$Progress.fail();\n this.showSnackbar({ message: 'Network Error', variant: 'error' });\n }\n },\n createDataset(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.datasetPublished'), variant: 'success' });\n // this.$router.push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } }).catch(() => { });\n this.$router\n .push({ name: 'DatasetDetailsDataset', params: { ds_id: datasetId }, query: { locale: this.$route.query.locale } })\n .then(() => { this.$router.go(0) })\n },\n createDraft() {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.draftCreated'), variant: 'success' });\n this.$router.push({ name: 'DataProviderInterface-Draft', query: { locale: this.$route.query.locale } }).catch(() => { });\n },\n createCatalogue(datasetId) {\n this.clearAll();\n this.showSnackbar({ message: this.$t('message.dataupload.snackBar.catalogPublished'), variant: 'success' });\n this.$router.push({ name: 'CatalogueDetails', query: { locale: this.$route.query.locale }, params: { ctlg_id: datasetId } }).catch(() => { });\n },\n async idunique(id) {\n let isUniqueID = true;\n\n const draftIDs = this.$store.getters['auth/getUserDraftIds'];\n\n new Promise(() => {\n if (isNil(id) || id === '' || id === undefined) isUniqueID = true;\n else if (draftIDs.includes(id)) isUniqueID = false;\n else {\n const request = `${this.$env.api.hubUrl}datasets/${id}?useNormalizedId=true`;\n axios.head(request)\n .then(() => {\n isUniqueID = false;\n })\n .catch((e) => {\n isUniqueID = true;\n });\n }\n });\n return isUniqueID\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n// @import '../../../styles/bootstrap_theme';\n// @import '../../../styles/utils/css-animations';</style>\n"],"names":["_sfc_main","getCurrentInstance","x","y","useWindowScroll","mapGetters","errorCount","key","mapActions","$","mode","specification","RDFdata","response","rtpToken","datasetId","title","description","catalogName","uploadUrl","actionName","actionParams","id","isUniqueID","draftIDs","isNil","request","axios","_hoisted_2","_hoisted_3","_createElementBlock","_createElementVNode","_hoisted_1","$props","_createBlock","_component_FormKit","_ctx","_createCommentVNode","_createTextVNode","_createVNode","$options","$data","_withCtx","_openBlock","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_component_app_confirmation_dialog"],"mappings":";;;;;;;;;AAiEA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO,CAAC,SAAS,YAAY,gBAAgB,gBAAgB,kBAAkB;AAAA,EAC/E,OAAO;AACL,WAAO;AAAA,MACL,UAAUC,EAAkB,EAAG,WAAW,IAAI,OAAO,iBAAiB;AAAA,MACtE,WAAW;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACR;AAAA,MACD,OAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,UAAU;AAAA,MACX;AAAA,MACD,QAAQ;AAAA,QACN,IAAI;AAAA,UACF,SAAS;AAAA,UACT,SAAS;AAAA,UACT,UAAU,KAAK;AAAA,QAChB;AAAA,QACD,OAAO;AAAA,UACL,SAAS;AAAA,UACT,SAAS;AAAA,UACT,UAAU,KAAK;AAAA,QAChB;AAAA,MACF;AAAA,MACD,UAAU,KAAK,OAAO,OAAO;AAAA,MAC7B,IAAI,KAAK,OAAO,OAAO;AAAA;EAE1B;AAAA,EACD,QAAQ;AAMN,WAAO;AAAA,MACL,aANkB,MAAM;AACxB,YAAI,EAAE,GAAAC,GAAG,GAAAC,MAAMC,EAAgB,EAAE,UAAU,UAAU;AACrD,QAAAD,EAAE,QAAQ;AAAA;IAKZ;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGE,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,iBAAiB;AACf,UAAIC,IAAa;AACjB,oBAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAAC,MAAO;AACrC,QAAAD,IAAaA,IAAa,KAAK,MAAMC,CAAG,EAAE;AAAA,OAC3C,GAEMD,IAAa;AAAA,IACtB;AAAA,EACD;AAAA,EACD,UAAU;AACR,SAAK,MAAM,SAAS,KAAK,OAAO,MAAM,QACtC,KAAK,OAAO,MAAM,UAAU,KAAK,GAAG,oCAAoC,GACxE,KAAK,OAAO,MAAM,UAAU,KAAK,GAAG,uCAAuC;AAAA,EAE5E;AAAA,EACD,SAAS;AAAA,IACP,GAAGE,EAAW,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,GAAGA,EAAW,YAAY;AAAA,MACxB;AAAA,MACA;AAAA;AAAA;AAAA,IAGF,CAAC;AAAA,IACD,aAAa;AACX,MAAAC,EAAE,QAAQ,EAAE,MAAM,MAAM;AAAA,IACzB;AAAA,IACD,gBAAgB;AACd,WAAK,QAAQ,KAAK,OAAO,IACzBA,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAK,CAAC;AAAA,IACjC;AAAA,IACD,cAAc;AACZ,WAAK,QAAQ,KAAK,OAAO,OACzBA,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAK,CAAC;AAAA,IACjC;AAAA,IACD,eAAe;AACb,WAAK,WAAU,GACf,KAAK,SAAS,MAAM,SAAS,GAC7B,KAAK,SAAQ;AAAA,IACd;AAAA,IACD,MAAM,OAAOC,GAAM;AACjB,WAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU;AAEf,YAAMC,IAAgB,KAAK,KAAK,QAAQ,sBAAsB,eACxDC,IAAU,MAAM,KAAK,aAAa,EAAE,UAAU,KAAK,UAAU,eAAeD,EAAe,CAAA,EAAE,KAAK,CAACE,MAAsBA,CAAW,GACpIC,IAAW,KAAK,YAAY,UAE5BC,IAAY,KAAK,QAAQ,KAAK,QAAQ,EAAE,WACxCC,IAAQ,KAAK,QAAQ,KAAK,QAAQ,EAAE,WAAW,GAC/CC,IAAc,KAAK,QAAQ,KAAK,QAAQ,EAAE,iBAAiB,GAC3DC,IAAc,KAAK,QAAQ,KAAK,QAAQ,EAAE,cAAc,IAAI,KAAK,QAAQ,KAAK,QAAQ,EAAE,cAAc,IAAI;AAEhH,UAAIC,GACAC,GACAC,IAAe;AAAA,QACjB,IAAIN;AAAA,QACJ,SAASG;AAAA,QACT,MAAMN;AAAA,QACN,OAAAI;AAAA,QACA,aAAAC;AAAA;AAGF,MAAIP,MAAS,YAGP,CAAC,KAAK,iBAAkB,KAAK,iBAAiB,CAAC,KAAK,cAAgB,KAAK,iBAAiB,KAAK,cAAc,aAAa,QAAQ,eAAe,KACnJS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,eAAeJ,CAAS,cAAcG,CAAW,IACpFG,IAAe,EAAE,MAAMT,GAAS,OAAOE,GAAU,KAAKK,KACtDC,IAAa,yBAGbC,IAAe,EAAE,IAAIN,GAAW,SAASG,EAAU,GACnDE,IAAa,+BAGNV,MAAS,UAGd,CAAC,KAAK,iBAAkB,KAAK,iBAAiB,KAAK,cACrDS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,mBAAmBJ,CAAS,cAAcG,CAAW,IACxFE,IAAa,2BAGbC,IAAe,EAAE,IAAIN,GAAW,SAASG,GAAa,OAAAF,GAAO,aAAAC,KAC7DG,IAAa,4BAGNV,MAAS,sBAClBS,IAAY,GAAG,KAAK,KAAK,IAAI,MAAM,cAAcJ,CAAS,IAC1DM,IAAe,EAAE,MAAMT,GAAS,OAAOE,GAAU,KAAKK,GAAW,IAAIJ,KACrEK,IAAa;AAGf,UAAI;AAKF,QAFmB,KAAK,SAASL,CAAS,KAGxC,MAAM,KAAK,OAAO,SAASK,GAAYC,CAAY,GAGnD,KAAK,UAAU,UACf,KAAK,YAAY,IAEbX,MAAS,qBAAmB,KAAK,gBAAgBK,CAAS,GAC1DL,MAAS,aAAW,KAAK,cAAcK,CAAS,GAChDL,MAAS,WAAS,KAAK,YAAW,GAGtC,KAAK,SAAQ,MAGb,KAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU,QACf,KAAK,cAAa;AAAA,MAEpB,QAAY;AACZ,aAAK,UAAUA,CAAI,IAAI,IACvB,KAAK,UAAU,QACf,KAAK,aAAa,EAAE,SAAS,iBAAiB,SAAS,QAAQ,CAAC;AAAA,MAClE;AAAA,IACD;AAAA,IACD,cAAcK,GAAW;AACvB,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,KAAK,GAAG,8CAA8C,GAAG,SAAS,UAAU,CAAC,GAE1G,KAAK,QACF,KAAK,EAAE,MAAM,yBAAyB,QAAQ,EAAE,OAAOA,EAAQ,GAAK,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAO,GAAG,EACjH,KAAK,MAAM;AAAE,aAAK,QAAQ,GAAG,CAAC;AAAA,OAAG;AAAA,IACrC;AAAA,IACD,cAAc;AACZ,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,KAAK,GAAG,0CAA0C,GAAG,SAAS,UAAU,CAAC,GACtG,KAAK,QAAQ,KAAK,EAAE,MAAM,+BAA+B,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAS,EAAA,CAAC,EAAE,MAAM,MAAM;AAAA,MAAA,CAAG;AAAA,IACxH;AAAA,IACD,gBAAgBA,GAAW;AACzB,WAAK,SAAQ,GACb,KAAK,aAAa,EAAE,SAAS,KAAK,GAAG,8CAA8C,GAAG,SAAS,UAAU,CAAC,GAC1G,KAAK,QAAQ,KAAK,EAAE,MAAM,oBAAoB,OAAO,EAAE,QAAQ,KAAK,OAAO,MAAM,OAAQ,GAAE,QAAQ,EAAE,SAASA,EAAY,EAAA,CAAC,EAAE,MAAM,MAAM;AAAA,MAAA,CAAG;AAAA,IAC7I;AAAA,IACD,MAAM,SAASO,GAAI;AACjB,UAAIC,IAAa;AAEjB,YAAMC,IAAW,KAAK,OAAO,QAAQ,sBAAsB;AAE3D,iBAAI,QAAQ,MAAM;AAChB,YAAIC,EAAMH,CAAE,KAAKA,MAAO,MAAMA,MAAO;AAAW,UAAAC,IAAa;AAAA,iBACpDC,EAAS,SAASF,CAAE;AAAG,UAAAC,IAAa;AAAA,aACxC;AACH,gBAAMG,IAAU,GAAG,KAAK,KAAK,IAAI,MAAM,YAAYJ,CAAE;AACrD,UAAAK,EAAM,KAAKD,CAAO,EACf,KAAK,MAAM;AACV,YAAAH,IAAa;AAAA,WACd,EACA,MAAM,CAAC,MAAM;AACZ,YAAAA,IAAa;AAAA,UACf,CAAC;AAAA,QACL;AAAA,MACF,CAAC,GACMA;AAAA,IACT;AAAA,EACD;AACH;EA1RS,IAAG;AAAA,EAAM,OAAM;GACbK,IAAA,EAAA,OAAM,qBAAoB,GAQ1BC,IAAA,EAAA,OAAM,sBAAqB;EAXtC,KAAA;AAAA,EAoBiD,OAAM;;EApBvD,KAAA;AAAA,EA2BiD,OAAM;;EA3BvD,KAAA;AAAA,EAkCyC,OAAM;;EAlC/C,KAAA;AAAA,EAwCuC,OAAM;;;;cAvC3CC,EAkDM,OAAA,MAAA;AAAA,IAjDJC,EA4CM,OA5CNC,GA4CM;AAAA,MA3CJD,EAOM,OAPNH,GAOM;AAAA,QAL6FK,EAAY,qBAA7GC,EACuCC,GAAA;AAAA,UAN/C,KAAA;AAAA,UAKiB,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,4BAAA;AAAA,UAAiC,SAAOH,EAAgB;AAAA,UACvF,OAAM;AAAA,6CANhBI,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QASQC,EAAgHJ,GAAA;AAAA,UAAvG,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,0BAAA;AAAA,UAA+B,SAAOI,EAAW;AAAA,UAAE,OAAM;AAAA;;MATlGF,EAAA;AAAA,MAWMP,EAkCM,OAlCNF,GAkCM;AAAA,SA1BKO,EAAa,iBAAA,CAAKA,EAAU,cAAIK,EAAQ,aAAA,qBADjDP,EAIUC,GAAA;AAAA,UAtBlB,KAAA;AAAA,UAkBiB,MAAK;AAAA,UAAU,gCAAOK,EAAM,OAAA,iBAAA;AAAA,UAC+B,OAAM;AAAA;UAnBlF,SAAAE,EAoBU,MAAsE;AAAA,YAA1DD,EAAA,UAAU,mBAAtBE,KAAAb,EAAsE,QAAtEc,CAAsE,KApBhFP,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAqBYT,EAAE,GAAA,qCAAA,CAAA,GAAA,CAAA;AAAA;UArBd,GAAA;AAAA,cAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QA0BgBF,EAAa,iBAAA,CAAKA,EAAU,cAAIK,EAAQ,aAAA,qBADhDP,EAIUC,GAAA;AAAA,UA7BlB,KAAA;AAAA,UAyBiB,MAAK;AAAA,UAAU,gCAAOK,EAAM,OAAA,iBAAA;AAAA,UAC8B,OAAM;AAAA;UA1BjF,SAAAE,EA2BU,MAAsE;AAAA,YAA1DD,EAAA,UAAU,mBAAtBE,KAAAb,EAAsE,QAAtEgB,CAAsE,KA3BhFT,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EA4BYT,EAAE,GAAA,qCAAA,CAAA,GAAA,CAAA;AAAA;UA5Bd,GAAA;AAAA,cAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QAgCqCG,EAAQ,aAAA,mBAArCP,EAGUC,GAAA;AAAA,UAnClB,KAAA;AAAA,UAgCiB,MAAK;AAAA,UAAyC,gCAAOK,EAAM,OAAA,SAAA;AAAA,UAAc,UAAUA,EAAc;AAAA,UACxG,OAAM;AAAA;UAjChB,SAAAE,EAkCU,MAA8D;AAAA,YAAlDD,EAAA,UAAU,WAAtBE,KAAAb,EAA8D,QAA9DiB,CAA8D,KAlCxEV,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAkC2ET,EAAE,GAAA,mCAAA,CAAA,GAAA,CAAA;AAAA;UAlC7E,GAAA;AAAA,+BAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QAsCqCG,EAAQ,aAAA,mBAArCP,EAGUC,GAAA;AAAA,UAzClB,KAAA;AAAA,UAsCiB,MAAK;AAAA,UAAyC,gCAAOK,EAAM,OAAA,OAAA;AAAA,UAAY,UAAUA,EAAc;AAAA,UACtG,OAAM;AAAA;UAvChB,SAAAE,EAwCU,MAA4D;AAAA,YAAhDD,EAAA,UAAU,SAAtBE,KAAAb,EAA4D,QAA5DkB,CAA4D,KAxCtEX,EAAA,IAAA,EAAA;AAAA,YAAAC,EAAAO,EAwCyET,EAAE,GAAA,gCAAA,CAAA,GAAA,CAAA;AAAA;UAxC3E,GAAA;AAAA,+BAAAC,EAAA,IAAA,EAAA;AAAA,QAAAC,EAAA;AAAA,QA4CkGL,EAAQ,iBAAlGC,EAA8GC,GAAA;AAAA,UA5CtH,KAAA;AAAA,UA4CiB,MAAK;AAAA,UAAU,OAAOC,EAAE,GAAA,yBAAA;AAAA,UAA8B,SAAOH,EAAY;AAAA,6CA5C1FI,EAAA,IAAA,EAAA;AAAA;;IAAAC,EAAA;AAAA,IAgDIC,EAE0BU,GAAA;AAAA,MAFD,IAAG;AAAA,MAAS,SAASR,EAAK,MAAC;AAAA,MAAU,WAASA,EAAK,MAAC;AAAA,MAAW,OAAOA,EAAK,MAAC;AAAA;MAhDzG,SAAAC,EAiDM,MAAmB;AAAA,QAjDzBJ,EAiDSO,EAAAJ,EAAA,MAAM,OAAO,GAAA,CAAA;AAAA;MAjDtB,GAAA;AAAA;;;;"}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
|
-
import { openBlock as
|
|
2
|
-
import "
|
|
3
|
-
|
|
4
|
-
import "axios";
|
|
5
|
-
import "lodash-es";
|
|
6
|
-
import { FormKit as p } from "@formkit/vue";
|
|
7
|
-
const s = { class: "formkitProperty" }, m = { class: "position-relative formkitCmpWrap" }, y = {
|
|
1
|
+
import { computed as d, openBlock as o, createElementBlock as i, unref as a, toDisplayString as n, createCommentVNode as s, createTextVNode as c, createElementVNode as p, createVNode as m } from "vue";
|
|
2
|
+
import { FormKit as u } from "@formkit/vue";
|
|
3
|
+
const f = { class: "formkitProperty" }, h = { key: 0 }, _ = { key: 1 }, x = { class: "position-relative formkitCmpWrap" }, y = {
|
|
8
4
|
__name: "SimpleInput",
|
|
9
5
|
props: {
|
|
10
6
|
context: Object
|
|
11
7
|
},
|
|
12
|
-
setup(
|
|
13
|
-
const t =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
setup(l) {
|
|
9
|
+
const t = l;
|
|
10
|
+
let r = d(() => {
|
|
11
|
+
try {
|
|
12
|
+
if (t.context.attrs.class.includes("inDistribution"))
|
|
13
|
+
return !0;
|
|
14
|
+
} catch {
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return (e, b) => (o(), i("div", f, [
|
|
18
|
+
!t.context.attrs.insideRepeatable && !a(r) ? (o(), i("h4", h, n(e.$t("message.dataupload.datasets." + t.context.attrs.identifier + ".label")), 1)) : s("", !0),
|
|
19
|
+
c(),
|
|
20
|
+
a(r) ? (o(), i("h4", _, n(e.$t("message.dataupload.distributions." + t.context.attrs.identifier + ".label")), 1)) : s("", !0),
|
|
21
|
+
c(),
|
|
22
|
+
p("div", x, [
|
|
23
|
+
m(a(u), {
|
|
19
24
|
class: "autocompleteInputfield",
|
|
20
25
|
identifier: t.context.attrs.identifier,
|
|
21
26
|
name: t.context.node.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleInput.vue"],"sourcesContent":["<
|
|
1
|
+
{"version":3,"file":"SimpleInput.vue.mjs","sources":["../../../lib/data-provider-interface/components/SimpleInput.vue"],"sourcesContent":["<template>\n <div class=\"formkitProperty\">\n\n <h4 v-if=\"!props.context.attrs.insideRepeatable && !inDis\">{{ $t('message.dataupload.datasets.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <h4 v-if=\"inDis\">\n {{ $t('message.dataupload.distributions.' +\n props.context.attrs.identifier + '.label') }}</h4>\n <div class=\"position-relative formkitCmpWrap\">\n <FormKit class=\"autocompleteInputfield\" :identifier=\"props.context.attrs.identifier\"\n :name=\"props.context.node.name\" :help=\"props.context.help\"\n :placeholder=\"props.context.attrs.placeholder\" :validation=\"props.context.attrs.validationType\" />\n </div>\n </div>\n</template>\n<script setup>\n\nimport { FormKit } from '@formkit/vue';\nimport { ref, computed } from 'vue';\n\nconst props = defineProps({\n context: Object\n})\n// Need to make sure, that the right header gets displayed\nlet inDis = computed(() => {\n try {\n if (props.context.attrs.class.includes(\"inDistribution\")) {\n return true\n }\n } catch (error) {\n\n }\n\n\n});\n\n\n\n</script>\n<style></style>"],"names":["props","__props","inDis","computed"],"mappings":";;;;;;;;AAoBA,UAAMA,IAAQC;AAId,QAAIC,IAAQC,EAAS,MAAM;AACvB,UAAI;AACA,YAAIH,EAAM,QAAQ,MAAM,MAAM,SAAS,gBAAgB;AACnD,iBAAO;AAAA,MAEd,QAAe;AAAA,MAEf;AAAA,IAGL,CAAC;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { computed as m, ref as c, onMounted as
|
|
2
|
-
import { useStore as
|
|
3
|
-
import { getNode as
|
|
4
|
-
import { onClickOutside as
|
|
1
|
+
import { computed as m, ref as c, onMounted as B, openBlock as s, createElementBlock as d, createElementVNode as p, toDisplayString as v, createTextVNode as f, createBlock as x, unref as a, isRef as C, withDirectives as D, Fragment as _, renderList as S, createCommentVNode as F, vShow as R } from "vue";
|
|
2
|
+
import { useStore as U } from "vuex";
|
|
3
|
+
import { getNode as u } from "@formkit/core";
|
|
4
|
+
import { onClickOutside as q } from "../../external/@vueuse/core/index";
|
|
5
5
|
import A from "axios";
|
|
6
6
|
import { useRuntimeEnv as J } from "../../composables/useRuntimeEnv.mjs";
|
|
7
7
|
import { has as L, isNil as w } from "lodash-es";
|
|
8
8
|
import { FormKit as I } from "@formkit/vue";
|
|
9
9
|
import "./SimpleSelect.vue2.mjs";
|
|
10
|
-
const K = { class: "formkitProperty" },
|
|
10
|
+
const K = { class: "formkitProperty" }, $ = { class: "position-relative formkitCmpWrap" }, M = ["onClick"], P = ["onClick"], ee = {
|
|
11
11
|
__name: "SimpleSelect",
|
|
12
12
|
props: {
|
|
13
13
|
context: Object
|
|
14
14
|
},
|
|
15
15
|
setup(N) {
|
|
16
|
-
const
|
|
16
|
+
const r = N, V = m(() => localStorage.getItem("dpi_duplicate")), g = m(() => h.getters["auth/getUserCatalogIds"]);
|
|
17
17
|
let l = c();
|
|
18
|
-
const h =
|
|
18
|
+
const h = U(), y = c(null), k = c();
|
|
19
19
|
c(!0), k.value = m(() => h.getters["auth/getIsEditMode"]);
|
|
20
20
|
let n = c([]), E = J(), o = c();
|
|
21
|
-
o =
|
|
21
|
+
o = u("dcat:catalog").value, q(y, (t) => l.value = !1);
|
|
22
22
|
const b = async (t) => {
|
|
23
|
-
t.id ? (
|
|
23
|
+
t.id ? (r.context.node.input(t.id), l.value = !l.value, u("dcat:catalog").value = t.id, o = t.name) : (r.context.node.input(t), l.value = !l.value, u("dcat:catalog").value = t, o = t);
|
|
24
24
|
};
|
|
25
25
|
let O = async () => {
|
|
26
26
|
let t;
|
|
@@ -29,57 +29,57 @@ const K = { class: "formkitProperty" }, T = { class: "position-relative formkitC
|
|
|
29
29
|
}), t.data.result.results.forEach((e) => {
|
|
30
30
|
L(e, "title") && !w(e.title) && L(e, "id") && !w(e.id) && n.value.push({ title: Object.values(e.title)[0], id: e.id });
|
|
31
31
|
}), n.value = await n.value.filter((e) => g.value.includes(e.id)).map((e) => ({ id: e.id, name: e.title }));
|
|
32
|
-
let
|
|
33
|
-
|
|
32
|
+
let i = JSON.parse(JSON.stringify(n.value));
|
|
33
|
+
i.length === 1 && (o = i[0].id);
|
|
34
34
|
};
|
|
35
|
-
return
|
|
35
|
+
return B(async () => {
|
|
36
36
|
O();
|
|
37
|
-
}), (t,
|
|
38
|
-
p("h4", null, v(
|
|
37
|
+
}), (t, i) => (s(), d("div", K, [
|
|
38
|
+
p("h4", null, v(r.context.label), 1),
|
|
39
39
|
f(),
|
|
40
|
-
p("div",
|
|
41
|
-
k.value.value && !V.value ? (
|
|
40
|
+
p("div", $, [
|
|
41
|
+
k.value.value && !V.value ? (s(), x(a(I), {
|
|
42
42
|
key: 0,
|
|
43
43
|
class: "autocompleteInputfield",
|
|
44
44
|
type: "text",
|
|
45
45
|
readonly: "",
|
|
46
|
-
placeholder: a(
|
|
47
|
-
name:
|
|
48
|
-
}, null, 8, ["placeholder", "name"])) : (
|
|
46
|
+
placeholder: a(u)("dcat:catalog").value,
|
|
47
|
+
name: r.context.node.name
|
|
48
|
+
}, null, 8, ["placeholder", "name"])) : (s(), x(a(I), {
|
|
49
49
|
key: 1,
|
|
50
50
|
class: "autocompleteInputfield",
|
|
51
51
|
modelValue: a(o),
|
|
52
|
-
"onUpdate:modelValue":
|
|
53
|
-
placeholder:
|
|
52
|
+
"onUpdate:modelValue": i[0] || (i[0] = (e) => C(o) ? o.value = e : o = e),
|
|
53
|
+
placeholder: r.context.attrs.placeholder,
|
|
54
54
|
type: "text",
|
|
55
|
-
onClick:
|
|
55
|
+
onClick: i[1] || (i[1] = (e) => C(l) ? l.value = !a(l) : l = !a(l)),
|
|
56
56
|
validation: "required",
|
|
57
57
|
mandatory: "true",
|
|
58
58
|
readonly: "",
|
|
59
59
|
"validation-messages": {
|
|
60
|
-
required:
|
|
60
|
+
required: r.context.attrs.placeholder
|
|
61
61
|
},
|
|
62
|
-
name:
|
|
63
|
-
}, null, 8, ["modelValue", "placeholder", "name"])),
|
|
62
|
+
name: r.context.node.name
|
|
63
|
+
}, null, 8, ["modelValue", "placeholder", "validation-messages", "name"])),
|
|
64
64
|
f(),
|
|
65
|
-
|
|
65
|
+
D(p("ul", {
|
|
66
66
|
ref_key: "dropdownList",
|
|
67
67
|
ref: y,
|
|
68
68
|
class: "autocompleteResultList selectListFK catSelectList"
|
|
69
69
|
}, [
|
|
70
|
-
(
|
|
70
|
+
(s(!0), d(_, null, S(a(n), (e) => (s(), d("li", {
|
|
71
71
|
key: e,
|
|
72
72
|
onClick: (j) => b(e),
|
|
73
73
|
class: "p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC"
|
|
74
|
-
}, v(e.name), 9,
|
|
74
|
+
}, v(e.name), 9, M))), 128)),
|
|
75
75
|
f(),
|
|
76
|
-
a(n).length === 0 ? (
|
|
76
|
+
a(n).length === 0 ? (s(!0), d(_, { key: 0 }, S(g.value, (e) => (s(), d("li", {
|
|
77
77
|
key: e,
|
|
78
78
|
onClick: (j) => b(e),
|
|
79
79
|
class: "p-2 border-b border-gray-200 data-[selected=true]:bg-blue-100 choosableItemsAC"
|
|
80
|
-
}, v(e), 9,
|
|
80
|
+
}, v(e), 9, P))), 128)) : F("", !0)
|
|
81
81
|
], 512), [
|
|
82
|
-
[
|
|
82
|
+
[R, a(l)]
|
|
83
83
|
])
|
|
84
84
|
])
|
|
85
85
|
]));
|
|
@@ -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: props.context.attrs.placeholder,\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\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 // console.log(cache);\n \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,GAMRC,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;AAGrC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|