@nfdi4plants/arctrl 2.0.0-alpha.6 → 2.0.0-alpha.8

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.
Files changed (48) hide show
  1. package/Core/Data.js +53 -4
  2. package/Core/DataContext.js +92 -0
  3. package/Core/Helper/Regex.js +26 -10
  4. package/Core/Helper/Url.js +38 -0
  5. package/Core/OntologyAnnotation.js +2 -1
  6. package/Core/Table/ArcTableAux.js +2 -2
  7. package/Core/Table/CompositeCell.js +4 -0
  8. package/Core/Table/DataMap.js +95 -82
  9. package/Json/Assay.js +51 -22
  10. package/Json/Comment.js +35 -6
  11. package/Json/IDTable.js +19 -0
  12. package/Json/Investigation.js +22 -5
  13. package/Json/OntologyAnnotation.js +61 -6
  14. package/Json/OntologySourceReference.js +29 -7
  15. package/Json/Person.js +38 -16
  16. package/Json/Process/AssayMaterials.js +2 -2
  17. package/Json/Process/Component.js +19 -5
  18. package/Json/Process/Data.js +23 -7
  19. package/Json/Process/DataFile.js +9 -0
  20. package/Json/Process/Factor.js +33 -6
  21. package/Json/Process/FactorValue.js +23 -6
  22. package/Json/Process/Material.js +22 -5
  23. package/Json/Process/MaterialAttribute.js +30 -7
  24. package/Json/Process/MaterialAttributeValue.js +27 -6
  25. package/Json/Process/MaterialType.js +5 -0
  26. package/Json/Process/Process.js +22 -5
  27. package/Json/Process/ProcessInput.js +13 -7
  28. package/Json/Process/ProcessOutput.js +16 -6
  29. package/Json/Process/ProcessParameterValue.js +18 -4
  30. package/Json/Process/ProcessSequence.js +4 -2
  31. package/Json/Process/PropertyValue.js +29 -4
  32. package/Json/Process/Protocol.js +88 -52
  33. package/Json/Process/ProtocolParameter.js +28 -6
  34. package/Json/Process/Sample.js +23 -7
  35. package/Json/Process/Source.js +23 -6
  36. package/Json/Process/StudyMaterials.js +2 -2
  37. package/Json/Process/Value.js +3 -3
  38. package/Json/Publication.js +21 -8
  39. package/Json/Study.js +86 -56
  40. package/Json/Table/CellTable.js +4 -1
  41. package/Json/Table/Templates.js +10 -2
  42. package/Json.js +9 -9
  43. package/Spreadsheet/DataMapTable/DataMapColumn.js +36 -30
  44. package/Spreadsheet/DataMapTable/DataMapHeader.js +146 -122
  45. package/Spreadsheet/DataMapTable/DataMapTable.js +17 -12
  46. package/Template.Web.js +1 -1
  47. package/fable_modules/project_cracked.json +1 -1
  48. package/package.json +1 -1
@@ -10,13 +10,18 @@ import { OntologyAnnotation_ISAJson_decoder, OntologyAnnotation_ISAJson_encoder
10
10
  import { object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
11
11
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
12
12
  import { printf, toText } from "../../fable_modules/fable-library-js.4.16.0/String.js";
13
+ import { unwrap, defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
13
14
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
14
15
 
15
16
  export const ProcessParameterValue_ROCrate_encoder = encoder;
16
17
 
17
18
  export const ProcessParameterValue_ROCrate_decoder = decoder_1((category, value, unit) => ProcessParameterValue.createAsPV(category, value, unit));
18
19
 
19
- export function ProcessParameterValue_ISAJson_encoder(oa) {
20
+ export function ProcessParameterValue_ISAJson_genID(oa) {
21
+ throw new Error("Not implemented");
22
+ }
23
+
24
+ export function ProcessParameterValue_ISAJson_encoder(idMap, oa) {
20
25
  return new Json(5, [choose((tupledArg) => {
21
26
  const v = tupledArg[1];
22
27
  if (equals(v, new Json(3, []))) {
@@ -25,7 +30,7 @@ export function ProcessParameterValue_ISAJson_encoder(oa) {
25
30
  else {
26
31
  return [tupledArg[0], v];
27
32
  }
28
- }, ofArray([tryInclude("category", ProtocolParameter_ISAJson_encoder, oa.Category), tryInclude("value", Value_ISAJson_encoder, oa.Value), tryInclude("unit", OntologyAnnotation_ISAJson_encoder, oa.Unit)]))]);
33
+ }, ofArray([tryInclude("category", (value) => ProtocolParameter_ISAJson_encoder(idMap, value), oa.Category), tryInclude("value", (value_1) => Value_ISAJson_encoder(idMap, value_1), oa.Value), tryInclude("unit", (oa_1) => OntologyAnnotation_ISAJson_encoder(idMap, oa_1), oa.Unit)]))]);
29
34
  }
30
35
 
31
36
  export const ProcessParameterValue_ISAJson_decoder = object((get$) => {
@@ -43,13 +48,18 @@ export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_from
43
48
  }
44
49
  }
45
50
 
46
- export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_toISAJsonString_Static_71136F3F(spaces) {
51
+ export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_toISAJsonString_Static_Z3B036AA(spaces, useIDReferencing) {
52
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
47
53
  return (f) => {
48
- const value = ProcessParameterValue_ISAJson_encoder(f);
54
+ const value = ProcessParameterValue_ISAJson_encoder(idMap, f);
49
55
  return toString(defaultSpaces(spaces), value);
50
56
  };
51
57
  }
52
58
 
59
+ export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_ToISAJsonString_Z3B036AA(this$, spaces, useIDReferencing) {
60
+ return ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_toISAJsonString_Static_Z3B036AA(unwrap(spaces), unwrap(useIDReferencing))(this$);
61
+ }
62
+
53
63
  export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_fromROCrateJsonString_Static_Z721C83C5(s) {
54
64
  const matchValue = fromString(ProcessParameterValue_ROCrate_decoder, s);
55
65
  if (matchValue.tag === 1) {
@@ -67,3 +77,7 @@ export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_toRO
67
77
  };
68
78
  }
69
79
 
80
+ export function ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_ToROCrateJsonString_71136F3F(this$, spaces) {
81
+ return ARCtrl_Process_ProcessParameterValue__ProcessParameterValue_toROCrateJsonString_Static_71136F3F(unwrap(spaces))(this$);
82
+ }
83
+
@@ -3,6 +3,7 @@ import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Deco
3
3
  import { list as list_1 } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
4
4
  import { Process_ROCrate_encoder, Process_ROCrate_decoder, Process_ISAJson_encoder, Process_ISAJson_decoder } from "./Process.js";
5
5
  import { printf, toText } from "../../fable_modules/fable-library-js.4.16.0/String.js";
6
+ import { defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
6
7
  import { list as list_2 } from "../../fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js";
7
8
  import { map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
8
9
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
@@ -27,9 +28,10 @@ export function ProcessSequence_fromISAJsonString_Z721C83C5(s) {
27
28
  }
28
29
  }
29
30
 
30
- export function ProcessSequence_toISAJsonString_71136F3F(spaces) {
31
+ export function ProcessSequence_toISAJsonString_Z3B036AA(spaces, useIDReferencing) {
32
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
31
33
  return (f) => {
32
- const value = list_2(map(Process_ISAJson_encoder, f));
34
+ const value = list_2(map((oa) => Process_ISAJson_encoder(void 0, void 0, idMap, oa), f));
33
35
  return toString(defaultSpaces(spaces), value);
34
36
  };
35
37
  }
@@ -11,12 +11,37 @@ import { Value } from "../../Core/Process/Value.js";
11
11
 
12
12
  export function genID(p) {
13
13
  const matchValue = p.GetCategory();
14
- if (matchValue == null) {
15
- return `#Empty${p.GetAdditionalType()}`;
14
+ const matchValue_1 = p.GetValue();
15
+ const matchValue_2 = p.GetUnit();
16
+ let matchResult, t, u, v, t_1, v_1;
17
+ if (matchValue != null) {
18
+ if (matchValue_1 != null) {
19
+ if (matchValue_2 == null) {
20
+ matchResult = 1;
21
+ t_1 = matchValue;
22
+ v_1 = matchValue_1;
23
+ }
24
+ else {
25
+ matchResult = 0;
26
+ t = matchValue;
27
+ u = matchValue_2;
28
+ v = matchValue_1;
29
+ }
30
+ }
31
+ else {
32
+ matchResult = 2;
33
+ }
16
34
  }
17
35
  else {
18
- const t = matchValue;
19
- return `${p.GetAdditionalType()}/${t}${p.GetValue()}${p.GetUnit()}`;
36
+ matchResult = 2;
37
+ }
38
+ switch (matchResult) {
39
+ case 0:
40
+ return `#${p.GetAdditionalType()}/${t.NameText}=${v.Text}${u.NameText}`;
41
+ case 1:
42
+ return `#${p.GetAdditionalType()}/${t_1.NameText}=${v_1.Text}`;
43
+ default:
44
+ return `#Empty${p.GetAdditionalType()}`;
20
45
  }
21
46
  }
22
47
 
@@ -10,70 +10,91 @@ import { Comment_ISAJson_decoder, Comment_ISAJson_encoder, Comment_ROCrate_decod
10
10
  import { context_jsonvalue } from "../context/rocrate/isa_protocol_context.js";
11
11
  import { string, list as list_5, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
12
12
  import { Option_fromValueWithDefault } from "../../Core/Helper/Collections.js";
13
- import { defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
13
+ import { unwrap, defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
14
14
  import { Decode_uri } from "../Decode.js";
15
15
  import { Protocol } from "../../Core/Process/Protocol.js";
16
16
  import { ProtocolParameter_ISAJson_decoder, ProtocolParameter_ISAJson_encoder } from "./ProtocolParameter.js";
17
+ import { encode } from "../IDTable.js";
17
18
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
18
19
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
19
20
 
20
21
  export function Protocol_ROCrate_genID(studyName, assayName, processName, p) {
21
- const matchValue = p.Uri;
22
- if (matchValue == null) {
23
- const matchValue_1 = p.Name;
24
- if (matchValue_1 == null) {
25
- let matchResult, an, pn, sn, pn_1, sn_1, pn_2;
26
- if (studyName == null) {
27
- if (assayName == null) {
28
- if (processName != null) {
29
- matchResult = 2;
30
- pn_2 = processName;
22
+ const matchValue = p.ID;
23
+ let matchResult, id_1;
24
+ if (matchValue != null) {
25
+ if (matchValue !== "") {
26
+ matchResult = 0;
27
+ id_1 = matchValue;
28
+ }
29
+ else {
30
+ matchResult = 1;
31
+ }
32
+ }
33
+ else {
34
+ matchResult = 1;
35
+ }
36
+ switch (matchResult) {
37
+ case 0:
38
+ return id_1;
39
+ default: {
40
+ const matchValue_1 = p.Uri;
41
+ if (matchValue_1 == null) {
42
+ const matchValue_2 = p.Name;
43
+ if (matchValue_2 == null) {
44
+ let matchResult_1, an, pn, sn, pn_1, sn_1, pn_2;
45
+ if (studyName == null) {
46
+ if (assayName == null) {
47
+ if (processName != null) {
48
+ matchResult_1 = 2;
49
+ pn_2 = processName;
50
+ }
51
+ else {
52
+ matchResult_1 = 3;
53
+ }
54
+ }
55
+ else {
56
+ matchResult_1 = 3;
57
+ }
58
+ }
59
+ else if (assayName == null) {
60
+ if (processName != null) {
61
+ matchResult_1 = 1;
62
+ pn_1 = processName;
63
+ sn_1 = studyName;
64
+ }
65
+ else {
66
+ matchResult_1 = 3;
67
+ }
68
+ }
69
+ else if (processName != null) {
70
+ matchResult_1 = 0;
71
+ an = assayName;
72
+ pn = processName;
73
+ sn = studyName;
31
74
  }
32
75
  else {
33
- matchResult = 3;
76
+ matchResult_1 = 3;
77
+ }
78
+ switch (matchResult_1) {
79
+ case 0:
80
+ return (((("#Protocol_" + replace(sn, " ", "_")) + "_") + replace(an, " ", "_")) + "_") + replace(pn, " ", "_");
81
+ case 1:
82
+ return (("#Protocol_" + replace(sn_1, " ", "_")) + "_") + replace(pn_1, " ", "_");
83
+ case 2:
84
+ return "#Protocol_" + replace(pn_2, " ", "_");
85
+ default:
86
+ return "#EmptyProtocol";
34
87
  }
35
88
  }
36
89
  else {
37
- matchResult = 3;
38
- }
39
- }
40
- else if (assayName == null) {
41
- if (processName != null) {
42
- matchResult = 1;
43
- pn_1 = processName;
44
- sn_1 = studyName;
45
- }
46
- else {
47
- matchResult = 3;
90
+ return "#Protocol_" + replace(matchValue_2, " ", "_");
48
91
  }
49
92
  }
50
- else if (processName != null) {
51
- matchResult = 0;
52
- an = assayName;
53
- pn = processName;
54
- sn = studyName;
55
- }
56
93
  else {
57
- matchResult = 3;
94
+ return matchValue_1;
58
95
  }
59
- switch (matchResult) {
60
- case 0:
61
- return (((("#Protocol_" + replace(sn, " ", "_")) + "_") + replace(an, " ", "_")) + "_") + replace(pn, " ", "_");
62
- case 1:
63
- return (("#Protocol_" + replace(sn_1, " ", "_")) + "_") + replace(pn_1, " ", "_");
64
- case 2:
65
- return "#Protocol_" + replace(pn_2, " ", "_");
66
- default:
67
- return "#EmptyProtocol";
68
- }
69
- }
70
- else {
71
- return "#Protocol_" + replace(matchValue_1, " ", "_");
72
96
  }
73
97
  }
74
- else {
75
- return matchValue;
76
- }
77
98
  }
78
99
 
79
100
  export function Protocol_ROCrate_encoder(studyName, assayName, processName, oa) {
@@ -94,8 +115,8 @@ export const Protocol_ROCrate_decoder = object((get$) => {
94
115
  return new Protocol((objectArg_3 = get$.Optional, objectArg_3.Field("@id", Decode_uri)), (objectArg_4 = get$.Optional, objectArg_4.Field("name", string)), (objectArg_5 = get$.Optional, objectArg_5.Field("protocolType", OntologyAnnotation_ROCrate_decoderDefinedTerm)), (objectArg_6 = get$.Optional, objectArg_6.Field("description", string)), (objectArg_7 = get$.Optional, objectArg_7.Field("uri", Decode_uri)), (objectArg_8 = get$.Optional, objectArg_8.Field("version", string)), void 0, components, (arg_19 = list_5(Comment_ROCrate_decoder), (objectArg_9 = get$.Optional, objectArg_9.Field("comments", arg_19))));
95
116
  });
96
117
 
97
- export function Protocol_ISAJson_encoder(oa) {
98
- return new Json(5, [choose((tupledArg) => {
118
+ export function Protocol_ISAJson_encoder(studyName, assayName, processName, idMap, oa) {
119
+ const f = (oa_1) => (new Json(5, [choose((tupledArg) => {
99
120
  const v = tupledArg[1];
100
121
  if (equals(v, new Json(3, []))) {
101
122
  return void 0;
@@ -103,7 +124,13 @@ export function Protocol_ISAJson_encoder(oa) {
103
124
  else {
104
125
  return [tupledArg[0], v];
105
126
  }
106
- }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), oa.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryInclude("protocolType", OntologyAnnotation_ISAJson_encoder, oa.ProtocolType), tryInclude("description", (value_4) => (new Json(0, [value_4])), oa.Description), tryInclude("uri", (value_6) => (new Json(0, [value_6])), oa.Uri), tryInclude("version", (value_8) => (new Json(0, [value_8])), oa.Version), tryIncludeListOpt("parameters", ProtocolParameter_ISAJson_encoder, oa.Parameters), tryIncludeListOpt("components", Component_ISAJson_encoder, oa.Components), tryIncludeListOpt("comments", Comment_ISAJson_encoder, oa.Comments)]))]);
127
+ }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), Protocol_ROCrate_genID(studyName, assayName, processName, oa_1)), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa_1.Name), tryInclude("protocolType", (oa_2) => OntologyAnnotation_ISAJson_encoder(idMap, oa_2), oa_1.ProtocolType), tryInclude("description", (value_4) => (new Json(0, [value_4])), oa_1.Description), tryInclude("uri", (value_6) => (new Json(0, [value_6])), oa_1.Uri), tryInclude("version", (value_8) => (new Json(0, [value_8])), oa_1.Version), tryIncludeListOpt("parameters", (value_10) => ProtocolParameter_ISAJson_encoder(idMap, value_10), oa_1.Parameters), tryIncludeListOpt("components", (c) => Component_ISAJson_encoder(idMap, c), oa_1.Components), tryIncludeListOpt("comments", (comment) => Comment_ISAJson_encoder(idMap, comment), oa_1.Comments)]))]));
128
+ if (idMap != null) {
129
+ return encode((p_1) => Protocol_ROCrate_genID(studyName, assayName, processName, p_1), f, oa, idMap);
130
+ }
131
+ else {
132
+ return f(oa);
133
+ }
107
134
  }
108
135
 
109
136
  export const Protocol_ISAJson_decoder = object((get$) => {
@@ -121,13 +148,18 @@ export function ARCtrl_Process_Protocol__Protocol_fromISAJsonString_Static_Z721C
121
148
  }
122
149
  }
123
150
 
124
- export function ARCtrl_Process_Protocol__Protocol_toISAJsonString_Static_71136F3F(spaces) {
151
+ export function ARCtrl_Process_Protocol__Protocol_toISAJsonString_Static_Z3B036AA(spaces, useIDReferencing) {
152
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
125
153
  return (f) => {
126
- const value = Protocol_ISAJson_encoder(f);
154
+ const value = Protocol_ISAJson_encoder(void 0, void 0, void 0, idMap, f);
127
155
  return toString(defaultSpaces(spaces), value);
128
156
  };
129
157
  }
130
158
 
159
+ export function ARCtrl_Process_Protocol__Protocol_ToISAJsonString_71136F3F(this$, spaces) {
160
+ return ARCtrl_Process_Protocol__Protocol_toISAJsonString_Static_Z3B036AA(spaces)(this$);
161
+ }
162
+
131
163
  export function ARCtrl_Process_Protocol__Protocol_fromROCrateString_Static_Z721C83C5(s) {
132
164
  const matchValue = fromString(Protocol_ROCrate_decoder, s);
133
165
  if (matchValue.tag === 1) {
@@ -138,10 +170,14 @@ export function ARCtrl_Process_Protocol__Protocol_fromROCrateString_Static_Z721C
138
170
  }
139
171
  }
140
172
 
141
- export function ARCtrl_Process_Protocol__Protocol_toROCrateString_Static(studyName, assayName, processName, spaces) {
173
+ export function ARCtrl_Process_Protocol__Protocol_toROCrateString_Static_Z482224B9(studyName, assayName, processName, spaces) {
142
174
  return (f) => {
143
175
  const value = Protocol_ROCrate_encoder(studyName, assayName, processName, f);
144
176
  return toString(defaultSpaces(spaces), value);
145
177
  };
146
178
  }
147
179
 
180
+ export function ARCtrl_Process_Protocol__Protocol_ToROCrateString_Z482224B9(this$, studyName, assayName, processName, spaces) {
181
+ return ARCtrl_Process_Protocol__Protocol_toROCrateString_Static_Z482224B9(unwrap(studyName), unwrap(assayName), unwrap(processName), unwrap(spaces))(this$);
182
+ }
183
+
@@ -1,16 +1,28 @@
1
- import { singleton, choose } from "../../fable_modules/fable-library-js.4.16.0/List.js";
1
+ import { OntologyAnnotation_ISAJson_decoder, OntologyAnnotation_ISAJson_encoder, OntologyAnnotation_ROCrate_genID } from "../OntologyAnnotation.js";
2
+ import { ofArray, choose } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
3
  import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
3
4
  import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
4
5
  import { defaultSpaces, tryInclude } from "../Encode.js";
5
- import { OntologyAnnotation_ISAJson_decoder, OntologyAnnotation_ISAJson_encoder } from "../OntologyAnnotation.js";
6
+ import { encode } from "../IDTable.js";
6
7
  import { object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
7
8
  import { ProtocolParameter } from "../../Core/Process/ProtocolParameter.js";
8
9
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
9
10
  import { printf, toText } from "../../fable_modules/fable-library-js.4.16.0/String.js";
10
11
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
12
+ import { unwrap } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
11
13
 
12
- export function ProtocolParameter_ISAJson_encoder(value) {
13
- return new Json(5, [choose((tupledArg) => {
14
+ export function ProtocolParameter_ISAJson_genID(p) {
15
+ const matchValue = p.ParameterName;
16
+ if (matchValue == null) {
17
+ return "#EmptyProtocolParameter";
18
+ }
19
+ else {
20
+ return `#ProtocolParameter/${OntologyAnnotation_ROCrate_genID(matchValue)}`;
21
+ }
22
+ }
23
+
24
+ export function ProtocolParameter_ISAJson_encoder(idMap, value) {
25
+ const f = (value_1) => (new Json(5, [choose((tupledArg) => {
14
26
  const v = tupledArg[1];
15
27
  if (equals(v, new Json(3, []))) {
16
28
  return void 0;
@@ -18,7 +30,13 @@ export function ProtocolParameter_ISAJson_encoder(value) {
18
30
  else {
19
31
  return [tupledArg[0], v];
20
32
  }
21
- }, singleton(tryInclude("parameterName", OntologyAnnotation_ISAJson_encoder, value.ParameterName)))]);
33
+ }, ofArray([tryInclude("@id", (value_2) => (new Json(0, [value_2])), ProtocolParameter_ISAJson_genID(value_1)), tryInclude("parameterName", (oa) => OntologyAnnotation_ISAJson_encoder(idMap, oa), value_1.ParameterName)]))]));
34
+ if (idMap != null) {
35
+ return encode(ProtocolParameter_ISAJson_genID, f, value, idMap);
36
+ }
37
+ else {
38
+ return f(value);
39
+ }
22
40
  }
23
41
 
24
42
  export const ProtocolParameter_ISAJson_decoder = object((get$) => {
@@ -38,8 +56,12 @@ export function ARCtrl_Process_ProtocolParameter__ProtocolParameter_fromISAJsonS
38
56
 
39
57
  export function ARCtrl_Process_ProtocolParameter__ProtocolParameter_toISAJsonString_Static_71136F3F(spaces) {
40
58
  return (v) => {
41
- const value = ProtocolParameter_ISAJson_encoder(v);
59
+ const value = ProtocolParameter_ISAJson_encoder(void 0, v);
42
60
  return toString(defaultSpaces(spaces), value);
43
61
  };
44
62
  }
45
63
 
64
+ export function ARCtrl_Process_ProtocolParameter__ProtocolParameter_ToISAJsonString_71136F3F(this$, spaces) {
65
+ return ARCtrl_Process_ProtocolParameter__ProtocolParameter_toISAJsonString_Static_71136F3F(unwrap(spaces))(this$);
66
+ }
67
+
@@ -1,7 +1,7 @@
1
1
  import { printf, toText, replace } from "../../fable_modules/fable-library-js.4.16.0/String.js";
2
2
  import { ofArray, singleton, choose, append, empty, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
3
3
  import { MaterialAttributeValue_ISAJson_decoder, MaterialAttributeValue_ISAJson_encoder, MaterialAttributeValue_ROCrate_decoder, MaterialAttributeValue_ROCrate_encoder } from "./MaterialAttributeValue.js";
4
- import { defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
4
+ import { unwrap, defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
5
5
  import { FactorValue_ISAJson_decoder, FactorValue_ISAJson_encoder, FactorValue_ROCrate_decoder, FactorValue_ROCrate_encoder } from "./FactorValue.js";
6
6
  import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
7
7
  import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
@@ -14,6 +14,7 @@ import { Option_fromValueWithDefault } from "../../Core/Helper/Collections.js";
14
14
  import { Decode_objectNoAdditionalProperties, Decode_uri } from "../Decode.js";
15
15
  import { Source_ISAJson_decoder, Source_ISAJson_encoder, Source_ROCrate_decoder } from "./Source.js";
16
16
  import { Sample } from "../../Core/Process/Sample.js";
17
+ import { encode } from "../IDTable.js";
17
18
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
18
19
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
19
20
 
@@ -79,8 +80,8 @@ export const Sample_ROCrate_decoder = object((get$) => {
79
80
  return new Sample((objectArg_1 = get$.Optional, objectArg_1.Field("@id", Decode_uri)), (objectArg_2 = get$.Optional, objectArg_2.Field("name", string)), patternInput[0], patternInput[1], (arg_7 = list_6(Source_ROCrate_decoder), (objectArg_3 = get$.Optional, objectArg_3.Field("derivesFrom", arg_7))));
80
81
  });
81
82
 
82
- export function Sample_ISAJson_encoder(oa) {
83
- return new Json(5, [choose((tupledArg) => {
83
+ export function Sample_ISAJson_encoder(idMap, oa) {
84
+ const f = (oa_1) => (new Json(5, [choose((tupledArg) => {
84
85
  const v = tupledArg[1];
85
86
  if (equals(v, new Json(3, []))) {
86
87
  return void 0;
@@ -88,7 +89,13 @@ export function Sample_ISAJson_encoder(oa) {
88
89
  else {
89
90
  return [tupledArg[0], v];
90
91
  }
91
- }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), oa.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryIncludeListOpt("characteristics", MaterialAttributeValue_ISAJson_encoder, oa.Characteristics), tryIncludeListOpt("factorValues", FactorValue_ISAJson_encoder, oa.FactorValues), tryIncludeListOpt("derivesFrom", Source_ISAJson_encoder, oa.DerivesFrom)]))]);
92
+ }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), Sample_ROCrate_genID(oa_1)), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa_1.Name), tryIncludeListOpt("characteristics", (oa_2) => MaterialAttributeValue_ISAJson_encoder(idMap, oa_2), oa_1.Characteristics), tryIncludeListOpt("factorValues", (fv) => FactorValue_ISAJson_encoder(idMap, fv), oa_1.FactorValues), tryIncludeListOpt("derivesFrom", (oa_3) => Source_ISAJson_encoder(idMap, oa_3), oa_1.DerivesFrom)]))]));
93
+ if (idMap != null) {
94
+ return encode(Sample_ROCrate_genID, f, oa, idMap);
95
+ }
96
+ else {
97
+ return f(oa);
98
+ }
92
99
  }
93
100
 
94
101
  export const Sample_ISAJson_allowedFields = ofArray(["@id", "name", "characteristics", "factorValues", "derivesFrom", "@type", "@context"]);
@@ -108,13 +115,18 @@ export function ARCtrl_Process_Sample__Sample_fromISAJsonString_Static_Z721C83C5
108
115
  }
109
116
  }
110
117
 
111
- export function ARCtrl_Process_Sample__Sample_toISAJsonString_Static_71136F3F(spaces) {
118
+ export function ARCtrl_Process_Sample__Sample_toISAJsonString_Static_Z3B036AA(spaces, useIDReferencing) {
119
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
112
120
  return (f) => {
113
- const value = Sample_ISAJson_encoder(f);
114
- return toString(defaultSpaces(spaces), value);
121
+ const value_1 = Sample_ISAJson_encoder(idMap, f);
122
+ return toString(defaultSpaces(spaces), value_1);
115
123
  };
116
124
  }
117
125
 
126
+ export function ARCtrl_Process_Sample__Sample_ToISAJsonString_Z3B036AA(this$, spaces, useIDReferencing) {
127
+ return ARCtrl_Process_Sample__Sample_toISAJsonString_Static_Z3B036AA(unwrap(spaces), unwrap(useIDReferencing))(this$);
128
+ }
129
+
118
130
  export function ARCtrl_Process_Sample__Sample_fromROCrateString_Static_Z721C83C5(s) {
119
131
  const matchValue = fromString(Sample_ROCrate_decoder, s);
120
132
  if (matchValue.tag === 1) {
@@ -132,3 +144,7 @@ export function ARCtrl_Process_Sample__Sample_toROCrateString_Static_71136F3F(sp
132
144
  };
133
145
  }
134
146
 
147
+ export function ARCtrl_Process_Sample__Sample_ToROCrateString_71136F3F(this$, spaces) {
148
+ return ARCtrl_Process_Sample__Sample_toROCrateString_Static_71136F3F(unwrap(spaces))(this$);
149
+ }
150
+
@@ -10,7 +10,9 @@ import { context_jsonvalue } from "../context/rocrate/isa_source_context.js";
10
10
  import { list as list_2, string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
11
11
  import { Decode_objectNoAdditionalProperties, Decode_uri } from "../Decode.js";
12
12
  import { Source } from "../../Core/Process/Source.js";
13
+ import { encode } from "../IDTable.js";
13
14
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
15
+ import { unwrap, defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
14
16
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
15
17
 
16
18
  export function Source_ROCrate_genID(s) {
@@ -46,8 +48,8 @@ export const Source_ROCrate_decoder = object((get$) => {
46
48
  return new Source((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri)), (objectArg_1 = get$.Optional, objectArg_1.Field("name", string)), (arg_5 = list_2(MaterialAttributeValue_ROCrate_decoder), (objectArg_2 = get$.Optional, objectArg_2.Field("characteristics", arg_5))));
47
49
  });
48
50
 
49
- export function Source_ISAJson_encoder(oa) {
50
- return new Json(5, [choose((tupledArg) => {
51
+ export function Source_ISAJson_encoder(idMap, oa) {
52
+ const f = (oa_1) => (new Json(5, [choose((tupledArg) => {
51
53
  const v = tupledArg[1];
52
54
  if (equals(v, new Json(3, []))) {
53
55
  return void 0;
@@ -55,7 +57,13 @@ export function Source_ISAJson_encoder(oa) {
55
57
  else {
56
58
  return [tupledArg[0], v];
57
59
  }
58
- }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), oa.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryIncludeListOpt("characteristics", MaterialAttributeValue_ISAJson_encoder, oa.Characteristics)]))]);
60
+ }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), Source_ROCrate_genID(oa_1)), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa_1.Name), tryIncludeListOpt("characteristics", (oa_2) => MaterialAttributeValue_ISAJson_encoder(idMap, oa_2), oa_1.Characteristics)]))]));
61
+ if (idMap != null) {
62
+ return encode(Source_ROCrate_genID, f, oa, idMap);
63
+ }
64
+ else {
65
+ return f(oa);
66
+ }
59
67
  }
60
68
 
61
69
  export const Source_ISAJson_allowedFields = ofArray(["@id", "name", "characteristics", "@type", "@context"]);
@@ -75,13 +83,18 @@ export function ARCtrl_Process_Source__Source_fromISAJsonString_Static_Z721C83C5
75
83
  }
76
84
  }
77
85
 
78
- export function ARCtrl_Process_Source__Source_toISAJsonString_Static_71136F3F(spaces) {
86
+ export function ARCtrl_Process_Source__Source_toISAJsonString_Static_Z3B036AA(spaces, useIDReferencing) {
87
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
79
88
  return (f) => {
80
- const value = Source_ISAJson_encoder(f);
81
- return toString(defaultSpaces(spaces), value);
89
+ const value_1 = Source_ISAJson_encoder(idMap, f);
90
+ return toString(defaultSpaces(spaces), value_1);
82
91
  };
83
92
  }
84
93
 
94
+ export function ARCtrl_Process_Source__Source_ToISAJsonString_Z3B036AA(this$, spaces, useIDReferencing) {
95
+ return ARCtrl_Process_Source__Source_toISAJsonString_Static_Z3B036AA(unwrap(spaces), unwrap(useIDReferencing))(this$);
96
+ }
97
+
85
98
  export function ARCtrl_Process_Source__Source_fromROCrateString_Static_Z721C83C5(s) {
86
99
  const matchValue = fromString(Source_ROCrate_decoder, s);
87
100
  if (matchValue.tag === 1) {
@@ -99,3 +112,7 @@ export function ARCtrl_Process_Source__Source_toROCrateString_Static_71136F3F(sp
99
112
  };
100
113
  }
101
114
 
115
+ export function ARCtrl_Process_Source__Source_ToROCrateString_71136F3F(this$, spaces) {
116
+ return ARCtrl_Process_Source__Source_toROCrateString_Static_71136F3F(unwrap(spaces))(this$);
117
+ }
118
+
@@ -7,7 +7,7 @@ import { Source_ISAJson_encoder } from "./Source.js";
7
7
  import { Sample_ISAJson_encoder } from "./Sample.js";
8
8
  import { Material_ISAJson_encoder } from "./Material.js";
9
9
 
10
- export function encoder(ps) {
10
+ export function encoder(idMap, ps) {
11
11
  const source = getSources(ps);
12
12
  const samples = getSamples(ps);
13
13
  const materials = getMaterials(ps);
@@ -19,6 +19,6 @@ export function encoder(ps) {
19
19
  else {
20
20
  return [tupledArg[0], v];
21
21
  }
22
- }, ofArray([tryIncludeList("sources", Source_ISAJson_encoder, source), tryIncludeList("samples", Sample_ISAJson_encoder, samples), tryIncludeList("otherMaterials", Material_ISAJson_encoder, materials)]))]);
22
+ }, ofArray([tryIncludeList("sources", (oa) => Source_ISAJson_encoder(idMap, oa), source), tryIncludeList("samples", (oa_1) => Sample_ISAJson_encoder(idMap, oa_1), samples), tryIncludeList("otherMaterials", (c) => Material_ISAJson_encoder(idMap, c), materials)]))]);
23
23
  }
24
24
 
@@ -8,14 +8,14 @@ import { printf, toText } from "../../fable_modules/fable-library-js.4.16.0/Stri
8
8
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
9
9
  import { defaultSpaces } from "../Encode.js";
10
10
 
11
- export function Value_ISAJson_encoder(value) {
11
+ export function Value_ISAJson_encoder(idMap, value) {
12
12
  switch (value.tag) {
13
13
  case 1:
14
14
  return new Json(7, [value.fields[0] >>> 0]);
15
15
  case 3:
16
16
  return new Json(0, [value.fields[0]]);
17
17
  case 0:
18
- return OntologyAnnotation_ISAJson_encoder(value.fields[0]);
18
+ return OntologyAnnotation_ISAJson_encoder(idMap, value.fields[0]);
19
19
  default:
20
20
  return new Json(2, [value.fields[0]]);
21
21
  }
@@ -35,7 +35,7 @@ export function ARCtrl_Process_Value__Value_fromISAJsonString_Static_Z721C83C5(s
35
35
 
36
36
  export function ARCtrl_Process_Value__Value_toISAJsonString_Static_71136F3F(spaces) {
37
37
  return (v) => {
38
- const value = Value_ISAJson_encoder(v);
38
+ const value = Value_ISAJson_encoder(void 0, v);
39
39
  return toString(defaultSpaces(spaces), value);
40
40
  };
41
41
  }
@@ -6,7 +6,7 @@ import { OntologyAnnotation_ROCrate_decoderDefinedTerm, OntologyAnnotation_ROCra
6
6
  import { Comment_ISAJson_encoder, Comment_ROCrate_decoderDisambiguatingDescription, Comment_ROCrate_encoderDisambiguatingDescription, Comment_decoder, Comment_encoder } from "./Comment.js";
7
7
  import { string, object } from "../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
8
8
  import { Publication } from "../Core/Publication.js";
9
- import { unwrap } from "../fable_modules/fable-library-js.4.16.0/Option.js";
9
+ import { defaultArg, unwrap } from "../fable_modules/fable-library-js.4.16.0/Option.js";
10
10
  import { Decode_noAdditionalProperties, Decode_resizeArray, Decode_uri } from "./Decode.js";
11
11
  import { printf, toText, replace } from "../fable_modules/fable-library-js.4.16.0/String.js";
12
12
  import { Person_ROCrate_decodeAuthorListString, Person_ROCrate_encodeAuthorListString } from "./Person.js";
@@ -70,7 +70,7 @@ export const Publication_ROCrate_decoder = object((get$) => {
70
70
  return new Publication(unwrap((objectArg = get$.Optional, objectArg.Field("pubMedID", Decode_uri))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("doi", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("authorList", Person_ROCrate_decodeAuthorListString))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("title", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("status", OntologyAnnotation_ROCrate_decoderDefinedTerm))), unwrap((arg_11 = Decode_resizeArray(Comment_ROCrate_decoderDisambiguatingDescription), (objectArg_5 = get$.Optional, objectArg_5.Field("comments", arg_11)))));
71
71
  });
72
72
 
73
- export function Publication_ISAJson_encoder(oa) {
73
+ export function Publication_ISAJson_encoder(idMap, oa) {
74
74
  return new Json(5, [choose((tupledArg) => {
75
75
  const v = tupledArg[1];
76
76
  if (equals(v, new Json(3, []))) {
@@ -79,7 +79,7 @@ export function Publication_ISAJson_encoder(oa) {
79
79
  else {
80
80
  return [tupledArg[0], v];
81
81
  }
82
- }, ofArray([tryInclude("pubMedID", (value) => (new Json(0, [value])), oa.PubMedID), tryInclude("doi", (value_2) => (new Json(0, [value_2])), oa.DOI), tryInclude("authorList", (value_4) => (new Json(0, [value_4])), oa.Authors), tryInclude("title", (value_6) => (new Json(0, [value_6])), oa.Title), tryInclude("status", OntologyAnnotation_encoder, oa.Status), tryIncludeSeq("comments", Comment_ISAJson_encoder, oa.Comments)]))]);
82
+ }, ofArray([tryInclude("pubMedID", (value) => (new Json(0, [value])), oa.PubMedID), tryInclude("doi", (value_2) => (new Json(0, [value_2])), oa.DOI), tryInclude("authorList", (value_4) => (new Json(0, [value_4])), oa.Authors), tryInclude("title", (value_6) => (new Json(0, [value_6])), oa.Title), tryInclude("status", OntologyAnnotation_encoder, oa.Status), tryIncludeSeq("comments", (comment) => Comment_ISAJson_encoder(idMap, comment), oa.Comments)]))]);
83
83
  }
84
84
 
85
85
  export const Publication_ISAJson_allowedFields = ofArray(["pubMedID", "doi", "authorList", "title", "status", "comments"]);
@@ -103,6 +103,10 @@ export function ARCtrl_Publication__Publication_toJsonString_Static_71136F3F(spa
103
103
  };
104
104
  }
105
105
 
106
+ export function ARCtrl_Publication__Publication_ToJsonString_71136F3F(this$, spaces) {
107
+ return ARCtrl_Publication__Publication_toJsonString_Static_71136F3F(unwrap(spaces))(this$);
108
+ }
109
+
106
110
  export function ARCtrl_Publication__Publication_fromROCrateJsonString_Static_Z721C83C5(s) {
107
111
  const matchValue = fromString(Publication_ROCrate_decoder, s);
108
112
  if (matchValue.tag === 1) {
@@ -123,11 +127,8 @@ export function ARCtrl_Publication__Publication_toROCrateJsonString_Static_71136
123
127
  };
124
128
  }
125
129
 
126
- export function ARCtrl_Publication__Publication_toISAJsonString_Static_71136F3F(spaces) {
127
- return (obj) => {
128
- const value = Publication_ISAJson_encoder(obj);
129
- return toString(defaultSpaces(spaces), value);
130
- };
130
+ export function ARCtrl_Publication__Publication_ToROCrateJsonString_71136F3F(this$, spaces) {
131
+ return ARCtrl_Publication__Publication_toROCrateJsonString_Static_71136F3F(unwrap(spaces))(this$);
131
132
  }
132
133
 
133
134
  export function ARCtrl_Publication__Publication_fromISAJsonString_Static_Z721C83C5(s) {
@@ -140,3 +141,15 @@ export function ARCtrl_Publication__Publication_fromISAJsonString_Static_Z721C83
140
141
  }
141
142
  }
142
143
 
144
+ export function ARCtrl_Publication__Publication_toISAJsonString_Static_Z3B036AA(spaces, useIDReferencing) {
145
+ const idMap = defaultArg(useIDReferencing, false) ? (new Map([])) : void 0;
146
+ return (obj) => {
147
+ const value = Publication_ISAJson_encoder(idMap, obj);
148
+ return toString(defaultSpaces(spaces), value);
149
+ };
150
+ }
151
+
152
+ export function ARCtrl_Publication__Publication_ToISAJsonString_Z3B036AA(this$, spaces, useIDReferencing) {
153
+ return ARCtrl_Publication__Publication_toISAJsonString_Static_Z3B036AA(unwrap(spaces), unwrap(useIDReferencing))(this$);
154
+ }
155
+