@piveau/dpi 0.2.0-alpha.13 → 0.2.0-alpha.14
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/DataProviderInterface.vue2.js +48 -47
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/HomeTable.vue.js +74 -71
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ProjectTable.vue.js +4 -94
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ProjectTable.vue2.js +104 -0
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Autocomplete/AutocompleteVocab.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Autocomplete/AutocompleteVocab.vue2.js +64 -52
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/BasicInfosStep/ProjectNameStep.vue.js +8 -8
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DpiModalBase.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DpiModalBase.vue2.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Findability/CategoriesStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Findability/CategoriesStep.vue2.js +4 -4
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue2.js +21 -21
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/DatasetStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/DatasetStep.vue2.js +73 -71
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/GetResource.vue.js +4 -4
- 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/HardwareStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/HardwareStep.vue2.js +133 -131
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/SoftwareStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/SoftwareStep.vue2.js +85 -83
- 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 +4 -4
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/TableRowV3.vue.js +179 -133
- package/dist/packages/dpi/src/data-provider-interface/components/StepActionsSection.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/components/StepActionsSection.vue2.js +111 -91
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue.js +3 -3
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue2.js +24 -19
- package/dist/packages/dpi/src/data-provider-interface/components/dev-tools/ProjectDpiDevTools.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/components/dev-tools/ProjectDpiDevTools.vue2.js +137 -94
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/decodeProject.js +152 -135
- package/dist/packages/dpi/src/data-provider-interface/composables/project-transformer/encodeProject.js +201 -164
- package/dist/packages/dpi/src/data-provider-interface/composables/useDpiContext.js +9 -10
- package/dist/packages/dpi/src/data-provider-interface/composables/useDpiEditMode.js +88 -66
- package/dist/packages/dpi/src/data-provider-interface/composables/useDpiSimpleLoader.js +274 -273
- package/dist/packages/dpi/src/data-provider-interface/composables/useDpiStepper.js +33 -32
- package/dist/packages/dpi/src/data-provider-interface/composables/useDpiUtils.js +18 -9
- package/dist/packages/dpi/src/data-provider-interface/composables/useProjectActions.js +65 -0
- package/dist/packages/dpi/src/data-provider-interface/composables/useTwinbyHome.js +50 -0
- package/dist/packages/dpi/src/data-provider-interface/schema/projectLdSchema.js +48 -45
- package/dist/packages/dpi/src/data-provider-interface/views/InputPageProject.vue.js +386 -397
- package/dist/packages/dpi/src/utils/schema/schemaProject.js +210 -0
- package/dist/packages/dpi/src/utils/schema/shared.js +23 -0
- package/package.json +3 -3
|
@@ -3,7 +3,7 @@ import { ref as H, computed as i, provide as J } from "vue";
|
|
|
3
3
|
import { dpiStepperKey as M } from "../utils/injectionKeys.js";
|
|
4
4
|
import O from "../utils/useSteps.js";
|
|
5
5
|
function Y(Q) {
|
|
6
|
-
const { steps: p, activeStep: o, stepPlugin:
|
|
6
|
+
const { steps: p, activeStep: o, stepPlugin: B, visitedSteps: h, subSteps: A, triggerValidation: n, triggerValidationCurrentStep: u } = O(), s = H([]), e = G(s, o.value), r = () => {
|
|
7
7
|
e.current.value && e.current.value !== o.value && (o.value = e.current.value);
|
|
8
8
|
}, c = (t) => {
|
|
9
9
|
s.value.includes(t) || (s.value.push(t), s.value.length === 1 && !o.value && (o.value = t, e.goTo(t)));
|
|
@@ -11,11 +11,11 @@ function Y(Q) {
|
|
|
11
11
|
e.goToNext(), r();
|
|
12
12
|
}, a = () => {
|
|
13
13
|
e.goToPrevious(), r();
|
|
14
|
-
},
|
|
14
|
+
}, g = (t) => {
|
|
15
15
|
e.goTo(t), r();
|
|
16
16
|
}, C = (t) => {
|
|
17
|
-
const
|
|
18
|
-
|
|
17
|
+
const y = e.at(t);
|
|
18
|
+
y && (e.goTo(y), r());
|
|
19
19
|
}, I = i(() => e.index.value), L = i(() => e.previous.value || ""), N = i(() => e.next.value || ""), {
|
|
20
20
|
steps: V,
|
|
21
21
|
stepNames: b,
|
|
@@ -24,50 +24,51 @@ function Y(Q) {
|
|
|
24
24
|
next: F,
|
|
25
25
|
previous: K,
|
|
26
26
|
isFirst: j,
|
|
27
|
-
isLast:
|
|
27
|
+
isLast: l,
|
|
28
28
|
at: q,
|
|
29
29
|
get: w,
|
|
30
|
-
goTo:
|
|
30
|
+
goTo: S,
|
|
31
31
|
goToNext: z,
|
|
32
32
|
goToPrevious: E,
|
|
33
|
-
goBackTo:
|
|
34
|
-
isNext:
|
|
35
|
-
isPrevious:
|
|
36
|
-
isCurrent:
|
|
37
|
-
isBefore:
|
|
38
|
-
isAfter:
|
|
33
|
+
goBackTo: T,
|
|
34
|
+
isNext: f,
|
|
35
|
+
isPrevious: x,
|
|
36
|
+
isCurrent: d,
|
|
37
|
+
isBefore: m,
|
|
38
|
+
isAfter: P
|
|
39
39
|
} = e;
|
|
40
40
|
return J(M, {
|
|
41
41
|
steps: p,
|
|
42
42
|
activeStep: o,
|
|
43
43
|
registerStep: c,
|
|
44
|
-
goTo:
|
|
44
|
+
goTo: S,
|
|
45
45
|
goToNextStep: v,
|
|
46
46
|
goToPreviousStep: a,
|
|
47
|
-
goBackTo:
|
|
48
|
-
isNext:
|
|
49
|
-
isPrevious:
|
|
50
|
-
isCurrent:
|
|
51
|
-
isBefore:
|
|
52
|
-
isAfter:
|
|
47
|
+
goBackTo: T,
|
|
48
|
+
isNext: f,
|
|
49
|
+
isPrevious: x,
|
|
50
|
+
isCurrent: d,
|
|
51
|
+
isBefore: m,
|
|
52
|
+
isAfter: P,
|
|
53
53
|
triggerValidation: n,
|
|
54
54
|
triggerValidationCurrentStep: u,
|
|
55
|
-
isLast:
|
|
55
|
+
isLast: l,
|
|
56
|
+
goToStep: g
|
|
56
57
|
}), {
|
|
57
58
|
// Original API for backward compatibility (form validation steps)
|
|
58
59
|
steps: p,
|
|
59
|
-
subSteps:
|
|
60
|
+
subSteps: A,
|
|
60
61
|
activeStep: o,
|
|
61
62
|
activeStepIndex: I,
|
|
62
63
|
previousStep: L,
|
|
63
64
|
nextStep: N,
|
|
64
|
-
visitedSteps:
|
|
65
|
-
stepPlugin:
|
|
65
|
+
visitedSteps: h,
|
|
66
|
+
stepPlugin: B,
|
|
66
67
|
stepList: s,
|
|
67
68
|
registerStep: c,
|
|
68
69
|
goToNextStep: v,
|
|
69
70
|
goToPreviousStep: a,
|
|
70
|
-
goToStep:
|
|
71
|
+
goToStep: g,
|
|
71
72
|
goToStepByIndex: C,
|
|
72
73
|
triggerValidation: n,
|
|
73
74
|
triggerValidationCurrentStep: u,
|
|
@@ -79,18 +80,18 @@ function Y(Q) {
|
|
|
79
80
|
next: F,
|
|
80
81
|
previous: K,
|
|
81
82
|
isFirst: j,
|
|
82
|
-
isLast:
|
|
83
|
+
isLast: l,
|
|
83
84
|
at: q,
|
|
84
85
|
get: w,
|
|
85
|
-
goTo:
|
|
86
|
+
goTo: S,
|
|
86
87
|
goToNext: z,
|
|
87
88
|
goToPrevious: E,
|
|
88
|
-
goBackTo:
|
|
89
|
-
isNext:
|
|
90
|
-
isPrevious:
|
|
91
|
-
isCurrent:
|
|
92
|
-
isBefore:
|
|
93
|
-
isAfter:
|
|
89
|
+
goBackTo: T,
|
|
90
|
+
isNext: f,
|
|
91
|
+
isPrevious: x,
|
|
92
|
+
isCurrent: d,
|
|
93
|
+
isBefore: m,
|
|
94
|
+
isAfter: P
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
export {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { useStore as D } from "vuex";
|
|
2
|
-
import { useRouter as S, useRoute as _ } from "vue-router";
|
|
3
1
|
import { computed as s, toValue as n } from "vue";
|
|
4
|
-
import { useI18n as
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { useI18n as _ } from "vue-i18n";
|
|
3
|
+
import { useRouter as h, useRoute as y } from "vue-router";
|
|
4
|
+
import { useStore as R } from "vuex";
|
|
5
|
+
function L() {
|
|
6
|
+
const r = h(), m = y(), l = R(), { locale: p, fallbackLocale: d } = _(), u = s(() => m.query.locale || p.value || d.value || "en"), i = s(
|
|
7
7
|
() => {
|
|
8
8
|
var e;
|
|
9
9
|
return ((e = l.getters["auth/getUserData"]) == null ? void 0 : e.rtpToken) || "";
|
|
@@ -13,13 +13,22 @@ function P() {
|
|
|
13
13
|
localStorage == null || localStorage.removeItem("dpi_duplicate"), localStorage == null || localStorage.removeItem("dpi_catalogues"), localStorage == null || localStorage.removeItem("dpi_editmode"), localStorage == null || localStorage.removeItem("dpi_datasets"), localStorage == null || localStorage.removeItem("dpi_draftmode");
|
|
14
14
|
}
|
|
15
15
|
function f(e) {
|
|
16
|
-
const {
|
|
17
|
-
|
|
16
|
+
const {
|
|
17
|
+
id: o,
|
|
18
|
+
catalogId: a,
|
|
19
|
+
isDraft: c = !1,
|
|
20
|
+
locale: v,
|
|
21
|
+
router: g = r,
|
|
22
|
+
routeName: D = "DataProviderInterface-Input",
|
|
23
|
+
additionalParams: S
|
|
24
|
+
} = e;
|
|
25
|
+
i.value || console.warn("No rpt token found. DPI cannot be opened in edit mode."), t(), c && l.dispatch("auth/setIsDraft", !0), localStorage == null || localStorage.removeItem("dpi_duplicate"), g.push({ name: D, params: { property: "datasets" }, query: {
|
|
18
26
|
locale: n(v) || u.value,
|
|
19
27
|
edit: "true",
|
|
20
28
|
id: o,
|
|
21
29
|
catalog: a,
|
|
22
|
-
...c && { fromDraft: "true" }
|
|
30
|
+
...c && { fromDraft: "true" },
|
|
31
|
+
...S
|
|
23
32
|
} });
|
|
24
33
|
}
|
|
25
34
|
function I(e) {
|
|
@@ -35,5 +44,5 @@ function P() {
|
|
|
35
44
|
};
|
|
36
45
|
}
|
|
37
46
|
export {
|
|
38
|
-
|
|
47
|
+
L as useDpiUtils
|
|
39
48
|
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { putResource as f } from "@piveau/sdk-core/hubRepo";
|
|
2
|
+
import { useAsyncState as b } from "@vueuse/core";
|
|
3
|
+
import { computed as g } from "vue";
|
|
4
|
+
import { useStore as h } from "vuex";
|
|
5
|
+
import { useRuntimeEnv as v } from "../../composables/useRuntimeEnv.js";
|
|
6
|
+
import { slugify as y, encodeProject as k } from "./project-transformer/encodeProject.js";
|
|
7
|
+
import { useEditModeInfo as I } from "./useDpiEditMode.js";
|
|
8
|
+
import { useFormValues as E } from "./useDpiFormValues.js";
|
|
9
|
+
async function S(m) {
|
|
10
|
+
var l, e, a, p;
|
|
11
|
+
const {
|
|
12
|
+
baseUrl: o,
|
|
13
|
+
formValues: t,
|
|
14
|
+
isEditMode: s,
|
|
15
|
+
editIdQuery: i,
|
|
16
|
+
authToken: u,
|
|
17
|
+
catalogId: n
|
|
18
|
+
} = m, c = s ? i : y((e = (l = t.value) == null ? void 0 : l["Grundlegende Informationen/Name"]) == null ? void 0 : e.projectName), d = k(t.value, { language: "de" });
|
|
19
|
+
let r = (p = (a = t.value) == null ? void 0 : a["Auffindbarkeit/Sichtbarkeit"]) == null ? void 0 : p.visibility;
|
|
20
|
+
r || (r = "public"), await f({
|
|
21
|
+
id: c,
|
|
22
|
+
// todo
|
|
23
|
+
// publicationStatus: editFromDraft.value ? 'draft' : 'published',
|
|
24
|
+
publicationStatus: "draft",
|
|
25
|
+
baseUrl: o || "https://twin.bydata.de/api/hub/repo",
|
|
26
|
+
type: "project",
|
|
27
|
+
data: d,
|
|
28
|
+
accessLevel: r,
|
|
29
|
+
catalogId: n || "catalog-1",
|
|
30
|
+
authToken: u
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function Q(m) {
|
|
34
|
+
const o = h(), {
|
|
35
|
+
onSuccess: t = () => {
|
|
36
|
+
o.dispatch("snackbar/showSnackbar", {
|
|
37
|
+
message: "Projekt erfolgreich gespeichert",
|
|
38
|
+
variant: "success"
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
onError: s
|
|
42
|
+
} = {}, { formValues: i } = E(), u = g(() => {
|
|
43
|
+
var e, a;
|
|
44
|
+
return (a = (e = o.getters) == null ? void 0 : e["auth/getUserData"]) == null ? void 0 : a.authToken;
|
|
45
|
+
}), { editIdQuery: n, isEditMode: c, catalogId: d } = I(), r = v();
|
|
46
|
+
return {
|
|
47
|
+
submitDraft: b(async () => {
|
|
48
|
+
await S({
|
|
49
|
+
formValues: i,
|
|
50
|
+
isEditMode: c.value,
|
|
51
|
+
editIdQuery: n.value,
|
|
52
|
+
authToken: u.value,
|
|
53
|
+
baseUrl: r.api.hubUrl,
|
|
54
|
+
catalogId: d.value
|
|
55
|
+
});
|
|
56
|
+
}, null, {
|
|
57
|
+
immediate: !1,
|
|
58
|
+
onSuccess: t,
|
|
59
|
+
onError: s
|
|
60
|
+
})
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export {
|
|
64
|
+
Q as useProjectActions
|
|
65
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { defineHubSearch as P, getTranslationFor as f } from "@piveau/sdk-vue";
|
|
2
|
+
import * as i from "zod";
|
|
3
|
+
import { schemaProject as C } from "../../utils/schema/schemaProject.js";
|
|
4
|
+
function S(g) {
|
|
5
|
+
const h = "project", b = P(
|
|
6
|
+
{
|
|
7
|
+
baseUrl: g,
|
|
8
|
+
index: "resource",
|
|
9
|
+
indexDetails: "resources/project",
|
|
10
|
+
schema: C.extend({
|
|
11
|
+
accessControlPermissions: i.array(i.enum(["view", "edit", "publish", "delete"])).optional(),
|
|
12
|
+
catalog_record: i.object({
|
|
13
|
+
modified: i.string().optional(),
|
|
14
|
+
status: i.string().optional(),
|
|
15
|
+
access_level: i.enum(["public", "restricted", "internal", "private"]).optional(),
|
|
16
|
+
publication_status: i.enum(["draft", "published"]).optional()
|
|
17
|
+
})
|
|
18
|
+
}),
|
|
19
|
+
facets: ["theme"]
|
|
20
|
+
},
|
|
21
|
+
(s, _) => {
|
|
22
|
+
var n, l, e, d, u, m, t, o;
|
|
23
|
+
const { currentLocale: a } = _;
|
|
24
|
+
return {
|
|
25
|
+
...{
|
|
26
|
+
id: s.id,
|
|
27
|
+
title: typeof (s == null ? void 0 : s.name) == "string" ? s.name : f(s.name, a),
|
|
28
|
+
description: typeof (s == null ? void 0 : s.description) == "string" ? s.description : f(s.description, a),
|
|
29
|
+
accessControlPermissions: s == null ? void 0 : s.accessControlPermissions,
|
|
30
|
+
allowEdit: (n = s == null ? void 0 : s.accessControlPermissions) == null ? void 0 : n.includes("edit"),
|
|
31
|
+
allowPublish: (l = s == null ? void 0 : s.accessControlPermissions) == null ? void 0 : l.includes("publish"),
|
|
32
|
+
allowDelete: (e = s == null ? void 0 : s.accessControlPermissions) == null ? void 0 : e.includes("delete"),
|
|
33
|
+
modified: s == null ? void 0 : s.modified,
|
|
34
|
+
status: (d = s == null ? void 0 : s.catalog_record) == null ? void 0 : d.status,
|
|
35
|
+
accessLevel: (u = s == null ? void 0 : s.catalog_record) == null ? void 0 : u.access_level,
|
|
36
|
+
publicationStatus: (m = s == null ? void 0 : s.catalog_record) == null ? void 0 : m.publication_status,
|
|
37
|
+
catalogId: (t = s == null ? void 0 : s.catalog) == null ? void 0 : t.id,
|
|
38
|
+
superCatalogId: (o = s == null ? void 0 : s.catalog) == null ? void 0 : o.is_part_of
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
return {
|
|
44
|
+
resource: h,
|
|
45
|
+
...b
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
S as useProjectSearch
|
|
50
|
+
};
|
|
@@ -1,114 +1,117 @@
|
|
|
1
|
-
import { schemaDateField as
|
|
1
|
+
import { schemaDateField as n, takeFirst as e, schemaFoafAgent as c, schemaContactPoint as p, schemaIriString as r, schemaLanguageContainer as a, schemaTypedLiteral as s } from "@piveau/jsonld";
|
|
2
2
|
import * as t from "zod/v4";
|
|
3
|
-
const
|
|
3
|
+
const o = t.object({
|
|
4
4
|
"@id": t.string().optional(),
|
|
5
|
-
"@type": t.string()
|
|
5
|
+
"@type": t.string(),
|
|
6
6
|
"dct:type": t.preprocess(e, t.string().optional()),
|
|
7
|
-
"schema:url": t.preprocess(e, t.string()
|
|
8
|
-
"dct:title": t.preprocess(e, t.string()
|
|
7
|
+
"schema:url": t.preprocess(e, t.string()),
|
|
8
|
+
"dct:title": t.preprocess(e, t.string()),
|
|
9
9
|
"dct:description": t.preprocess(e, t.string().optional())
|
|
10
10
|
}), l = t.object({
|
|
11
|
-
"dct:title": t.preprocess(e, t.string()
|
|
12
|
-
|
|
13
|
-
}), n = t.object({
|
|
11
|
+
"dct:title": t.preprocess(e, t.string())
|
|
12
|
+
}), i = t.object({
|
|
14
13
|
"@type": t.preprocess(e, t.string().optional())
|
|
15
|
-
}), d =
|
|
16
|
-
"@type": t.literal("
|
|
14
|
+
}), d = i.extend({
|
|
15
|
+
"@type": t.literal("schema:SoftwareApplication"),
|
|
17
16
|
"dct:identifier": t.preprocess(e, t.string().optional()),
|
|
18
17
|
"schema:featureList": t.array(t.string()).optional()
|
|
19
|
-
}), y =
|
|
18
|
+
}), y = i.extend({
|
|
20
19
|
"@type": t.literal("dcat:Dataset"),
|
|
21
20
|
"dct:identifier": t.preprocess(e, t.string().optional())
|
|
22
21
|
}), m = t.object({
|
|
23
22
|
"@type": t.string().optional(),
|
|
24
23
|
"geo:lat": t.preprocess(e, t.string().optional()),
|
|
25
24
|
"geo:long": t.preprocess(e, t.string().optional())
|
|
26
|
-
}),
|
|
27
|
-
"@type": t.literal("ssn:
|
|
25
|
+
}), h = i.extend({
|
|
26
|
+
"@type": t.literal("ssn:System"),
|
|
28
27
|
"dct:description": t.array(a).optional(),
|
|
29
|
-
"ssn:deployedSystem": t.preprocess(e,
|
|
28
|
+
"ssn:deployedSystem": t.preprocess(e, r.optional()),
|
|
30
29
|
/**
|
|
31
30
|
* The purpose of the hardware instance ("Zwecke")
|
|
32
31
|
*/
|
|
33
32
|
"ssn:forProperty": t.array(t.string()).optional(),
|
|
34
33
|
"sosa:hasLocation": t.array(m).optional(),
|
|
35
|
-
"foaf:depiction": t.array(
|
|
36
|
-
"dct:references": t.array(
|
|
34
|
+
"foaf:depiction": t.array(r).optional(),
|
|
35
|
+
"dct:references": t.array(o).optional(),
|
|
37
36
|
/**
|
|
38
37
|
* Corresponds to functionalities of hardware;
|
|
39
38
|
* not to be confused with schema:featureList of software
|
|
40
39
|
*/
|
|
41
40
|
"ssn-system:hasSystemCapability": t.array(t.string()).optional()
|
|
42
|
-
}),
|
|
41
|
+
}), g = t.discriminatedUnion("@type", [
|
|
43
42
|
d,
|
|
44
43
|
y,
|
|
45
|
-
|
|
44
|
+
h
|
|
46
45
|
]), f = t.object({
|
|
47
46
|
"@type": t.string(),
|
|
48
|
-
"schema:text": t.preprocess(e, t.string()
|
|
49
|
-
"schema:acceptedAnswer": t.preprocess(e, t.string()
|
|
47
|
+
"schema:text": t.preprocess(e, t.string()),
|
|
48
|
+
"schema:acceptedAnswer": t.preprocess(e, t.string()),
|
|
49
|
+
"schema:position": t.preprocess(e, s)
|
|
50
50
|
}), j = t.object({
|
|
51
51
|
"@type": t.string(),
|
|
52
|
-
"dct:identifier": t.preprocess(e, t.string()
|
|
52
|
+
"dct:identifier": t.preprocess(e, t.string()),
|
|
53
53
|
"dct:type": t.preprocess(e, t.string().optional()),
|
|
54
|
+
"schema:position": t.preprocess(e, s.optional()),
|
|
54
55
|
"schema:question": t.array(f).optional(),
|
|
55
|
-
"p-plan:isPrecededBy": t.
|
|
56
|
-
"dct:references": t.array(
|
|
56
|
+
"p-plan:isPrecededBy": t.any(),
|
|
57
|
+
"dct:references": t.array(o).optional()
|
|
57
58
|
}), u = t.object({
|
|
58
59
|
"@type": t.string(),
|
|
59
|
-
"dct:identifier": t.preprocess(e, t.string()
|
|
60
|
-
"p-plan:Activity": t.preprocess(e, t.string()
|
|
61
|
-
"dct:description": t.array(a)
|
|
60
|
+
"dct:identifier": t.preprocess(e, t.string()),
|
|
61
|
+
"p-plan:Activity": t.preprocess(e, t.string()),
|
|
62
|
+
"dct:description": t.array(a),
|
|
62
63
|
"schema:about": t.array(t.string()).optional(),
|
|
63
|
-
"
|
|
64
|
+
"schema:position": t.preprocess(e, s.optional()),
|
|
64
65
|
"prov:used": t.array(l).optional(),
|
|
65
|
-
"p-plan:
|
|
66
|
-
"
|
|
66
|
+
"p-plan:isPrecededBy": t.any(),
|
|
67
|
+
"p-plan:hasInputVar": t.array(g).optional(),
|
|
68
|
+
"dct:references": t.array(o).optional()
|
|
67
69
|
}), P = t.object({
|
|
68
70
|
"@type": t.string(),
|
|
71
|
+
"schema:description": t.preprocess(e, t.string().optional()),
|
|
69
72
|
"schema:currency": t.preprocess(e, t.string().optional()),
|
|
70
|
-
"schema:value": t.preprocess(e,
|
|
73
|
+
"schema:value": t.preprocess(e, s.optional())
|
|
71
74
|
}), L = t.object({
|
|
72
75
|
"@id": t.string().optional(),
|
|
73
|
-
"@type": t.string(),
|
|
76
|
+
"@type": t.array(t.string()).min(2),
|
|
74
77
|
// Core identifiers and labels
|
|
75
78
|
"dct:identifier": t.array(t.string()).optional(),
|
|
76
|
-
"dct:title": t.array(a)
|
|
77
|
-
"dct:description": t.array(a)
|
|
79
|
+
"dct:title": t.array(a),
|
|
80
|
+
"dct:description": t.array(a),
|
|
78
81
|
// Themes/categories as simple IRI nodes
|
|
79
|
-
"dcat:theme": t.array(
|
|
82
|
+
"dcat:theme": t.array(r),
|
|
80
83
|
// Applications and status as literals
|
|
81
|
-
"schema:application": t.array(
|
|
82
|
-
"schema:status": t.preprocess(e, t.string()
|
|
84
|
+
"schema:application": t.array(r),
|
|
85
|
+
"schema:status": t.preprocess(e, t.string()),
|
|
83
86
|
// Optional dates (date/dateTime)
|
|
84
|
-
"schema:startDate":
|
|
85
|
-
"schema:endDate":
|
|
87
|
+
"schema:startDate": n,
|
|
88
|
+
"schema:endDate": n,
|
|
86
89
|
// Optional skills (literals)
|
|
87
90
|
"schema:skills": t.array(t.string()).optional(),
|
|
88
91
|
// Contact and partners
|
|
89
92
|
"dcat:contactPoint": t.array(p).optional(),
|
|
90
|
-
"dct:contributor": t.array(
|
|
93
|
+
"dct:contributor": t.array(c).optional(),
|
|
91
94
|
// Optional budget
|
|
92
95
|
"schema:amount": t.preprocess(e, P.optional()),
|
|
93
96
|
// Organizational and technical steps
|
|
94
97
|
"schema:hasPart": t.array(j).optional(),
|
|
95
98
|
"p-plan:hasStep": t.array(u).optional(),
|
|
96
99
|
// References and last modified
|
|
97
|
-
"dct:references": t.array(
|
|
98
|
-
"prov:generatedAtTime":
|
|
100
|
+
"dct:references": t.array(o).optional(),
|
|
101
|
+
"prov:generatedAtTime": n
|
|
99
102
|
});
|
|
100
103
|
export {
|
|
101
104
|
y as schemaDatasetLink,
|
|
102
|
-
|
|
105
|
+
h as schemaHardwareInstance,
|
|
103
106
|
m as schemaHardwareLocation,
|
|
104
107
|
L as schemaProject,
|
|
105
|
-
|
|
106
|
-
|
|
108
|
+
g as schemaProjectInputLink,
|
|
109
|
+
i as schemaProjectInputLinkBase,
|
|
107
110
|
l as schemaProjectMethodsUsed,
|
|
108
111
|
P as schemaProjectMonetaryAmount,
|
|
109
112
|
j as schemaProjectQAPage,
|
|
110
113
|
f as schemaProjectQuestionAnswer,
|
|
111
|
-
|
|
114
|
+
o as schemaProjectResource,
|
|
112
115
|
u as schemaProjectTechnicalStep,
|
|
113
116
|
d as schemaSoftwareLink
|
|
114
117
|
};
|