@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,5 +1,6 @@
1
1
  import { defaultArg } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
2
2
  import { OntologyAnnotation_$reflection, OntologyAnnotation } from "../OntologyAnnotation.js";
3
+ import { Data_$reflection, Data } from "../Data.js";
3
4
  import { Union } from "../../fable_modules/fable-library-js.4.16.0/Types.js";
4
5
  import { union_type, string_type } from "../../fable_modules/fable-library-js.4.16.0/Reflection.js";
5
6
 
@@ -10,7 +11,7 @@ export class CompositeCell extends Union {
10
11
  this.fields = fields;
11
12
  }
12
13
  cases() {
13
- return ["Term", "FreeText", "Unitized"];
14
+ return ["Term", "FreeText", "Unitized", "Data"];
14
15
  }
15
16
  get isUnitized() {
16
17
  const this$ = this;
@@ -24,9 +25,13 @@ export class CompositeCell extends Union {
24
25
  const this$ = this;
25
26
  return this$.tag === 1;
26
27
  }
28
+ get isData() {
29
+ const this$ = this;
30
+ return this$.tag === 3;
31
+ }
27
32
  GetEmptyCell() {
28
33
  const this$ = this;
29
- return (this$.tag === 2) ? CompositeCell.emptyUnitized : ((this$.tag === 1) ? CompositeCell.emptyFreeText : CompositeCell.emptyTerm);
34
+ return (this$.tag === 2) ? CompositeCell.emptyUnitized : ((this$.tag === 1) ? CompositeCell.emptyFreeText : ((this$.tag === 3) ? CompositeCell.emptyData : CompositeCell.emptyTerm));
30
35
  }
31
36
  GetContent() {
32
37
  const this$ = this;
@@ -39,21 +44,43 @@ export class CompositeCell extends Union {
39
44
  const oa_1 = this$.fields[1];
40
45
  return [this$.fields[0], oa_1.NameText, defaultArg(oa_1.TermSourceREF, ""), defaultArg(oa_1.TermAccessionNumber, "")];
41
46
  }
47
+ case 3: {
48
+ const d = this$.fields[0];
49
+ return [defaultArg(d.Name, ""), defaultArg(d.Format, ""), defaultArg(d.SelectorFormat, "")];
50
+ }
42
51
  default:
43
52
  return [this$.fields[0]];
44
53
  }
45
54
  }
46
55
  ToUnitizedCell() {
47
56
  const this$ = this;
48
- return (this$.tag === 1) ? (new CompositeCell(2, ["", OntologyAnnotation.create(this$.fields[0])])) : ((this$.tag === 0) ? (new CompositeCell(2, ["", this$.fields[0]])) : this$);
57
+ switch (this$.tag) {
58
+ case 1:
59
+ return new CompositeCell(2, ["", OntologyAnnotation.create(this$.fields[0])]);
60
+ case 0:
61
+ return new CompositeCell(2, ["", this$.fields[0]]);
62
+ case 3:
63
+ throw new Error("Data cell cannot be converted to Unitized cell.");
64
+ default:
65
+ return this$;
66
+ }
49
67
  }
50
68
  ToTermCell() {
51
69
  const this$ = this;
52
- return (this$.tag === 2) ? (new CompositeCell(0, [this$.fields[1]])) : ((this$.tag === 1) ? (new CompositeCell(0, [OntologyAnnotation.create(this$.fields[0])])) : this$);
70
+ switch (this$.tag) {
71
+ case 2:
72
+ return new CompositeCell(0, [this$.fields[1]]);
73
+ case 1:
74
+ return new CompositeCell(0, [OntologyAnnotation.create(this$.fields[0])]);
75
+ case 3:
76
+ throw new Error("Data cell cannot be converted to Term cell.");
77
+ default:
78
+ return this$;
79
+ }
53
80
  }
54
81
  ToFreeTextCell() {
55
82
  const this$ = this;
56
- return (this$.tag === 0) ? (new CompositeCell(1, [this$.fields[0].NameText])) : ((this$.tag === 2) ? (new CompositeCell(1, [this$.fields[1].NameText])) : this$);
83
+ return (this$.tag === 0) ? (new CompositeCell(1, [this$.fields[0].NameText])) : ((this$.tag === 2) ? (new CompositeCell(1, [this$.fields[1].NameText])) : ((this$.tag === 3) ? (new CompositeCell(1, [defaultArg(this$.fields[0].Name, "")])) : this$));
57
84
  }
58
85
  get AsUnitized() {
59
86
  const this$ = this;
@@ -70,7 +97,7 @@ export class CompositeCell extends Union {
70
97
  return this$.fields[0];
71
98
  }
72
99
  else {
73
- throw new Error("Not a Swate TermCell.");
100
+ throw new Error("Not a Term Cell.");
74
101
  }
75
102
  }
76
103
  get AsFreeText() {
@@ -79,7 +106,16 @@ export class CompositeCell extends Union {
79
106
  return this$.fields[0];
80
107
  }
81
108
  else {
82
- throw new Error("Not a Swate TermCell.");
109
+ throw new Error("Not a FreeText Cell.");
110
+ }
111
+ }
112
+ get AsData() {
113
+ const this$ = this;
114
+ if (this$.tag === 3) {
115
+ return this$.fields[0];
116
+ }
117
+ else {
118
+ throw new Error("Not a Data Cell.");
83
119
  }
84
120
  }
85
121
  static createTerm(oa) {
@@ -98,6 +134,12 @@ export class CompositeCell extends Union {
98
134
  static createFreeText(value) {
99
135
  return new CompositeCell(1, [value]);
100
136
  }
137
+ static createData(d) {
138
+ return new CompositeCell(3, [d]);
139
+ }
140
+ static createDataFromString(value, format, selectorFormat) {
141
+ return new CompositeCell(3, [Data.create(void 0, value, void 0, format, selectorFormat)]);
142
+ }
101
143
  static get emptyTerm() {
102
144
  return new CompositeCell(0, [new OntologyAnnotation()]);
103
145
  }
@@ -107,16 +149,28 @@ export class CompositeCell extends Union {
107
149
  static get emptyUnitized() {
108
150
  return new CompositeCell(2, ["", new OntologyAnnotation()]);
109
151
  }
152
+ static get emptyData() {
153
+ return new CompositeCell(3, [Data.create()]);
154
+ }
110
155
  UpdateWithOA(oa) {
111
156
  const this$ = this;
112
- return (this$.tag === 2) ? CompositeCell.createUnitized(this$.fields[0], oa) : ((this$.tag === 1) ? CompositeCell.createFreeText(oa.NameText) : CompositeCell.createTerm(oa));
157
+ switch (this$.tag) {
158
+ case 2:
159
+ return CompositeCell.createUnitized(this$.fields[0], oa);
160
+ case 1:
161
+ return CompositeCell.createFreeText(oa.NameText);
162
+ case 3:
163
+ throw new Error("Data cell cannot be updated with OntologyAnnotation.");
164
+ default:
165
+ return CompositeCell.createTerm(oa);
166
+ }
113
167
  }
114
168
  static updateWithOA(oa, cell) {
115
169
  return cell.UpdateWithOA(oa);
116
170
  }
117
171
  toString() {
118
172
  const this$ = this;
119
- return (this$.tag === 1) ? this$.fields[0] : ((this$.tag === 2) ? (`${this$.fields[0]} ${this$.fields[1].NameText}`) : (`${this$.fields[0].NameText}`));
173
+ return (this$.tag === 1) ? this$.fields[0] : ((this$.tag === 2) ? (`${this$.fields[0]} ${this$.fields[1].NameText}`) : ((this$.tag === 3) ? (`${this$.fields[0].NameText}`) : (`${this$.fields[0].NameText}`)));
120
174
  }
121
175
  static term(oa) {
122
176
  return new CompositeCell(0, [oa]);
@@ -127,9 +181,12 @@ export class CompositeCell extends Union {
127
181
  static unitized(v, oa) {
128
182
  return new CompositeCell(2, [v, oa]);
129
183
  }
184
+ static data(d) {
185
+ return new CompositeCell(3, [d]);
186
+ }
130
187
  }
131
188
 
132
189
  export function CompositeCell_$reflection() {
133
- return union_type("ARCtrl.CompositeCell", [], CompositeCell, () => [[["Item", OntologyAnnotation_$reflection()]], [["Item", string_type]], [["Item1", string_type], ["Item2", OntologyAnnotation_$reflection()]]]);
190
+ return union_type("ARCtrl.CompositeCell", [], CompositeCell, () => [[["Item", OntologyAnnotation_$reflection()]], [["Item", string_type]], [["Item1", string_type], ["Item2", OntologyAnnotation_$reflection()]], [["Item", Data_$reflection()]]]);
134
191
  }
135
192
 
@@ -23,6 +23,15 @@ export class CompositeColumn extends Record {
23
23
  if (cells.length === 0) {
24
24
  return true;
25
25
  }
26
+ else if (header.IsDataColumn && (item(0, cells).isData ? true : item(0, cells).isFreeText)) {
27
+ return true;
28
+ }
29
+ else if (header.IsDataColumn) {
30
+ if (raiseExeption) {
31
+ throw new Error(`Invalid combination of header \`${header}\` and cells \`${item(0, cells)}\`, Data header should have either Data or Freetext cells`);
32
+ }
33
+ return false;
34
+ }
26
35
  else if (header.IsTermColumn && (item(0, cells).isTerm ? true : item(0, cells).isUnitized)) {
27
36
  return true;
28
37
  }
@@ -1,7 +1,7 @@
1
1
  import { map } from "../../fable_modules/fable-library-js.4.16.0/Array.js";
2
2
  import { union_type, string_type, getUnionCases, name } from "../../fable_modules/fable-library-js.4.16.0/Reflection.js";
3
3
  import { Union, toString } from "../../fable_modules/fable-library-js.4.16.0/Types.js";
4
- import { ActivePatterns_$007CTermColumn$007C_$007C, Pattern_OutputPattern, Pattern_InputPattern, ActivePatterns_$007CRegex$007C_$007C, tryParseIOTypeHeader } from "../Helper/Regex.js";
4
+ import { ActivePatterns_$007CTermColumn$007C_$007C, Pattern_CommentPattern, Pattern_OutputPattern, Pattern_InputPattern, ActivePatterns_$007CRegex$007C_$007C, tryParseIOTypeHeader } from "../Helper/Regex.js";
5
5
  import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
6
6
  import { printf, toFail } from "../../fable_modules/fable-library-js.4.16.0/String.js";
7
7
  import { OntologyAnnotation_$reflection, OntologyAnnotation } from "../OntologyAnnotation.js";
@@ -13,10 +13,10 @@ export class IOType extends Union {
13
13
  this.fields = fields;
14
14
  }
15
15
  cases() {
16
- return ["Source", "Sample", "RawDataFile", "DerivedDataFile", "ImageFile", "Material", "FreeText"];
16
+ return ["Source", "Sample", "Data", "Material", "FreeText"];
17
17
  }
18
18
  static get All() {
19
- return [new IOType(0, []), new IOType(1, []), new IOType(2, []), new IOType(3, []), new IOType(4, []), new IOType(5, [])];
19
+ return [new IOType(0, []), new IOType(1, []), new IOType(2, []), new IOType(3, [])];
20
20
  }
21
21
  static get Cases() {
22
22
  return map((x) => [x.tag, name(x)], getUnionCases(IOType_$reflection()));
@@ -27,7 +27,7 @@ export class IOType extends Union {
27
27
  let copyOfStruct;
28
28
  return `Input [${(copyOfStruct = x, toString(copyOfStruct))}]`;
29
29
  };
30
- return (this$.tag === 6) ? stringCreate(this$.fields[0]) : stringCreate(this$);
30
+ return (this$.tag === 4) ? stringCreate(this$.fields[0]) : stringCreate(this$);
31
31
  }
32
32
  get asOutput() {
33
33
  const this$ = this;
@@ -35,49 +35,17 @@ export class IOType extends Union {
35
35
  let copyOfStruct;
36
36
  return `Output [${(copyOfStruct = x, toString(copyOfStruct))}]`;
37
37
  };
38
- return (this$.tag === 6) ? stringCreate(this$.fields[0]) : stringCreate(this$);
38
+ return (this$.tag === 4) ? stringCreate(this$.fields[0]) : stringCreate(this$);
39
39
  }
40
40
  Merge(other) {
41
41
  const this$ = this;
42
42
  switch (this$.tag) {
43
- case 4:
44
- switch (other.tag) {
45
- case 0:
46
- return new IOType(4, []);
47
- case 2:
48
- return new IOType(4, []);
49
- case 3:
50
- return new IOType(4, []);
51
- case 4:
52
- return new IOType(4, []);
53
- default:
54
- throw new Error(`ImageFile IO column and ${other} can not be merged`);
55
- }
56
- case 3:
57
- switch (other.tag) {
58
- case 0:
59
- return new IOType(3, []);
60
- case 2:
61
- return new IOType(3, []);
62
- case 3:
63
- return new IOType(3, []);
64
- case 4:
65
- return new IOType(4, []);
66
- default:
67
- throw new Error(`DerivedDataFile IO column and ${other} can not be merged`);
68
- }
69
43
  case 2:
70
- switch (other.tag) {
71
- case 0:
72
- return new IOType(2, []);
73
- case 2:
74
- return new IOType(2, []);
75
- case 3:
76
- return new IOType(3, []);
77
- case 4:
78
- return new IOType(4, []);
79
- default:
80
- throw new Error(`RawDataFile IO column and ${other} can not be merged`);
44
+ if (other.tag === 0) {
45
+ return new IOType(2, []);
46
+ }
47
+ else {
48
+ throw new Error(`Data IO column and ${other} can not be merged`);
81
49
  }
82
50
  case 1:
83
51
  switch (other.tag) {
@@ -90,19 +58,19 @@ export class IOType extends Union {
90
58
  }
91
59
  case 0:
92
60
  return (other.tag === 0) ? (new IOType(0, [])) : other;
93
- case 5:
61
+ case 3:
94
62
  switch (other.tag) {
95
63
  case 0:
96
- return new IOType(5, []);
97
- case 5:
98
- return new IOType(5, []);
64
+ return new IOType(3, []);
65
+ case 3:
66
+ return new IOType(3, []);
99
67
  default:
100
68
  throw new Error(`Material IO column and ${other} can not be merged`);
101
69
  }
102
70
  default:
103
- if (other.tag === 6) {
71
+ if (other.tag === 4) {
104
72
  if (this$.fields[0] === other.fields[0]) {
105
- return new IOType(6, [this$.fields[0]]);
73
+ return new IOType(4, [this$.fields[0]]);
106
74
  }
107
75
  else {
108
76
  throw new Error(`FreeText IO column names ${this$.fields[0]} and ${other.fields[0]} do differ`);
@@ -115,10 +83,10 @@ export class IOType extends Union {
115
83
  }
116
84
  toString() {
117
85
  const this$ = this;
118
- return (this$.tag === 1) ? "Sample Name" : ((this$.tag === 2) ? "Raw Data File" : ((this$.tag === 3) ? "Derived Data File" : ((this$.tag === 4) ? "Image File" : ((this$.tag === 5) ? "Material" : ((this$.tag === 6) ? this$.fields[0] : "Source Name")))));
86
+ return (this$.tag === 1) ? "Sample Name" : ((this$.tag === 2) ? "Data" : ((this$.tag === 3) ? "Material" : ((this$.tag === 4) ? this$.fields[0] : "Source Name")));
119
87
  }
120
88
  static ofString(str) {
121
- return (str === "Source") ? (new IOType(0, [])) : ((str === "Source Name") ? (new IOType(0, [])) : ((str === "Sample") ? (new IOType(1, [])) : ((str === "Sample Name") ? (new IOType(1, [])) : ((str === "RawDataFile") ? (new IOType(2, [])) : ((str === "Raw Data File") ? (new IOType(2, [])) : ((str === "DerivedDataFile") ? (new IOType(3, [])) : ((str === "Derived Data File") ? (new IOType(3, [])) : ((str === "ImageFile") ? (new IOType(4, [])) : ((str === "Image File") ? (new IOType(4, [])) : ((str === "Material") ? (new IOType(5, [])) : (new IOType(6, [str]))))))))))));
89
+ return (str === "Source") ? (new IOType(0, [])) : ((str === "Source Name") ? (new IOType(0, [])) : ((str === "Sample") ? (new IOType(1, [])) : ((str === "Sample Name") ? (new IOType(1, [])) : ((str === "RawDataFile") ? (new IOType(2, [])) : ((str === "Raw Data File") ? (new IOType(2, [])) : ((str === "DerivedDataFile") ? (new IOType(2, [])) : ((str === "Derived Data File") ? (new IOType(2, [])) : ((str === "ImageFile") ? (new IOType(2, [])) : ((str === "Image File") ? (new IOType(2, [])) : ((str === "Data") ? (new IOType(2, [])) : ((str === "Material") ? (new IOType(3, [])) : (new IOType(4, [str])))))))))))));
122
90
  }
123
91
  static tryOfHeaderString(str) {
124
92
  const matchValue = tryParseIOTypeHeader(str);
@@ -173,18 +141,10 @@ export class IOType extends Union {
173
141
  break;
174
142
  }
175
143
  case 3: {
176
- matchResult = 3;
177
- break;
178
- }
179
- case 4: {
180
- matchResult = 4;
181
- break;
182
- }
183
- case 5: {
184
144
  matchResult = 5;
185
145
  break;
186
146
  }
187
- case 6: {
147
+ case 4: {
188
148
  matchResult = 6;
189
149
  break;
190
150
  }
@@ -217,25 +177,19 @@ export class IOType extends Union {
217
177
  static sample() {
218
178
  return new IOType(1, []);
219
179
  }
220
- static rawDataFile() {
180
+ static data() {
221
181
  return new IOType(2, []);
222
182
  }
223
- static derivedDataFile() {
224
- return new IOType(3, []);
225
- }
226
- static imageFile() {
227
- return new IOType(4, []);
228
- }
229
183
  static material() {
230
- return new IOType(5, []);
184
+ return new IOType(3, []);
231
185
  }
232
186
  static freeText(s) {
233
- return new IOType(6, [s]);
187
+ return new IOType(4, [s]);
234
188
  }
235
189
  }
236
190
 
237
191
  export function IOType_$reflection() {
238
- return union_type("ARCtrl.IOType", [], IOType, () => [[], [], [], [], [], [], [["Item", string_type]]]);
192
+ return union_type("ARCtrl.IOType", [], IOType, () => [[], [], [], [], [["Item", string_type]]]);
239
193
  }
240
194
 
241
195
  export class CompositeHeader extends Union {
@@ -245,21 +199,21 @@ export class CompositeHeader extends Union {
245
199
  this.fields = fields;
246
200
  }
247
201
  cases() {
248
- return ["Component", "Characteristic", "Factor", "Parameter", "ProtocolType", "ProtocolDescription", "ProtocolUri", "ProtocolVersion", "ProtocolREF", "Performer", "Date", "Input", "Output", "FreeText"];
202
+ return ["Component", "Characteristic", "Factor", "Parameter", "ProtocolType", "ProtocolDescription", "ProtocolUri", "ProtocolVersion", "ProtocolREF", "Performer", "Date", "Input", "Output", "FreeText", "Comment"];
249
203
  }
250
204
  static get Cases() {
251
205
  return map((x) => [x.tag, name(x)], getUnionCases(CompositeHeader_$reflection()));
252
206
  }
253
207
  static jsGetColumnMetaType(inp) {
254
- return (inp === 0) ? 1 : ((inp === 1) ? 1 : ((inp === 2) ? 1 : ((inp === 3) ? 1 : ((inp === 4) ? 0 : ((inp === 5) ? 0 : ((inp === 6) ? 0 : ((inp === 7) ? 0 : ((inp === 8) ? 0 : ((inp === 9) ? 0 : ((inp === 10) ? 0 : ((inp === 11) ? 2 : ((inp === 12) ? 2 : ((inp === 13) ? 3 : toFail(printf("Cannot assign input `Tag` (%i) to `CompositeHeader`"))(inp))))))))))))));
208
+ return (inp === 0) ? 1 : ((inp === 1) ? 1 : ((inp === 2) ? 1 : ((inp === 3) ? 1 : ((inp === 4) ? 0 : ((inp === 5) ? 0 : ((inp === 6) ? 0 : ((inp === 7) ? 0 : ((inp === 8) ? 0 : ((inp === 9) ? 0 : ((inp === 10) ? 0 : ((inp === 11) ? 2 : ((inp === 12) ? 2 : ((inp === 13) ? 3 : ((inp === 14) ? 3 : toFail(printf("Cannot assign input `Tag` (%i) to `CompositeHeader`"))(inp)))))))))))))));
255
209
  }
256
210
  toString() {
257
211
  const this$ = this;
258
- return (this$.tag === 2) ? (`Factor [${this$.fields[0].NameText}]`) : ((this$.tag === 1) ? (`Characteristic [${this$.fields[0].NameText}]`) : ((this$.tag === 0) ? (`Component [${this$.fields[0].NameText}]`) : ((this$.tag === 4) ? "Protocol Type" : ((this$.tag === 8) ? "Protocol REF" : ((this$.tag === 5) ? "Protocol Description" : ((this$.tag === 6) ? "Protocol Uri" : ((this$.tag === 7) ? "Protocol Version" : ((this$.tag === 9) ? "Performer" : ((this$.tag === 10) ? "Date" : ((this$.tag === 11) ? this$.fields[0].asInput : ((this$.tag === 12) ? this$.fields[0].asOutput : ((this$.tag === 13) ? this$.fields[0] : (`Parameter [${this$.fields[0].NameText}]`)))))))))))));
212
+ return (this$.tag === 2) ? (`Factor [${this$.fields[0].NameText}]`) : ((this$.tag === 1) ? (`Characteristic [${this$.fields[0].NameText}]`) : ((this$.tag === 0) ? (`Component [${this$.fields[0].NameText}]`) : ((this$.tag === 4) ? "Protocol Type" : ((this$.tag === 8) ? "Protocol REF" : ((this$.tag === 5) ? "Protocol Description" : ((this$.tag === 6) ? "Protocol Uri" : ((this$.tag === 7) ? "Protocol Version" : ((this$.tag === 9) ? "Performer" : ((this$.tag === 10) ? "Date" : ((this$.tag === 11) ? this$.fields[0].asInput : ((this$.tag === 12) ? this$.fields[0].asOutput : ((this$.tag === 14) ? (`Comment [${this$.fields[0]}]`) : ((this$.tag === 13) ? this$.fields[0] : (`Parameter [${this$.fields[0].NameText}]`))))))))))))));
259
213
  }
260
214
  ToTerm() {
261
215
  const this$ = this;
262
- return (this$.tag === 2) ? this$.fields[0] : ((this$.tag === 1) ? this$.fields[0] : ((this$.tag === 0) ? this$.fields[0] : ((this$.tag === 4) ? OntologyAnnotation.create(toString(this$), void 0, this$.GetFeaturedColumnAccession) : ((this$.tag === 8) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 5) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 6) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 7) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 9) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 10) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 11) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 12) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 13) ? OntologyAnnotation.create(toString(this$)) : this$.fields[0]))))))))))));
216
+ return (this$.tag === 2) ? this$.fields[0] : ((this$.tag === 1) ? this$.fields[0] : ((this$.tag === 0) ? this$.fields[0] : ((this$.tag === 4) ? OntologyAnnotation.create(toString(this$), void 0, this$.GetFeaturedColumnAccession) : ((this$.tag === 8) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 5) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 6) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 7) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 9) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 10) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 11) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 12) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 14) ? OntologyAnnotation.create(toString(this$)) : ((this$.tag === 13) ? OntologyAnnotation.create(toString(this$)) : this$.fields[0])))))))))))));
263
217
  }
264
218
  static OfHeaderString(str) {
265
219
  const matchValue = str.trim();
@@ -277,29 +231,36 @@ export class CompositeHeader extends Union {
277
231
  return new CompositeHeader(12, [IOType.ofString(iotype_1)]);
278
232
  }
279
233
  else {
280
- const activePatternResult_2 = ActivePatterns_$007CTermColumn$007C_$007C(matchValue);
234
+ const activePatternResult_2 = ActivePatterns_$007CRegex$007C_$007C(Pattern_CommentPattern, matchValue);
281
235
  if (activePatternResult_2 != null) {
282
236
  const r_2 = activePatternResult_2;
283
- const matchValue_1 = r_2.TermColumnType;
284
- switch (matchValue_1) {
285
- case "Parameter":
286
- case "Parameter Value":
287
- return new CompositeHeader(3, [OntologyAnnotation.create(r_2.TermName)]);
288
- case "Factor":
289
- case "Factor Value":
290
- return new CompositeHeader(2, [OntologyAnnotation.create(r_2.TermName)]);
291
- case "Characteristic":
292
- case "Characteristics":
293
- case "Characteristics Value":
294
- return new CompositeHeader(1, [OntologyAnnotation.create(r_2.TermName)]);
295
- case "Component":
296
- return new CompositeHeader(0, [OntologyAnnotation.create(r_2.TermName)]);
297
- default:
298
- return new CompositeHeader(13, [str]);
299
- }
237
+ return new CompositeHeader(14, [(r_2.groups && r_2.groups.commentKey) || ""]);
300
238
  }
301
239
  else {
302
- return (matchValue === "Date") ? (new CompositeHeader(10, [])) : ((matchValue === "Performer") ? (new CompositeHeader(9, [])) : ((matchValue === "Protocol Description") ? (new CompositeHeader(5, [])) : ((matchValue === "Protocol Uri") ? (new CompositeHeader(6, [])) : ((matchValue === "Protocol Version") ? (new CompositeHeader(7, [])) : ((matchValue === "Protocol Type") ? (new CompositeHeader(4, [])) : ((matchValue === "Protocol REF") ? (new CompositeHeader(8, [])) : (new CompositeHeader(13, [matchValue]))))))));
240
+ const activePatternResult_3 = ActivePatterns_$007CTermColumn$007C_$007C(matchValue);
241
+ if (activePatternResult_3 != null) {
242
+ const r_3 = activePatternResult_3;
243
+ const matchValue_1 = r_3.TermColumnType;
244
+ switch (matchValue_1) {
245
+ case "Parameter":
246
+ case "Parameter Value":
247
+ return new CompositeHeader(3, [OntologyAnnotation.create(r_3.TermName)]);
248
+ case "Factor":
249
+ case "Factor Value":
250
+ return new CompositeHeader(2, [OntologyAnnotation.create(r_3.TermName)]);
251
+ case "Characteristic":
252
+ case "Characteristics":
253
+ case "Characteristics Value":
254
+ return new CompositeHeader(1, [OntologyAnnotation.create(r_3.TermName)]);
255
+ case "Component":
256
+ return new CompositeHeader(0, [OntologyAnnotation.create(r_3.TermName)]);
257
+ default:
258
+ return new CompositeHeader(13, [str]);
259
+ }
260
+ }
261
+ else {
262
+ return (matchValue === "Date") ? (new CompositeHeader(10, [])) : ((matchValue === "Performer") ? (new CompositeHeader(9, [])) : ((matchValue === "Protocol Description") ? (new CompositeHeader(5, [])) : ((matchValue === "Protocol Uri") ? (new CompositeHeader(6, [])) : ((matchValue === "Protocol Version") ? (new CompositeHeader(7, [])) : ((matchValue === "Protocol Type") ? (new CompositeHeader(4, [])) : ((matchValue === "Protocol REF") ? (new CompositeHeader(8, [])) : (new CompositeHeader(13, [matchValue]))))))));
263
+ }
303
264
  }
304
265
  }
305
266
  }
@@ -369,6 +330,42 @@ export class CompositeHeader extends Union {
369
330
  return false;
370
331
  }
371
332
  }
333
+ get IsDataColumn() {
334
+ const this$ = this;
335
+ let matchResult, anythingElse;
336
+ switch (this$.tag) {
337
+ case 11: {
338
+ if (this$.fields[0].tag === 2) {
339
+ matchResult = 0;
340
+ }
341
+ else {
342
+ matchResult = 1;
343
+ anythingElse = this$;
344
+ }
345
+ break;
346
+ }
347
+ case 12: {
348
+ if (this$.fields[0].tag === 2) {
349
+ matchResult = 0;
350
+ }
351
+ else {
352
+ matchResult = 1;
353
+ anythingElse = this$;
354
+ }
355
+ break;
356
+ }
357
+ default: {
358
+ matchResult = 1;
359
+ anythingElse = this$;
360
+ }
361
+ }
362
+ switch (matchResult) {
363
+ case 0:
364
+ return true;
365
+ default:
366
+ return false;
367
+ }
368
+ }
372
369
  get IsFeaturedColumn() {
373
370
  const this$ = this;
374
371
  return this$.tag === 4;
@@ -405,6 +402,7 @@ export class CompositeHeader extends Union {
405
402
  case 13:
406
403
  case 11:
407
404
  case 12:
405
+ case 14:
408
406
  case 8:
409
407
  case 5:
410
408
  case 6:
@@ -505,6 +503,10 @@ export class CompositeHeader extends Union {
505
503
  const this$ = this;
506
504
  return this$.tag === 10;
507
505
  }
506
+ get isComment() {
507
+ const this$ = this;
508
+ return this$.tag === 14;
509
+ }
508
510
  get isFreeText() {
509
511
  const this$ = this;
510
512
  return this$.tag === 13;
@@ -590,9 +592,12 @@ export class CompositeHeader extends Union {
590
592
  else if (equals(header, "FreeText")) {
591
593
  matchResult = 13;
592
594
  }
593
- else {
595
+ else if (equals(header, "Comment")) {
594
596
  matchResult = 14;
595
597
  }
598
+ else {
599
+ matchResult = 15;
600
+ }
596
601
  }
597
602
  else {
598
603
  switch (header.tag) {
@@ -648,6 +653,10 @@ export class CompositeHeader extends Union {
648
653
  matchResult = 13;
649
654
  break;
650
655
  }
656
+ case 14: {
657
+ matchResult = 14;
658
+ break;
659
+ }
651
660
  default:
652
661
  matchResult = 0;
653
662
  }
@@ -681,6 +690,8 @@ export class CompositeHeader extends Union {
681
690
  return "Only one output column per table. E.g. experimental samples or files.";
682
691
  case 13:
683
692
  return "Placeholder";
693
+ case 14:
694
+ return "Comment";
684
695
  default:
685
696
  throw new Error(`Unable to parse combination to existing CompositeHeader: \`${header}\``);
686
697
  }
@@ -727,9 +738,12 @@ export class CompositeHeader extends Union {
727
738
  static freeText(s) {
728
739
  return new CompositeHeader(13, [s]);
729
740
  }
741
+ static comment(s) {
742
+ return new CompositeHeader(14, [s]);
743
+ }
730
744
  }
731
745
 
732
746
  export function CompositeHeader_$reflection() {
733
- return union_type("ARCtrl.CompositeHeader", [], CompositeHeader, () => [[["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [], [], [], [], [], [], [], [["Item", IOType_$reflection()]], [["Item", IOType_$reflection()]], [["Item", string_type]]]);
747
+ return union_type("ARCtrl.CompositeHeader", [], CompositeHeader, () => [[["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [["Item", OntologyAnnotation_$reflection()]], [], [], [], [], [], [], [], [["Item", IOType_$reflection()]], [["Item", IOType_$reflection()]], [["Item", string_type]], [["Item", string_type]]]);
734
748
  }
735
749