@nfdi4plants/arctrl 2.0.0-alpha.2 → 2.0.0-alpha.4

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 (115) hide show
  1. package/ARC.js +110 -15
  2. package/Contract/ARC.js +9 -1
  3. package/Contract/Datamap.js +180 -0
  4. package/Core/ArcTypes.js +148 -121
  5. package/Core/Conversion.js +99 -67
  6. package/Core/Data.js +119 -0
  7. package/Core/{Process/DataFile.js → DataFile.js} +3 -3
  8. package/Core/Helper/Identifier.js +40 -0
  9. package/Core/OntologyAnnotation.js +14 -4
  10. package/Core/Process/ColumnIndex.js +13 -3
  11. package/Core/Process/ProcessInput.js +5 -5
  12. package/Core/Process/ProcessOutput.js +5 -5
  13. package/Core/Process/Value.js +1 -1
  14. package/Core/Table/ArcTableAux.js +14 -3
  15. package/Core/Table/CompositeCell.js +67 -10
  16. package/Core/Table/CompositeColumn.js +9 -0
  17. package/Core/Table/CompositeHeader.js +58 -68
  18. package/Core/Table/DataMap.js +166 -0
  19. package/FileSystem/FileSystemTree.js +18 -4
  20. package/Json/Assay.js +4 -4
  21. package/Json/Process/Data.js +56 -18
  22. package/Json/Process/DataFile.js +5 -5
  23. package/Json/Process/PropertyValue.js +126 -5
  24. package/Json/Study.js +6 -6
  25. package/Json/Table/CompositeCell.js +7 -6
  26. package/Spreadsheet/AnnotationTable/ArcTable.js +9 -13
  27. package/Spreadsheet/AnnotationTable/CompositeCell.js +32 -50
  28. package/Spreadsheet/AnnotationTable/CompositeColumn.js +16 -10
  29. package/Spreadsheet/AnnotationTable/CompositeHeader.js +262 -143
  30. package/Spreadsheet/ArcAssay.js +2 -2
  31. package/Spreadsheet/ArcInvestigation.js +2 -2
  32. package/Spreadsheet/ArcStudy.js +2 -2
  33. package/Spreadsheet/DataMap.js +31 -0
  34. package/Spreadsheet/DataMapTable/DataMapColumn.js +36 -0
  35. package/Spreadsheet/DataMapTable/DataMapHeader.js +417 -0
  36. package/Spreadsheet/DataMapTable/DataMapTable.js +98 -0
  37. package/Spreadsheet/Metadata/Assays.js +2 -2
  38. package/Spreadsheet/Metadata/SparseTable.js +7 -7
  39. package/Spreadsheet/Metadata/Study.js +1 -1
  40. package/Spreadsheet/Template.js +2 -2
  41. package/Xlsx.js +29 -6
  42. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsSpreadsheet.fableproj +9 -3
  43. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorksheet.fs +1 -0
  44. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs +23 -0
  45. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs.js +21 -0
  46. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs +23 -0
  47. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs.js +19 -0
  48. package/fable_modules/FsSpreadsheet.6.1.2/Json/Table.fs +24 -0
  49. package/fable_modules/FsSpreadsheet.6.1.2/Json/Table.fs.js +15 -0
  50. package/fable_modules/FsSpreadsheet.6.1.2/Json/Value.fs +70 -0
  51. package/fable_modules/FsSpreadsheet.6.1.2/Json/Value.fs.js +48 -0
  52. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs +20 -0
  53. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs.js +21 -0
  54. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs +49 -0
  55. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs.js +44 -0
  56. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +3 -3
  57. package/fable_modules/project_cracked.json +1 -1
  58. package/package.json +1 -1
  59. package/Core/Process/Data.js +0 -55
  60. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCell.fs +0 -0
  61. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCell.fs.js +0 -0
  62. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCellsCollection.fs +0 -0
  63. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCellsCollection.fs.js +0 -0
  64. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/CellBuilder.fs +0 -0
  65. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/CellBuilder.fs.js +0 -0
  66. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/ColumnBuilder.fs +0 -0
  67. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/ColumnBuilder.fs.js +0 -0
  68. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/DSL.fs +0 -0
  69. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/DSL.fs.js +0 -0
  70. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Expression.fs +0 -0
  71. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Expression.fs.js +0 -0
  72. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Operators.fs +0 -0
  73. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Operators.fs.js +0 -0
  74. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/RowBuilder.fs +0 -0
  75. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/RowBuilder.fs.js +0 -0
  76. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/SheetBuilder.fs +0 -0
  77. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/SheetBuilder.fs.js +0 -0
  78. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/TableBuilder.fs +0 -0
  79. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/TableBuilder.fs.js +0 -0
  80. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Transform.fs +0 -0
  81. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Transform.fs.js +0 -0
  82. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Types.fs +0 -0
  83. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Types.fs.js +0 -0
  84. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/WorkbookBuilder.fs +0 -0
  85. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/WorkbookBuilder.fs.js +0 -0
  86. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsAddress.fs +0 -0
  87. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsAddress.fs.js +0 -0
  88. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsColumn.fs +0 -0
  89. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsColumn.fs.js +0 -0
  90. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsRow.fs +0 -0
  91. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsRow.fs.js +0 -0
  92. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorkbook.fs +0 -0
  93. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorkbook.fs.js +0 -0
  94. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorksheet.fs.js +0 -0
  95. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRange.fs +0 -0
  96. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRange.fs.js +0 -0
  97. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeAddress.fs +0 -0
  98. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeAddress.fs.js +0 -0
  99. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeBase.fs +0 -0
  100. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeBase.fs.js +0 -0
  101. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeColumn.fs +0 -0
  102. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeColumn.fs.js +0 -0
  103. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeRow.fs +0 -0
  104. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeRow.fs.js +0 -0
  105. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/SheetBuilder.fs +0 -0
  106. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/SheetBuilder.fs.js +0 -0
  107. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTable.fs +0 -0
  108. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTable.fs.js +0 -0
  109. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableField.fs +0 -0
  110. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableField.fs.js +0 -0
  111. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableRow.fs +0 -0
  112. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableRow.fs.js +0 -0
  113. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
  114. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +0 -0
  115. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
@@ -1,19 +1,57 @@
1
- import { printf, toText, replace } from "../../fable_modules/fable-library-js.4.16.0/String.js";
2
- import { URIModule_toString } from "../../Core/URI.js";
3
- import { ofArray, singleton, choose } from "../../fable_modules/fable-library-js.4.16.0/List.js";
1
+ import { singleton, ofArray, choose } from "../../fable_modules/fable-library-js.4.16.0/List.js";
4
2
  import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
5
3
  import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
4
+ import { defaultSpaces, tryIncludeSeq, tryInclude } from "../Encode.js";
5
+ import { DataFile_ROCrate_decoder, DataFile_ROCrate_encoder, DataFile_ISAJson_decoder, DataFile_ISAJson_encoder } from "./DataFile.js";
6
+ import { Comment_ISAJson_decoder, Comment_ISAJson_encoder, Comment_ROCrate_decoder, Comment_ROCrate_encoder, Comment_decoder, Comment_encoder } from "../Comment.js";
7
+ import { string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
8
+ import { Data } from "../../Core/Data.js";
9
+ import { unwrap } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
10
+ import { Decode_objectNoAdditionalProperties, Decode_resizeArray, Decode_uri } from "../Decode.js";
11
+ import { decodeString, encodeString } from "../StringTable.js";
12
+ import { printf, toText, replace } from "../../fable_modules/fable-library-js.4.16.0/String.js";
13
+ import { URIModule_toString } from "../../Core/URI.js";
6
14
  import { list as list_1 } from "../../fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js";
7
- import { defaultSpaces, tryIncludeListOpt, tryInclude } from "../Encode.js";
8
- import { DataFile_ISAJson_decoder, DataFile_ISAJson_encoder, DataFile_ROCrate_decoder, DataFile_ROCrate_encoder } from "./DataFile.js";
9
- import { Comment_ISAJson_decoder, Comment_ISAJson_encoder, Comment_ROCrate_decoder, Comment_ROCrate_encoder } from "../Comment.js";
10
15
  import { context_jsonvalue } from "../context/rocrate/isa_data_context.js";
11
- import { list as list_2, string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
12
- import { Decode_objectNoAdditionalProperties, Decode_uri } from "../Decode.js";
13
- import { Data } from "../../Core/Process/Data.js";
14
16
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
15
17
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
16
18
 
19
+ export function Data_encoder(d) {
20
+ return new Json(5, [choose((tupledArg) => {
21
+ const v = tupledArg[1];
22
+ if (equals(v, new Json(3, []))) {
23
+ return void 0;
24
+ }
25
+ else {
26
+ return [tupledArg[0], v];
27
+ }
28
+ }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), d.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), d.Name), tryInclude("dataType", DataFile_ISAJson_encoder, d.DataType), tryInclude("format", (value_4) => (new Json(0, [value_4])), d.Format), tryInclude("selectorFormat", (value_6) => (new Json(0, [value_6])), d.SelectorFormat), tryIncludeSeq("comments", Comment_encoder, d.Comments)]))]);
29
+ }
30
+
31
+ export const Data_decoder = object((get$) => {
32
+ let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, arg_11, objectArg_5;
33
+ return new Data(unwrap((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("name", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("dataType", DataFile_ISAJson_decoder))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("format", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("selectorFormat", Decode_uri))), unwrap((arg_11 = Decode_resizeArray(Comment_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("comments", arg_11)))));
34
+ });
35
+
36
+ export function Data_compressedEncoder(stringTable, d) {
37
+ return new Json(5, [choose((tupledArg) => {
38
+ const v = tupledArg[1];
39
+ if (equals(v, new Json(3, []))) {
40
+ return void 0;
41
+ }
42
+ else {
43
+ return [tupledArg[0], v];
44
+ }
45
+ }, ofArray([tryInclude("i", (s) => encodeString(stringTable, s), d.ID), tryInclude("n", (s_1) => encodeString(stringTable, s_1), d.Name), tryInclude("d", DataFile_ISAJson_encoder, d.DataType), tryInclude("f", (s_2) => encodeString(stringTable, s_2), d.Format), tryInclude("s", (s_3) => encodeString(stringTable, s_3), d.SelectorFormat), tryIncludeSeq("c", Comment_encoder, d.Comments)]))]);
46
+ }
47
+
48
+ export function Data_compressedDecoder(stringTable) {
49
+ return object((get$) => {
50
+ let arg_1, objectArg, arg_3, objectArg_1, objectArg_2, arg_7, objectArg_3, arg_9, objectArg_4, arg_11, objectArg_5;
51
+ return new Data(unwrap((arg_1 = decodeString(stringTable), (objectArg = get$.Optional, objectArg.Field("i", arg_1)))), unwrap((arg_3 = decodeString(stringTable), (objectArg_1 = get$.Optional, objectArg_1.Field("n", arg_3)))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("d", DataFile_ISAJson_decoder))), unwrap((arg_7 = decodeString(stringTable), (objectArg_3 = get$.Optional, objectArg_3.Field("f", arg_7)))), unwrap((arg_9 = decodeString(stringTable), (objectArg_4 = get$.Optional, objectArg_4.Field("s", arg_9)))), unwrap((arg_11 = Decode_resizeArray(Comment_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("c", arg_11)))));
52
+ });
53
+ }
54
+
17
55
  export function Data_ROCrate_genID(d) {
18
56
  const matchValue = d.ID;
19
57
  if (matchValue == null) {
@@ -39,12 +77,12 @@ export function Data_ROCrate_encoder(oa) {
39
77
  else {
40
78
  return [tupledArg[0], v];
41
79
  }
42
- }, ofArray([["@id", new Json(0, [Data_ROCrate_genID(oa)])], ["@type", list_1(singleton(new Json(0, ["Data"])))], tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryInclude("type", DataFile_ROCrate_encoder, oa.DataType), tryIncludeListOpt("comments", Comment_ROCrate_encoder, oa.Comments), ["@context", context_jsonvalue]]))]);
80
+ }, ofArray([["@id", new Json(0, [Data_ROCrate_genID(oa)])], ["@type", list_1(singleton(new Json(0, ["Data"])))], tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryInclude("type", DataFile_ROCrate_encoder, oa.DataType), tryInclude("encodingFormat", (value_5) => (new Json(0, [value_5])), oa.Format), tryInclude("usageInfo", (value_7) => (new Json(0, [value_7])), oa.SelectorFormat), tryIncludeSeq("comments", Comment_ROCrate_encoder, oa.Comments), ["@context", context_jsonvalue]]))]);
43
81
  }
44
82
 
45
83
  export const Data_ROCrate_decoder = object((get$) => {
46
- let objectArg, objectArg_1, objectArg_2, arg_7, objectArg_3;
47
- return new Data((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri)), (objectArg_1 = get$.Optional, objectArg_1.Field("name", string)), (objectArg_2 = get$.Optional, objectArg_2.Field("type", DataFile_ROCrate_decoder)), (arg_7 = list_2(Comment_ROCrate_decoder), (objectArg_3 = get$.Optional, objectArg_3.Field("comments", arg_7))));
84
+ let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, arg_11, objectArg_5;
85
+ return new Data(unwrap((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("name", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("type", DataFile_ROCrate_decoder))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("encodingFormat", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("usageInfo", Decode_uri))), unwrap((arg_11 = Decode_resizeArray(Comment_ROCrate_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("comments", arg_11)))));
48
86
  });
49
87
 
50
88
  export function Data_ISAJson_encoder(oa) {
@@ -56,17 +94,17 @@ export function Data_ISAJson_encoder(oa) {
56
94
  else {
57
95
  return [tupledArg[0], v];
58
96
  }
59
- }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), oa.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryInclude("type", DataFile_ISAJson_encoder, oa.DataType), tryIncludeListOpt("comments", Comment_ISAJson_encoder, oa.Comments)]))]);
97
+ }, ofArray([tryInclude("@id", (value) => (new Json(0, [value])), oa.ID), tryInclude("name", (value_2) => (new Json(0, [value_2])), oa.Name), tryInclude("type", DataFile_ISAJson_encoder, oa.DataType), tryIncludeSeq("comments", Comment_ISAJson_encoder, oa.Comments)]))]);
60
98
  }
61
99
 
62
100
  export const Data_ISAJson_allowedFields = ofArray(["@id", "name", "type", "comments", "@type", "@context"]);
63
101
 
64
102
  export const Data_ISAJson_decoder = Decode_objectNoAdditionalProperties(Data_ISAJson_allowedFields, (get$) => {
65
103
  let objectArg, objectArg_1, objectArg_2, arg_7, objectArg_3;
66
- return new Data((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri)), (objectArg_1 = get$.Optional, objectArg_1.Field("name", string)), (objectArg_2 = get$.Optional, objectArg_2.Field("type", DataFile_ISAJson_decoder)), (arg_7 = list_2(Comment_ISAJson_decoder), (objectArg_3 = get$.Optional, objectArg_3.Field("comments", arg_7))));
104
+ return new Data(unwrap((objectArg = get$.Optional, objectArg.Field("@id", Decode_uri))), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("name", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("type", DataFile_ISAJson_decoder))), void 0, void 0, unwrap((arg_7 = Decode_resizeArray(Comment_ISAJson_decoder), (objectArg_3 = get$.Optional, objectArg_3.Field("comments", arg_7)))));
67
105
  });
68
106
 
69
- export function ARCtrl_Process_Data__Data_fromISAJsonString_Static_Z721C83C5(s) {
107
+ export function ARCtrl_Data__Data_fromISAJsonString_Static_Z721C83C5(s) {
70
108
  const matchValue = fromString(Data_ISAJson_decoder, s);
71
109
  if (matchValue.tag === 1) {
72
110
  throw new Error(toText(printf("Error decoding string: %O"))(matchValue.fields[0]));
@@ -76,14 +114,14 @@ export function ARCtrl_Process_Data__Data_fromISAJsonString_Static_Z721C83C5(s)
76
114
  }
77
115
  }
78
116
 
79
- export function ARCtrl_Process_Data__Data_toISAJsonString_Static_71136F3F(spaces) {
117
+ export function ARCtrl_Data__Data_toISAJsonString_Static_71136F3F(spaces) {
80
118
  return (f) => {
81
119
  const value = Data_ISAJson_encoder(f);
82
120
  return toString(defaultSpaces(spaces), value);
83
121
  };
84
122
  }
85
123
 
86
- export function ARCtrl_Process_Data__Data_fromROCrateJsonString_Static_Z721C83C5(s) {
124
+ export function ARCtrl_Data__Data_fromROCrateJsonString_Static_Z721C83C5(s) {
87
125
  const matchValue = fromString(Data_ROCrate_decoder, s);
88
126
  if (matchValue.tag === 1) {
89
127
  throw new Error(toText(printf("Error decoding string: %O"))(matchValue.fields[0]));
@@ -93,7 +131,7 @@ export function ARCtrl_Process_Data__Data_fromROCrateJsonString_Static_Z721C83C5
93
131
  }
94
132
  }
95
133
 
96
- export function ARCtrl_Process_Data__Data_toROCrateJsonString_Static_71136F3F(spaces) {
134
+ export function ARCtrl_Data__Data_toROCrateJsonString_Static_71136F3F(spaces) {
97
135
  return (f) => {
98
136
  const value = Data_ROCrate_encoder(f);
99
137
  return toString(defaultSpaces(spaces), value);
@@ -1,7 +1,7 @@
1
1
  import { ErrorReason$1, Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
2
2
  import { string } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
3
3
  import { FSharpResult$2 } from "../../fable_modules/fable-library-js.4.16.0/Result.js";
4
- import { DataFile } from "../../Core/Process/DataFile.js";
4
+ import { DataFile } from "../../Core/DataFile.js";
5
5
  import { fromString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Decode.fs.js";
6
6
  import { printf, toText } from "../../fable_modules/fable-library-js.4.16.0/String.js";
7
7
  import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.1.0/Encode.fs.js";
@@ -45,7 +45,7 @@ export const DataFile_ISAJson_encoder = DataFile_ROCrate_encoder;
45
45
 
46
46
  export const DataFile_ISAJson_decoder = DataFile_ROCrate_decoder;
47
47
 
48
- export function ARCtrl_Process_DataFile__DataFile_fromISAJsonString_Static_Z721C83C5(s) {
48
+ export function ARCtrl_DataFile__DataFile_fromISAJsonString_Static_Z721C83C5(s) {
49
49
  const matchValue = fromString(DataFile_ISAJson_decoder, s);
50
50
  if (matchValue.tag === 1) {
51
51
  throw new Error(toText(printf("Error decoding string: %O"))(matchValue.fields[0]));
@@ -55,14 +55,14 @@ export function ARCtrl_Process_DataFile__DataFile_fromISAJsonString_Static_Z721C
55
55
  }
56
56
  }
57
57
 
58
- export function ARCtrl_Process_DataFile__DataFile_toISAJsonString_Static_71136F3F(spaces) {
58
+ export function ARCtrl_DataFile__DataFile_toISAJsonString_Static_71136F3F(spaces) {
59
59
  return (f) => {
60
60
  const value = DataFile_ISAJson_encoder(f);
61
61
  return toString(defaultSpaces(spaces), value);
62
62
  };
63
63
  }
64
64
 
65
- export function ARCtrl_Process_DataFile__DataFile_fromROCrateJsonString_Static_Z721C83C5(s) {
65
+ export function ARCtrl_DataFile__DataFile_fromROCrateJsonString_Static_Z721C83C5(s) {
66
66
  const matchValue = fromString(DataFile_ROCrate_decoder, s);
67
67
  if (matchValue.tag === 1) {
68
68
  throw new Error(toText(printf("Error decoding string: %O"))(matchValue.fields[0]));
@@ -72,7 +72,7 @@ export function ARCtrl_Process_DataFile__DataFile_fromROCrateJsonString_Static_Z
72
72
  }
73
73
  }
74
74
 
75
- export function ARCtrl_Process_DataFile__DataFile_toROCrateJsonString_Static_71136F3F(spaces) {
75
+ export function ARCtrl_DataFile__DataFile_toROCrateJsonString_Static_71136F3F(spaces) {
76
76
  return (f) => {
77
77
  const value = DataFile_ROCrate_encoder(f);
78
78
  return toString(defaultSpaces(spaces), value);
@@ -1,20 +1,22 @@
1
1
  import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
2
- import { map } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
2
+ import { unwrap, map } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
3
3
  import { ofArray, choose } from "../../fable_modules/fable-library-js.4.16.0/List.js";
4
4
  import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
5
5
  import { tryInclude } from "../Encode.js";
6
6
  import { context_jsonvalue } from "../context/rocrate/property_value_context.js";
7
7
  import { string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
8
8
  import { OntologyAnnotation } from "../../Core/OntologyAnnotation.js";
9
+ import { AnnotationValue_decoder } from "../OntologyAnnotation.js";
9
10
  import { Value } from "../../Core/Process/Value.js";
10
11
 
11
12
  export function genID(p) {
12
13
  const matchValue = p.GetCategory();
13
14
  if (matchValue == null) {
14
- return `#Empty${() => p.GetAdditionalType()}`;
15
+ return `#Empty${p.GetAdditionalType()}`;
15
16
  }
16
17
  else {
17
- return `${() => p.GetAdditionalType()}/${matchValue}${p.GetValue()}${p.GetUnit()}`;
18
+ const t = matchValue;
19
+ return `${p.GetAdditionalType()}/${t}${p.GetValue()}${p.GetUnit()}`;
18
20
  }
19
21
  }
20
22
 
@@ -75,8 +77,127 @@ export function encoder(pv) {
75
77
 
76
78
  export function decoder(create) {
77
79
  return object((get$) => {
78
- let name, objectArg, code, objectArg_1, value, objectArg_2, code_1, objectArg_3, name_1, objectArg_4, code_2, objectArg_5;
79
- return create((name = ((objectArg = get$.Optional, objectArg.Field("category", string))), (code = ((objectArg_1 = get$.Optional, objectArg_1.Field("categoryCode", string))), ((name == null) && (code == null)) ? void 0 : OntologyAnnotation.create(name, void 0, code))), (value = ((objectArg_2 = get$.Optional, objectArg_2.Field("value", string))), (code_1 = ((objectArg_3 = get$.Optional, objectArg_3.Field("valueCode", string))), ((value == null) && (code_1 == null)) ? void 0 : Value.fromOptions(value, void 0, code_1))), (name_1 = ((objectArg_4 = get$.Optional, objectArg_4.Field("unit", string))), (code_2 = ((objectArg_5 = get$.Optional, objectArg_5.Field("unitCode", string))), ((name_1 == null) && (code_2 == null)) ? void 0 : OntologyAnnotation.create(name_1, void 0, code_2))));
80
+ let value, objectArg_4, code_4, objectArg_5;
81
+ let category;
82
+ let name;
83
+ const objectArg = get$.Optional;
84
+ name = objectArg.Field("category", string);
85
+ let code;
86
+ const objectArg_1 = get$.Optional;
87
+ code = objectArg_1.Field("categoryCode", string);
88
+ let matchResult, code_1;
89
+ if (name == null) {
90
+ if (code != null) {
91
+ if (code === "") {
92
+ matchResult = 0;
93
+ }
94
+ else {
95
+ matchResult = 2;
96
+ code_1 = code;
97
+ }
98
+ }
99
+ else {
100
+ matchResult = 0;
101
+ }
102
+ }
103
+ else if (code != null) {
104
+ if (code === "") {
105
+ matchResult = 1;
106
+ }
107
+ else {
108
+ matchResult = 2;
109
+ code_1 = code;
110
+ }
111
+ }
112
+ else {
113
+ matchResult = 1;
114
+ }
115
+ switch (matchResult) {
116
+ case 0: {
117
+ category = void 0;
118
+ break;
119
+ }
120
+ case 1: {
121
+ try {
122
+ category = OntologyAnnotation.create(name);
123
+ }
124
+ catch (err) {
125
+ throw new Error(`Error while decoding category (name:${name}): ${err}`);
126
+ }
127
+ break;
128
+ }
129
+ default:
130
+ try {
131
+ category = OntologyAnnotation.fromTermAnnotation(code_1, unwrap(name));
132
+ }
133
+ catch (err_1) {
134
+ throw new Error(`Error while decoding category (name:${name}, code:${code_1}): ${err_1}`);
135
+ }
136
+ }
137
+ let unit;
138
+ let name_1;
139
+ const objectArg_2 = get$.Optional;
140
+ name_1 = objectArg_2.Field("unit", string);
141
+ let code_2;
142
+ const objectArg_3 = get$.Optional;
143
+ code_2 = objectArg_3.Field("unitCode", string);
144
+ let matchResult_1, code_3;
145
+ if (name_1 == null) {
146
+ if (code_2 != null) {
147
+ if (code_2 === "") {
148
+ matchResult_1 = 0;
149
+ }
150
+ else {
151
+ matchResult_1 = 2;
152
+ code_3 = code_2;
153
+ }
154
+ }
155
+ else {
156
+ matchResult_1 = 0;
157
+ }
158
+ }
159
+ else if (code_2 != null) {
160
+ if (code_2 === "") {
161
+ matchResult_1 = 1;
162
+ }
163
+ else {
164
+ matchResult_1 = 2;
165
+ code_3 = code_2;
166
+ }
167
+ }
168
+ else {
169
+ matchResult_1 = 1;
170
+ }
171
+ switch (matchResult_1) {
172
+ case 0: {
173
+ unit = void 0;
174
+ break;
175
+ }
176
+ case 1: {
177
+ try {
178
+ unit = OntologyAnnotation.create(name_1);
179
+ }
180
+ catch (err_2) {
181
+ throw new Error(`Error while decoding unit (name:${name_1}): ${err_2}`);
182
+ }
183
+ break;
184
+ }
185
+ default:
186
+ try {
187
+ unit = OntologyAnnotation.fromTermAnnotation(code_3, unwrap(name_1));
188
+ }
189
+ catch (err_3) {
190
+ throw new Error(`Error while decoding unit (name:${name_1}, code:${code_3}): ${err_3}`);
191
+ }
192
+ }
193
+ return create(category, (value = ((objectArg_4 = get$.Optional, objectArg_4.Field("value", AnnotationValue_decoder))), (code_4 = ((objectArg_5 = get$.Optional, objectArg_5.Field("valueCode", string))), ((value == null) && (code_4 == null)) ? void 0 : (() => {
194
+ try {
195
+ return Value.fromOptions(value, void 0, code_4);
196
+ }
197
+ catch (err_4) {
198
+ throw new Error(`Error while decoding value ${value},${code_4}: ${err_4}`);
199
+ }
200
+ })())), unit);
80
201
  });
81
202
  }
82
203
 
package/Json/Study.js CHANGED
@@ -13,7 +13,7 @@ import { Comment_ISAJson_decoder, Comment_ISAJson_encoder, Comment_ROCrate_decod
13
13
  import { list as list_2, string, object } from "../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
14
14
  import { Decode_objectNoAdditionalProperties, Decode_resizeArray } from "./Decode.js";
15
15
  import { toFail, printf, toText, replace } from "../fable_modules/fable-library-js.4.16.0/String.js";
16
- import { Assay_fileNameFromIdentifier, createMissingIdentifier, Study_tryIdentifierFromFileName, Study_tryFileNameFromIdentifier } from "../Core/Helper/Identifier.js";
16
+ import { Study_fileNameFromIdentifier, createMissingIdentifier, Study_tryIdentifierFromFileName, Study_tryFileNameFromIdentifier } from "../Core/Helper/Identifier.js";
17
17
  import { Person_removeSourceAssayComments, Person_getSourceAssayIdentifiersFromComments, Person_setSourceAssayComment, ARCtrl_ArcTables__ArcTables_fromProcesses_Static_62A3309D, ARCtrl_ArcTables__ArcTables_GetProcesses } from "../Core/Conversion.js";
18
18
  import { list as list_1 } from "../fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js";
19
19
  import { Process_ISAJson_decoder, Process_ISAJson_encoder, Process_ROCrate_decoder, Process_ROCrate_encoder } from "./Process/Process.js";
@@ -55,7 +55,7 @@ export function Study_encoder(study) {
55
55
 
56
56
  export const Study_decoder = object((get$) => {
57
57
  let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, arg_11, objectArg_5, arg_13, objectArg_6, arg_15, objectArg_7, arg_17, objectArg_8, arg_19, objectArg_9, arg_21, objectArg_10;
58
- return new ArcStudy((objectArg = get$.Required, objectArg.Field("Identifier", string)), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("Title", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("Description", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("SubmissionDate", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("PublicReleaseDate", string))), unwrap((arg_11 = Decode_resizeArray(Publication_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("Publications", arg_11)))), unwrap((arg_13 = Decode_resizeArray(Person_decoder), (objectArg_6 = get$.Optional, objectArg_6.Field("Contacts", arg_13)))), unwrap((arg_15 = Decode_resizeArray(OntologyAnnotation_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("StudyDesignDescriptors", arg_15)))), unwrap((arg_17 = Decode_resizeArray(ArcTable_decoder), (objectArg_8 = get$.Optional, objectArg_8.Field("Tables", arg_17)))), unwrap((arg_19 = Decode_resizeArray(string), (objectArg_9 = get$.Optional, objectArg_9.Field("RegisteredAssayIdentifiers", arg_19)))), unwrap((arg_21 = Decode_resizeArray(Comment_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("Comments", arg_21)))));
58
+ return new ArcStudy((objectArg = get$.Required, objectArg.Field("Identifier", string)), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("Title", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("Description", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("SubmissionDate", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("PublicReleaseDate", string))), unwrap((arg_11 = Decode_resizeArray(Publication_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("Publications", arg_11)))), unwrap((arg_13 = Decode_resizeArray(Person_decoder), (objectArg_6 = get$.Optional, objectArg_6.Field("Contacts", arg_13)))), unwrap((arg_15 = Decode_resizeArray(OntologyAnnotation_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("StudyDesignDescriptors", arg_15)))), unwrap((arg_17 = Decode_resizeArray(ArcTable_decoder), (objectArg_8 = get$.Optional, objectArg_8.Field("Tables", arg_17)))), void 0, unwrap((arg_19 = Decode_resizeArray(string), (objectArg_9 = get$.Optional, objectArg_9.Field("RegisteredAssayIdentifiers", arg_19)))), unwrap((arg_21 = Decode_resizeArray(Comment_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("Comments", arg_21)))));
59
59
  });
60
60
 
61
61
  export function Study_encoderCompressed(stringTable, oaTable, cellTable, study) {
@@ -73,7 +73,7 @@ export function Study_encoderCompressed(stringTable, oaTable, cellTable, study)
73
73
  export function Study_decoderCompressed(stringTable, oaTable, cellTable) {
74
74
  return object((get$) => {
75
75
  let objectArg, objectArg_1, objectArg_2, objectArg_3, objectArg_4, arg_11, objectArg_5, arg_13, objectArg_6, arg_15, objectArg_7, arg_17, objectArg_8, arg_19, objectArg_9, arg_21, objectArg_10;
76
- return new ArcStudy((objectArg = get$.Required, objectArg.Field("Identifier", string)), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("Title", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("Description", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("SubmissionDate", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("PublicReleaseDate", string))), unwrap((arg_11 = Decode_resizeArray(Publication_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("Publications", arg_11)))), unwrap((arg_13 = Decode_resizeArray(Person_decoder), (objectArg_6 = get$.Optional, objectArg_6.Field("Contacts", arg_13)))), unwrap((arg_15 = Decode_resizeArray(OntologyAnnotation_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("StudyDesignDescriptors", arg_15)))), unwrap((arg_17 = Decode_resizeArray(ArcTable_decoderCompressed(stringTable, oaTable, cellTable)), (objectArg_8 = get$.Optional, objectArg_8.Field("Tables", arg_17)))), unwrap((arg_19 = Decode_resizeArray(string), (objectArg_9 = get$.Optional, objectArg_9.Field("RegisteredAssayIdentifiers", arg_19)))), unwrap((arg_21 = Decode_resizeArray(Comment_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("Comments", arg_21)))));
76
+ return new ArcStudy((objectArg = get$.Required, objectArg.Field("Identifier", string)), unwrap((objectArg_1 = get$.Optional, objectArg_1.Field("Title", string))), unwrap((objectArg_2 = get$.Optional, objectArg_2.Field("Description", string))), unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("SubmissionDate", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("PublicReleaseDate", string))), unwrap((arg_11 = Decode_resizeArray(Publication_decoder), (objectArg_5 = get$.Optional, objectArg_5.Field("Publications", arg_11)))), unwrap((arg_13 = Decode_resizeArray(Person_decoder), (objectArg_6 = get$.Optional, objectArg_6.Field("Contacts", arg_13)))), unwrap((arg_15 = Decode_resizeArray(OntologyAnnotation_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("StudyDesignDescriptors", arg_15)))), unwrap((arg_17 = Decode_resizeArray(ArcTable_decoderCompressed(stringTable, oaTable, cellTable)), (objectArg_8 = get$.Optional, objectArg_8.Field("Tables", arg_17)))), void 0, unwrap((arg_19 = Decode_resizeArray(string), (objectArg_9 = get$.Optional, objectArg_9.Field("RegisteredAssayIdentifiers", arg_19)))), unwrap((arg_21 = Decode_resizeArray(Comment_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("Comments", arg_21)))));
77
77
  });
78
78
  }
79
79
 
@@ -115,7 +115,7 @@ export const Study_ROCrate_decoder = object((get$) => {
115
115
  return Array.from(collection);
116
116
  }, assays);
117
117
  const tables = map((ps) => ARCtrl_ArcTables__ArcTables_fromProcesses_Static_62A3309D(ps).Tables, (arg_6 = list_2(Process_ROCrate_decoder), (objectArg_2 = get$.Optional, objectArg_2.Field("processSequence", arg_6))));
118
- return [new ArcStudy(identifier, unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("title", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("description", string))), unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("submissionDate", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("publicReleaseDate", string))), unwrap((arg_16 = Decode_resizeArray(Publication_ROCrate_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("publications", arg_16)))), unwrap((arg_18 = Decode_resizeArray(Person_ROCrate_decoder), (objectArg_8 = get$.Optional, objectArg_8.Field("people", arg_18)))), unwrap((arg_20 = Decode_resizeArray(OntologyAnnotation_ROCrate_decoderDefinedTerm), (objectArg_9 = get$.Optional, objectArg_9.Field("studyDesignDescriptors", arg_20)))), unwrap(tables), unwrap(assayIdentifiers), unwrap((arg_22 = Decode_resizeArray(Comment_ROCrate_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("comments", arg_22))))), defaultArg(assays, empty())];
118
+ return [new ArcStudy(identifier, unwrap((objectArg_3 = get$.Optional, objectArg_3.Field("title", string))), unwrap((objectArg_4 = get$.Optional, objectArg_4.Field("description", string))), unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("submissionDate", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("publicReleaseDate", string))), unwrap((arg_16 = Decode_resizeArray(Publication_ROCrate_decoder), (objectArg_7 = get$.Optional, objectArg_7.Field("publications", arg_16)))), unwrap((arg_18 = Decode_resizeArray(Person_ROCrate_decoder), (objectArg_8 = get$.Optional, objectArg_8.Field("people", arg_18)))), unwrap((arg_20 = Decode_resizeArray(OntologyAnnotation_ROCrate_decoderDefinedTerm), (objectArg_9 = get$.Optional, objectArg_9.Field("studyDesignDescriptors", arg_20)))), unwrap(tables), void 0, unwrap(assayIdentifiers), unwrap((arg_22 = Decode_resizeArray(Comment_ROCrate_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("comments", arg_22))))), defaultArg(assays, empty())];
119
119
  });
120
120
 
121
121
  /**
@@ -123,7 +123,7 @@ export const Study_ROCrate_decoder = object((get$) => {
123
123
  */
124
124
  export function Study_ISAJson_encoder(assays, s) {
125
125
  const study = s.Copy(true);
126
- const fileName = Assay_fileNameFromIdentifier(study.Identifier);
126
+ const fileName = Study_fileNameFromIdentifier(study.Identifier);
127
127
  let assays_1;
128
128
  const n = [];
129
129
  let enumerator = getEnumerator(Study_Helper_getAssayInformation(assays, study));
@@ -227,7 +227,7 @@ export const Study_ISAJson_decoder = Decode_objectNoAdditionalProperties(Study_I
227
227
  const collection = map_1((a_1) => a_1.Identifier, arg_11);
228
228
  return Array.from(collection);
229
229
  }, assays);
230
- return [new ArcStudy(identifier, unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("title", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("description", string))), unwrap((objectArg_7 = get$.Optional, objectArg_7.Field("submissionDate", string))), unwrap((objectArg_8 = get$.Optional, objectArg_8.Field("publicReleaseDate", string))), unwrap((arg_21 = Decode_resizeArray(Publication_ISAJson_decoder), (objectArg_9 = get$.Optional, objectArg_9.Field("publications", arg_21)))), unwrap((persons.length === 0) ? void 0 : persons), unwrap((arg_23 = Decode_resizeArray(OntologyAnnotation_ISAJson_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("studyDesignDescriptors", arg_23)))), unwrap(tables), unwrap(assayIdentifiers), unwrap((arg_25 = Decode_resizeArray(Comment_ISAJson_decoder), (objectArg_11 = get$.Optional, objectArg_11.Field("comments", arg_25))))), defaultArg(assays, empty())];
230
+ return [new ArcStudy(identifier, unwrap((objectArg_5 = get$.Optional, objectArg_5.Field("title", string))), unwrap((objectArg_6 = get$.Optional, objectArg_6.Field("description", string))), unwrap((objectArg_7 = get$.Optional, objectArg_7.Field("submissionDate", string))), unwrap((objectArg_8 = get$.Optional, objectArg_8.Field("publicReleaseDate", string))), unwrap((arg_21 = Decode_resizeArray(Publication_ISAJson_decoder), (objectArg_9 = get$.Optional, objectArg_9.Field("publications", arg_21)))), unwrap((persons.length === 0) ? void 0 : persons), unwrap((arg_23 = Decode_resizeArray(OntologyAnnotation_ISAJson_decoder), (objectArg_10 = get$.Optional, objectArg_10.Field("studyDesignDescriptors", arg_23)))), unwrap(tables), void 0, unwrap(assayIdentifiers), unwrap((arg_25 = Decode_resizeArray(Comment_ISAJson_decoder), (objectArg_11 = get$.Optional, objectArg_11.Field("comments", arg_25))))), defaultArg(assays, empty())];
231
231
  });
232
232
 
233
233
  export function ARCtrl_ArcStudy__ArcStudy_fromJsonString_Static_Z721C83C5(s) {
@@ -1,6 +1,7 @@
1
1
  import { OntologyAnnotation_decoder, OntologyAnnotation_encoder } from "../OntologyAnnotation.js";
2
2
  import { ofArray, singleton } from "../../fable_modules/fable-library-js.4.16.0/List.js";
3
3
  import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
4
+ import { Data_compressedDecoder, Data_compressedEncoder, Data_decoder, Data_encoder } from "../Process/Data.js";
4
5
  import { list } from "../../fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js";
5
6
  import { index, string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
6
7
  import { CompositeCell } from "../../Core/Table/CompositeCell.js";
@@ -14,31 +15,31 @@ import { unwrap } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
14
15
 
15
16
  export function CompositeCell_encoder(cc) {
16
17
  const oaToJsonString = OntologyAnnotation_encoder;
17
- const patternInput = (cc.tag === 0) ? ["Term", singleton(oaToJsonString(cc.fields[0]))] : ((cc.tag === 2) ? ["Unitized", ofArray([new Json(0, [cc.fields[0]]), oaToJsonString(cc.fields[1])])] : ["FreeText", singleton(new Json(0, [cc.fields[0]]))]);
18
+ const patternInput = (cc.tag === 0) ? ["Term", singleton(oaToJsonString(cc.fields[0]))] : ((cc.tag === 2) ? ["Unitized", ofArray([new Json(0, [cc.fields[0]]), oaToJsonString(cc.fields[1])])] : ((cc.tag === 3) ? ["Data", singleton(Data_encoder(cc.fields[0]))] : ["FreeText", singleton(new Json(0, [cc.fields[0]]))]));
18
19
  return new Json(5, [[["celltype", new Json(0, [patternInput[0]])], ["values", list(patternInput[1])]]]);
19
20
  }
20
21
 
21
22
  export const CompositeCell_decoder = object((get$) => {
22
- let arg_3, objectArg_1, arg_5, objectArg_2, arg_7, objectArg_3, arg_9, objectArg_4;
23
+ let arg_3, objectArg_1, arg_5, objectArg_2, arg_7, objectArg_3, arg_9, objectArg_4, arg_11, objectArg_5;
23
24
  let matchValue;
24
25
  const objectArg = get$.Required;
25
26
  matchValue = objectArg.Field("celltype", string);
26
- return (matchValue === "FreeText") ? (new CompositeCell(1, [(arg_3 = index(0, string), (objectArg_1 = get$.Required, objectArg_1.Field("values", arg_3)))])) : ((matchValue === "Term") ? (new CompositeCell(0, [(arg_5 = index(0, OntologyAnnotation_decoder), (objectArg_2 = get$.Required, objectArg_2.Field("values", arg_5)))])) : ((matchValue === "Unitized") ? (new CompositeCell(2, [(arg_7 = index(0, string), (objectArg_3 = get$.Required, objectArg_3.Field("values", arg_7))), (arg_9 = index(1, OntologyAnnotation_decoder), (objectArg_4 = get$.Required, objectArg_4.Field("values", arg_9)))])) : toFail(printf("Error reading CompositeCell from json string: %A"))(matchValue)));
27
+ return (matchValue === "FreeText") ? (new CompositeCell(1, [(arg_3 = index(0, string), (objectArg_1 = get$.Required, objectArg_1.Field("values", arg_3)))])) : ((matchValue === "Term") ? (new CompositeCell(0, [(arg_5 = index(0, OntologyAnnotation_decoder), (objectArg_2 = get$.Required, objectArg_2.Field("values", arg_5)))])) : ((matchValue === "Unitized") ? (new CompositeCell(2, [(arg_7 = index(0, string), (objectArg_3 = get$.Required, objectArg_3.Field("values", arg_7))), (arg_9 = index(1, OntologyAnnotation_decoder), (objectArg_4 = get$.Required, objectArg_4.Field("values", arg_9)))])) : ((matchValue === "Data") ? (new CompositeCell(3, [(arg_11 = index(0, Data_decoder), (objectArg_5 = get$.Required, objectArg_5.Field("values", arg_11)))])) : toFail(printf("Error reading CompositeCell from json string: %A"))(matchValue))));
27
28
  });
28
29
 
29
30
  export function CompositeCell_encoderCompressed(stringTable, oaTable, cc) {
30
- const patternInput = (cc.tag === 0) ? ["Term", singleton(encodeOA(oaTable, cc.fields[0]))] : ((cc.tag === 2) ? ["Unitized", ofArray([encodeString(stringTable, cc.fields[0]), encodeOA(oaTable, cc.fields[1])])] : ["FreeText", singleton(encodeString(stringTable, cc.fields[0]))]);
31
+ const patternInput = (cc.tag === 0) ? ["Term", singleton(encodeOA(oaTable, cc.fields[0]))] : ((cc.tag === 2) ? ["Unitized", ofArray([encodeString(stringTable, cc.fields[0]), encodeOA(oaTable, cc.fields[1])])] : ((cc.tag === 3) ? ["Data", singleton(Data_compressedEncoder(stringTable, cc.fields[0]))] : ["FreeText", singleton(encodeString(stringTable, cc.fields[0]))]));
31
32
  return new Json(5, [[["t", encodeString(stringTable, patternInput[0])], ["v", list(patternInput[1])]]]);
32
33
  }
33
34
 
34
35
  export function CompositeCell_decoderCompressed(stringTable, oaTable) {
35
36
  return object((get$) => {
36
- let arg_3, objectArg_1, arg_5, objectArg_2, arg_7, objectArg_3, arg_9, objectArg_4;
37
+ let arg_3, objectArg_1, arg_5, objectArg_2, arg_7, objectArg_3, arg_9, objectArg_4, arg_11, objectArg_5;
37
38
  let matchValue;
38
39
  const arg_1 = decodeString(stringTable);
39
40
  const objectArg = get$.Required;
40
41
  matchValue = objectArg.Field("t", arg_1);
41
- return (matchValue === "FreeText") ? (new CompositeCell(1, [(arg_3 = index(0, decodeString(stringTable)), (objectArg_1 = get$.Required, objectArg_1.Field("v", arg_3)))])) : ((matchValue === "Term") ? (new CompositeCell(0, [(arg_5 = index(0, decodeOA(oaTable)), (objectArg_2 = get$.Required, objectArg_2.Field("v", arg_5)))])) : ((matchValue === "Unitized") ? (new CompositeCell(2, [(arg_7 = index(0, decodeString(stringTable)), (objectArg_3 = get$.Required, objectArg_3.Field("v", arg_7))), (arg_9 = index(1, decodeOA(oaTable)), (objectArg_4 = get$.Required, objectArg_4.Field("v", arg_9)))])) : toFail(printf("Error reading CompositeCell from json string: %A"))(matchValue)));
42
+ return (matchValue === "FreeText") ? (new CompositeCell(1, [(arg_3 = index(0, decodeString(stringTable)), (objectArg_1 = get$.Required, objectArg_1.Field("v", arg_3)))])) : ((matchValue === "Term") ? (new CompositeCell(0, [(arg_5 = index(0, decodeOA(oaTable)), (objectArg_2 = get$.Required, objectArg_2.Field("v", arg_5)))])) : ((matchValue === "Unitized") ? (new CompositeCell(2, [(arg_7 = index(0, decodeString(stringTable)), (objectArg_3 = get$.Required, objectArg_3.Field("v", arg_7))), (arg_9 = index(1, decodeOA(oaTable)), (objectArg_4 = get$.Required, objectArg_4.Field("v", arg_9)))])) : ((matchValue === "Data") ? (new CompositeCell(3, [(arg_11 = index(0, Data_compressedDecoder(stringTable)), (objectArg_5 = get$.Required, objectArg_5.Field("v", arg_11)))])) : toFail(printf("Error reading CompositeCell from json string: %A"))(matchValue))));
42
43
  });
43
44
  }
44
45
 
@@ -1,16 +1,15 @@
1
- import { iterateIndexed, length, ofArray, sortBy, collect, toArray, empty, tail, head, isEmpty, cons, singleton, fold, map, reverse } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
- import { tryParseReferenceColumnHeader } from "../../Core/Helper/Regex.js";
1
+ import { iterateIndexed, length, sortBy, collect, toArray, exists, ofArray, empty, tail, head, isEmpty, cons, singleton, fold, map, reverse } from "../../fable_modules/fable-library-js.4.16.0/List.js";
3
2
  import { map as map_1, toList, tryFind } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
4
3
  import { toFsColumns, fixDeprecatedIOHeader, fromFsColumns } from "./CompositeColumn.js";
5
4
  import { printf, toFail } from "../../fable_modules/fable-library-js.4.16.0/String.js";
6
5
  import { ArcTable } from "../../Core/Table/ArcTable.js";
7
- import { FsWorksheet } from "../../fable_modules/FsSpreadsheet.5.1.3/FsWorksheet.fs.js";
6
+ import { FsWorksheet } from "../../fable_modules/FsSpreadsheet.6.1.2/FsWorksheet.fs.js";
8
7
  import { comparePrimitives } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
9
- import { FsRangeAddress_$ctor_7E77A4A0 } from "../../fable_modules/FsSpreadsheet.5.1.3/Ranges/FsRangeAddress.fs.js";
10
- import { FsAddress_$ctor_Z37302880 } from "../../fable_modules/FsSpreadsheet.5.1.3/FsAddress.fs.js";
11
- import { Dictionary_tryGet } from "../../fable_modules/FsSpreadsheet.5.1.3/Cells/FsCellsCollection.fs.js";
8
+ import { FsRangeAddress_$ctor_7E77A4A0 } from "../../fable_modules/FsSpreadsheet.6.1.2/Ranges/FsRangeAddress.fs.js";
9
+ import { FsAddress_$ctor_Z37302880 } from "../../fable_modules/FsSpreadsheet.6.1.2/FsAddress.fs.js";
10
+ import { Dictionary_tryGet } from "../../fable_modules/FsSpreadsheet.6.1.2/Cells/FsCellsCollection.fs.js";
12
11
  import { addToDict } from "../../fable_modules/fable-library-js.4.16.0/MapUtil.js";
13
- import { FsRangeBase__Cell_Z3407A44B } from "../../fable_modules/FsSpreadsheet.5.1.3/Ranges/FsRangeBase.fs.js";
12
+ import { FsRangeBase__Cell_Z3407A44B } from "../../fable_modules/FsSpreadsheet.6.1.2/Ranges/FsRangeBase.fs.js";
14
13
 
15
14
  /**
16
15
  * Iterates over elements of the input list and groups adjacent elements.
@@ -62,15 +61,12 @@ export function classifyColumnOrder(column) {
62
61
  return classifyHeaderOrder(column.Header);
63
62
  }
64
63
 
64
+ export const helperColumnStrings = ofArray(["Term Source REF", "Term Accession Number", "Unit", "Data Format", "Data Selector Format"]);
65
+
65
66
  export function groupColumnsByHeader(columns) {
66
67
  return Aux_List_groupWhen((c) => {
67
68
  const v = c.Item(1).ValueAsString();
68
- if (tryParseReferenceColumnHeader(v) == null) {
69
- return !(v.indexOf("Unit") === 0);
70
- }
71
- else {
72
- return false;
73
- }
69
+ return !exists((s) => (v.indexOf(s) === 0), helperColumnStrings);
74
70
  }, columns);
75
71
  }
76
72
 
@@ -1,56 +1,33 @@
1
- import { singleton, ofArray, head, tail, isEmpty, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
1
+ import { singleton, ofArray, item, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
+ import { defaultArg, unwrap, map as map_1 } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
2
3
  import { CompositeCell } from "../../Core/Table/CompositeCell.js";
3
- import { printf, toFail } from "../../fable_modules/fable-library-js.4.16.0/String.js";
4
- import { FsCell } from "../../fable_modules/FsSpreadsheet.5.1.3/Cells/FsCell.fs.js";
5
- import { defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
4
+ import { FsCell } from "../../fable_modules/FsSpreadsheet.6.1.2/Cells/FsCell.fs.js";
6
5
 
7
- export function fromFsCells(cells) {
6
+ export function termFromFsCells(tsrCol, tanCol, cells) {
8
7
  const cellValues = map((c) => c.ValueAsString(), cells);
9
- let matchResult, v, v1, v2, v3, v1_1, v2_1, v3_1, v4;
10
- if (!isEmpty(cellValues)) {
11
- if (!isEmpty(tail(cellValues))) {
12
- if (!isEmpty(tail(tail(cellValues)))) {
13
- if (!isEmpty(tail(tail(tail(cellValues))))) {
14
- if (isEmpty(tail(tail(tail(tail(cellValues)))))) {
15
- matchResult = 2;
16
- v1_1 = head(cellValues);
17
- v2_1 = head(tail(cellValues));
18
- v3_1 = head(tail(tail(cellValues)));
19
- v4 = head(tail(tail(tail(cellValues))));
20
- }
21
- else {
22
- matchResult = 3;
23
- }
24
- }
25
- else {
26
- matchResult = 1;
27
- v1 = head(cellValues);
28
- v2 = head(tail(cellValues));
29
- v3 = head(tail(tail(cellValues)));
30
- }
31
- }
32
- else {
33
- matchResult = 3;
34
- }
35
- }
36
- else {
37
- matchResult = 0;
38
- v = head(cellValues);
39
- }
40
- }
41
- else {
42
- matchResult = 3;
43
- }
44
- switch (matchResult) {
45
- case 0:
46
- return CompositeCell.createFreeText(v);
47
- case 1:
48
- return CompositeCell.createTermFromString(v1, v2, v3);
49
- case 2:
50
- return CompositeCell.createUnitizedFromString(v1_1, v2_1, v3_1, v4);
51
- default:
52
- return toFail(printf("Dafuq"));
53
- }
8
+ const tan = map_1((i) => item(i, cellValues), tanCol);
9
+ const tsr = map_1((i_1) => item(i_1, cellValues), tsrCol);
10
+ return CompositeCell.createTermFromString(item(0, cellValues), unwrap(tsr), unwrap(tan));
11
+ }
12
+
13
+ export function unitizedFromFsCells(unitCol, tsrCol, tanCol, cells) {
14
+ const cellValues = map((c) => c.ValueAsString(), cells);
15
+ const unit = item(unitCol, cellValues);
16
+ const tan = map_1((i) => item(i, cellValues), tanCol);
17
+ const tsr = map_1((i_1) => item(i_1, cellValues), tsrCol);
18
+ return CompositeCell.createUnitizedFromString(item(0, cellValues), unit, unwrap(tsr), unwrap(tan));
19
+ }
20
+
21
+ export function freeTextFromFsCells(cells) {
22
+ const cellValues = map((c) => c.ValueAsString(), cells);
23
+ return CompositeCell.createFreeText(item(0, cellValues));
24
+ }
25
+
26
+ export function dataFromFsCells(format, selectorFormat, cells) {
27
+ const cellValues = map((c) => c.ValueAsString(), cells);
28
+ const format_1 = map_1((i) => item(i, cellValues), format);
29
+ const selectorFormat_1 = map_1((i_1) => item(i_1, cellValues), selectorFormat);
30
+ return CompositeCell.createDataFromString(item(0, cellValues), unwrap(format_1), unwrap(selectorFormat_1));
54
31
  }
55
32
 
56
33
  export function toFsCells(isTerm, hasUnit, cell) {
@@ -64,6 +41,11 @@ export function toFsCells(isTerm, hasUnit, cell) {
64
41
  }
65
42
  case 2:
66
43
  return ofArray([new FsCell(cell.fields[0]), new FsCell(cell.fields[1].NameText), new FsCell(defaultArg(cell.fields[1].TermSourceREF, "")), new FsCell(cell.fields[1].TermAccessionOntobeeUrl)]);
44
+ case 3: {
45
+ const format = new FsCell(defaultArg(cell.fields[0].Format, ""));
46
+ const selectorFormat = new FsCell(defaultArg(cell.fields[0].SelectorFormat, ""));
47
+ return ofArray([new FsCell(defaultArg(cell.fields[0].Name, "")), format, selectorFormat]);
48
+ }
67
49
  default:
68
50
  if (hasUnit) {
69
51
  return ofArray([new FsCell(cell.fields[0]), new FsCell(""), new FsCell(""), new FsCell("")]);