@piveau/dpi 0.2.0-alpha.62 → 0.2.0-alpha.64
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/assets/dpi.css +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/Organisation.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/Organisation.vue2.js +47 -43
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/BasicInfosStep/ProjectOrganisationStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/BasicInfosStep/ProjectOrganisationStep.vue2.js +85 -82
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/InitiierenStep.vue.js +26 -25
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/PlanenStep.vue.js +26 -25
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/UmstezenStep.vue.js +27 -26
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/WeiterdenkenStep.vue.js +40 -39
- package/dist/packages/dpi/src/data-provider-interface/components/ContactPage.vue.js +93 -93
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/decodeProject.js +116 -135
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/encodeProject.js +208 -227
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/questions.js +27 -0
- package/package.json +1 -1
|
@@ -1,70 +1,71 @@
|
|
|
1
|
-
import { reactive as
|
|
2
|
-
import { FormKit as
|
|
3
|
-
import
|
|
4
|
-
import k from "
|
|
1
|
+
import { reactive as h, createElementBlock as u, openBlock as o, createElementVNode as s, createVNode as p, Fragment as g, renderList as f, unref as d, createBlock as b } from "vue";
|
|
2
|
+
import { FormKit as w } from "@formkit/vue";
|
|
3
|
+
import { umsetzenQuestions as a } from "../../../composables/project-transformer/questions.js";
|
|
4
|
+
import k from "../../../components/StepActionsSection.vue.js";
|
|
5
|
+
import z from "../TextArea/TextAreaDefinition.js";
|
|
5
6
|
/* empty css */
|
|
6
|
-
import
|
|
7
|
-
const S = { class: "project-phasen-umstezen" },
|
|
7
|
+
import v from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
8
|
+
const S = { class: "project-phasen-umstezen" }, V = { class: "project-phasen-umstezen-content" }, l = 1e3, _ = {
|
|
8
9
|
__name: "UmstezenStep",
|
|
9
|
-
setup(
|
|
10
|
-
const n =
|
|
10
|
+
setup(j) {
|
|
11
|
+
const n = h({
|
|
11
12
|
questions: {
|
|
12
13
|
projectTriggers: {
|
|
13
|
-
question:
|
|
14
|
+
question: a.projectTriggers,
|
|
14
15
|
placeholder: "Wir haben einen Projektplan erstellt, der u.a. eine Roadmap und die Projektstruktur mit klaren Verantwortlichkeiten und Ansprechpartnern auf beiden Seiten enthielt. Es gab regelmäßige Jour-Fixe-Termine, in denen wir den Projektfortschritt gemeinsam mit dem Dienstleister besprochen und offene Punkte adressiert haben. Meilensteine und wichtige Entscheidungen wurden mit den Stakeholdern abgestimmt und protokolliert.",
|
|
15
16
|
answer: ""
|
|
16
17
|
},
|
|
17
18
|
involvedStakeholders: {
|
|
18
|
-
question:
|
|
19
|
+
question: a.involvedStakeholders,
|
|
19
20
|
placeholder: "Ja, im Projektverlauf kam es zu einigen Verzögerungen. Hauptursache war die zeitaufwändige Klärung von offenen technischen Fragen, insbesondere bei der Anbindung bestehender Fachsysteme und Datenquellen. Teilweise lagen Datenformate nicht wie erwartet vor oder es bestanden Datenschutzbedenken, die zunächst gelöst werden mussten. Dazu kamen z.B. europaweite Lieferengpässe bei den Sensoren, die wir verbaut haben.",
|
|
20
21
|
answer: ""
|
|
21
22
|
},
|
|
22
23
|
dataCollectionMethod: {
|
|
23
|
-
question:
|
|
24
|
+
question: a.dataCollectionMethod,
|
|
24
25
|
placeholder: "Wir haben verschiedene Schnittstellen zu bestehenden Geoinformationssystemen (GIS), Wetterdaten- und Pegelstanddiensten sowie internen Verwaltungsdaten genutzt. Bei der Integration gab es Herausforderungen etwa durch unterschiedliche Datenformate, unklare Zugriffsbeschränkungen oder fehlende API-Standards.",
|
|
25
26
|
answer: ""
|
|
26
27
|
},
|
|
27
28
|
budgetPlanning: {
|
|
28
|
-
question:
|
|
29
|
+
question: a.budgetPlanning,
|
|
29
30
|
placeholder: "Wir haben mit Open-Source-Lösungen gute Erfahrungen gemacht. Wir sind flexibel und können die Software an unsere Bedürfnisse anpassen. Die Kosten sind niedrig, dafür brauchen wir mehr eigenes technisches Know-how und Zeit für Wartung. Insgesamt überwiegen für uns die Vorteile, vor allem was Unabhängigkeit und Nachhaltigkeit angeht.",
|
|
30
31
|
answer: ""
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
}),
|
|
34
|
+
}), m = Object.keys(n.questions).map((r) => ({
|
|
34
35
|
name: r,
|
|
35
36
|
text: n.questions[r].question
|
|
36
37
|
}));
|
|
37
|
-
function
|
|
38
|
-
n.questions[r].answer = t.slice(0,
|
|
38
|
+
function c(r, t) {
|
|
39
|
+
n.questions[r].answer = t.slice(0, l);
|
|
39
40
|
}
|
|
40
|
-
return (r, t) => (
|
|
41
|
+
return (r, t) => (o(), u("div", S, [
|
|
41
42
|
t[1] || (t[1] = s("div", { class: "project-phasen-umstezen-header" }, [
|
|
42
43
|
s("h4", null, "Umsetzen")
|
|
43
44
|
], -1)),
|
|
44
|
-
s("div",
|
|
45
|
+
s("div", V, [
|
|
45
46
|
t[0] || (t[0] = s("p", { class: "project-phasen-umstezen-description" }, " Von der Dienstleistersteuerung bis zur Meilensteinerreichung. ", -1)),
|
|
46
|
-
(
|
|
47
|
+
(o(!0), u(g, null, f(d(m), (e) => (o(), b(d(w), {
|
|
47
48
|
id: e.name,
|
|
48
49
|
placeholder: n.questions[e.name].placeholder,
|
|
49
50
|
key: e.name,
|
|
50
51
|
modelValue: n.questions[e.name].answer,
|
|
51
|
-
"onUpdate:modelValue": (
|
|
52
|
+
"onUpdate:modelValue": (i) => n.questions[e.name].answer = i,
|
|
52
53
|
labelWeight: "bold",
|
|
53
54
|
label: e.text,
|
|
54
|
-
type:
|
|
55
|
+
type: d(z),
|
|
55
56
|
name: e.name,
|
|
56
57
|
validation: "length:0,1000",
|
|
57
58
|
hint: "true",
|
|
58
|
-
help: `${n.questions[e.name].answer.length || 0} von ${
|
|
59
|
+
help: `${n.questions[e.name].answer.length || 0} von ${l} Zeichen`,
|
|
59
60
|
"count-hint": !0,
|
|
60
|
-
maxlength:
|
|
61
|
-
onInput: (
|
|
61
|
+
maxlength: l,
|
|
62
|
+
onInput: (i) => c(e.name, i)
|
|
62
63
|
}, null, 8, ["id", "placeholder", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
63
64
|
]),
|
|
64
|
-
|
|
65
|
+
p(k)
|
|
65
66
|
]));
|
|
66
67
|
}
|
|
67
|
-
},
|
|
68
|
+
}, U = /* @__PURE__ */ v(_, [["__scopeId", "data-v-fa9ecd8f"]]);
|
|
68
69
|
export {
|
|
69
|
-
|
|
70
|
+
U as default
|
|
70
71
|
};
|
|
@@ -1,50 +1,51 @@
|
|
|
1
|
-
import { reactive as
|
|
2
|
-
import { FormKit as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { reactive as v, createElementBlock as m, openBlock as o, createElementVNode as a, createVNode as d, Fragment as S, renderList as x, unref as l, createBlock as B, withCtx as _, withDirectives as h, vShow as g } from "vue";
|
|
2
|
+
import { FormKit as j } from "@formkit/vue";
|
|
3
|
+
import { weiterdenkenQuestions as s } from "../../../composables/project-transformer/questions.js";
|
|
4
|
+
import V from "../../../components/StepActionsSection.vue.js";
|
|
5
|
+
import y from "../TextArea/TextAreaDefinition.js";
|
|
6
|
+
import p from "../ButtonV3.vue.js";
|
|
6
7
|
/* empty css */
|
|
7
|
-
import
|
|
8
|
-
const
|
|
8
|
+
import C from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
9
|
+
const E = { class: "project-phasen-weiterdenken" }, P = { class: "project-phasen-weiterdenken-content" }, W = { class: "actions" }, u = 1e3, A = {
|
|
9
10
|
__name: "WeiterdenkenStep",
|
|
10
|
-
setup(
|
|
11
|
-
const n =
|
|
11
|
+
setup(q) {
|
|
12
|
+
const n = v({
|
|
12
13
|
questions: {
|
|
13
14
|
projectTriggers: {
|
|
14
|
-
question:
|
|
15
|
+
question: s.projectTriggers,
|
|
15
16
|
placeholder: "Ein zentrales Learning war die Bedeutung einer klaren Projektstruktur und offener Kommunikation — intern wie extern. Bei Projekten mit vielen Beteiligten ist es wichtig, Zuständigkeiten und Kommunikationswege eindeutig zu definieren. Außerdem haben wir gelernt, technische Vorarbeiten, insbesondere bei Datenqualität und Schnittstellen, nicht zu unterschätzen.",
|
|
16
17
|
answer: ""
|
|
17
18
|
},
|
|
18
19
|
involvedStakeholders: {
|
|
19
|
-
question:
|
|
20
|
+
question: s.involvedStakeholders,
|
|
20
21
|
placeholder: "Ja, die Wirksamkeit unseres Projekts wird regelmäßig überprüft. Wir haben Erfolgskriterien gemeinsam mit den nutzenden Stellen definiert – dazu zählen z.B. die Genauigkeit der Prognosen oder die Reaktionsgeschwindigkeit bei Hochwasserlagen. Einmal jährlich werten wir die Ergebnisse gemeinsam mit den beteiligten Fachbereichen aus. Erste Auswertungen und Praxistests zeigen, dass die Systeme bei Starkregenereignissen in den vergangenen Monaten bereits einen echten Mehrwert gebracht haben. Es konnten Schäden durch frühzeitige Warnungen verringert und Abläufe in der Gefahrenabwehr verbessert werden.",
|
|
21
22
|
answer: ""
|
|
22
23
|
},
|
|
23
24
|
dataCollectionMethod: {
|
|
24
|
-
question:
|
|
25
|
+
question: s.dataCollectionMethod,
|
|
25
26
|
placeholder: "Ja, wir planen, das System weiterzuentwickeln und auf weitere Anwendungsfälle (wie Sturzfluten oder Dürremanagement) auszuweiten. Dafür suchen wir die Zusammenarbeit mit benachbarten Kommunen und regionalen Partnern, um Ressourcen zu bündeln und Synergien zu schaffen. Durch regelmäßige Erfolgskontrolle und transparente Berichterstattung sichern wir die Akzeptanz und Bereitschaft zur weiteren Finanzierung.",
|
|
26
27
|
answer: ""
|
|
27
28
|
},
|
|
28
29
|
budgetPlanning: {
|
|
29
|
-
question:
|
|
30
|
+
question: s.budgetPlanning,
|
|
30
31
|
placeholder: "Besonders wichtig für uns waren Förderprogramme, wie das Landesprogramm zur Digitalisierung im Bevölkerungsschutz. Dadurch konnten wir einen Großteil der Kosten für Software, Sensorik und externe Beratung abdecken. Gefehlt haben uns regelmäßige, themenspezifische Austauschformate oder Workshops mit anderen Kommunen, um voneinander zu lernen und Synergien besser nutzen zu können.",
|
|
31
32
|
answer: ""
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
|
-
}),
|
|
35
|
+
}), w = Object.keys(n.questions).map((t) => ({
|
|
35
36
|
name: t,
|
|
36
37
|
text: n.questions[t].question
|
|
37
38
|
}));
|
|
38
|
-
function
|
|
39
|
-
n.questions[t].answer = r.slice(0,
|
|
39
|
+
function k(t, r) {
|
|
40
|
+
n.questions[t].answer = r.slice(0, u);
|
|
40
41
|
}
|
|
41
|
-
return (t, r) => (
|
|
42
|
+
return (t, r) => (o(), m("div", E, [
|
|
42
43
|
r[1] || (r[1] = a("div", { class: "project-phasen-weiterdenken-header" }, [
|
|
43
44
|
a("h4", null, "Weiterdenken")
|
|
44
45
|
], -1)),
|
|
45
|
-
a("div",
|
|
46
|
+
a("div", P, [
|
|
46
47
|
r[0] || (r[0] = a("p", { class: "project-phasen-weiterdenken-description" }, " Von den Learnings bis zur Skalierung der Projektergebnisse. ", -1)),
|
|
47
|
-
(
|
|
48
|
+
(o(!0), m(S, null, x(l(w), (e) => (o(), B(l(j), {
|
|
48
49
|
key: e.name,
|
|
49
50
|
id: e.name,
|
|
50
51
|
placeholder: n.questions[e.name].placeholder,
|
|
@@ -52,46 +53,46 @@ const V = { class: "project-phasen-weiterdenken" }, y = { class: "project-phasen
|
|
|
52
53
|
"onUpdate:modelValue": (i) => n.questions[e.name].answer = i,
|
|
53
54
|
labelWeight: "bold",
|
|
54
55
|
label: e.text,
|
|
55
|
-
type:
|
|
56
|
+
type: l(y),
|
|
56
57
|
name: e.name,
|
|
57
58
|
validation: "length:0,1000",
|
|
58
59
|
hint: "true",
|
|
59
|
-
help: `${n.questions[e.name].answer.length || 0} von ${
|
|
60
|
+
help: `${n.questions[e.name].answer.length || 0} von ${u} Zeichen`,
|
|
60
61
|
"count-hint": !0,
|
|
61
|
-
onInput: (i) =>
|
|
62
|
-
maxlength:
|
|
62
|
+
onInput: (i) => k(e.name, i),
|
|
63
|
+
maxlength: u
|
|
63
64
|
}, null, 8, ["id", "placeholder", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
64
65
|
]),
|
|
65
|
-
|
|
66
|
-
"prev-and-next":
|
|
66
|
+
d(V, { "next-text": "Weiter zu den Technischen Prozessschritten" }, {
|
|
67
|
+
"prev-and-next": _(({
|
|
67
68
|
hidePrevious: e,
|
|
68
69
|
hideNext: i,
|
|
69
|
-
previousText:
|
|
70
|
-
nextText:
|
|
70
|
+
previousText: f,
|
|
71
|
+
nextText: c,
|
|
71
72
|
handlePrevious: b,
|
|
72
|
-
handleSubmit:
|
|
73
|
+
handleSubmit: z
|
|
73
74
|
}) => [
|
|
74
|
-
a("div",
|
|
75
|
-
h(
|
|
75
|
+
a("div", W, [
|
|
76
|
+
h(d(p, {
|
|
76
77
|
class: "previousButton",
|
|
77
78
|
variant: "secondary",
|
|
78
79
|
size: "large",
|
|
79
80
|
type: "button",
|
|
80
|
-
"button-text":
|
|
81
|
+
"button-text": f,
|
|
81
82
|
"icon-start": "CaretLeft",
|
|
82
83
|
onClick: b
|
|
83
84
|
}, null, 8, ["button-text", "onClick"]), [
|
|
84
|
-
[
|
|
85
|
+
[g, !e]
|
|
85
86
|
]),
|
|
86
|
-
h(
|
|
87
|
+
h(d(p, {
|
|
87
88
|
size: "large",
|
|
88
89
|
variant: t.nextVariant,
|
|
89
90
|
type: "button",
|
|
90
|
-
"button-text":
|
|
91
|
-
"icon-end":
|
|
92
|
-
onClick:
|
|
91
|
+
"button-text": c,
|
|
92
|
+
"icon-end": c === "Als Entwurf speichern" ? null : "CaretRight",
|
|
93
|
+
onClick: z
|
|
93
94
|
}, null, 8, ["variant", "button-text", "icon-end", "onClick"]), [
|
|
94
|
-
[
|
|
95
|
+
[g, !i]
|
|
95
96
|
])
|
|
96
97
|
])
|
|
97
98
|
]),
|
|
@@ -99,7 +100,7 @@ const V = { class: "project-phasen-weiterdenken" }, y = { class: "project-phasen
|
|
|
99
100
|
})
|
|
100
101
|
]));
|
|
101
102
|
}
|
|
102
|
-
},
|
|
103
|
+
}, Z = /* @__PURE__ */ C(A, [["__scopeId", "data-v-2ff2d2ed"]]);
|
|
103
104
|
export {
|
|
104
|
-
|
|
105
|
+
Z as default
|
|
105
106
|
};
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { ref as m, computed as
|
|
1
|
+
import { ref as m, computed as P, unref as f, watch as M, createElementBlock as r, openBlock as c, createElementVNode as s, createCommentVNode as g, toDisplayString as d, createVNode as u, Fragment as C, renderList as z } from "vue";
|
|
2
2
|
import { PhWarning as _ } from "@phosphor-icons/vue";
|
|
3
|
-
import { useEditModeInfo as
|
|
4
|
-
import { useFormValues as
|
|
5
|
-
import { useOrganizationInfo as
|
|
6
|
-
import { useTwinbyUser as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
3
|
+
import { useEditModeInfo as x } from "../composables/useDpiEditMode.js";
|
|
4
|
+
import { useFormValues as q } from "../composables/useDpiFormValues.js";
|
|
5
|
+
import { useOrganizationInfo as G } from "../composables/useOrganizationInfo.js";
|
|
6
|
+
import { useTwinbyUser as H } from "../composables/useTwinbyUser.js";
|
|
7
|
+
import T from "../HappyFlowComponents/ui/InputField.vue.js";
|
|
8
|
+
import D from "../HappyFlowComponents/ui/TextButtonSmall.vue.js";
|
|
9
9
|
/* empty css */
|
|
10
|
-
import
|
|
11
|
-
const
|
|
10
|
+
import J from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
11
|
+
const Q = { class: "dpiV3InnerComponentWrap" }, X = { class: "copy-large-regular" }, Y = { class: "dpiV3AutoCompleteWrap" }, Z = { class: "CardTips_internal" }, ee = { class: "CardTips_Part" }, ae = { class: "firstRow" }, te = { class: "icon_title copy-small-semi-bold" }, se = { class: "TextButton_small" }, le = { class: "secondRow" }, oe = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "copy-small-regular"
|
|
14
|
-
},
|
|
14
|
+
}, ie = {
|
|
15
15
|
key: 2,
|
|
16
16
|
class: "copy-small-regular"
|
|
17
|
-
},
|
|
17
|
+
}, ne = { class: "CardTips_Part" }, re = { class: "firstRow" }, ce = { class: "icon_title copy-small-semi-bold" }, de = { class: "TextButton_small" }, ue = { class: "secondRow" }, pe = { class: "input-container" }, me = {
|
|
18
18
|
key: 0,
|
|
19
19
|
class: "dpiV3_errormsgWrapper"
|
|
20
|
-
},
|
|
20
|
+
}, fe = { class: "copy-mini-regular" }, ve = { class: "input-container" }, he = {
|
|
21
21
|
key: 0,
|
|
22
22
|
class: "dpiV3_errormsgWrapper"
|
|
23
|
-
},
|
|
23
|
+
}, ge = { class: "copy-mini-regular" }, _e = { class: "input-container" }, be = {
|
|
24
24
|
key: 0,
|
|
25
25
|
class: "dpiV3_errormsgWrapper"
|
|
26
|
-
},
|
|
26
|
+
}, we = { class: "copy-mini-regular" }, ye = { class: "copy-large-regular" }, ke = {
|
|
27
27
|
key: 0,
|
|
28
28
|
class: "form-error-message"
|
|
29
|
-
},
|
|
29
|
+
}, Pe = {
|
|
30
30
|
__name: "ContactPage",
|
|
31
31
|
props: {
|
|
32
32
|
context: Object
|
|
33
33
|
},
|
|
34
|
-
setup(
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
const { resultEnhanced:
|
|
38
|
-
id:
|
|
39
|
-
authToken:
|
|
40
|
-
}),
|
|
34
|
+
setup(S) {
|
|
35
|
+
const v = S, { formValues: W } = q(), { isEditMode: F } = x(), { organization: O, authToken: R, startFetchPermissions: A } = H();
|
|
36
|
+
A();
|
|
37
|
+
const { resultEnhanced: L, isLoading: N, isFetching: U } = G({
|
|
38
|
+
id: O,
|
|
39
|
+
authToken: R
|
|
40
|
+
}), b = m(null), w = m(null), y = P(() => {
|
|
41
41
|
var e, t;
|
|
42
42
|
try {
|
|
43
|
-
const a = (t = (e =
|
|
43
|
+
const a = (t = (e = W.value.BasicInfos) == null ? void 0 : e["dct:publisher"]) == null ? void 0 : t[0];
|
|
44
44
|
if (a && a["foaf:name"] && a["foaf:mbox"])
|
|
45
45
|
return [
|
|
46
46
|
a["foaf:name"],
|
|
@@ -54,17 +54,17 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
54
54
|
"",
|
|
55
55
|
""
|
|
56
56
|
];
|
|
57
|
-
}),
|
|
58
|
-
var a
|
|
59
|
-
const e = (a =
|
|
57
|
+
}), V = P(() => N.value || U.value), h = P(() => {
|
|
58
|
+
var a;
|
|
59
|
+
const e = (a = L.value) == null ? void 0 : a.publisher;
|
|
60
60
|
if (!e)
|
|
61
61
|
return {};
|
|
62
62
|
const t = {
|
|
63
|
-
organization: e.name ||
|
|
63
|
+
organization: e.name || ""
|
|
64
64
|
};
|
|
65
65
|
if (e.email && (t.email = e.email), e.homepage) {
|
|
66
|
-
const
|
|
67
|
-
t.website =
|
|
66
|
+
const o = e.homepage.startsWith("http") ? e.homepage : `https://${e.homepage}`;
|
|
67
|
+
t.website = o;
|
|
68
68
|
}
|
|
69
69
|
return t;
|
|
70
70
|
}), l = m({
|
|
@@ -90,14 +90,14 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
90
90
|
"vcard:hasTelephone": ""
|
|
91
91
|
}
|
|
92
92
|
]);
|
|
93
|
-
|
|
94
|
-
function
|
|
93
|
+
F.value || v.context.node.input(i), v.context.node.value.length === 0 && v.context.node.input(f(i));
|
|
94
|
+
function E(e) {
|
|
95
95
|
return e.trim().length >= 2;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function $(e) {
|
|
98
98
|
return /^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/.test(e);
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function B(e) {
|
|
101
101
|
if (!e || e.trim() === "")
|
|
102
102
|
return !0;
|
|
103
103
|
const t = e.replace(/[\s\-().]/g, "");
|
|
@@ -106,7 +106,7 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
106
106
|
const a = t.replace(/\D/g, "");
|
|
107
107
|
return a.length >= 6 && a.length <= 15;
|
|
108
108
|
}
|
|
109
|
-
function
|
|
109
|
+
function k(e, t, a) {
|
|
110
110
|
let o = !1;
|
|
111
111
|
if (a === 3 && e.trim() === "")
|
|
112
112
|
l.value[a].show = !1, n.value[a] = !0;
|
|
@@ -115,13 +115,13 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
115
115
|
else {
|
|
116
116
|
switch (t) {
|
|
117
117
|
case "vcard:fn":
|
|
118
|
-
o =
|
|
118
|
+
o = E(e);
|
|
119
119
|
break;
|
|
120
120
|
case "vcard:hasEmail":
|
|
121
|
-
o =
|
|
121
|
+
o = $(e);
|
|
122
122
|
break;
|
|
123
123
|
case "vcard:hasTelephone":
|
|
124
|
-
o =
|
|
124
|
+
o = B(e);
|
|
125
125
|
break;
|
|
126
126
|
default:
|
|
127
127
|
o = e.trim() !== "";
|
|
@@ -131,88 +131,88 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
131
131
|
n.value[1] && n.value[2] ? i.value[0].isValid = !0 : i.value[0].isValid = "unset";
|
|
132
132
|
}
|
|
133
133
|
function p(e, t, a) {
|
|
134
|
-
i.value = i.value.map((o) => t in o ? { ...o, [t]: e } : o),
|
|
135
|
-
|
|
136
|
-
}, 800)) : a === 3 ? (
|
|
137
|
-
|
|
138
|
-
}, 800)) :
|
|
134
|
+
i.value = i.value.map((o) => t in o ? { ...o, [t]: e } : o), v.context.node.input(i.value), a === 2 ? (b.value && clearTimeout(b.value), b.value = setTimeout(() => {
|
|
135
|
+
k(e, t, a);
|
|
136
|
+
}, 800)) : a === 3 ? (w.value && clearTimeout(w.value), w.value = setTimeout(() => {
|
|
137
|
+
k(e, t, a);
|
|
138
|
+
}, 800)) : k(e, t, a);
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function j() {
|
|
141
141
|
const e = h.value;
|
|
142
142
|
e.organization && p(e.organization, "vcard:fn", 1), e.email && p(e.email, "vcard:hasEmail", 2);
|
|
143
143
|
}
|
|
144
|
-
function
|
|
145
|
-
p(
|
|
144
|
+
function I() {
|
|
145
|
+
p(y.value[0], "vcard:fn", 1), p(y.value[1], "vcard:hasEmail", 2);
|
|
146
146
|
}
|
|
147
|
-
function
|
|
147
|
+
function K() {
|
|
148
148
|
const e = i.value[0];
|
|
149
149
|
if (e["vcard:fn"].trim() === "")
|
|
150
150
|
l.value[1].show = !0, n.value[1] = !1;
|
|
151
151
|
else {
|
|
152
|
-
const t =
|
|
152
|
+
const t = E(e["vcard:fn"]);
|
|
153
153
|
l.value[1].show = !t, n.value[1] = t;
|
|
154
154
|
}
|
|
155
155
|
if (e["vcard:hasEmail"].trim() === "")
|
|
156
156
|
l.value[2].show = !0, n.value[2] = !1;
|
|
157
157
|
else {
|
|
158
|
-
const t =
|
|
158
|
+
const t = $(e["vcard:hasEmail"]);
|
|
159
159
|
l.value[2].show = !t, n.value[2] = t;
|
|
160
160
|
}
|
|
161
161
|
if (e["vcard:hasTelephone"].trim() === "")
|
|
162
162
|
l.value[3].show = !1, n.value[3] = !0;
|
|
163
163
|
else {
|
|
164
|
-
const t =
|
|
164
|
+
const t = B(e["vcard:hasTelephone"]);
|
|
165
165
|
l.value[3].show = !t, n.value[3] = t;
|
|
166
166
|
}
|
|
167
167
|
n.value[1] && n.value[2] ? i.value[0].isValid = !0 : i.value[0].isValid = !1;
|
|
168
168
|
}
|
|
169
|
-
return
|
|
170
|
-
e === !1 &&
|
|
171
|
-
}), (e, t) => (c(), r("div",
|
|
169
|
+
return M(() => i.value[0].isValid, (e) => {
|
|
170
|
+
e === !1 && K();
|
|
171
|
+
}), (e, t) => (c(), r("div", Q, [
|
|
172
172
|
s("h4", null, d(e.$t("message.dataupload.datasets.dcat:contactPoint.title")), 1),
|
|
173
|
-
s("div",
|
|
174
|
-
s("div",
|
|
175
|
-
s("div",
|
|
176
|
-
s("div",
|
|
177
|
-
s("div",
|
|
178
|
-
s("div",
|
|
179
|
-
s("div",
|
|
180
|
-
u(
|
|
173
|
+
s("div", X, d(e.$t("message.dataupload.datasets.dcat:contactPoint.description")), 1),
|
|
174
|
+
s("div", Y, [
|
|
175
|
+
s("div", Z, [
|
|
176
|
+
s("div", ee, [
|
|
177
|
+
s("div", ae, [
|
|
178
|
+
s("div", te, d(e.$t("message.dataupload.datasets.dcat:contactPoint.account")), 1),
|
|
179
|
+
s("div", se, [
|
|
180
|
+
u(D, {
|
|
181
181
|
"button-text": e.$t(
|
|
182
182
|
"message.dataupload.datasets.dcat:contactPoint.useAccountButton"
|
|
183
183
|
),
|
|
184
184
|
"icon-start": "DeleteBlue",
|
|
185
185
|
"icon-name": "copy",
|
|
186
186
|
class: "dpiV3_usedetailsButton",
|
|
187
|
-
disabled:
|
|
188
|
-
onClick:
|
|
187
|
+
disabled: V.value || Object.keys(h.value).length === 0,
|
|
188
|
+
onClick: j
|
|
189
189
|
}, null, 8, ["button-text", "disabled"])
|
|
190
190
|
])
|
|
191
191
|
]),
|
|
192
|
-
s("div",
|
|
193
|
-
|
|
192
|
+
s("div", le, [
|
|
193
|
+
V.value ? (c(), r("span", oe, "Lade Kontodaten...")) : Object.keys(h.value).length > 0 ? (c(!0), r(C, { key: 1 }, z(h.value, (a, o) => (c(), r("span", {
|
|
194
194
|
key: o,
|
|
195
195
|
class: "copy-small-regular"
|
|
196
|
-
}, d(a), 1))), 128)) : (c(), r("span",
|
|
196
|
+
}, d(a), 1))), 128)) : (c(), r("span", ie, "Keine Kontodaten verfügbar"))
|
|
197
197
|
])
|
|
198
198
|
]),
|
|
199
|
-
s("div",
|
|
200
|
-
s("div",
|
|
201
|
-
s("div",
|
|
202
|
-
s("div",
|
|
203
|
-
u(
|
|
199
|
+
s("div", ne, [
|
|
200
|
+
s("div", re, [
|
|
201
|
+
s("div", ce, d(e.$t("message.metadata.publisher")), 1),
|
|
202
|
+
s("div", de, [
|
|
203
|
+
u(D, {
|
|
204
204
|
"button-text": e.$t(
|
|
205
205
|
"message.dataupload.datasets.dcat:contactPoint.usePublisherButton"
|
|
206
206
|
),
|
|
207
207
|
"icon-start": "true",
|
|
208
208
|
"icon-name": "copy",
|
|
209
209
|
class: "",
|
|
210
|
-
onClick:
|
|
210
|
+
onClick: I
|
|
211
211
|
}, null, 8, ["button-text"])
|
|
212
212
|
])
|
|
213
213
|
]),
|
|
214
|
-
s("div",
|
|
215
|
-
(c(!0), r(
|
|
214
|
+
s("div", ue, [
|
|
215
|
+
(c(!0), r(C, null, z(y.value, (a, o) => (c(), r("span", {
|
|
216
216
|
key: o,
|
|
217
217
|
class: "copy-small-regular"
|
|
218
218
|
}, d(a), 1))), 128))
|
|
@@ -220,8 +220,8 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
220
220
|
])
|
|
221
221
|
])
|
|
222
222
|
]),
|
|
223
|
-
s("div",
|
|
224
|
-
u(
|
|
223
|
+
s("div", pe, [
|
|
224
|
+
u(T, {
|
|
225
225
|
"model-value": i.value[0]["vcard:fn"],
|
|
226
226
|
"add-on-text": !1,
|
|
227
227
|
"date-picker": !1,
|
|
@@ -237,16 +237,16 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
237
237
|
"show-error": l.value[1].show,
|
|
238
238
|
"onUpdate:modelValue": t[0] || (t[0] = (a) => p(a, "vcard:fn", 1))
|
|
239
239
|
}, null, 8, ["model-value", "placeholder", "label", "show-error"]),
|
|
240
|
-
l.value[1].show ? (c(), r("div",
|
|
241
|
-
u(
|
|
240
|
+
l.value[1].show ? (c(), r("div", me, [
|
|
241
|
+
u(f(_), {
|
|
242
242
|
size: 16,
|
|
243
243
|
weight: "fill"
|
|
244
244
|
}),
|
|
245
|
-
s("span",
|
|
245
|
+
s("span", fe, d(l.value[1].message), 1)
|
|
246
246
|
])) : g("", !0)
|
|
247
247
|
]),
|
|
248
|
-
s("div",
|
|
249
|
-
u(
|
|
248
|
+
s("div", ve, [
|
|
249
|
+
u(T, {
|
|
250
250
|
"model-value": i.value[0]["vcard:hasEmail"],
|
|
251
251
|
"add-on-text": !1,
|
|
252
252
|
"date-picker": !1,
|
|
@@ -262,16 +262,16 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
262
262
|
"show-error": l.value[2].show,
|
|
263
263
|
"onUpdate:modelValue": t[1] || (t[1] = (a) => p(a, "vcard:hasEmail", 2))
|
|
264
264
|
}, null, 8, ["model-value", "placeholder", "label", "show-error"]),
|
|
265
|
-
l.value[2].show ? (c(), r("div",
|
|
266
|
-
u(
|
|
265
|
+
l.value[2].show ? (c(), r("div", he, [
|
|
266
|
+
u(f(_), {
|
|
267
267
|
size: 16,
|
|
268
268
|
weight: "fill"
|
|
269
269
|
}),
|
|
270
|
-
s("span",
|
|
270
|
+
s("span", ge, d(l.value[2].message), 1)
|
|
271
271
|
])) : g("", !0)
|
|
272
272
|
]),
|
|
273
|
-
s("div",
|
|
274
|
-
u(
|
|
273
|
+
s("div", _e, [
|
|
274
|
+
u(T, {
|
|
275
275
|
"model-value": i.value[0]["vcard:hasTelephone"],
|
|
276
276
|
"add-on-text": !1,
|
|
277
277
|
"date-picker": !1,
|
|
@@ -287,17 +287,17 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
287
287
|
"show-error": l.value[3].show,
|
|
288
288
|
"onUpdate:modelValue": t[2] || (t[2] = (a) => p(a, "vcard:hasTelephone", 3))
|
|
289
289
|
}, null, 8, ["model-value", "placeholder", "label", "show-error"]),
|
|
290
|
-
l.value[3].show ? (c(), r("div",
|
|
291
|
-
u(
|
|
290
|
+
l.value[3].show ? (c(), r("div", be, [
|
|
291
|
+
u(f(_), {
|
|
292
292
|
size: 16,
|
|
293
293
|
weight: "fill"
|
|
294
294
|
}),
|
|
295
|
-
s("span",
|
|
295
|
+
s("span", we, d(l.value[3].message), 1)
|
|
296
296
|
])) : g("", !0)
|
|
297
297
|
]),
|
|
298
|
-
s("div",
|
|
299
|
-
i.value.find((a) => a.isValid === !1) ? (c(), r("div",
|
|
300
|
-
u(
|
|
298
|
+
s("div", ye, d(e.$t("message.dataupload.datasets.dcat:contactPoint.descriptionBottom")), 1),
|
|
299
|
+
i.value.find((a) => a.isValid === !1) ? (c(), r("div", ke, [
|
|
300
|
+
u(f(_), {
|
|
301
301
|
size: 16,
|
|
302
302
|
weight: "fill"
|
|
303
303
|
}),
|
|
@@ -305,7 +305,7 @@ const Y = { class: "dpiV3InnerComponentWrap" }, Z = { class: "copy-large-regular
|
|
|
305
305
|
])) : g("", !0)
|
|
306
306
|
]));
|
|
307
307
|
}
|
|
308
|
-
},
|
|
308
|
+
}, Fe = /* @__PURE__ */ J(Pe, [["__scopeId", "data-v-62702ebf"]]);
|
|
309
309
|
export {
|
|
310
|
-
|
|
310
|
+
Fe as default
|
|
311
311
|
};
|