@nfdi4plants/arctrl 2.0.0-alpha.3 → 2.0.0-alpha.5

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 (122) hide show
  1. package/ARC.js +178 -21
  2. package/Contract/ARC.js +9 -1
  3. package/Contract/Contract.js +3 -0
  4. package/Contract/Datamap.js +180 -0
  5. package/Contract/Git.js +3 -0
  6. package/Core/ArcTypes.js +189 -120
  7. package/Core/Conversion.js +177 -106
  8. package/Core/Data.js +119 -0
  9. package/Core/{Process/DataFile.js → DataFile.js} +3 -3
  10. package/Core/Helper/Identifier.js +40 -0
  11. package/Core/Helper/Regex.js +13 -0
  12. package/Core/OntologyAnnotation.js +28 -6
  13. package/Core/Process/ColumnIndex.js +13 -3
  14. package/Core/Process/ProcessInput.js +5 -5
  15. package/Core/Process/ProcessOutput.js +5 -5
  16. package/Core/Process/Value.js +1 -1
  17. package/Core/Table/ArcTable.js +24 -2
  18. package/Core/Table/ArcTableAux.js +56 -5
  19. package/Core/Table/ArcTables.js +1 -1
  20. package/Core/Table/CompositeCell.js +67 -10
  21. package/Core/Table/CompositeColumn.js +9 -0
  22. package/Core/Table/CompositeHeader.js +108 -94
  23. package/Core/Table/DataMap.js +166 -0
  24. package/FileSystem/DefaultGitattributes.js +3 -0
  25. package/FileSystem/FileSystemTree.js +18 -4
  26. package/Json/Assay.js +4 -4
  27. package/Json/Process/Data.js +56 -18
  28. package/Json/Process/DataFile.js +5 -5
  29. package/Json/Process/PropertyValue.js +124 -4
  30. package/Json/Study.js +4 -4
  31. package/Json/Table/CompositeCell.js +7 -6
  32. package/Json/Table/CompositeHeader.js +4 -3
  33. package/Spreadsheet/AnnotationTable/ArcTable.js +10 -13
  34. package/Spreadsheet/AnnotationTable/CompositeCell.js +32 -50
  35. package/Spreadsheet/AnnotationTable/CompositeColumn.js +16 -10
  36. package/Spreadsheet/AnnotationTable/CompositeHeader.js +290 -135
  37. package/Spreadsheet/ArcAssay.js +2 -2
  38. package/Spreadsheet/ArcInvestigation.js +2 -2
  39. package/Spreadsheet/ArcStudy.js +2 -2
  40. package/Spreadsheet/DataMap.js +31 -0
  41. package/Spreadsheet/DataMapTable/DataMapColumn.js +36 -0
  42. package/Spreadsheet/DataMapTable/DataMapHeader.js +417 -0
  43. package/Spreadsheet/DataMapTable/DataMapTable.js +98 -0
  44. package/Spreadsheet/Metadata/Assays.js +2 -2
  45. package/Spreadsheet/Metadata/SparseTable.js +7 -7
  46. package/Spreadsheet/Metadata/Study.js +1 -1
  47. package/Spreadsheet/Template.js +2 -2
  48. package/Xlsx.js +29 -6
  49. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsSpreadsheet.fableproj +9 -3
  50. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorksheet.fs +1 -0
  51. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs +23 -0
  52. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs.js +21 -0
  53. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs +23 -0
  54. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs.js +19 -0
  55. package/fable_modules/FsSpreadsheet.6.1.2/Json/Table.fs +24 -0
  56. package/fable_modules/FsSpreadsheet.6.1.2/Json/Table.fs.js +15 -0
  57. package/fable_modules/FsSpreadsheet.6.1.2/Json/Value.fs +70 -0
  58. package/fable_modules/FsSpreadsheet.6.1.2/Json/Value.fs.js +48 -0
  59. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs +20 -0
  60. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs.js +21 -0
  61. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs +49 -0
  62. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs.js +44 -0
  63. package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +3 -3
  64. package/fable_modules/project_cracked.json +1 -1
  65. package/package.json +1 -1
  66. package/Core/Process/Data.js +0 -55
  67. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCell.fs +0 -0
  68. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCell.fs.js +0 -0
  69. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCellsCollection.fs +0 -0
  70. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Cells/FsCellsCollection.fs.js +0 -0
  71. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/CellBuilder.fs +0 -0
  72. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/CellBuilder.fs.js +0 -0
  73. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/ColumnBuilder.fs +0 -0
  74. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/ColumnBuilder.fs.js +0 -0
  75. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/DSL.fs +0 -0
  76. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/DSL.fs.js +0 -0
  77. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Expression.fs +0 -0
  78. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Expression.fs.js +0 -0
  79. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Operators.fs +0 -0
  80. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Operators.fs.js +0 -0
  81. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/RowBuilder.fs +0 -0
  82. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/RowBuilder.fs.js +0 -0
  83. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/SheetBuilder.fs +0 -0
  84. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/SheetBuilder.fs.js +0 -0
  85. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/TableBuilder.fs +0 -0
  86. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/TableBuilder.fs.js +0 -0
  87. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Transform.fs +0 -0
  88. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Transform.fs.js +0 -0
  89. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Types.fs +0 -0
  90. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/Types.fs.js +0 -0
  91. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/WorkbookBuilder.fs +0 -0
  92. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/DSL/WorkbookBuilder.fs.js +0 -0
  93. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsAddress.fs +0 -0
  94. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsAddress.fs.js +0 -0
  95. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsColumn.fs +0 -0
  96. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsColumn.fs.js +0 -0
  97. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsRow.fs +0 -0
  98. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsRow.fs.js +0 -0
  99. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorkbook.fs +0 -0
  100. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorkbook.fs.js +0 -0
  101. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/FsWorksheet.fs.js +0 -0
  102. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRange.fs +0 -0
  103. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRange.fs.js +0 -0
  104. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeAddress.fs +0 -0
  105. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeAddress.fs.js +0 -0
  106. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeBase.fs +0 -0
  107. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeBase.fs.js +0 -0
  108. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeColumn.fs +0 -0
  109. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeColumn.fs.js +0 -0
  110. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeRow.fs +0 -0
  111. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Ranges/FsRangeRow.fs.js +0 -0
  112. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/SheetBuilder.fs +0 -0
  113. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/SheetBuilder.fs.js +0 -0
  114. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTable.fs +0 -0
  115. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTable.fs.js +0 -0
  116. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableField.fs +0 -0
  117. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableField.fs.js +0 -0
  118. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableRow.fs +0 -0
  119. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/Tables/FsTableRow.fs.js +0 -0
  120. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
  121. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +0 -0
  122. /package/fable_modules/{FsSpreadsheet.5.1.3 → FsSpreadsheet.6.1.2}/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
@@ -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,7 +1,7 @@
1
1
  import { OntologyAnnotation_decoder, OntologyAnnotation_encoder } from "../OntologyAnnotation.js";
2
+ import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
2
3
  import { empty, singleton } from "../../fable_modules/fable-library-js.4.16.0/List.js";
3
4
  import { IOType_decoder, IOType_encoder } from "./IOType.js";
4
- import { Json } from "../../fable_modules/Thoth.Json.Core.0.2.1/Types.fs.js";
5
5
  import { list } from "../../fable_modules/Thoth.Json.Core.0.2.1/Encode.fs.js";
6
6
  import { index, string, object } from "../../fable_modules/Thoth.Json.Core.0.2.1/Decode.fs.js";
7
7
  import { CompositeHeader } from "../../Core/Table/CompositeHeader.js";
@@ -13,11 +13,12 @@ import { unwrap } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
13
13
 
14
14
  export function CompositeHeader_encoder(ch) {
15
15
  const oaToJsonString = OntologyAnnotation_encoder;
16
- const patternInput = (ch.tag === 3) ? ["Parameter", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 2) ? ["Factor", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 1) ? ["Characteristic", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 0) ? ["Component", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 4) ? ["ProtocolType", empty()] : ((ch.tag === 8) ? ["ProtocolREF", empty()] : ((ch.tag === 5) ? ["ProtocolDescription", empty()] : ((ch.tag === 6) ? ["ProtocolUri", empty()] : ((ch.tag === 7) ? ["ProtocolVersion", empty()] : ((ch.tag === 9) ? ["Performer", empty()] : ((ch.tag === 10) ? ["Date", empty()] : ((ch.tag === 11) ? ["Input", singleton(IOType_encoder(ch.fields[0]))] : ((ch.tag === 12) ? ["Output", singleton(IOType_encoder(ch.fields[0]))] : [ch.fields[0], empty()]))))))))))));
16
+ const patternInput = (ch.tag === 14) ? ["Comment", singleton(new Json(0, [ch.fields[0]]))] : ((ch.tag === 3) ? ["Parameter", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 2) ? ["Factor", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 1) ? ["Characteristic", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 0) ? ["Component", singleton(oaToJsonString(ch.fields[0]))] : ((ch.tag === 4) ? ["ProtocolType", empty()] : ((ch.tag === 8) ? ["ProtocolREF", empty()] : ((ch.tag === 5) ? ["ProtocolDescription", empty()] : ((ch.tag === 6) ? ["ProtocolUri", empty()] : ((ch.tag === 7) ? ["ProtocolVersion", empty()] : ((ch.tag === 9) ? ["Performer", empty()] : ((ch.tag === 10) ? ["Date", empty()] : ((ch.tag === 11) ? ["Input", singleton(IOType_encoder(ch.fields[0]))] : ((ch.tag === 12) ? ["Output", singleton(IOType_encoder(ch.fields[0]))] : [ch.fields[0], empty()])))))))))))));
17
17
  return new Json(5, [[["headertype", new Json(0, [patternInput[0]])], ["values", list(patternInput[1])]]]);
18
18
  }
19
19
 
20
20
  export const CompositeHeader_decoder = object((get$) => {
21
+ let arg_7, objectArg_3;
21
22
  let headerType;
22
23
  const objectArg = get$.Required;
23
24
  headerType = objectArg.Field("headertype", string);
@@ -31,7 +32,7 @@ export const CompositeHeader_decoder = object((get$) => {
31
32
  const objectArg_2 = get$.Required;
32
33
  return objectArg_2.Field("values", arg_5);
33
34
  };
34
- return (headerType === "Characteristic") ? (new CompositeHeader(1, [oa()])) : ((headerType === "Parameter") ? (new CompositeHeader(3, [oa()])) : ((headerType === "Component") ? (new CompositeHeader(0, [oa()])) : ((headerType === "Factor") ? (new CompositeHeader(2, [oa()])) : ((headerType === "Input") ? (new CompositeHeader(11, [io()])) : ((headerType === "Output") ? (new CompositeHeader(12, [io()])) : ((headerType === "ProtocolType") ? (new CompositeHeader(4, [])) : ((headerType === "ProtocolREF") ? (new CompositeHeader(8, [])) : ((headerType === "ProtocolDescription") ? (new CompositeHeader(5, [])) : ((headerType === "ProtocolUri") ? (new CompositeHeader(6, [])) : ((headerType === "ProtocolVersion") ? (new CompositeHeader(7, [])) : ((headerType === "Performer") ? (new CompositeHeader(9, [])) : ((headerType === "Date") ? (new CompositeHeader(10, [])) : (new CompositeHeader(13, [headerType]))))))))))))));
35
+ return (headerType === "Characteristic") ? (new CompositeHeader(1, [oa()])) : ((headerType === "Parameter") ? (new CompositeHeader(3, [oa()])) : ((headerType === "Component") ? (new CompositeHeader(0, [oa()])) : ((headerType === "Factor") ? (new CompositeHeader(2, [oa()])) : ((headerType === "Input") ? (new CompositeHeader(11, [io()])) : ((headerType === "Output") ? (new CompositeHeader(12, [io()])) : ((headerType === "ProtocolType") ? (new CompositeHeader(4, [])) : ((headerType === "ProtocolREF") ? (new CompositeHeader(8, [])) : ((headerType === "ProtocolDescription") ? (new CompositeHeader(5, [])) : ((headerType === "ProtocolUri") ? (new CompositeHeader(6, [])) : ((headerType === "ProtocolVersion") ? (new CompositeHeader(7, [])) : ((headerType === "Performer") ? (new CompositeHeader(9, [])) : ((headerType === "Date") ? (new CompositeHeader(10, [])) : ((headerType === "Comment") ? (new CompositeHeader(14, [(arg_7 = index(0, string), (objectArg_3 = get$.Required, objectArg_3.Field("values", arg_7)))])) : (new CompositeHeader(13, [headerType])))))))))))))));
35
36
  });
36
37
 
37
38
  export function ARCtrl_CompositeHeader__CompositeHeader_fromJsonString_Static_Z721C83C5(s) {
@@ -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.
@@ -49,6 +48,7 @@ export function classifyHeaderOrder(header) {
49
48
  case 1:
50
49
  case 2:
51
50
  case 3:
51
+ case 14:
52
52
  case 13:
53
53
  return 3;
54
54
  case 12:
@@ -62,15 +62,12 @@ export function classifyColumnOrder(column) {
62
62
  return classifyHeaderOrder(column.Header);
63
63
  }
64
64
 
65
+ export const helperColumnStrings = ofArray(["Term Source REF", "Term Accession Number", "Unit", "Data Format", "Data Selector Format"]);
66
+
65
67
  export function groupColumnsByHeader(columns) {
66
68
  return Aux_List_groupWhen((c) => {
67
69
  const v = c.Item(1).ValueAsString();
68
- if (tryParseReferenceColumnHeader(v) == null) {
69
- return !(v.indexOf("Unit") === 0);
70
- }
71
- else {
72
- return false;
73
- }
70
+ return !exists((s) => (v.indexOf(s) === 0), helperColumnStrings);
74
71
  }, columns);
75
72
  }
76
73
 
@@ -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("")]);
@@ -2,14 +2,14 @@ import { CompositeHeader, IOType } from "../../Core/Table/CompositeHeader.js";
2
2
  import { toString } from "../../fable_modules/fable-library-js.4.16.0/Types.js";
3
3
  import { toFsCells, fromFsCells } from "./CompositeHeader.js";
4
4
  import { singleton as singleton_1, ofArray, item, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
5
- import { FsAddress__get_RowNumber } from "../../fable_modules/FsSpreadsheet.5.1.3/FsAddress.fs.js";
6
- import { FsRangeAddress__get_LastAddress } from "../../fable_modules/FsSpreadsheet.5.1.3/Ranges/FsRangeAddress.fs.js";
7
- import { FsRangeBase__get_RangeAddress } from "../../fable_modules/FsSpreadsheet.5.1.3/Ranges/FsRangeBase.fs.js";
8
- import { singleton, append, toList, exists, map as map_1, delay, toArray } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
9
- import { toFsCells as toFsCells_1, fromFsCells as fromFsCells_1 } from "./CompositeCell.js";
5
+ import { FsAddress__get_RowNumber } from "../../fable_modules/FsSpreadsheet.6.1.2/FsAddress.fs.js";
6
+ import { FsRangeAddress__get_LastAddress } from "../../fable_modules/FsSpreadsheet.6.1.2/Ranges/FsRangeAddress.fs.js";
7
+ import { FsRangeBase__get_RangeAddress } from "../../fable_modules/FsSpreadsheet.6.1.2/Ranges/FsRangeBase.fs.js";
8
+ import { empty, singleton, append, toList, exists, map as map_1, delay, toArray } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
10
9
  import { rangeDouble } from "../../fable_modules/fable-library-js.4.16.0/Range.js";
11
10
  import { CompositeColumn } from "../../Core/Table/CompositeColumn.js";
12
11
  import { item as item_1, map as map_2 } from "../../fable_modules/fable-library-js.4.16.0/Array.js";
12
+ import { toFsCells as toFsCells_1 } from "./CompositeCell.js";
13
13
 
14
14
  /**
15
15
  * Checks if the column header is a deprecated IO Header. If so, fixes it.
@@ -21,7 +21,7 @@ import { item as item_1, map as map_2 } from "../../fable_modules/fable-library-
21
21
  export function fixDeprecatedIOHeader(col) {
22
22
  const matchValue = IOType.ofString(col.Item(1).ValueAsString());
23
23
  switch (matchValue.tag) {
24
- case 6:
24
+ case 4:
25
25
  return col;
26
26
  case 0: {
27
27
  col.Item(1).SetValueAs(toString(new CompositeHeader(11, [new IOType(0, [])])));
@@ -35,15 +35,16 @@ export function fixDeprecatedIOHeader(col) {
35
35
  }
36
36
 
37
37
  export function fromFsColumns(columns) {
38
- const header = fromFsCells(map((c) => c.Item(1), columns));
38
+ const patternInput = fromFsCells(map((c) => c.Item(1), columns));
39
39
  const l = FsAddress__get_RowNumber(FsRangeAddress__get_LastAddress(FsRangeBase__get_RangeAddress(item(0, columns)))) | 0;
40
- const cells_2 = toArray(delay(() => map_1((i) => fromFsCells_1(map((c_1) => c_1.Item(i), columns)), rangeDouble(2, 1, l))));
41
- return CompositeColumn.create(header, cells_2);
40
+ const cells_1 = toArray(delay(() => map_1((i) => patternInput[1](map((c_1) => c_1.Item(i), columns)), rangeDouble(2, 1, l))));
41
+ return CompositeColumn.create(patternInput[0], cells_1);
42
42
  }
43
43
 
44
44
  export function toFsColumns(column) {
45
45
  const hasUnit = exists((c) => c.isUnitized, column.Cells);
46
46
  const isTerm = column.Header.IsTermColumn;
47
+ const isData = column.Header.IsDataColumn;
47
48
  const header = toFsCells(hasUnit, column.Header);
48
49
  const cells = map_2((cell) => toFsCells_1(isTerm, hasUnit, cell), column.Cells);
49
50
  if (hasUnit) {
@@ -52,8 +53,13 @@ export function toFsColumns(column) {
52
53
  else if (isTerm) {
53
54
  return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_4) => item(0, item_1(i_4, cells)), rangeDouble(0, 1, column.Cells.length - 1)))))), toList(delay(() => append(singleton(item(1, header)), delay(() => map_1((i_5) => item(1, item_1(i_5, cells)), rangeDouble(0, 1, column.Cells.length - 1)))))), toList(delay(() => append(singleton(item(2, header)), delay(() => map_1((i_6) => item(2, item_1(i_6, cells)), rangeDouble(0, 1, column.Cells.length - 1))))))]);
54
55
  }
56
+ else if (isData) {
57
+ const hasFormat = exists((c_1) => (c_1.AsData.Format != null), column.Cells);
58
+ const hasSelectorFormat = exists((c_2) => (c_2.AsData.SelectorFormat != null), column.Cells);
59
+ return toList(delay(() => append(singleton(toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_7) => item(0, item_1(i_7, cells)), rangeDouble(0, 1, column.Cells.length - 1))))))), delay(() => append(hasFormat ? singleton(toList(delay(() => append(singleton(item(1, header)), delay(() => map_1((i_8) => item(1, item_1(i_8, cells)), rangeDouble(0, 1, column.Cells.length - 1))))))) : empty(), delay(() => (hasSelectorFormat ? singleton(toList(delay(() => append(singleton(item(2, header)), delay(() => map_1((i_9) => item(2, item_1(i_9, cells)), rangeDouble(0, 1, column.Cells.length - 1))))))) : empty())))))));
60
+ }
55
61
  else {
56
- return singleton_1(toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_7) => item(0, item_1(i_7, cells)), rangeDouble(0, 1, column.Cells.length - 1)))))));
62
+ return singleton_1(toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_10) => item(0, item_1(i_10, cells)), rangeDouble(0, 1, column.Cells.length - 1)))))));
57
63
  }
58
64
  }
59
65