@piveau/dpi 0.2.0-alpha.33 → 0.2.0-alpha.35
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/AboutProject.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/AboutProject.vue2.js +58 -48
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ActionCard.vue.js +2 -2
- 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 +13 -13
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/InputField/InputFieldDefinition.js +1 -0
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/InputField/InputFieldFormKit.vue.js +37 -33
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/InputField.vue.js +41 -37
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue2.js +69 -64
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/HardwareForm.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/HardwareForm.vue2.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ReviewStep/ReviewStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ReviewStep/ReviewStep.vue2.js +977 -963
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue2.js +20 -14
- package/dist/packages/dpi/src/data-provider-interface/components/TheErrorDialog.vue.js +44 -41
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/decodeProject.js +97 -95
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/encodeProject.js +26 -19
- package/package.json +1 -1
package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./TheCancelConfirmationDialog.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const i = /* @__PURE__ */
|
|
3
|
+
import a from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const i = /* @__PURE__ */ a(o, [["__scopeId", "data-v-374d8fa1"]]);
|
|
5
5
|
export {
|
|
6
6
|
i as default
|
|
7
7
|
};
|
package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue2.js
CHANGED
|
@@ -1,41 +1,47 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as f, useModel as p, computed as c, createBlock as v, openBlock as g, withCtx as o, createElementVNode as a, createVNode as l } from "vue";
|
|
2
2
|
import { useRouter as V } from "vue-router";
|
|
3
|
-
import { useProjectActions as
|
|
3
|
+
import { useProjectActions as b } from "../composables/useProjectActions.js";
|
|
4
4
|
import i from "../HappyFlowComponents/ui/ButtonV3.vue.js";
|
|
5
|
-
import
|
|
6
|
-
const y = /* @__PURE__ */
|
|
5
|
+
import k from "../HappyFlowComponents/ui/DpiModalBase.vue.js";
|
|
6
|
+
const y = /* @__PURE__ */ f({
|
|
7
7
|
__name: "TheCancelConfirmationDialog",
|
|
8
8
|
props: {
|
|
9
9
|
modelValue: { type: Boolean },
|
|
10
10
|
modelModifiers: {}
|
|
11
11
|
},
|
|
12
|
-
emits:
|
|
13
|
-
setup(
|
|
14
|
-
const s = V(), t = p(
|
|
12
|
+
emits: ["update:modelValue"],
|
|
13
|
+
setup(u) {
|
|
14
|
+
const s = V(), t = p(u, "modelValue"), { submitDraft: n } = b({
|
|
15
|
+
onSuccess: () => {
|
|
16
|
+
s.push({ name: "DPI-Home-HappyFlow" });
|
|
17
|
+
}
|
|
18
|
+
});
|
|
15
19
|
async function m() {
|
|
16
|
-
await
|
|
20
|
+
await n.execute(320);
|
|
17
21
|
}
|
|
18
|
-
|
|
22
|
+
const d = c(() => n.isLoading.value);
|
|
23
|
+
return (w, e) => (g(), v(k, {
|
|
19
24
|
modelValue: t.value,
|
|
20
25
|
"onUpdate:modelValue": e[1] || (e[1] = (r) => t.value = r)
|
|
21
26
|
}, {
|
|
22
27
|
header: o(() => e[2] || (e[2] = [
|
|
23
|
-
|
|
28
|
+
a("h4", { class: "cancel-header" }, " Projektanlage später fortführen ", -1)
|
|
24
29
|
])),
|
|
25
30
|
footer: o(() => [
|
|
26
|
-
|
|
31
|
+
l(i, {
|
|
27
32
|
"button-text": "Bearbeitung verwerfen",
|
|
28
33
|
variant: "secondary",
|
|
29
34
|
onClick: e[0] || (e[0] = (r) => t.value = !1)
|
|
30
35
|
}),
|
|
31
|
-
|
|
36
|
+
l(i, {
|
|
32
37
|
"button-text": "Projekt als Entwurf speichern",
|
|
33
38
|
variant: "primary",
|
|
39
|
+
loading: d.value,
|
|
34
40
|
onClick: m
|
|
35
|
-
})
|
|
41
|
+
}, null, 8, ["loading"])
|
|
36
42
|
]),
|
|
37
43
|
default: o(() => [
|
|
38
|
-
e[3] || (e[3] =
|
|
44
|
+
e[3] || (e[3] = a("div", null, " Sie können die Projektanlage später fortführen und Ihren bisherigen Fortschritt entweder verwerfen oder als Entwurf speichern. ", -1))
|
|
39
45
|
]),
|
|
40
46
|
_: 1,
|
|
41
47
|
__: [3]
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
1
|
+
import { defineComponent as E, computed as B, createBlock as g, openBlock as i, unref as o, isRef as C, withCtx as c, createElementBlock as k, createCommentVNode as l, createElementVNode as t, toDisplayString as N, createVNode as b, renderSlot as w, createTextVNode as R } from "vue";
|
|
2
|
+
import { whenever as S } from "@vueuse/core";
|
|
3
|
+
import { useRouter as F, useRoute as T } from "vue-router";
|
|
4
|
+
import { useRuntimeEnv as q } from "../../composables/useRuntimeEnv.js";
|
|
5
|
+
import { useErrorDialog as M } from "../composables/useErrorDialog.js";
|
|
6
|
+
import V from "../HappyFlowComponents/ui/ButtonV3.vue.js";
|
|
7
|
+
import z from "../HappyFlowComponents/ui/DpiModalBase.vue.js";
|
|
8
|
+
const A = { class: "dpiV3_modalTitle" }, J = {
|
|
8
9
|
key: 0,
|
|
9
10
|
class: "dpiV3_modalErrorContent"
|
|
10
|
-
},
|
|
11
|
+
}, O = { class: "dpiV3_modalErrorMain" }, L = {
|
|
11
12
|
key: 0,
|
|
12
13
|
class: "error-message"
|
|
13
|
-
},
|
|
14
|
+
}, U = { class: "development-notice" }, j = ["value"], G = { class: "dpiV3_modalActions" }, Z = /* @__PURE__ */ E({
|
|
14
15
|
__name: "TheErrorDialog",
|
|
15
|
-
setup(
|
|
16
|
-
const
|
|
17
|
-
function
|
|
16
|
+
setup(H) {
|
|
17
|
+
const D = F(), u = T(), { open: r, error: n, currentError: d, userMessage: p } = M(), f = q(), _ = !0;
|
|
18
|
+
function $() {
|
|
18
19
|
r.value = !1;
|
|
19
20
|
}
|
|
20
|
-
function
|
|
21
|
-
|
|
21
|
+
function x() {
|
|
22
|
+
D.push("/");
|
|
22
23
|
}
|
|
23
|
-
const
|
|
24
|
-
var s, e, a,
|
|
25
|
-
return `${(s =
|
|
24
|
+
const m = B(() => {
|
|
25
|
+
var s, e, a, v, y, h;
|
|
26
|
+
return `${(s = d == null ? void 0 : d.value) == null ? void 0 : s.message}
|
|
26
27
|
|
|
27
28
|
----
|
|
28
29
|
|
|
@@ -30,63 +31,65 @@ ${window.location}
|
|
|
30
31
|
|
|
31
32
|
----
|
|
32
33
|
|
|
33
|
-
id = ${(e =
|
|
34
|
+
id = ${(e = u.query) == null ? void 0 : e.id}; fromDraft = ${(a = u.query) == null ? void 0 : a.fromDraft}; edit = ${(v = u.query) == null ? void 0 : v.edit}
|
|
34
35
|
|
|
35
36
|
----
|
|
36
37
|
|
|
37
|
-
${(
|
|
38
|
+
${(y = n == null ? void 0 : n.value) == null ? void 0 : y.stack}
|
|
38
39
|
|
|
39
40
|
----
|
|
40
41
|
|
|
41
|
-
${JSON.stringify(
|
|
42
|
+
${JSON.stringify(f.api, null, 2)}
|
|
42
43
|
|
|
43
44
|
----
|
|
44
45
|
|
|
45
|
-
${JSON.stringify(
|
|
46
|
+
${JSON.stringify((h = f.authentication) == null ? void 0 : h.keycloak, null, 2)}
|
|
46
47
|
|
|
47
48
|
`;
|
|
48
49
|
});
|
|
49
|
-
return (
|
|
50
|
+
return S(m, () => {
|
|
51
|
+
console.error(m.value);
|
|
52
|
+
}), (s, e) => (i(), g(z, {
|
|
50
53
|
modelValue: o(r),
|
|
51
|
-
"onUpdate:modelValue": e[0] || (e[0] = (a) =>
|
|
52
|
-
persistent: !o(
|
|
54
|
+
"onUpdate:modelValue": e[0] || (e[0] = (a) => C(r) ? r.value = a : null),
|
|
55
|
+
persistent: !o(_),
|
|
53
56
|
"on-close": "() => {}"
|
|
54
57
|
}, {
|
|
55
|
-
header:
|
|
56
|
-
t("h2",
|
|
58
|
+
header: c(() => [
|
|
59
|
+
t("h2", A, [
|
|
57
60
|
t("strong", null, [
|
|
58
|
-
|
|
61
|
+
w(s.$slots, "title", {}, () => [
|
|
59
62
|
e[1] || (e[1] = R("Fehler beim Laden des Datensatzes", -1))
|
|
60
63
|
])
|
|
61
64
|
])
|
|
62
65
|
])
|
|
63
66
|
]),
|
|
64
|
-
footer:
|
|
65
|
-
t("div",
|
|
66
|
-
o(
|
|
67
|
+
footer: c(() => [
|
|
68
|
+
t("div", G, [
|
|
69
|
+
o(_) ? (i(), g(V, {
|
|
67
70
|
key: 0,
|
|
68
71
|
"button-text": "Trotzdem Fortfahren",
|
|
69
72
|
variant: "secondary",
|
|
70
|
-
onClick:
|
|
73
|
+
onClick: $
|
|
71
74
|
})) : l("", !0),
|
|
72
|
-
|
|
75
|
+
b(V, {
|
|
73
76
|
"button-text": "Schließen",
|
|
74
77
|
variant: "primary",
|
|
75
|
-
onClick:
|
|
78
|
+
onClick: x
|
|
76
79
|
})
|
|
77
80
|
])
|
|
78
81
|
]),
|
|
79
|
-
default:
|
|
80
|
-
o(n) ? (i(),
|
|
81
|
-
t("div",
|
|
82
|
-
o(
|
|
82
|
+
default: c(() => [
|
|
83
|
+
o(n) ? (i(), k("div", J, [
|
|
84
|
+
t("div", O, [
|
|
85
|
+
o(p) ? (i(), k("p", L, N(o(p)), 1)) : l("", !0),
|
|
83
86
|
e[2] || (e[2] = t("p", { class: "error-message" }, " Ein Fehler ist aufgetreten. Die folgenden Details können den Betreibenden bei der Fehleranalyse helfen. ", -1)),
|
|
84
|
-
t("div",
|
|
87
|
+
t("div", U, [
|
|
85
88
|
t("textarea", {
|
|
86
89
|
readonly: "",
|
|
87
90
|
class: "error-textarea",
|
|
88
|
-
value:
|
|
89
|
-
}, null, 8,
|
|
91
|
+
value: m.value
|
|
92
|
+
}, null, 8, j)
|
|
90
93
|
])
|
|
91
94
|
]),
|
|
92
95
|
l("", !0)
|
|
@@ -97,5 +100,5 @@ ${JSON.stringify(p.authentication.keycloak, null, 2)}
|
|
|
97
100
|
}
|
|
98
101
|
});
|
|
99
102
|
export {
|
|
100
|
-
|
|
103
|
+
Z as default
|
|
101
104
|
};
|
|
@@ -1,83 +1,85 @@
|
|
|
1
1
|
import { pipe as A } from "effect";
|
|
2
|
-
import * as
|
|
2
|
+
import * as g from "effect/Option";
|
|
3
3
|
import * as H from "jsonld";
|
|
4
4
|
import { schemaProject as q } from "../../schema/projectLdSchema.js";
|
|
5
5
|
import { getFirstItem as G, extractStringValue as t, extractLocalizedString as N } from "../useDpiSimpleLoader.js";
|
|
6
|
-
import { isNonNullable as
|
|
7
|
-
import { PREFIXES as F, nonEmpty as
|
|
8
|
-
function
|
|
9
|
-
const a = (
|
|
6
|
+
import { isNonNullable as h } from "./encodeProject.js";
|
|
7
|
+
import { PREFIXES as F, nonEmpty as j } from "./shared.js";
|
|
8
|
+
function W(n) {
|
|
9
|
+
const a = (n || "").trim();
|
|
10
10
|
if (!a)
|
|
11
11
|
return "";
|
|
12
12
|
try {
|
|
13
|
-
const
|
|
14
|
-
return
|
|
13
|
+
const r = new URL(a).pathname.split("/").filter(Boolean);
|
|
14
|
+
return r[r.length - 1] || "";
|
|
15
15
|
} catch {
|
|
16
16
|
return a;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
async function C(
|
|
19
|
+
async function C(n) {
|
|
20
20
|
const a = {
|
|
21
21
|
"@context": F,
|
|
22
22
|
"@type": "schema:Project"
|
|
23
|
-
}, s = await H.frame(
|
|
23
|
+
}, s = await H.frame(n, a, {
|
|
24
24
|
embed: "@always",
|
|
25
25
|
omitGraph: !0
|
|
26
|
-
}),
|
|
26
|
+
}), r = await H.compact(s, F, {
|
|
27
27
|
compactArrays: !1,
|
|
28
28
|
graph: !1
|
|
29
|
-
}),
|
|
30
|
-
if (!
|
|
29
|
+
}), d = q.safeParse(G(r == null ? void 0 : r["@graph"]));
|
|
30
|
+
if (!d.success)
|
|
31
31
|
throw new Error(`Failed to parse project
|
|
32
32
|
|
|
33
|
-
${
|
|
34
|
-
return
|
|
33
|
+
${d.error.message}`);
|
|
34
|
+
return d.data;
|
|
35
35
|
}
|
|
36
|
-
function U(
|
|
37
|
-
return
|
|
36
|
+
function U(n) {
|
|
37
|
+
return j(G(n["@id"]));
|
|
38
38
|
}
|
|
39
|
-
function K(
|
|
40
|
-
var
|
|
39
|
+
function K(n, a) {
|
|
40
|
+
var r, d;
|
|
41
41
|
const { visibility: s } = a;
|
|
42
42
|
return {
|
|
43
43
|
"Auffindbarkeit/Sichtbarkeit": {
|
|
44
44
|
visibility: s
|
|
45
45
|
},
|
|
46
46
|
"Auffindbarkeit/Kategorien": {
|
|
47
|
-
categories: ((
|
|
47
|
+
categories: ((r = n["dcat:theme"]) == null ? void 0 : r.map(U).filter(h)) || []
|
|
48
48
|
},
|
|
49
49
|
"Auffindbarkeit/Anwendungsbereiche": {
|
|
50
|
-
applications: ((
|
|
50
|
+
applications: ((d = n["schema:application"]) == null ? void 0 : d.filter(h)) || []
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
function V(
|
|
54
|
+
function V(n) {
|
|
55
55
|
var s;
|
|
56
|
-
const a = (s =
|
|
57
|
-
name:
|
|
58
|
-
mail:
|
|
59
|
-
phone:
|
|
60
|
-
})).filter(
|
|
56
|
+
const a = (s = n["dcat:contactPoint"]) == null ? void 0 : s.map((r) => ({
|
|
57
|
+
name: j(t(r["vcard:fn"])),
|
|
58
|
+
mail: j(t(r["vcard:hasEmail"])),
|
|
59
|
+
phone: j(t(r["vcard:hasTelephone"]))
|
|
60
|
+
})).filter(h);
|
|
61
61
|
return {
|
|
62
62
|
"Grundlegende Informationen/Name": {
|
|
63
63
|
projectName: A(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
g.fromNullable(N(n["dct:title"], "de")),
|
|
65
|
+
g.flatMap((r) => j(r) ? g.some(r) : g.none()),
|
|
66
|
+
g.getOrThrowWith(() => new Error("Project name is missing"))
|
|
67
67
|
)
|
|
68
68
|
},
|
|
69
69
|
"Grundlegende Informationen/Beschreibung": {
|
|
70
70
|
projectDescription: A(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
g.fromNullable(N(n["dct:description"], "de")),
|
|
72
|
+
// O.flatMap(s => nonEmpty(s) ? O.some(s) : O.none()),
|
|
73
|
+
// O.getOrThrowWith(() => new Error('Project description is missing')),
|
|
74
|
+
g.getOrElse(() => "")
|
|
74
75
|
)
|
|
75
76
|
},
|
|
76
77
|
"Grundlegende Informationen/Projektstatus": {
|
|
77
78
|
projectName: A(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
g.fromNullable(n["schema:status"]),
|
|
80
|
+
// O.flatMap(s => nonEmpty(s) ? O.some(s) : O.none()),
|
|
81
|
+
// O.getOrThrowWith(() => new Error('Project status is missing')),
|
|
82
|
+
g.getOrElse(() => "")
|
|
81
83
|
)
|
|
82
84
|
},
|
|
83
85
|
"Grundlegende Informationen/Organisation": {
|
|
@@ -89,44 +91,44 @@ function V(r) {
|
|
|
89
91
|
}
|
|
90
92
|
};
|
|
91
93
|
}
|
|
92
|
-
function R(
|
|
93
|
-
var a, s,
|
|
94
|
+
function R(n) {
|
|
95
|
+
var a, s, r, d, b, k, D, i;
|
|
94
96
|
return {
|
|
95
97
|
"Optionale Daten": {
|
|
96
|
-
partners: ((a =
|
|
98
|
+
partners: ((a = n["dct:contributor"]) == null ? void 0 : a.map((c) => ({
|
|
97
99
|
name: t(c["foaf:name"]),
|
|
98
100
|
url: t(c["foaf:homepage"])
|
|
99
|
-
})).filter(
|
|
100
|
-
requiredExpertise: ((s =
|
|
101
|
-
references: ((
|
|
101
|
+
})).filter(h)) || [],
|
|
102
|
+
requiredExpertise: ((s = n["schema:skills"]) == null ? void 0 : s.map(t).filter(h)) || [],
|
|
103
|
+
references: ((d = (r = n["dct:references"]) == null ? void 0 : r.filter((c) => c["dct:type"] === "image")) == null ? void 0 : d.map((c) => ({
|
|
102
104
|
homepage: t(c["schema:url"])
|
|
103
|
-
})).filter(
|
|
104
|
-
startDate: t(
|
|
105
|
-
endDate: t(
|
|
106
|
-
budget: t(((b =
|
|
107
|
-
budgetDescription: t(((
|
|
105
|
+
})).filter(h)) || [],
|
|
106
|
+
startDate: t(n["schema:startDate"] || ""),
|
|
107
|
+
endDate: t(n["schema:endDate"] || ""),
|
|
108
|
+
budget: t(((b = n["schema:amount"]) == null ? void 0 : b["schema:value"]) || ""),
|
|
109
|
+
budgetDescription: t(((k = n["schema:amount"]) == null ? void 0 : k["schema:description"]) || ""),
|
|
108
110
|
// todo:
|
|
109
|
-
links: ((i = (
|
|
111
|
+
links: ((i = (D = n["dct:references"]) == null ? void 0 : D.filter((c) => c["dct:type"] === "documentation")) == null ? void 0 : i.map((c) => ({
|
|
110
112
|
name: t(c["dct:title"]),
|
|
111
113
|
url: t(c["schema:url"]),
|
|
112
114
|
description: t(c["dct:description"])
|
|
113
|
-
})).filter(
|
|
115
|
+
})).filter(h)) || []
|
|
114
116
|
}
|
|
115
117
|
};
|
|
116
118
|
}
|
|
117
|
-
function $(
|
|
118
|
-
const a =
|
|
119
|
+
function $(n) {
|
|
120
|
+
const a = n["schema:hasPart"] ?? [], s = (u) => a.find((m) => m["dct:type"] === u), r = (u) => {
|
|
119
121
|
var p, e;
|
|
120
|
-
const
|
|
121
|
-
const y = Number.parseInt(t(
|
|
122
|
-
return (Number.isNaN(y) ? 0 : y) - (Number.isNaN(
|
|
122
|
+
const m = /* @__PURE__ */ new Map(), v = [...(u == null ? void 0 : u["schema:question"]) ?? []].sort((l, f) => {
|
|
123
|
+
const y = Number.parseInt(t(l["schema:position"])), z = Number.parseInt(t(f["schema:position"]));
|
|
124
|
+
return (Number.isNaN(y) ? 0 : y) - (Number.isNaN(z) ? 0 : z);
|
|
123
125
|
});
|
|
124
|
-
for (const
|
|
125
|
-
const
|
|
126
|
-
|
|
126
|
+
for (const l of v) {
|
|
127
|
+
const f = (p = l["schema:text"]) == null ? void 0 : p.trim(), y = (e = l["schema:acceptedAnswer"]) == null ? void 0 : e.trim();
|
|
128
|
+
f && y && m.set(f, y);
|
|
127
129
|
}
|
|
128
|
-
return
|
|
129
|
-
},
|
|
130
|
+
return m;
|
|
131
|
+
}, d = {
|
|
130
132
|
projectTriggers: "Was waren Ausloeser fuer das Projekt (z. B. rechtliche oder politische Vorgaben, intrinsische Motivation oder inspirierende Projekte aus anderen Kommunen)?",
|
|
131
133
|
involvedStakeholders: "Welche relevanten Akteure innerhalb oder ausserhalb Ihrer Organisation haben Sie fruehzeitig involviert (z. B. um politische Rueckendeckung sicherzustellen)?",
|
|
132
134
|
dataCollectionMethod: "Wie haben Sie den Bestand vorhandener Daten erhoben?",
|
|
@@ -136,39 +138,39 @@ function $(r) {
|
|
|
136
138
|
tenderFormat: "Welche Ausschreibungsform haben Sie gewaehlt und warum? Gab es eine Vorlage oder Muster-Leistungsbeschreibung, die hilfreich war?",
|
|
137
139
|
tenderTips: "Welche Tipps haben Sie fuer eine erfolgreiche Ausschreibung?",
|
|
138
140
|
resourcePlanning: "Wie haben Sie die Ressourcenplanung fuer die Entwicklung und den Betrieb Ihres Digitalen Zwillings gestaltet und gesichert?"
|
|
139
|
-
},
|
|
141
|
+
}, k = {
|
|
140
142
|
projectTriggers: "Wie haben Sie die Zusammenarbeit mit den Dienstleistern organisiert und wie wurden relevante Stakeholder in Entscheidungsprozesse eingebunden?",
|
|
141
143
|
involvedStakeholders: "Gab es Verzoegerungen und wenn ja, was waren die Gruende?",
|
|
142
144
|
dataCollectionMethod: "Welche Schnittstellen wurden genutzt und traten technische Herausforderungen auf?",
|
|
143
145
|
budgetPlanning: "Welche Ueberlegungen sind in Ihre Entscheidung fuer eine Open-Source-Loesung eingeflossen und welche Erfahrungen haben Sie gemacht?"
|
|
144
|
-
},
|
|
146
|
+
}, D = {
|
|
145
147
|
projectTriggers: "Was sind Ihre wichtigsten Learnings aus dem Projekt? Was wuerden Sie beim naechsten Use Case anders machen?",
|
|
146
148
|
involvedStakeholders: "Wird die Wirksamkeit Ihres Projekts ueberwacht und wenn ja, wie? Ist der erwartete Nutzen eingetreten?",
|
|
147
149
|
dataCollectionMethod: "Gibt es Plaene fuer eine Skalierung oder Weiterentwicklung? Wenn ja, wie sichern Sie die Finanzierung dafuer?",
|
|
148
150
|
budgetPlanning: "Welche externen Unterstuetzungsangebote haben Ihnen geholfen oder auch gefehlt?"
|
|
149
|
-
}, i = (
|
|
150
|
-
const
|
|
151
|
-
for (const [e,
|
|
152
|
-
const
|
|
153
|
-
|
|
151
|
+
}, i = (u, m) => {
|
|
152
|
+
const I = s(u), v = r(I), p = {};
|
|
153
|
+
for (const [e, l] of Object.entries(m)) {
|
|
154
|
+
const f = v.get(l);
|
|
155
|
+
f && (p[e] = f);
|
|
154
156
|
}
|
|
155
157
|
return p;
|
|
156
|
-
}, c = i("Initiieren",
|
|
158
|
+
}, c = i("Initiieren", d), w = i("Planen", b), S = i("Umsetzen", k), P = i("Weiterdenken", D);
|
|
157
159
|
return {
|
|
158
160
|
"Projektphasen (optional)": {},
|
|
159
161
|
"Projektphasen (optional)/Initiieren": c,
|
|
160
162
|
"Projektphasen (optional)/Planen": w,
|
|
161
163
|
"Projektphasen (optional)/Umsetzen": S,
|
|
162
|
-
"Projektphasen (optional)/Weiterdenken":
|
|
164
|
+
"Projektphasen (optional)/Weiterdenken": P
|
|
163
165
|
};
|
|
164
166
|
}
|
|
165
|
-
function L(
|
|
166
|
-
const a =
|
|
167
|
+
function L(n) {
|
|
168
|
+
const a = n["p-plan:hasStep"] ?? [], s = {
|
|
167
169
|
datenerfassung: "1. Datenerfassung",
|
|
168
170
|
datenverarbeitung: "2. Datenverarbeitung",
|
|
169
171
|
datensimulation: "3. Datensimulation",
|
|
170
172
|
datenvisualisierung: "4. Datenvisualisierung"
|
|
171
|
-
},
|
|
173
|
+
}, r = {
|
|
172
174
|
"Technische Prozessschritte": {},
|
|
173
175
|
"1. Datenerfassung/Grundlegende Informationen": {},
|
|
174
176
|
"1. Datenerfassung/Software": {},
|
|
@@ -186,61 +188,61 @@ function L(r) {
|
|
|
186
188
|
"4. Datenvisualisierung/Software": {},
|
|
187
189
|
"4. Datenvisualisierung/Datensätze": {},
|
|
188
190
|
"4. Datenvisualisierung/Hardware": {}
|
|
189
|
-
},
|
|
191
|
+
}, d = (i) => `${i}/Grundlegende Informationen`, b = (i) => `${i}/Software`, k = (i) => `${i}/Datensätze`, D = (i) => `${i}/Hardware`;
|
|
190
192
|
for (const i of a) {
|
|
191
193
|
const c = (t(i["p-plan:Activity"] || "") || "").trim().toLowerCase(), w = s[c];
|
|
192
194
|
if (!w)
|
|
193
195
|
continue;
|
|
194
|
-
const S = N(i["dct:description"], "de") || "",
|
|
196
|
+
const S = N(i["dct:description"], "de") || "", P = (i["prov:used"] || []).map((e) => ({
|
|
195
197
|
name: t(e["dct:title"]) || ""
|
|
196
198
|
// description: extractStringValue(m['dct:description']) || undefined,
|
|
197
|
-
})).filter((e) => (e.name ?? "").length > 0),
|
|
199
|
+
})).filter((e) => (e.name ?? "").length > 0), u = (i["dct:references"] || []).filter((e) => t(e["dct:type"]) === "documentation").map((e) => ({
|
|
198
200
|
name: t(e["dct:title"]) || "",
|
|
199
201
|
url: t(e["schema:url"]) || "",
|
|
200
202
|
description: t(e["dct:description"]) || void 0
|
|
201
203
|
})).filter((e) => e.url.length > 0 && e.name.length > 0);
|
|
202
|
-
(S ||
|
|
204
|
+
(S || P.length > 0 || u.length > 0) && (r[d(w)] = {
|
|
203
205
|
...S ? { description: S } : {},
|
|
204
|
-
...
|
|
205
|
-
...
|
|
206
|
+
...P.length > 0 ? { methods: P } : {},
|
|
207
|
+
...u.length > 0 ? { links: u } : {}
|
|
206
208
|
});
|
|
207
|
-
const
|
|
208
|
-
id:
|
|
209
|
-
functionalities: (e["schema:featureList"] || []).map((
|
|
209
|
+
const m = i["p-plan:hasInputVar"] || [], I = m.filter((e) => t(e["@type"]) === "schema:SoftwareApplication").map((e) => ({
|
|
210
|
+
id: W(t(e["dct:identifier"]) || ""),
|
|
211
|
+
functionalities: (e["schema:featureList"] || []).map((l) => t(l)).filter(h)
|
|
210
212
|
})).filter((e) => e.id.length > 0);
|
|
211
|
-
|
|
212
|
-
selected:
|
|
213
|
+
I.length > 0 && (r[b(w)] = {
|
|
214
|
+
selected: I
|
|
213
215
|
});
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
selected:
|
|
216
|
+
const v = m.filter((e) => t(e["@type"]) === "dcat:Dataset").map((e) => ({ id: W(t(e["dct:identifier"]) || "") })).filter((e) => e.id.length > 0);
|
|
217
|
+
v.length > 0 && (r[k(w)] = {
|
|
218
|
+
selected: v
|
|
217
219
|
});
|
|
218
|
-
const p =
|
|
219
|
-
const
|
|
220
|
+
const p = m.filter((e) => t(e["@type"]) === "ssn:System").map((e) => {
|
|
221
|
+
const l = e["ssn:deployedSystem"], f = W(t(e["dct:identifier"]) || ""), y = l && typeof l == "object" ? W(t(l["@id"]) || l["@id"]) : "", z = f || y, x = N(e["dct:description"], "de") || void 0, E = (e["ssn:forProperty"] || []).map((o) => t(o)).filter(h), B = (e["sosa:hasLocation"] || []).map((o) => ({ lat: t(o["geo:lat"]) || "", lng: t(o["geo:long"]) || "" })).filter((o) => o.lat.length > 0 && o.lng.length > 0), M = (e["foaf:depiction"] || []).map((o) => U(o)).filter(h), T = (e["dct:references"] || []).filter((o) => t(o["dct:type"]) === "documentation").map((o) => ({
|
|
220
222
|
name: t(o["dct:title"]) || "",
|
|
221
223
|
url: t(o["schema:url"]) || "",
|
|
222
224
|
description: t(o["dct:description"]) || void 0
|
|
223
|
-
})).filter((o) => o.url.length > 0), O = (e["ssn-system:hasSystemCapability"] || []).map((o) => t(o)).filter(
|
|
225
|
+
})).filter((o) => o.url.length > 0), O = (e["ssn-system:hasSystemCapability"] || []).map((o) => t(o)).filter(h);
|
|
224
226
|
return {
|
|
225
|
-
id:
|
|
227
|
+
id: z,
|
|
226
228
|
...x ? { description: x } : {},
|
|
227
|
-
...
|
|
228
|
-
...
|
|
229
|
-
...
|
|
229
|
+
...E.length > 0 ? { forProperty: E } : {},
|
|
230
|
+
...B.length > 0 ? { locations: B } : {},
|
|
231
|
+
...M.length > 0 ? { depictions: M } : {},
|
|
230
232
|
...T.length > 0 ? { references: T } : {},
|
|
231
233
|
...O.length > 0 ? { functionalities: O } : {},
|
|
232
234
|
isHostedBy: e["sosa:isHostedBy"] || [],
|
|
233
235
|
hosts: []
|
|
234
236
|
};
|
|
235
237
|
}).filter((e) => (e.id ?? "").length > 0);
|
|
236
|
-
p.length > 0 && (
|
|
238
|
+
p.length > 0 && (r[D(w)] = {
|
|
237
239
|
selected: p
|
|
238
240
|
});
|
|
239
241
|
}
|
|
240
|
-
return
|
|
242
|
+
return r;
|
|
241
243
|
}
|
|
242
|
-
async function _(
|
|
243
|
-
const s = await C(
|
|
244
|
+
async function _(n, a) {
|
|
245
|
+
const s = await C(n);
|
|
244
246
|
return {
|
|
245
247
|
Landing: {},
|
|
246
248
|
...K(s, { visibility: (a == null ? void 0 : a.visibility) || "public" }),
|