@nfdi4plants/arctrl 1.0.0-alpha10

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 (296) hide show
  1. package/ARC.js +262 -0
  2. package/Contract/Contract.js +95 -0
  3. package/Contracts/Contracts.ARCtrl.js +35 -0
  4. package/Contracts/Contracts.ArcAssay.js +65 -0
  5. package/Contracts/Contracts.ArcInvestigation.js +58 -0
  6. package/Contracts/Contracts.ArcStudy.js +65 -0
  7. package/Contracts/Contracts.Git.js +91 -0
  8. package/FileSystem/Commit.js +18 -0
  9. package/FileSystem/DefaultGitignore.js +3 -0
  10. package/FileSystem/FileSystem.js +53 -0
  11. package/FileSystem/FileSystemTree.js +223 -0
  12. package/FileSystem/Path.js +38 -0
  13. package/FileSystemTree.js +51 -0
  14. package/ISA/ISA/ArcTypes/ArcTable.js +848 -0
  15. package/ISA/ISA/ArcTypes/ArcTableAux.js +1105 -0
  16. package/ISA/ISA/ArcTypes/ArcTables.js +479 -0
  17. package/ISA/ISA/ArcTypes/ArcTypes.js +2281 -0
  18. package/ISA/ISA/ArcTypes/CompositeCell.js +180 -0
  19. package/ISA/ISA/ArcTypes/CompositeColumn.js +48 -0
  20. package/ISA/ISA/ArcTypes/CompositeHeader.js +668 -0
  21. package/ISA/ISA/ArcTypes/CompositeRow.js +111 -0
  22. package/ISA/ISA/ArcTypes/IdentifierSetters.js +26 -0
  23. package/ISA/ISA/Builder/Types.js +243 -0
  24. package/ISA/ISA/Fable.js +50 -0
  25. package/ISA/ISA/Helper.js +338 -0
  26. package/ISA/ISA/Identifier.js +76 -0
  27. package/ISA/ISA/JsonTypes/AnnotationValue.js +56 -0
  28. package/ISA/ISA/JsonTypes/Assay.js +620 -0
  29. package/ISA/ISA/JsonTypes/AssayMaterials.js +39 -0
  30. package/ISA/ISA/JsonTypes/ColumnIndex.js +246 -0
  31. package/ISA/ISA/JsonTypes/Comment.js +58 -0
  32. package/ISA/ISA/JsonTypes/CommentList.js +139 -0
  33. package/ISA/ISA/JsonTypes/Component.js +158 -0
  34. package/ISA/ISA/JsonTypes/Data.js +55 -0
  35. package/ISA/ISA/JsonTypes/DataFile.js +68 -0
  36. package/ISA/ISA/JsonTypes/Factor.js +128 -0
  37. package/ISA/ISA/JsonTypes/FactorValue.js +109 -0
  38. package/ISA/ISA/JsonTypes/Investigation.js +204 -0
  39. package/ISA/ISA/JsonTypes/Material.js +66 -0
  40. package/ISA/ISA/JsonTypes/MaterialAttribute.js +101 -0
  41. package/ISA/ISA/JsonTypes/MaterialAttributeValue.js +126 -0
  42. package/ISA/ISA/JsonTypes/MaterialType.js +41 -0
  43. package/ISA/ISA/JsonTypes/OntologyAnnotation.js +219 -0
  44. package/ISA/ISA/JsonTypes/OntologySourceReference.js +85 -0
  45. package/ISA/ISA/JsonTypes/Person.js +137 -0
  46. package/ISA/ISA/JsonTypes/Process.js +401 -0
  47. package/ISA/ISA/JsonTypes/ProcessInput.js +297 -0
  48. package/ISA/ISA/JsonTypes/ProcessOutput.js +263 -0
  49. package/ISA/ISA/JsonTypes/ProcessParameterValue.js +129 -0
  50. package/ISA/ISA/JsonTypes/ProcessSequence.js +255 -0
  51. package/ISA/ISA/JsonTypes/Protocol.js +277 -0
  52. package/ISA/ISA/JsonTypes/ProtocolParameter.js +101 -0
  53. package/ISA/ISA/JsonTypes/Publication.js +105 -0
  54. package/ISA/ISA/JsonTypes/Sample.js +71 -0
  55. package/ISA/ISA/JsonTypes/Source.js +54 -0
  56. package/ISA/ISA/JsonTypes/Study.js +942 -0
  57. package/ISA/ISA/JsonTypes/StudyMaterials.js +45 -0
  58. package/ISA/ISA/JsonTypes/URI.js +19 -0
  59. package/ISA/ISA/JsonTypes/Value.js +210 -0
  60. package/ISA/ISA/Regex.js +588 -0
  61. package/ISA/ISA.Json/Assay.js +123 -0
  62. package/ISA/ISA.Json/Comment.js +84 -0
  63. package/ISA/ISA.Json/ConverterOptions.js +33 -0
  64. package/ISA/ISA.Json/Data.js +271 -0
  65. package/ISA/ISA.Json/Decode.js +46 -0
  66. package/ISA/ISA.Json/Factor.js +194 -0
  67. package/ISA/ISA.Json/GEncode.js +15 -0
  68. package/ISA/ISA.Json/Investigation.js +132 -0
  69. package/ISA/ISA.Json/Material.js +233 -0
  70. package/ISA/ISA.Json/Ontology.js +204 -0
  71. package/ISA/ISA.Json/Person.js +204 -0
  72. package/ISA/ISA.Json/Process.js +291 -0
  73. package/ISA/ISA.Json/Protocol.js +242 -0
  74. package/ISA/ISA.Json/Publication.js +92 -0
  75. package/ISA/ISA.Json/Study.js +230 -0
  76. package/ISA/ISA.Json/Validation/Fable.js +69 -0
  77. package/ISA/ISA.Json/Validation/JsonSchemaValidation.js +88 -0
  78. package/ISA/ISA.Json/Validation/ValidationResult.js +45 -0
  79. package/ISA/ISA.Spreadsheet/AnnotationTable/ArcTable.js +137 -0
  80. package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeCell.js +78 -0
  81. package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeColumn.js +59 -0
  82. package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeHeader.js +478 -0
  83. package/ISA/ISA.Spreadsheet/ArcAssay.js +150 -0
  84. package/ISA/ISA.Spreadsheet/ArcInvestigation.js +314 -0
  85. package/ISA/ISA.Spreadsheet/ArcStudy.js +67 -0
  86. package/ISA/ISA.Spreadsheet/CollectionAux.js +128 -0
  87. package/ISA/ISA.Spreadsheet/Metadata/Assays.js +81 -0
  88. package/ISA/ISA.Spreadsheet/Metadata/Comment.js +60 -0
  89. package/ISA/ISA.Spreadsheet/Metadata/Contacts.js +104 -0
  90. package/ISA/ISA.Spreadsheet/Metadata/Conversions.js +180 -0
  91. package/ISA/ISA.Spreadsheet/Metadata/DesignDescriptors.js +27 -0
  92. package/ISA/ISA.Spreadsheet/Metadata/Factors.js +85 -0
  93. package/ISA/ISA.Spreadsheet/Metadata/OntologyAnnotation.js +65 -0
  94. package/ISA/ISA.Spreadsheet/Metadata/OntologySourceReference.js +73 -0
  95. package/ISA/ISA.Spreadsheet/Metadata/Protocols.js +116 -0
  96. package/ISA/ISA.Spreadsheet/Metadata/Publication.js +96 -0
  97. package/ISA/ISA.Spreadsheet/Metadata/SparseTable.js +451 -0
  98. package/ISA/ISA.Spreadsheet/Metadata/Study.js +260 -0
  99. package/README.md +277 -0
  100. package/SemVer.js +60 -0
  101. package/Templates/Template.Json.js +85 -0
  102. package/Templates/Template.Spreadsheet.js +315 -0
  103. package/Templates/Template.Web.js +27 -0
  104. package/Templates/Template.js +179 -0
  105. package/Templates/Templates.js +82 -0
  106. package/WebRequest/WebRequest.js +38 -0
  107. package/fable_modules/Fable.Fetch.2.6.0/Fable.Fetch.fableproj +21 -0
  108. package/fable_modules/Fable.Fetch.2.6.0/Fetch.fs +469 -0
  109. package/fable_modules/Fable.Fetch.2.6.0/Fetch.fs.js +111 -0
  110. package/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs +57 -0
  111. package/fable_modules/Fable.Promise.3.2.0/AsyncIterable.fs.js +104 -0
  112. package/fable_modules/Fable.Promise.3.2.0/Fable.Promise.fableproj +20 -0
  113. package/fable_modules/Fable.Promise.3.2.0/Promise.fs +766 -0
  114. package/fable_modules/Fable.Promise.3.2.0/Promise.fs.js +217 -0
  115. package/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs +31 -0
  116. package/fable_modules/Fable.Promise.3.2.0/PromiseImpl.fs.js +19 -0
  117. package/fable_modules/Fable.SimpleHttp.3.5.0/Fable.SimpleHttp.fableproj +23 -0
  118. package/fable_modules/Fable.SimpleHttp.3.5.0/Http.fs +357 -0
  119. package/fable_modules/Fable.SimpleHttp.3.5.0/Http.fs.js +429 -0
  120. package/fable_modules/Fable.SimpleHttp.3.5.0/Types.fs +52 -0
  121. package/fable_modules/Fable.SimpleHttp.3.5.0/Types.fs.js +112 -0
  122. package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCell.fs +387 -0
  123. package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCell.fs.js +240 -0
  124. package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCellsCollection.fs +725 -0
  125. package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCellsCollection.fs.js +522 -0
  126. package/fable_modules/FsSpreadsheet.4.1.0/DSL/CellBuilder.fs +195 -0
  127. package/fable_modules/FsSpreadsheet.4.1.0/DSL/CellBuilder.fs.js +208 -0
  128. package/fable_modules/FsSpreadsheet.4.1.0/DSL/ColumnBuilder.fs +209 -0
  129. package/fable_modules/FsSpreadsheet.4.1.0/DSL/ColumnBuilder.fs.js +137 -0
  130. package/fable_modules/FsSpreadsheet.4.1.0/DSL/DSL.fs +61 -0
  131. package/fable_modules/FsSpreadsheet.4.1.0/DSL/DSL.fs.js +62 -0
  132. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Expression.fs +24 -0
  133. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Expression.fs.js +56 -0
  134. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Operators.fs +102 -0
  135. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Operators.fs.js +6 -0
  136. package/fable_modules/FsSpreadsheet.4.1.0/DSL/RowBuilder.fs +200 -0
  137. package/fable_modules/FsSpreadsheet.4.1.0/DSL/RowBuilder.fs.js +137 -0
  138. package/fable_modules/FsSpreadsheet.4.1.0/DSL/SheetBuilder.fs +139 -0
  139. package/fable_modules/FsSpreadsheet.4.1.0/DSL/SheetBuilder.fs.js +116 -0
  140. package/fable_modules/FsSpreadsheet.4.1.0/DSL/TableBuilder.fs +120 -0
  141. package/fable_modules/FsSpreadsheet.4.1.0/DSL/TableBuilder.fs.js +120 -0
  142. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Transform.fs +229 -0
  143. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Transform.fs.js +421 -0
  144. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Types.fs +151 -0
  145. package/fable_modules/FsSpreadsheet.4.1.0/DSL/Types.fs.js +277 -0
  146. package/fable_modules/FsSpreadsheet.4.1.0/DSL/WorkbookBuilder.fs +114 -0
  147. package/fable_modules/FsSpreadsheet.4.1.0/DSL/WorkbookBuilder.fs.js +104 -0
  148. package/fable_modules/FsSpreadsheet.4.1.0/FsAddress.fs +177 -0
  149. package/fable_modules/FsSpreadsheet.4.1.0/FsAddress.fs.js +249 -0
  150. package/fable_modules/FsSpreadsheet.4.1.0/FsColumn.fs +200 -0
  151. package/fable_modules/FsSpreadsheet.4.1.0/FsColumn.fs.js +125 -0
  152. package/fable_modules/FsSpreadsheet.4.1.0/FsRow.fs +202 -0
  153. package/fable_modules/FsSpreadsheet.4.1.0/FsRow.fs.js +135 -0
  154. package/fable_modules/FsSpreadsheet.4.1.0/FsSpreadsheet.fableproj +58 -0
  155. package/fable_modules/FsSpreadsheet.4.1.0/FsWorkbook.fs +183 -0
  156. package/fable_modules/FsSpreadsheet.4.1.0/FsWorkbook.fs.js +138 -0
  157. package/fable_modules/FsSpreadsheet.4.1.0/FsWorksheet.fs +628 -0
  158. package/fable_modules/FsSpreadsheet.4.1.0/FsWorksheet.fs.js +398 -0
  159. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRange.fs +19 -0
  160. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRange.fs.js +41 -0
  161. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeAddress.fs +222 -0
  162. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeAddress.fs.js +235 -0
  163. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeBase.fs +93 -0
  164. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeBase.fs.js +91 -0
  165. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeColumn.fs +65 -0
  166. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeColumn.fs.js +74 -0
  167. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeRow.fs +22 -0
  168. package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeRow.fs.js +40 -0
  169. package/fable_modules/FsSpreadsheet.4.1.0/SheetBuilder.fs +249 -0
  170. package/fable_modules/FsSpreadsheet.4.1.0/SheetBuilder.fs.js +325 -0
  171. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTable.fs +455 -0
  172. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTable.fs.js +310 -0
  173. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableField.fs +140 -0
  174. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableField.fs.js +173 -0
  175. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableRow.fs +6 -0
  176. package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableRow.fs.js +17 -0
  177. package/fable_modules/FsSpreadsheet.4.1.0/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
  178. package/fable_modules/FsSpreadsheet.4.1.0/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +19 -0
  179. package/fable_modules/FsSpreadsheet.4.1.0/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
  180. package/fable_modules/FsSpreadsheet.4.1.0/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +19 -0
  181. package/fable_modules/Thoth.Json.10.1.0/Decode.fs +1366 -0
  182. package/fable_modules/Thoth.Json.10.1.0/Decode.fs.js +1798 -0
  183. package/fable_modules/Thoth.Json.10.1.0/Encode.fs +621 -0
  184. package/fable_modules/Thoth.Json.10.1.0/Encode.fs.js +472 -0
  185. package/fable_modules/Thoth.Json.10.1.0/Extra.fs +31 -0
  186. package/fable_modules/Thoth.Json.10.1.0/Extra.fs.js +8 -0
  187. package/fable_modules/Thoth.Json.10.1.0/Thoth.Json.fableproj +30 -0
  188. package/fable_modules/Thoth.Json.10.1.0/Types.fs +59 -0
  189. package/fable_modules/Thoth.Json.10.1.0/Types.fs.js +98 -0
  190. package/fable_modules/Thoth.Json.10.1.0/obj/Release/netstandard2.0/Thoth.Json.AssemblyInfo.fs +19 -0
  191. package/fable_modules/Thoth.Json.10.1.0/package.json +5 -0
  192. package/fable_modules/fable-library.4.1.4/Array.d.ts +120 -0
  193. package/fable_modules/fable-library.4.1.4/Array.js +1204 -0
  194. package/fable_modules/fable-library.4.1.4/Async.d.ts +32 -0
  195. package/fable_modules/fable-library.4.1.4/Async.js +158 -0
  196. package/fable_modules/fable-library.4.1.4/AsyncBuilder.d.ts +59 -0
  197. package/fable_modules/fable-library.4.1.4/AsyncBuilder.js +183 -0
  198. package/fable_modules/fable-library.4.1.4/BigInt.d.ts +115 -0
  199. package/fable_modules/fable-library.4.1.4/BigInt.js +282 -0
  200. package/fable_modules/fable-library.4.1.4/BitConverter.d.ts +27 -0
  201. package/fable_modules/fable-library.4.1.4/BitConverter.js +138 -0
  202. package/fable_modules/fable-library.4.1.4/Boolean.d.ts +3 -0
  203. package/fable_modules/fable-library.4.1.4/Boolean.js +21 -0
  204. package/fable_modules/fable-library.4.1.4/Char.d.ts +65 -0
  205. package/fable_modules/fable-library.4.1.4/Char.js +169 -0
  206. package/fable_modules/fable-library.4.1.4/Choice.d.ts +138 -0
  207. package/fable_modules/fable-library.4.1.4/Choice.js +227 -0
  208. package/fable_modules/fable-library.4.1.4/Date.d.ts +70 -0
  209. package/fable_modules/fable-library.4.1.4/Date.js +451 -0
  210. package/fable_modules/fable-library.4.1.4/DateOffset.d.ts +63 -0
  211. package/fable_modules/fable-library.4.1.4/DateOffset.js +268 -0
  212. package/fable_modules/fable-library.4.1.4/DateOnly.d.ts +18 -0
  213. package/fable_modules/fable-library.4.1.4/DateOnly.js +124 -0
  214. package/fable_modules/fable-library.4.1.4/Decimal.d.ts +45 -0
  215. package/fable_modules/fable-library.4.1.4/Decimal.js +212 -0
  216. package/fable_modules/fable-library.4.1.4/Double.d.ts +11 -0
  217. package/fable_modules/fable-library.4.1.4/Double.js +46 -0
  218. package/fable_modules/fable-library.4.1.4/Encoding.d.ts +12 -0
  219. package/fable_modules/fable-library.4.1.4/Encoding.js +173 -0
  220. package/fable_modules/fable-library.4.1.4/Event.d.ts +31 -0
  221. package/fable_modules/fable-library.4.1.4/Event.js +93 -0
  222. package/fable_modules/fable-library.4.1.4/FSharp.Collections.d.ts +7 -0
  223. package/fable_modules/fable-library.4.1.4/FSharp.Collections.js +27 -0
  224. package/fable_modules/fable-library.4.1.4/FSharp.Core.d.ts +17 -0
  225. package/fable_modules/fable-library.4.1.4/FSharp.Core.js +69 -0
  226. package/fable_modules/fable-library.4.1.4/Global.d.ts +24 -0
  227. package/fable_modules/fable-library.4.1.4/Global.js +8 -0
  228. package/fable_modules/fable-library.4.1.4/Guid.d.ts +10 -0
  229. package/fable_modules/fable-library.4.1.4/Guid.js +142 -0
  230. package/fable_modules/fable-library.4.1.4/Int32.d.ts +28 -0
  231. package/fable_modules/fable-library.4.1.4/Int32.js +135 -0
  232. package/fable_modules/fable-library.4.1.4/List.d.ts +143 -0
  233. package/fable_modules/fable-library.4.1.4/List.js +1273 -0
  234. package/fable_modules/fable-library.4.1.4/Long.d.ts +3 -0
  235. package/fable_modules/fable-library.4.1.4/Long.js +46 -0
  236. package/fable_modules/fable-library.4.1.4/MailboxProcessor.d.ts +25 -0
  237. package/fable_modules/fable-library.4.1.4/MailboxProcessor.js +93 -0
  238. package/fable_modules/fable-library.4.1.4/Map.d.ts +178 -0
  239. package/fable_modules/fable-library.4.1.4/Map.js +1396 -0
  240. package/fable_modules/fable-library.4.1.4/MapUtil.d.ts +10 -0
  241. package/fable_modules/fable-library.4.1.4/MapUtil.js +112 -0
  242. package/fable_modules/fable-library.4.1.4/MutableMap.d.ts +52 -0
  243. package/fable_modules/fable-library.4.1.4/MutableMap.js +326 -0
  244. package/fable_modules/fable-library.4.1.4/MutableSet.d.ts +39 -0
  245. package/fable_modules/fable-library.4.1.4/MutableSet.js +232 -0
  246. package/fable_modules/fable-library.4.1.4/Native.d.ts +2 -0
  247. package/fable_modules/fable-library.4.1.4/Native.js +8 -0
  248. package/fable_modules/fable-library.4.1.4/Numeric.d.ts +19 -0
  249. package/fable_modules/fable-library.4.1.4/Numeric.js +71 -0
  250. package/fable_modules/fable-library.4.1.4/Observable.d.ts +32 -0
  251. package/fable_modules/fable-library.4.1.4/Observable.js +113 -0
  252. package/fable_modules/fable-library.4.1.4/Option.d.ts +28 -0
  253. package/fable_modules/fable-library.4.1.4/Option.js +96 -0
  254. package/fable_modules/fable-library.4.1.4/README.md +3 -0
  255. package/fable_modules/fable-library.4.1.4/Random.d.ts +37 -0
  256. package/fable_modules/fable-library.4.1.4/Random.js +170 -0
  257. package/fable_modules/fable-library.4.1.4/Range.d.ts +12 -0
  258. package/fable_modules/fable-library.4.1.4/Range.js +45 -0
  259. package/fable_modules/fable-library.4.1.4/Reflection.d.ts +119 -0
  260. package/fable_modules/fable-library.4.1.4/Reflection.js +461 -0
  261. package/fable_modules/fable-library.4.1.4/RegExp.d.ts +10 -0
  262. package/fable_modules/fable-library.4.1.4/RegExp.js +132 -0
  263. package/fable_modules/fable-library.4.1.4/Seq.d.ts +165 -0
  264. package/fable_modules/fable-library.4.1.4/Seq.js +1379 -0
  265. package/fable_modules/fable-library.4.1.4/Seq2.d.ts +18 -0
  266. package/fable_modules/fable-library.4.1.4/Seq2.js +111 -0
  267. package/fable_modules/fable-library.4.1.4/Set.d.ts +190 -0
  268. package/fable_modules/fable-library.4.1.4/Set.js +1789 -0
  269. package/fable_modules/fable-library.4.1.4/String.d.ts +49 -0
  270. package/fable_modules/fable-library.4.1.4/String.js +540 -0
  271. package/fable_modules/fable-library.4.1.4/System.Collections.Generic.d.ts +71 -0
  272. package/fable_modules/fable-library.4.1.4/System.Collections.Generic.js +307 -0
  273. package/fable_modules/fable-library.4.1.4/System.Text.d.ts +30 -0
  274. package/fable_modules/fable-library.4.1.4/System.Text.js +110 -0
  275. package/fable_modules/fable-library.4.1.4/SystemException.d.ts +5 -0
  276. package/fable_modules/fable-library.4.1.4/SystemException.js +5 -0
  277. package/fable_modules/fable-library.4.1.4/TimeOnly.d.ts +15 -0
  278. package/fable_modules/fable-library.4.1.4/TimeOnly.js +122 -0
  279. package/fable_modules/fable-library.4.1.4/TimeSpan.d.ts +34 -0
  280. package/fable_modules/fable-library.4.1.4/TimeSpan.js +177 -0
  281. package/fable_modules/fable-library.4.1.4/Timer.d.ts +19 -0
  282. package/fable_modules/fable-library.4.1.4/Timer.js +67 -0
  283. package/fable_modules/fable-library.4.1.4/Types.d.ts +58 -0
  284. package/fable_modules/fable-library.4.1.4/Types.js +208 -0
  285. package/fable_modules/fable-library.4.1.4/Unicode.13.0.0.d.ts +2 -0
  286. package/fable_modules/fable-library.4.1.4/Unicode.13.0.0.js +4 -0
  287. package/fable_modules/fable-library.4.1.4/Uri.d.ts +29 -0
  288. package/fable_modules/fable-library.4.1.4/Uri.js +142 -0
  289. package/fable_modules/fable-library.4.1.4/Util.d.ts +187 -0
  290. package/fable_modules/fable-library.4.1.4/Util.js +662 -0
  291. package/fable_modules/fable-library.4.1.4/lib/big.d.ts +338 -0
  292. package/fable_modules/fable-library.4.1.4/lib/big.js +826 -0
  293. package/fable_modules/fable-library.4.1.4/package.json +23 -0
  294. package/fable_modules/project_cracked.json +1 -0
  295. package/index.js +13 -0
  296. package/package.json +24 -0
@@ -0,0 +1,1105 @@
1
+ import { getItemFromDict, addToDict } from "../../../fable_modules/fable-library.4.1.4/MapUtil.js";
2
+ import { map as map_1, defaultArg, unwrap, value as value_9, some } from "../../../fable_modules/fable-library.4.1.4/Option.js";
3
+ import { empty as empty_2, singleton as singleton_1, append, delay, map, tryPick, toList, indexed, initialize, filter, tryFindIndex, maxBy } from "../../../fable_modules/fable-library.4.1.4/Seq.js";
4
+ import { arrayHash, equalArrays, stringHash, int32ToString, compareArrays, disposeSafe, getEnumerator, compare, equals, comparePrimitives } from "../../../fable_modules/fable-library.4.1.4/Util.js";
5
+ import { pick, exists, zip, append as append_1, sortBy, tryPick as tryPick_1, collect, mapIndexed, item, length, map as map_2, ofArray, singleton, choose, ofSeq, empty as empty_1, head, tail as tail_1, isEmpty, cons } from "../../../fable_modules/fable-library.4.1.4/List.js";
6
+ import { CompositeCell } from "./CompositeCell.js";
7
+ import { max } from "../../../fable_modules/fable-library.4.1.4/Double.js";
8
+ import { iterateIndexed } from "../../../fable_modules/fable-library.4.1.4/Array.js";
9
+ import { FSharpSet__get_MinimumElement, FSharpSet__get_IsEmpty, difference, ofSeq as ofSeq_1 } from "../../../fable_modules/fable-library.4.1.4/Set.js";
10
+ import { Value_fromString_Z721C83C5, Value } from "../JsonTypes/Value.js";
11
+ import { Component_fromOptions } from "../JsonTypes/Component.js";
12
+ import { ProcessParameterValue_create_569825F3 } from "../JsonTypes/ProcessParameterValue.js";
13
+ import { ProtocolParameter_create_Z6C54B221 } from "../JsonTypes/ProtocolParameter.js";
14
+ import { FactorValue_create_18335379 } from "../JsonTypes/FactorValue.js";
15
+ import { Factor } from "../JsonTypes/Factor.js";
16
+ import { toString } from "../../../fable_modules/fable-library.4.1.4/Types.js";
17
+ import { MaterialAttributeValue_create_7F714043 } from "../JsonTypes/MaterialAttributeValue.js";
18
+ import { MaterialAttribute_create_Z6C54B221 } from "../JsonTypes/MaterialAttribute.js";
19
+ import { ProcessInput_getCharacteristicValues_102B6859, ProcessInput__isMaterial, ProcessInput__isData, ProcessInput_setCharacteristicValues, ProcessInput__get_Name, ProcessInput__isSource, ProcessInput__isSample, ProcessInput, ProcessInput_createDerivedData_Z721C83C5, ProcessInput_createRawData_Z721C83C5, ProcessInput_createImageFile_Z721C83C5, ProcessInput_createMaterial_2363974C, ProcessInput_createSample_Z6DF16D07, ProcessInput_createSource_7888CE42 } from "../JsonTypes/ProcessInput.js";
20
+ import { remove, printf, toFail } from "../../../fable_modules/fable-library.4.1.4/String.js";
21
+ import { ProcessOutput_getFactorValues_11830B70, ProcessOutput__isMaterial, ProcessOutput__isData, ProcessOutput_setFactorValues, ProcessOutput__get_Name, ProcessOutput__isSample, ProcessOutput, ProcessOutput_createDerivedData_Z721C83C5, ProcessOutput_createRawData_Z721C83C5, ProcessOutput_createImageFile_Z721C83C5, ProcessOutput_createMaterial_2363974C, ProcessOutput_createSample_Z6DF16D07 } from "../JsonTypes/ProcessOutput.js";
22
+ import { IOType, CompositeHeader } from "./CompositeHeader.js";
23
+ import { tryGetFactorColumnIndex, tryGetCharacteristicColumnIndex, tryGetComponentIndex, tryGetParameterColumnIndex, ARCtrl_ISA_OntologyAnnotation__OntologyAnnotation_SetColumnIndex_Z524259A4 } from "../JsonTypes/ColumnIndex.js";
24
+ import { Source_create_7A281ED9 } from "../JsonTypes/Source.js";
25
+ import { Sample_create_E50ED22 } from "../JsonTypes/Sample.js";
26
+ import { Process_create_Z42860F3E, Process_decomposeName_Z721C83C5, Process_make, Process_composeName } from "../JsonTypes/Process.js";
27
+ import { List_tryPickAndRemove, Option_fromValueWithDefault } from "../Helper.js";
28
+ import { Protocol_make } from "../JsonTypes/Protocol.js";
29
+ import { List_groupBy } from "../../../fable_modules/fable-library.4.1.4/Seq2.js";
30
+ import { createMissingIdentifier } from "../Identifier.js";
31
+ import { Dictionary } from "../../../fable_modules/fable-library.4.1.4/MutableMap.js";
32
+
33
+ /**
34
+ * Returns the dictionary with the binding added to the given dictionary.
35
+ * If a binding with the given key already exists in the input dictionary, the existing binding is replaced by the new binding in the result dictionary.
36
+ */
37
+ export function Dictionary_addOrUpdateInPlace(key, value, table) {
38
+ if (table.has(key)) {
39
+ table.set(key, value);
40
+ }
41
+ else {
42
+ addToDict(table, key, value);
43
+ }
44
+ return table;
45
+ }
46
+
47
+ /**
48
+ * Lookup an element in the dictionary, returning a <c>Some</c> value if the element is in the domain
49
+ * of the dictionary and <c>None</c> if not.
50
+ */
51
+ export function Dictionary_tryFind(key, table) {
52
+ if (table.has(key)) {
53
+ return some(getItemFromDict(table, key));
54
+ }
55
+ else {
56
+ return void 0;
57
+ }
58
+ }
59
+
60
+ export function getColumnCount(headers) {
61
+ return headers.length;
62
+ }
63
+
64
+ export function getRowCount(values) {
65
+ if (values.size === 0) {
66
+ return 0;
67
+ }
68
+ else {
69
+ return (1 + maxBy((tuple) => tuple[1], values.keys(), {
70
+ Compare: comparePrimitives,
71
+ })[1]) | 0;
72
+ }
73
+ }
74
+
75
+ export function $007CIsUniqueExistingHeader$007C_$007C(existingHeaders, input) {
76
+ switch (input.tag) {
77
+ case 3:
78
+ case 2:
79
+ case 1:
80
+ case 0:
81
+ case 13:
82
+ return void 0;
83
+ case 12:
84
+ return tryFindIndex((h) => (h.tag === 12), existingHeaders);
85
+ case 11:
86
+ return tryFindIndex((h_1) => (h_1.tag === 11), existingHeaders);
87
+ default:
88
+ return tryFindIndex((h_2) => equals(h_2, input), existingHeaders);
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Returns the column index of the duplicate unique column in `existingHeaders`.
94
+ */
95
+ export function tryFindDuplicateUnique(newHeader, existingHeaders) {
96
+ const activePatternResult = $007CIsUniqueExistingHeader$007C_$007C(existingHeaders, newHeader);
97
+ if (activePatternResult != null) {
98
+ const index = activePatternResult | 0;
99
+ return index;
100
+ }
101
+ else {
102
+ return void 0;
103
+ }
104
+ }
105
+
106
+ /**
107
+ * Returns the column index of the duplicate unique column in `existingHeaders`.
108
+ */
109
+ export function tryFindDuplicateUniqueInArray(existingHeaders) {
110
+ const loop = (i_mut, duplicateList_mut, headerList_mut) => {
111
+ loop:
112
+ while (true) {
113
+ const i = i_mut, duplicateList = duplicateList_mut, headerList = headerList_mut;
114
+ let matchResult, header, tail;
115
+ if (isEmpty(headerList)) {
116
+ matchResult = 0;
117
+ }
118
+ else if (isEmpty(tail_1(headerList))) {
119
+ matchResult = 0;
120
+ }
121
+ else {
122
+ matchResult = 1;
123
+ header = head(headerList);
124
+ tail = tail_1(headerList);
125
+ }
126
+ switch (matchResult) {
127
+ case 0:
128
+ return duplicateList;
129
+ default: {
130
+ const hasDuplicate = tryFindDuplicateUnique(header, tail);
131
+ i_mut = (i + 1);
132
+ duplicateList_mut = ((hasDuplicate != null) ? cons({
133
+ HeaderType: header,
134
+ Index1: i,
135
+ Index2: value_9(hasDuplicate),
136
+ }, duplicateList) : duplicateList);
137
+ headerList_mut = tail;
138
+ continue loop;
139
+ }
140
+ }
141
+ break;
142
+ }
143
+ };
144
+ return loop(0, empty_1(), ofSeq(filter((x) => !x.IsTermColumn, existingHeaders)));
145
+ }
146
+
147
+ /**
148
+ * Checks if given column index is valid for given number of columns.
149
+ *
150
+ * if `allowAppend` = true => `0 < index <= columnCount`
151
+ *
152
+ * if `allowAppend` = false => `0 < index < columnCount`
153
+ */
154
+ export function SanityChecks_validateColumnIndex(index, columnCount, allowAppend) {
155
+ let x, y;
156
+ if (index < 0) {
157
+ throw new Error("Cannot insert CompositeColumn at index < 0.");
158
+ }
159
+ if ((x = (index | 0), (y = (columnCount | 0), allowAppend ? (compare(x, y) > 0) : (compare(x, y) >= 0)))) {
160
+ throw new Error(`Specified index is out of table range! Table contains only ${columnCount} columns.`);
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Checks if given index is valid for given number of rows.
166
+ *
167
+ * if `allowAppend` = true => `0 < index <= rowCount`
168
+ *
169
+ * if `allowAppend` = false => `0 < index < rowCount`
170
+ */
171
+ export function SanityChecks_validateRowIndex(index, rowCount, allowAppend) {
172
+ let x, y;
173
+ if (index < 0) {
174
+ throw new Error("Cannot insert CompositeColumn at index < 0.");
175
+ }
176
+ if ((x = (index | 0), (y = (rowCount | 0), allowAppend ? (compare(x, y) > 0) : (compare(x, y) >= 0)))) {
177
+ throw new Error(`Specified index is out of table range! Table contains only ${rowCount} rows.`);
178
+ }
179
+ }
180
+
181
+ export function SanityChecks_validateColumn(column) {
182
+ column.Validate(true);
183
+ }
184
+
185
+ export function Unchecked_tryGetCellAt(column, row, cells) {
186
+ return Dictionary_tryFind([column, row], cells);
187
+ }
188
+
189
+ export function Unchecked_setCellAt(columnIndex, rowIndex, c, cells) {
190
+ Dictionary_addOrUpdateInPlace([columnIndex, rowIndex], c, cells);
191
+ }
192
+
193
+ export function Unchecked_moveCellTo(fromCol, fromRow, toCol, toRow, cells) {
194
+ const matchValue = Dictionary_tryFind([fromCol, fromRow], cells);
195
+ if (matchValue == null) {
196
+ }
197
+ else {
198
+ const c = matchValue;
199
+ cells.delete([fromCol, fromRow]);
200
+ const value_1 = Unchecked_setCellAt(toCol, toRow, c, cells);
201
+ }
202
+ }
203
+
204
+ export function Unchecked_removeHeader(index, headers) {
205
+ headers.splice(index, 1);
206
+ }
207
+
208
+ /**
209
+ * Remove cells of one Column, change index of cells with higher index to index - 1
210
+ */
211
+ export function Unchecked_removeColumnCells(index, cells) {
212
+ let enumerator = getEnumerator(cells);
213
+ try {
214
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
215
+ const activePatternResult = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
216
+ const c = activePatternResult[0][0] | 0;
217
+ if (c === index) {
218
+ cells.delete([c, activePatternResult[0][1]]);
219
+ }
220
+ }
221
+ }
222
+ finally {
223
+ disposeSafe(enumerator);
224
+ }
225
+ }
226
+
227
+ /**
228
+ * Remove cells of one Column, change index of cells with higher index to index - 1
229
+ */
230
+ export function Unchecked_removeColumnCells_withIndexChange(index, columnCount, rowCount, cells) {
231
+ for (let col = index; col <= (columnCount - 1); col++) {
232
+ for (let row = 0; row <= (rowCount - 1); row++) {
233
+ if (col === index) {
234
+ cells.delete([col, row]);
235
+ }
236
+ else if (col > index) {
237
+ Unchecked_moveCellTo(col, row, col - 1, row, cells);
238
+ }
239
+ }
240
+ }
241
+ }
242
+
243
+ export function Unchecked_removeRowCells(rowIndex, cells) {
244
+ let enumerator = getEnumerator(cells);
245
+ try {
246
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
247
+ const activePatternResult = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
248
+ const r = activePatternResult[0][1] | 0;
249
+ if (r === rowIndex) {
250
+ cells.delete([activePatternResult[0][0], r]);
251
+ }
252
+ }
253
+ }
254
+ finally {
255
+ disposeSafe(enumerator);
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Remove cells of one Row, change index of cells with higher index to index - 1
261
+ */
262
+ export function Unchecked_removeRowCells_withIndexChange(rowIndex, columnCount, rowCount, cells) {
263
+ for (let row = rowIndex; row <= (rowCount - 1); row++) {
264
+ for (let col = 0; col <= (columnCount - 1); col++) {
265
+ if (row === rowIndex) {
266
+ cells.delete([col, row]);
267
+ }
268
+ else if (row > rowIndex) {
269
+ Unchecked_moveCellTo(col, row, col, row - 1, cells);
270
+ }
271
+ }
272
+ }
273
+ }
274
+
275
+ /**
276
+ * Get an empty cell fitting for related column header.
277
+ *
278
+ * `columCellOption` is used to decide between `CompositeCell.Term` or `CompositeCell.Unitized`. `columCellOption` can be any other cell in the same column, preferably the first one.
279
+ */
280
+ export function Unchecked_getEmptyCellForHeader(header, columCellOption) {
281
+ const matchValue = header.IsTermColumn;
282
+ if (matchValue) {
283
+ let matchResult;
284
+ if (columCellOption == null) {
285
+ matchResult = 0;
286
+ }
287
+ else {
288
+ switch (columCellOption.tag) {
289
+ case 0: {
290
+ matchResult = 0;
291
+ break;
292
+ }
293
+ case 2: {
294
+ matchResult = 1;
295
+ break;
296
+ }
297
+ default:
298
+ matchResult = 2;
299
+ }
300
+ }
301
+ switch (matchResult) {
302
+ case 0:
303
+ return CompositeCell.emptyTerm;
304
+ case 1:
305
+ return CompositeCell.emptyUnitized;
306
+ default:
307
+ throw new Error("[extendBodyCells] This should never happen, IsTermColumn header must be paired with either term or unitized cell.");
308
+ }
309
+ }
310
+ else {
311
+ return CompositeCell.emptyFreeText;
312
+ }
313
+ }
314
+
315
+ /**
316
+ *
317
+ */
318
+ export function Unchecked_addColumn(newHeader, newCells, index, forceReplace, onlyHeaders, headers, values) {
319
+ let numberOfNewColumns = 1;
320
+ let index_1 = index;
321
+ const hasDuplicateUnique = tryFindDuplicateUnique(newHeader, headers);
322
+ if (!forceReplace && (hasDuplicateUnique != null)) {
323
+ throw new Error(`Invalid new column \`${newHeader}\`. Table already contains header of the same type on index \`${value_9(hasDuplicateUnique)}\``);
324
+ }
325
+ if (hasDuplicateUnique != null) {
326
+ numberOfNewColumns = 0;
327
+ index_1 = (value_9(hasDuplicateUnique) | 0);
328
+ }
329
+ const matchValue = getColumnCount(headers) | 0;
330
+ const matchValue_1 = getRowCount(values) | 0;
331
+ const startColCount = matchValue | 0;
332
+ if (hasDuplicateUnique != null) {
333
+ Unchecked_removeHeader(index_1, headers);
334
+ }
335
+ headers.splice(index_1, 0, newHeader);
336
+ if ((index_1 < startColCount) && (hasDuplicateUnique == null)) {
337
+ const lastColumnIndex = max(startColCount - 1, 0) | 0;
338
+ for (let columnIndex = lastColumnIndex; columnIndex >= index_1; columnIndex--) {
339
+ for (let rowIndex = 0; rowIndex <= matchValue_1; rowIndex++) {
340
+ Unchecked_moveCellTo(columnIndex, rowIndex, columnIndex + numberOfNewColumns, rowIndex, values);
341
+ }
342
+ }
343
+ }
344
+ if (!onlyHeaders) {
345
+ if (hasDuplicateUnique != null) {
346
+ Unchecked_removeColumnCells(index_1, values);
347
+ }
348
+ iterateIndexed((rowIndex_1, cell) => {
349
+ Unchecked_setCellAt(index_1, rowIndex_1, cell, values);
350
+ }, newCells);
351
+ }
352
+ }
353
+
354
+ export function Unchecked_fillMissingCells(headers, values) {
355
+ const rowCount = getRowCount(values) | 0;
356
+ const lastColumnIndex = (getColumnCount(headers) - 1) | 0;
357
+ const keys = values.keys();
358
+ for (let columnIndex = 0; columnIndex <= lastColumnIndex; columnIndex++) {
359
+ const colKeys = ofSeq_1(filter((tupledArg) => (tupledArg[0] === columnIndex), keys), {
360
+ Compare: compareArrays,
361
+ });
362
+ const missingKeys = difference(ofSeq_1(initialize(rowCount, (i) => [columnIndex, i]), {
363
+ Compare: compareArrays,
364
+ }), colKeys);
365
+ if (!FSharpSet__get_IsEmpty(missingKeys)) {
366
+ const empty = Unchecked_getEmptyCellForHeader(headers[columnIndex], FSharpSet__get_IsEmpty(colKeys) ? void 0 : getItemFromDict(values, FSharpSet__get_MinimumElement(colKeys)));
367
+ const enumerator = getEnumerator(missingKeys);
368
+ try {
369
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
370
+ const forLoopVar = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
371
+ Unchecked_setCellAt(forLoopVar[0], forLoopVar[1], empty, values);
372
+ }
373
+ }
374
+ finally {
375
+ disposeSafe(enumerator);
376
+ }
377
+ }
378
+ }
379
+ }
380
+
381
+ /**
382
+ * Increases the table size to the given new row count and fills the new rows with the last value of the column
383
+ */
384
+ export function Unchecked_extendToRowCount(rowCount, headers, values) {
385
+ const columnCount = getColumnCount(headers) | 0;
386
+ const previousRowCount = getRowCount(values) | 0;
387
+ for (let columnIndex = 0; columnIndex <= (columnCount - 1); columnIndex++) {
388
+ const lastValue = getItemFromDict(values, [columnIndex, previousRowCount - 1]);
389
+ for (let rowIndex = previousRowCount - 1; rowIndex <= (rowCount - 1); rowIndex++) {
390
+ Unchecked_setCellAt(columnIndex, rowIndex, lastValue, values);
391
+ }
392
+ }
393
+ }
394
+
395
+ export function Unchecked_addRow(index, newCells, headers, values) {
396
+ const rowCount = getRowCount(values) | 0;
397
+ const columnCount = getColumnCount(headers) | 0;
398
+ let increaseRowIndices;
399
+ if (index < rowCount) {
400
+ const lastRowIndex = max(rowCount - 1, 0) | 0;
401
+ for (let rowIndex = lastRowIndex; rowIndex >= index; rowIndex--) {
402
+ for (let columnIndex = 0; columnIndex <= (columnCount - 1); columnIndex++) {
403
+ Unchecked_moveCellTo(columnIndex, rowIndex, columnIndex, rowIndex + 1, values);
404
+ }
405
+ }
406
+ }
407
+ else {
408
+ increaseRowIndices = void 0;
409
+ }
410
+ const setNewCells = iterateIndexed((columnIndex_1, cell) => {
411
+ Unchecked_setCellAt(columnIndex_1, index, cell, values);
412
+ }, newCells);
413
+ }
414
+
415
+ /**
416
+ * Convert a CompositeCell to a ISA Value and Unit tuple.
417
+ */
418
+ export function JsonTypes_valueOfCell(value) {
419
+ switch (value.tag) {
420
+ case 0:
421
+ return [new Value(0, [value.fields[0]]), void 0];
422
+ case 2:
423
+ return [Value_fromString_Z721C83C5(value.fields[0]), value.fields[1]];
424
+ default:
425
+ return [Value_fromString_Z721C83C5(value.fields[0]), void 0];
426
+ }
427
+ }
428
+
429
+ /**
430
+ * Convert a CompositeHeader and Cell tuple to a ISA Component
431
+ */
432
+ export function JsonTypes_composeComponent(header, value) {
433
+ const patternInput = JsonTypes_valueOfCell(value);
434
+ return Component_fromOptions(patternInput[0], patternInput[1], header.ToTerm());
435
+ }
436
+
437
+ /**
438
+ * Convert a CompositeHeader and Cell tuple to a ISA ProcessParameterValue
439
+ */
440
+ export function JsonTypes_composeParameterValue(header, value) {
441
+ const patternInput = JsonTypes_valueOfCell(value);
442
+ return ProcessParameterValue_create_569825F3(ProtocolParameter_create_Z6C54B221(void 0, header.ToTerm()), patternInput[0], unwrap(patternInput[1]));
443
+ }
444
+
445
+ /**
446
+ * Convert a CompositeHeader and Cell tuple to a ISA FactorValue
447
+ */
448
+ export function JsonTypes_composeFactorValue(header, value) {
449
+ const patternInput = JsonTypes_valueOfCell(value);
450
+ return FactorValue_create_18335379(void 0, Factor.create(void 0, toString(header), header.ToTerm()), patternInput[0], unwrap(patternInput[1]));
451
+ }
452
+
453
+ /**
454
+ * Convert a CompositeHeader and Cell tuple to a ISA MaterialAttributeValue
455
+ */
456
+ export function JsonTypes_composeCharacteristicValue(header, value) {
457
+ const patternInput = JsonTypes_valueOfCell(value);
458
+ return MaterialAttributeValue_create_7F714043(void 0, MaterialAttribute_create_Z6C54B221(void 0, header.ToTerm()), patternInput[0], unwrap(patternInput[1]));
459
+ }
460
+
461
+ /**
462
+ * Convert a CompositeHeader and Cell tuple to a ISA ProcessInput
463
+ */
464
+ export function JsonTypes_composeProcessInput(header, value) {
465
+ let matchResult;
466
+ if (header.tag === 11) {
467
+ switch (header.fields[0].tag) {
468
+ case 0: {
469
+ matchResult = 0;
470
+ break;
471
+ }
472
+ case 1: {
473
+ matchResult = 1;
474
+ break;
475
+ }
476
+ case 5: {
477
+ matchResult = 2;
478
+ break;
479
+ }
480
+ case 4: {
481
+ matchResult = 3;
482
+ break;
483
+ }
484
+ case 2: {
485
+ matchResult = 4;
486
+ break;
487
+ }
488
+ case 3: {
489
+ matchResult = 5;
490
+ break;
491
+ }
492
+ default:
493
+ matchResult = 6;
494
+ }
495
+ }
496
+ else {
497
+ matchResult = 6;
498
+ }
499
+ switch (matchResult) {
500
+ case 0:
501
+ return ProcessInput_createSource_7888CE42(toString(value));
502
+ case 1:
503
+ return ProcessInput_createSample_Z6DF16D07(toString(value));
504
+ case 2:
505
+ return ProcessInput_createMaterial_2363974C(toString(value));
506
+ case 3:
507
+ return ProcessInput_createImageFile_Z721C83C5(toString(value));
508
+ case 4:
509
+ return ProcessInput_createRawData_Z721C83C5(toString(value));
510
+ case 5:
511
+ return ProcessInput_createDerivedData_Z721C83C5(toString(value));
512
+ default:
513
+ return toFail(printf("Could not parse input header %O"))(header);
514
+ }
515
+ }
516
+
517
+ /**
518
+ * Convert a CompositeHeader and Cell tuple to a ISA ProcessOutput
519
+ */
520
+ export function JsonTypes_composeProcessOutput(header, value) {
521
+ let matchResult;
522
+ if (header.tag === 12) {
523
+ switch (header.fields[0].tag) {
524
+ case 1: {
525
+ matchResult = 0;
526
+ break;
527
+ }
528
+ case 5: {
529
+ matchResult = 1;
530
+ break;
531
+ }
532
+ case 4: {
533
+ matchResult = 2;
534
+ break;
535
+ }
536
+ case 2: {
537
+ matchResult = 3;
538
+ break;
539
+ }
540
+ case 3: {
541
+ matchResult = 4;
542
+ break;
543
+ }
544
+ default:
545
+ matchResult = 5;
546
+ }
547
+ }
548
+ else {
549
+ matchResult = 5;
550
+ }
551
+ switch (matchResult) {
552
+ case 0:
553
+ return ProcessOutput_createSample_Z6DF16D07(toString(value));
554
+ case 1:
555
+ return ProcessOutput_createMaterial_2363974C(toString(value));
556
+ case 2:
557
+ return ProcessOutput_createImageFile_Z721C83C5(toString(value));
558
+ case 3:
559
+ return ProcessOutput_createRawData_Z721C83C5(toString(value));
560
+ case 4:
561
+ return ProcessOutput_createDerivedData_Z721C83C5(toString(value));
562
+ default:
563
+ return toFail(printf("Could not parse output header %O"))(header);
564
+ }
565
+ }
566
+
567
+ /**
568
+ * Convert an ISA Value and Unit tuple to a CompositeCell
569
+ */
570
+ export function JsonTypes_cellOfValue(value, unit) {
571
+ const value_2 = defaultArg(value, new Value(3, [""]));
572
+ switch (value_2.tag) {
573
+ case 3:
574
+ if (unit != null) {
575
+ const u = unit;
576
+ return new CompositeCell(2, [value_2.fields[0], u]);
577
+ }
578
+ else {
579
+ return new CompositeCell(1, [value_2.fields[0]]);
580
+ }
581
+ case 2:
582
+ if (unit == null) {
583
+ return new CompositeCell(1, [value_2.fields[0].toString()]);
584
+ }
585
+ else {
586
+ const u_1 = unit;
587
+ return new CompositeCell(2, [value_2.fields[0].toString(), u_1]);
588
+ }
589
+ case 1:
590
+ if (unit == null) {
591
+ return new CompositeCell(1, [int32ToString(value_2.fields[0])]);
592
+ }
593
+ else {
594
+ const u_2 = unit;
595
+ return new CompositeCell(2, [int32ToString(value_2.fields[0]), u_2]);
596
+ }
597
+ default:
598
+ if (unit == null) {
599
+ return new CompositeCell(0, [value_2.fields[0]]);
600
+ }
601
+ else {
602
+ return toFail(printf("Could not parse value %O with unit %O"))(value_2)(unit);
603
+ }
604
+ }
605
+ }
606
+
607
+ /**
608
+ * Convert an ISA Component to a CompositeHeader and Cell tuple
609
+ */
610
+ export function JsonTypes_decomposeComponent(c) {
611
+ return [new CompositeHeader(0, [value_9(c.ComponentType)]), JsonTypes_cellOfValue(c.ComponentValue, c.ComponentUnit)];
612
+ }
613
+
614
+ /**
615
+ * Convert an ISA ProcessParameterValue to a CompositeHeader and Cell tuple
616
+ */
617
+ export function JsonTypes_decomposeParameterValue(ppv) {
618
+ return [new CompositeHeader(3, [value_9(value_9(ppv.Category).ParameterName)]), JsonTypes_cellOfValue(ppv.Value, ppv.Unit)];
619
+ }
620
+
621
+ /**
622
+ * Convert an ISA FactorValue to a CompositeHeader and Cell tuple
623
+ */
624
+ export function JsonTypes_decomposeFactorValue(fv) {
625
+ return [new CompositeHeader(2, [value_9(value_9(fv.Category).FactorType)]), JsonTypes_cellOfValue(fv.Value, fv.Unit)];
626
+ }
627
+
628
+ /**
629
+ * Convert an ISA MaterialAttributeValue to a CompositeHeader and Cell tuple
630
+ */
631
+ export function JsonTypes_decomposeCharacteristicValue(cv) {
632
+ return [new CompositeHeader(1, [value_9(value_9(cv.Category).CharacteristicType)]), JsonTypes_cellOfValue(cv.Value, cv.Unit)];
633
+ }
634
+
635
+ /**
636
+ * Convert an ISA ProcessOutput to a CompositeHeader and Cell tuple
637
+ */
638
+ export function JsonTypes_decomposeProcessInput(pi) {
639
+ switch (pi.tag) {
640
+ case 1:
641
+ return [new CompositeHeader(11, [new IOType(1, [])]), new CompositeCell(1, [defaultArg(pi.fields[0].Name, "")])];
642
+ case 3:
643
+ return [new CompositeHeader(11, [new IOType(5, [])]), new CompositeCell(1, [defaultArg(pi.fields[0].Name, "")])];
644
+ case 2: {
645
+ const d = pi.fields[0];
646
+ const dataType = value_9(d.DataType);
647
+ switch (dataType.tag) {
648
+ case 0:
649
+ return [new CompositeHeader(11, [new IOType(2, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
650
+ case 1:
651
+ return [new CompositeHeader(11, [new IOType(3, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
652
+ default:
653
+ return [new CompositeHeader(11, [new IOType(4, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
654
+ }
655
+ }
656
+ default:
657
+ return [new CompositeHeader(11, [new IOType(0, [])]), new CompositeCell(1, [defaultArg(pi.fields[0].Name, "")])];
658
+ }
659
+ }
660
+
661
+ /**
662
+ * Convert an ISA ProcessOutput to a CompositeHeader and Cell tuple
663
+ */
664
+ export function JsonTypes_decomposeProcessOutput(po) {
665
+ switch (po.tag) {
666
+ case 2:
667
+ return [new CompositeHeader(12, [new IOType(5, [])]), new CompositeCell(1, [defaultArg(po.fields[0].Name, "")])];
668
+ case 1: {
669
+ const d = po.fields[0];
670
+ const dataType = value_9(d.DataType);
671
+ switch (dataType.tag) {
672
+ case 0:
673
+ return [new CompositeHeader(12, [new IOType(2, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
674
+ case 1:
675
+ return [new CompositeHeader(12, [new IOType(3, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
676
+ default:
677
+ return [new CompositeHeader(12, [new IOType(4, [])]), new CompositeCell(1, [defaultArg(d.Name, "")])];
678
+ }
679
+ }
680
+ default:
681
+ return [new CompositeHeader(12, [new IOType(1, [])]), new CompositeCell(1, [defaultArg(po.fields[0].Name, "")])];
682
+ }
683
+ }
684
+
685
+ /**
686
+ * If the headers of a node depict a component, returns a function for parsing the values of the matrix to the values of this component
687
+ */
688
+ export function ProcessParsing_tryComponentGetter(generalI, valueI, valueHeader) {
689
+ if (valueHeader.tag === 0) {
690
+ const cat = new CompositeHeader(0, [ARCtrl_ISA_OntologyAnnotation__OntologyAnnotation_SetColumnIndex_Z524259A4(valueHeader.fields[0], valueI)]);
691
+ return (matrix) => ((i) => JsonTypes_composeComponent(cat, getItemFromDict(matrix, [generalI, i])));
692
+ }
693
+ else {
694
+ return void 0;
695
+ }
696
+ }
697
+
698
+ /**
699
+ * If the headers of a node depict a protocolType, returns a function for parsing the values of the matrix to the values of this type
700
+ */
701
+ export function ProcessParsing_tryParameterGetter(generalI, valueI, valueHeader) {
702
+ if (valueHeader.tag === 3) {
703
+ const cat = new CompositeHeader(3, [ARCtrl_ISA_OntologyAnnotation__OntologyAnnotation_SetColumnIndex_Z524259A4(valueHeader.fields[0], valueI)]);
704
+ return (matrix) => ((i) => JsonTypes_composeParameterValue(cat, getItemFromDict(matrix, [generalI, i])));
705
+ }
706
+ else {
707
+ return void 0;
708
+ }
709
+ }
710
+
711
+ export function ProcessParsing_tryFactorGetter(generalI, valueI, valueHeader) {
712
+ if (valueHeader.tag === 2) {
713
+ const cat = new CompositeHeader(2, [ARCtrl_ISA_OntologyAnnotation__OntologyAnnotation_SetColumnIndex_Z524259A4(valueHeader.fields[0], valueI)]);
714
+ return (matrix) => ((i) => JsonTypes_composeFactorValue(cat, getItemFromDict(matrix, [generalI, i])));
715
+ }
716
+ else {
717
+ return void 0;
718
+ }
719
+ }
720
+
721
+ export function ProcessParsing_tryCharacteristicGetter(generalI, valueI, valueHeader) {
722
+ if (valueHeader.tag === 1) {
723
+ const cat = new CompositeHeader(1, [ARCtrl_ISA_OntologyAnnotation__OntologyAnnotation_SetColumnIndex_Z524259A4(valueHeader.fields[0], valueI)]);
724
+ return (matrix) => ((i) => JsonTypes_composeCharacteristicValue(cat, getItemFromDict(matrix, [generalI, i])));
725
+ }
726
+ else {
727
+ return void 0;
728
+ }
729
+ }
730
+
731
+ /**
732
+ * If the headers of a node depict a protocolType, returns a function for parsing the values of the matrix to the values of this type
733
+ */
734
+ export function ProcessParsing_tryGetProtocolTypeGetter(generalI, header) {
735
+ if (header.tag === 4) {
736
+ return (matrix) => ((i) => getItemFromDict(matrix, [generalI, i]).AsTerm);
737
+ }
738
+ else {
739
+ return void 0;
740
+ }
741
+ }
742
+
743
+ export function ProcessParsing_tryGetProtocolREFGetter(generalI, header) {
744
+ if (header.tag === 8) {
745
+ return (matrix) => ((i) => getItemFromDict(matrix, [generalI, i]).AsFreeText);
746
+ }
747
+ else {
748
+ return void 0;
749
+ }
750
+ }
751
+
752
+ export function ProcessParsing_tryGetProtocolDescriptionGetter(generalI, header) {
753
+ if (header.tag === 5) {
754
+ return (matrix) => ((i) => getItemFromDict(matrix, [generalI, i]).AsFreeText);
755
+ }
756
+ else {
757
+ return void 0;
758
+ }
759
+ }
760
+
761
+ export function ProcessParsing_tryGetProtocolURIGetter(generalI, header) {
762
+ if (header.tag === 6) {
763
+ return (matrix) => ((i) => getItemFromDict(matrix, [generalI, i]).AsFreeText);
764
+ }
765
+ else {
766
+ return void 0;
767
+ }
768
+ }
769
+
770
+ export function ProcessParsing_tryGetProtocolVersionGetter(generalI, header) {
771
+ if (header.tag === 7) {
772
+ return (matrix) => ((i) => getItemFromDict(matrix, [generalI, i]).AsFreeText);
773
+ }
774
+ else {
775
+ return void 0;
776
+ }
777
+ }
778
+
779
+ export function ProcessParsing_tryGetInputGetter(generalI, header) {
780
+ if (header.tag === 11) {
781
+ return (matrix) => ((i) => JsonTypes_composeProcessInput(header, getItemFromDict(matrix, [generalI, i])));
782
+ }
783
+ else {
784
+ return void 0;
785
+ }
786
+ }
787
+
788
+ export function ProcessParsing_tryGetOutputGetter(generalI, header) {
789
+ if (header.tag === 12) {
790
+ return (matrix) => ((i) => JsonTypes_composeProcessOutput(header, getItemFromDict(matrix, [generalI, i])));
791
+ }
792
+ else {
793
+ return void 0;
794
+ }
795
+ }
796
+
797
+ /**
798
+ * Given the header sequence of an ArcTable, returns a function for parsing each row of the table to a process
799
+ */
800
+ export function ProcessParsing_getProcessGetter(processNameRoot, headers) {
801
+ const headers_1 = indexed(headers);
802
+ const valueHeaders = toList(indexed(filter((arg) => arg[1].IsCvParamColumn, headers_1)));
803
+ const charGetters = choose((tupledArg) => {
804
+ const _arg = tupledArg[1];
805
+ return ProcessParsing_tryCharacteristicGetter(_arg[0], tupledArg[0], _arg[1]);
806
+ }, valueHeaders);
807
+ const factorValueGetters = choose((tupledArg_1) => {
808
+ const _arg_1 = tupledArg_1[1];
809
+ return ProcessParsing_tryFactorGetter(_arg_1[0], tupledArg_1[0], _arg_1[1]);
810
+ }, valueHeaders);
811
+ const parameterValueGetters = choose((tupledArg_2) => {
812
+ const _arg_2 = tupledArg_2[1];
813
+ return ProcessParsing_tryParameterGetter(_arg_2[0], tupledArg_2[0], _arg_2[1]);
814
+ }, valueHeaders);
815
+ const componentGetters = choose((tupledArg_3) => {
816
+ const _arg_3 = tupledArg_3[1];
817
+ return ProcessParsing_tryComponentGetter(_arg_3[0], tupledArg_3[0], _arg_3[1]);
818
+ }, valueHeaders);
819
+ const protocolTypeGetter = tryPick((tupledArg_4) => ProcessParsing_tryGetProtocolTypeGetter(tupledArg_4[0], tupledArg_4[1]), headers_1);
820
+ const protocolREFGetter = tryPick((tupledArg_5) => ProcessParsing_tryGetProtocolREFGetter(tupledArg_5[0], tupledArg_5[1]), headers_1);
821
+ const protocolDescriptionGetter = tryPick((tupledArg_6) => ProcessParsing_tryGetProtocolDescriptionGetter(tupledArg_6[0], tupledArg_6[1]), headers_1);
822
+ const protocolURIGetter = tryPick((tupledArg_7) => ProcessParsing_tryGetProtocolURIGetter(tupledArg_7[0], tupledArg_7[1]), headers_1);
823
+ const protocolVersionGetter = tryPick((tupledArg_8) => ProcessParsing_tryGetProtocolVersionGetter(tupledArg_8[0], tupledArg_8[1]), headers_1);
824
+ let inputGetter_1;
825
+ const matchValue = tryPick((tupledArg_9) => ProcessParsing_tryGetInputGetter(tupledArg_9[0], tupledArg_9[1]), headers_1);
826
+ if (matchValue == null) {
827
+ inputGetter_1 = ((matrix_1) => ((i_1) => singleton(new ProcessInput(0, [Source_create_7A281ED9(void 0, `${processNameRoot}_Input_${i_1}`, toList(map((f_1) => f_1(matrix_1)(i_1), charGetters)))]))));
828
+ }
829
+ else {
830
+ const inputGetter = matchValue;
831
+ inputGetter_1 = ((matrix) => ((i) => {
832
+ const chars = toList(map((f) => f(matrix)(i), charGetters));
833
+ const input = inputGetter(matrix)(i);
834
+ return (!(ProcessInput__isSample(input) ? true : ProcessInput__isSource(input)) && !isEmpty(chars)) ? ofArray([input, ProcessInput_createSample_Z6DF16D07(ProcessInput__get_Name(input), chars)]) : singleton(ProcessInput_setCharacteristicValues(chars, input));
835
+ }));
836
+ }
837
+ let outputGetter_1;
838
+ const matchValue_1 = tryPick((tupledArg_10) => ProcessParsing_tryGetOutputGetter(tupledArg_10[0], tupledArg_10[1]), headers_1);
839
+ if (matchValue_1 == null) {
840
+ outputGetter_1 = ((matrix_3) => ((i_3) => singleton(new ProcessOutput(0, [Sample_create_E50ED22(void 0, `${processNameRoot}_Output_${i_3}`, void 0, toList(map((f_3) => f_3(matrix_3)(i_3), factorValueGetters)))]))));
841
+ }
842
+ else {
843
+ const outputGetter = matchValue_1;
844
+ outputGetter_1 = ((matrix_2) => ((i_2) => {
845
+ const factors = toList(map((f_2) => f_2(matrix_2)(i_2), factorValueGetters));
846
+ const output = outputGetter(matrix_2)(i_2);
847
+ return (!ProcessOutput__isSample(output) && !isEmpty(factors)) ? ofArray([output, ProcessOutput_createSample_Z6DF16D07(ProcessOutput__get_Name(output), void 0, factors)]) : singleton(ProcessOutput_setFactorValues(factors, output));
848
+ }));
849
+ }
850
+ return (matrix_4) => ((i_4) => {
851
+ const pn = map_1((p) => Process_composeName(p, i_4), Option_fromValueWithDefault("", processNameRoot));
852
+ const paramvalues = Option_fromValueWithDefault(empty_1(), map_2((f_4) => f_4(matrix_4)(i_4), parameterValueGetters));
853
+ const parameters = map_1((list_5) => map_2((pv) => value_9(pv.Category), list_5), paramvalues);
854
+ let protocol;
855
+ const p_1 = Protocol_make(void 0, map_1((f_5) => f_5(matrix_4)(i_4), protocolREFGetter), map_1((f_6) => f_6(matrix_4)(i_4), protocolTypeGetter), map_1((f_7) => f_7(matrix_4)(i_4), protocolDescriptionGetter), map_1((f_8) => f_8(matrix_4)(i_4), protocolURIGetter), map_1((f_9) => f_9(matrix_4)(i_4), protocolVersionGetter), parameters, Option_fromValueWithDefault(empty_1(), map_2((f_10) => f_10(matrix_4)(i_4), componentGetters)), void 0);
856
+ let matchResult;
857
+ if (p_1.Name == null) {
858
+ if (p_1.ProtocolType == null) {
859
+ if (p_1.Description == null) {
860
+ if (p_1.Uri == null) {
861
+ if (p_1.Version == null) {
862
+ if (p_1.Components == null) {
863
+ matchResult = 0;
864
+ }
865
+ else {
866
+ matchResult = 1;
867
+ }
868
+ }
869
+ else {
870
+ matchResult = 1;
871
+ }
872
+ }
873
+ else {
874
+ matchResult = 1;
875
+ }
876
+ }
877
+ else {
878
+ matchResult = 1;
879
+ }
880
+ }
881
+ else {
882
+ matchResult = 1;
883
+ }
884
+ }
885
+ else {
886
+ matchResult = 1;
887
+ }
888
+ switch (matchResult) {
889
+ case 0: {
890
+ protocol = void 0;
891
+ break;
892
+ }
893
+ default:
894
+ protocol = p_1;
895
+ }
896
+ let patternInput;
897
+ const inputs = inputGetter_1(matrix_4)(i_4);
898
+ const outputs = outputGetter_1(matrix_4)(i_4);
899
+ patternInput = (((length(inputs) === 1) && (length(outputs) === 2)) ? [ofArray([item(0, inputs), item(0, inputs)]), outputs] : (((length(inputs) === 2) && (length(outputs) === 1)) ? [inputs, ofArray([item(0, outputs), item(0, outputs)])] : [inputs, outputs]));
900
+ return Process_make(void 0, pn, protocol, paramvalues, void 0, void 0, void 0, void 0, patternInput[0], patternInput[1], void 0);
901
+ });
902
+ }
903
+
904
+ /**
905
+ * Groups processes by their name, or by the name of the protocol they execute
906
+ *
907
+ * Process names are taken from the Worksheet name and numbered: SheetName_1, SheetName_2, etc.
908
+ *
909
+ * This function decomposes this name into a root name and a number, and groups processes by root name.
910
+ */
911
+ export function ProcessParsing_groupProcesses(ps) {
912
+ return List_groupBy((x) => {
913
+ if ((x.Name != null) && (Process_decomposeName_Z721C83C5(value_9(x.Name))[1] != null)) {
914
+ return Process_decomposeName_Z721C83C5(value_9(x.Name))[0];
915
+ }
916
+ else if ((x.ExecutesProtocol != null) && (value_9(x.ExecutesProtocol).Name != null)) {
917
+ return value_9(value_9(x.ExecutesProtocol).Name);
918
+ }
919
+ else if ((x.Name != null) && (value_9(x.Name).indexOf("_") >= 0)) {
920
+ const lastUnderScoreIndex = value_9(x.Name).lastIndexOf("_") | 0;
921
+ return remove(value_9(x.Name), lastUnderScoreIndex);
922
+ }
923
+ else if (x.Name != null) {
924
+ return value_9(x.Name);
925
+ }
926
+ else if ((x.ExecutesProtocol != null) && (value_9(x.ExecutesProtocol).ID != null)) {
927
+ return value_9(value_9(x.ExecutesProtocol).ID);
928
+ }
929
+ else {
930
+ return createMissingIdentifier();
931
+ }
932
+ }, ps, {
933
+ Equals: (x_1, y) => (x_1 === y),
934
+ GetHashCode: stringHash,
935
+ });
936
+ }
937
+
938
+ /**
939
+ * Merges processes with the same name, protocol and param values
940
+ */
941
+ export function ProcessParsing_mergeIdenticalProcesses(processes) {
942
+ const l = List_groupBy((x) => {
943
+ if ((x.Name != null) && (Process_decomposeName_Z721C83C5(value_9(x.Name))[1] != null)) {
944
+ return [Process_decomposeName_Z721C83C5(value_9(x.Name))[0], x.ExecutesProtocol, x.ParameterValues];
945
+ }
946
+ else if ((x.ExecutesProtocol != null) && (value_9(x.ExecutesProtocol).Name != null)) {
947
+ return [value_9(value_9(x.ExecutesProtocol).Name), x.ExecutesProtocol, x.ParameterValues];
948
+ }
949
+ else {
950
+ return [createMissingIdentifier(), x.ExecutesProtocol, x.ParameterValues];
951
+ }
952
+ }, processes, {
953
+ Equals: equalArrays,
954
+ GetHashCode: arrayHash,
955
+ });
956
+ return mapIndexed((i, tupledArg) => {
957
+ const _arg = tupledArg[0];
958
+ const processes_1 = tupledArg[1];
959
+ const n = _arg[0];
960
+ const inputs = Option_fromValueWithDefault(empty_1(), collect((p) => defaultArg(p.Inputs, empty_1()), processes_1));
961
+ const outputs = Option_fromValueWithDefault(empty_1(), collect((p_1) => defaultArg(p_1.Outputs, empty_1()), processes_1));
962
+ return Process_create_Z42860F3E(void 0, (length(l) > 1) ? Process_composeName(n, i) : n, _arg[1], _arg[2], void 0, void 0, void 0, void 0, inputs, outputs);
963
+ }, l);
964
+ }
965
+
966
+ export function ProcessParsing_processToRows(p) {
967
+ let list_3;
968
+ const pvs = map_2((ppv) => [JsonTypes_decomposeParameterValue(ppv), tryGetParameterColumnIndex(ppv)], defaultArg(p.ParameterValues, empty_1()));
969
+ let components;
970
+ const matchValue = p.ExecutesProtocol;
971
+ components = ((matchValue == null) ? empty_1() : map_2((ppv_1) => [JsonTypes_decomposeComponent(ppv_1), tryGetComponentIndex(ppv_1)], defaultArg(matchValue.Components, empty_1())));
972
+ let protVals;
973
+ const matchValue_1 = p.ExecutesProtocol;
974
+ if (matchValue_1 == null) {
975
+ protVals = empty_1();
976
+ }
977
+ else {
978
+ const prot_1 = matchValue_1;
979
+ protVals = toList(delay(() => append((prot_1.Name != null) ? singleton_1([new CompositeHeader(8, []), new CompositeCell(1, [value_9(prot_1.Name)])]) : empty_2(), delay(() => append((prot_1.ProtocolType != null) ? singleton_1([new CompositeHeader(4, []), new CompositeCell(0, [value_9(prot_1.ProtocolType)])]) : empty_2(), delay(() => append((prot_1.Description != null) ? singleton_1([new CompositeHeader(5, []), new CompositeCell(1, [value_9(prot_1.Description)])]) : empty_2(), delay(() => append((prot_1.Uri != null) ? singleton_1([new CompositeHeader(6, []), new CompositeCell(1, [value_9(prot_1.Uri)])]) : empty_2(), delay(() => ((prot_1.Version != null) ? singleton_1([new CompositeHeader(7, []), new CompositeCell(1, [value_9(prot_1.Version)])]) : empty_2())))))))))));
980
+ }
981
+ return map_2((tupledArg_1) => {
982
+ const ios = tupledArg_1[1];
983
+ const inputForCharas = defaultArg(tryPick_1((tupledArg_2) => {
984
+ const i_2 = tupledArg_2[0];
985
+ if (ProcessInput__isSource(i_2) ? true : ProcessInput__isSample(i_2)) {
986
+ return i_2;
987
+ }
988
+ else {
989
+ return void 0;
990
+ }
991
+ }, ios), head(ios)[0]);
992
+ const inputForType = defaultArg(tryPick_1((tupledArg_3) => {
993
+ const i_3 = tupledArg_3[0];
994
+ if (ProcessInput__isData(i_3) ? true : ProcessInput__isMaterial(i_3)) {
995
+ return i_3;
996
+ }
997
+ else {
998
+ return void 0;
999
+ }
1000
+ }, ios), head(ios)[0]);
1001
+ const chars = map_2((cv) => [JsonTypes_decomposeCharacteristicValue(cv), tryGetCharacteristicColumnIndex(cv)], ProcessInput_getCharacteristicValues_102B6859(inputForCharas));
1002
+ const outputForFactors = defaultArg(tryPick_1((tupledArg_4) => {
1003
+ const o_4 = tupledArg_4[1];
1004
+ if (ProcessOutput__isSample(o_4)) {
1005
+ return o_4;
1006
+ }
1007
+ else {
1008
+ return void 0;
1009
+ }
1010
+ }, ios), head(ios)[1]);
1011
+ const outputForType = defaultArg(tryPick_1((tupledArg_5) => {
1012
+ const o_5 = tupledArg_5[1];
1013
+ if (ProcessOutput__isData(o_5) ? true : ProcessOutput__isMaterial(o_5)) {
1014
+ return o_5;
1015
+ }
1016
+ else {
1017
+ return void 0;
1018
+ }
1019
+ }, ios), head(ios)[1]);
1020
+ const vals = map_2((tuple_5) => tuple_5[0], sortBy((arg_2) => defaultArg(arg_2[1], 10000), append_1(chars, append_1(components, append_1(pvs, map_2((fv) => [JsonTypes_decomposeFactorValue(fv), tryGetFactorColumnIndex(fv)], ProcessOutput_getFactorValues_11830B70(outputForFactors))))), {
1021
+ Compare: comparePrimitives,
1022
+ }));
1023
+ return toList(delay(() => append(singleton_1(JsonTypes_decomposeProcessInput(inputForType)), delay(() => append(protVals, delay(() => append(vals, delay(() => singleton_1(JsonTypes_decomposeProcessOutput(outputForType))))))))));
1024
+ }, List_groupBy((tupledArg) => [ProcessInput__get_Name(tupledArg[0]), ProcessOutput__get_Name(tupledArg[1])], (list_3 = defaultArg(p.Outputs, empty_1()), zip(defaultArg(p.Inputs, empty_1()), list_3)), {
1025
+ Equals: equalArrays,
1026
+ GetHashCode: arrayHash,
1027
+ }));
1028
+ }
1029
+
1030
+ /**
1031
+ * Returns true, if two composite headers share the same main header string
1032
+ */
1033
+ export function ProcessParsing_compositeHeaderEqual(ch1, ch2) {
1034
+ return toString(ch1) === toString(ch2);
1035
+ }
1036
+
1037
+ /**
1038
+ * From a list of rows consisting of headers and values, creates a list of combined headers and the values as a sparse matrix
1039
+ *
1040
+ * The values cant be directly taken as they are, as there is no guarantee that the headers are aligned
1041
+ *
1042
+ * This function aligns the headers and values by the main header string
1043
+ *
1044
+ * If keepOrder is true, the order of values per row is kept intact, otherwise the values are allowed to be reordered
1045
+ */
1046
+ export function ProcessParsing_alignByHeaders(keepOrder, rows) {
1047
+ const headers = [];
1048
+ const values = new Dictionary([], {
1049
+ Equals: equalArrays,
1050
+ GetHashCode: arrayHash,
1051
+ });
1052
+ const loop = (colI_mut, rows_2_mut) => {
1053
+ loop:
1054
+ while (true) {
1055
+ const colI = colI_mut, rows_2 = rows_2_mut;
1056
+ if (!exists((arg_1) => !isEmpty(arg_1), rows_2)) {
1057
+ return [headers, values];
1058
+ }
1059
+ else {
1060
+ const firstElem = pick((l) => (isEmpty(l) ? void 0 : head(l)), rows_2)[0];
1061
+ void (headers.push(firstElem));
1062
+ colI_mut = (colI + 1);
1063
+ rows_2_mut = mapIndexed((rowI, l_1) => {
1064
+ if (keepOrder) {
1065
+ if (!isEmpty(l_1)) {
1066
+ if (ProcessParsing_compositeHeaderEqual(head(l_1)[0], firstElem)) {
1067
+ addToDict(values, [colI, rowI], head(l_1)[1]);
1068
+ return tail_1(l_1);
1069
+ }
1070
+ else {
1071
+ return l_1;
1072
+ }
1073
+ }
1074
+ else {
1075
+ return empty_1();
1076
+ }
1077
+ }
1078
+ else {
1079
+ const patternInput = List_tryPickAndRemove((tupledArg) => {
1080
+ if (ProcessParsing_compositeHeaderEqual(tupledArg[0], firstElem)) {
1081
+ return tupledArg[1];
1082
+ }
1083
+ else {
1084
+ return void 0;
1085
+ }
1086
+ }, l_1);
1087
+ const newL = patternInput[1];
1088
+ const firstMatch = patternInput[0];
1089
+ if (firstMatch == null) {
1090
+ return newL;
1091
+ }
1092
+ else {
1093
+ addToDict(values, [colI, rowI], firstMatch);
1094
+ return newL;
1095
+ }
1096
+ }
1097
+ }, rows_2);
1098
+ continue loop;
1099
+ }
1100
+ break;
1101
+ }
1102
+ };
1103
+ return loop(0, rows);
1104
+ }
1105
+