@nfdi4plants/arctrl 1.0.0-alpha6
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.
- package/ARCtrl.js +257 -0
- package/Contract/Contract.js +95 -0
- package/Contracts/Contracts.ARCtrl.js +35 -0
- package/Contracts/Contracts.ArcAssay.js +65 -0
- package/Contracts/Contracts.ArcInvestigation.js +58 -0
- package/Contracts/Contracts.ArcStudy.js +65 -0
- package/Contracts/Contracts.Git.js +91 -0
- package/FileSystem/Commit.js +18 -0
- package/FileSystem/DefaultGitignore.js +3 -0
- package/FileSystem/FileSystem.js +53 -0
- package/FileSystem/FileSystemTree.js +223 -0
- package/FileSystem/Path.js +38 -0
- package/FileSystemTree.js +51 -0
- package/ISA/ISA/ArcTypes/ArcTable.js +744 -0
- package/ISA/ISA/ArcTypes/ArcTableAux.js +1142 -0
- package/ISA/ISA/ArcTypes/ArcTables.js +380 -0
- package/ISA/ISA/ArcTypes/ArcTypes.js +2018 -0
- package/ISA/ISA/ArcTypes/CompositeCell.js +180 -0
- package/ISA/ISA/ArcTypes/CompositeColumn.js +42 -0
- package/ISA/ISA/ArcTypes/CompositeHeader.js +358 -0
- package/ISA/ISA/ArcTypes/CompositeRow.js +111 -0
- package/ISA/ISA/ArcTypes/IdentifierSetters.js +26 -0
- package/ISA/ISA/Builder/Types.js +243 -0
- package/ISA/ISA/Fable.js +50 -0
- package/ISA/ISA/Helper.js +326 -0
- package/ISA/ISA/Identifier.js +76 -0
- package/ISA/ISA/JsonTypes/AnnotationValue.js +56 -0
- package/ISA/ISA/JsonTypes/Assay.js +620 -0
- package/ISA/ISA/JsonTypes/AssayMaterials.js +39 -0
- package/ISA/ISA/JsonTypes/ColumnIndex.js +246 -0
- package/ISA/ISA/JsonTypes/Comment.js +58 -0
- package/ISA/ISA/JsonTypes/CommentList.js +139 -0
- package/ISA/ISA/JsonTypes/Component.js +158 -0
- package/ISA/ISA/JsonTypes/Data.js +55 -0
- package/ISA/ISA/JsonTypes/DataFile.js +68 -0
- package/ISA/ISA/JsonTypes/Factor.js +128 -0
- package/ISA/ISA/JsonTypes/FactorValue.js +109 -0
- package/ISA/ISA/JsonTypes/Investigation.js +204 -0
- package/ISA/ISA/JsonTypes/Material.js +66 -0
- package/ISA/ISA/JsonTypes/MaterialAttribute.js +101 -0
- package/ISA/ISA/JsonTypes/MaterialAttributeValue.js +126 -0
- package/ISA/ISA/JsonTypes/MaterialType.js +41 -0
- package/ISA/ISA/JsonTypes/OntologyAnnotation.js +219 -0
- package/ISA/ISA/JsonTypes/OntologySourceReference.js +85 -0
- package/ISA/ISA/JsonTypes/Person.js +137 -0
- package/ISA/ISA/JsonTypes/Process.js +401 -0
- package/ISA/ISA/JsonTypes/ProcessInput.js +297 -0
- package/ISA/ISA/JsonTypes/ProcessOutput.js +263 -0
- package/ISA/ISA/JsonTypes/ProcessParameterValue.js +129 -0
- package/ISA/ISA/JsonTypes/ProcessSequence.js +255 -0
- package/ISA/ISA/JsonTypes/Protocol.js +277 -0
- package/ISA/ISA/JsonTypes/ProtocolParameter.js +101 -0
- package/ISA/ISA/JsonTypes/Publication.js +105 -0
- package/ISA/ISA/JsonTypes/Sample.js +71 -0
- package/ISA/ISA/JsonTypes/Source.js +54 -0
- package/ISA/ISA/JsonTypes/Study.js +942 -0
- package/ISA/ISA/JsonTypes/StudyMaterials.js +45 -0
- package/ISA/ISA/JsonTypes/URI.js +19 -0
- package/ISA/ISA/JsonTypes/Value.js +210 -0
- package/ISA/ISA/Regex.js +588 -0
- package/ISA/ISA.Json/Assay.js +123 -0
- package/ISA/ISA.Json/Comment.js +84 -0
- package/ISA/ISA.Json/ConverterOptions.js +33 -0
- package/ISA/ISA.Json/Data.js +271 -0
- package/ISA/ISA.Json/Decode.js +46 -0
- package/ISA/ISA.Json/Factor.js +194 -0
- package/ISA/ISA.Json/GEncode.js +15 -0
- package/ISA/ISA.Json/Investigation.js +132 -0
- package/ISA/ISA.Json/Material.js +233 -0
- package/ISA/ISA.Json/Ontology.js +204 -0
- package/ISA/ISA.Json/Person.js +204 -0
- package/ISA/ISA.Json/Process.js +291 -0
- package/ISA/ISA.Json/Protocol.js +242 -0
- package/ISA/ISA.Json/Publication.js +92 -0
- package/ISA/ISA.Json/Study.js +230 -0
- package/ISA/ISA.Json/Validation/Fable.js +69 -0
- package/ISA/ISA.Json/Validation/JsonSchemaValidation.js +88 -0
- package/ISA/ISA.Json/Validation/ValidationResult.js +45 -0
- package/ISA/ISA.Spreadsheet/AnnotationTable/ArcTable.js +137 -0
- package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeCell.js +78 -0
- package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeColumn.js +59 -0
- package/ISA/ISA.Spreadsheet/AnnotationTable/CompositeHeader.js +478 -0
- package/ISA/ISA.Spreadsheet/ArcAssay.js +150 -0
- package/ISA/ISA.Spreadsheet/ArcInvestigation.js +314 -0
- package/ISA/ISA.Spreadsheet/ArcStudy.js +67 -0
- package/ISA/ISA.Spreadsheet/CollectionAux.js +128 -0
- package/ISA/ISA.Spreadsheet/Metadata/Assays.js +81 -0
- package/ISA/ISA.Spreadsheet/Metadata/Comment.js +60 -0
- package/ISA/ISA.Spreadsheet/Metadata/Contacts.js +104 -0
- package/ISA/ISA.Spreadsheet/Metadata/Conversions.js +180 -0
- package/ISA/ISA.Spreadsheet/Metadata/DesignDescriptors.js +27 -0
- package/ISA/ISA.Spreadsheet/Metadata/Factors.js +85 -0
- package/ISA/ISA.Spreadsheet/Metadata/OntologyAnnotation.js +65 -0
- package/ISA/ISA.Spreadsheet/Metadata/OntologySourceReference.js +73 -0
- package/ISA/ISA.Spreadsheet/Metadata/Protocols.js +116 -0
- package/ISA/ISA.Spreadsheet/Metadata/Publication.js +96 -0
- package/ISA/ISA.Spreadsheet/Metadata/SparseTable.js +451 -0
- package/ISA/ISA.Spreadsheet/Metadata/Study.js +260 -0
- package/README.md +277 -0
- package/SemVer.js +60 -0
- package/Templates/Templates.Json.js +40 -0
- package/Templates/Templates.Spreadsheet.js +315 -0
- package/Templates/Templates.js +179 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCell.fs +387 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCell.fs.js +240 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCellsCollection.fs +725 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Cells/FsCellsCollection.fs.js +522 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/CellBuilder.fs +195 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/CellBuilder.fs.js +208 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/ColumnBuilder.fs +209 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/ColumnBuilder.fs.js +137 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/DSL.fs +61 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/DSL.fs.js +62 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Expression.fs +24 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Expression.fs.js +56 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Operators.fs +102 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Operators.fs.js +6 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/RowBuilder.fs +200 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/RowBuilder.fs.js +137 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/SheetBuilder.fs +139 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/SheetBuilder.fs.js +116 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/TableBuilder.fs +120 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/TableBuilder.fs.js +120 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Transform.fs +229 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Transform.fs.js +421 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Types.fs +151 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/Types.fs.js +277 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/WorkbookBuilder.fs +114 -0
- package/fable_modules/FsSpreadsheet.4.1.0/DSL/WorkbookBuilder.fs.js +104 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsAddress.fs +177 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsAddress.fs.js +249 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsColumn.fs +200 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsColumn.fs.js +125 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsRow.fs +202 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsRow.fs.js +135 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsSpreadsheet.fableproj +58 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsWorkbook.fs +183 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsWorkbook.fs.js +138 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsWorksheet.fs +628 -0
- package/fable_modules/FsSpreadsheet.4.1.0/FsWorksheet.fs.js +398 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRange.fs +19 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRange.fs.js +41 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeAddress.fs +222 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeAddress.fs.js +235 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeBase.fs +93 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeBase.fs.js +91 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeColumn.fs +65 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeColumn.fs.js +74 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeRow.fs +22 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Ranges/FsRangeRow.fs.js +40 -0
- package/fable_modules/FsSpreadsheet.4.1.0/SheetBuilder.fs +249 -0
- package/fable_modules/FsSpreadsheet.4.1.0/SheetBuilder.fs.js +325 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTable.fs +455 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTable.fs.js +310 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableField.fs +140 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableField.fs.js +173 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableRow.fs +6 -0
- package/fable_modules/FsSpreadsheet.4.1.0/Tables/FsTableRow.fs.js +17 -0
- package/fable_modules/FsSpreadsheet.4.1.0/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
- package/fable_modules/FsSpreadsheet.4.1.0/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +19 -0
- package/fable_modules/FsSpreadsheet.4.1.0/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
- package/fable_modules/FsSpreadsheet.4.1.0/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +19 -0
- package/fable_modules/Thoth.Json.10.1.0/Decode.fs +1366 -0
- package/fable_modules/Thoth.Json.10.1.0/Decode.fs.js +1798 -0
- package/fable_modules/Thoth.Json.10.1.0/Encode.fs +621 -0
- package/fable_modules/Thoth.Json.10.1.0/Encode.fs.js +472 -0
- package/fable_modules/Thoth.Json.10.1.0/Extra.fs +31 -0
- package/fable_modules/Thoth.Json.10.1.0/Extra.fs.js +8 -0
- package/fable_modules/Thoth.Json.10.1.0/Thoth.Json.fableproj +30 -0
- package/fable_modules/Thoth.Json.10.1.0/Types.fs +59 -0
- package/fable_modules/Thoth.Json.10.1.0/Types.fs.js +98 -0
- package/fable_modules/Thoth.Json.10.1.0/obj/Release/netstandard2.0/Thoth.Json.AssemblyInfo.fs +19 -0
- package/fable_modules/Thoth.Json.10.1.0/package.json +5 -0
- package/fable_modules/fable-library.4.1.4/Array.d.ts +120 -0
- package/fable_modules/fable-library.4.1.4/Array.js +1204 -0
- package/fable_modules/fable-library.4.1.4/Async.d.ts +32 -0
- package/fable_modules/fable-library.4.1.4/Async.js +158 -0
- package/fable_modules/fable-library.4.1.4/AsyncBuilder.d.ts +59 -0
- package/fable_modules/fable-library.4.1.4/AsyncBuilder.js +183 -0
- package/fable_modules/fable-library.4.1.4/BigInt.d.ts +115 -0
- package/fable_modules/fable-library.4.1.4/BigInt.js +282 -0
- package/fable_modules/fable-library.4.1.4/BitConverter.d.ts +27 -0
- package/fable_modules/fable-library.4.1.4/BitConverter.js +138 -0
- package/fable_modules/fable-library.4.1.4/Boolean.d.ts +3 -0
- package/fable_modules/fable-library.4.1.4/Boolean.js +21 -0
- package/fable_modules/fable-library.4.1.4/Char.d.ts +65 -0
- package/fable_modules/fable-library.4.1.4/Char.js +169 -0
- package/fable_modules/fable-library.4.1.4/Choice.d.ts +138 -0
- package/fable_modules/fable-library.4.1.4/Choice.js +227 -0
- package/fable_modules/fable-library.4.1.4/Date.d.ts +70 -0
- package/fable_modules/fable-library.4.1.4/Date.js +451 -0
- package/fable_modules/fable-library.4.1.4/DateOffset.d.ts +63 -0
- package/fable_modules/fable-library.4.1.4/DateOffset.js +268 -0
- package/fable_modules/fable-library.4.1.4/DateOnly.d.ts +18 -0
- package/fable_modules/fable-library.4.1.4/DateOnly.js +124 -0
- package/fable_modules/fable-library.4.1.4/Decimal.d.ts +45 -0
- package/fable_modules/fable-library.4.1.4/Decimal.js +212 -0
- package/fable_modules/fable-library.4.1.4/Double.d.ts +11 -0
- package/fable_modules/fable-library.4.1.4/Double.js +46 -0
- package/fable_modules/fable-library.4.1.4/Encoding.d.ts +12 -0
- package/fable_modules/fable-library.4.1.4/Encoding.js +173 -0
- package/fable_modules/fable-library.4.1.4/Event.d.ts +31 -0
- package/fable_modules/fable-library.4.1.4/Event.js +93 -0
- package/fable_modules/fable-library.4.1.4/FSharp.Collections.d.ts +7 -0
- package/fable_modules/fable-library.4.1.4/FSharp.Collections.js +27 -0
- package/fable_modules/fable-library.4.1.4/FSharp.Core.d.ts +17 -0
- package/fable_modules/fable-library.4.1.4/FSharp.Core.js +69 -0
- package/fable_modules/fable-library.4.1.4/Global.d.ts +24 -0
- package/fable_modules/fable-library.4.1.4/Global.js +8 -0
- package/fable_modules/fable-library.4.1.4/Guid.d.ts +10 -0
- package/fable_modules/fable-library.4.1.4/Guid.js +142 -0
- package/fable_modules/fable-library.4.1.4/Int32.d.ts +28 -0
- package/fable_modules/fable-library.4.1.4/Int32.js +135 -0
- package/fable_modules/fable-library.4.1.4/List.d.ts +143 -0
- package/fable_modules/fable-library.4.1.4/List.js +1273 -0
- package/fable_modules/fable-library.4.1.4/Long.d.ts +3 -0
- package/fable_modules/fable-library.4.1.4/Long.js +46 -0
- package/fable_modules/fable-library.4.1.4/MailboxProcessor.d.ts +25 -0
- package/fable_modules/fable-library.4.1.4/MailboxProcessor.js +93 -0
- package/fable_modules/fable-library.4.1.4/Map.d.ts +178 -0
- package/fable_modules/fable-library.4.1.4/Map.js +1396 -0
- package/fable_modules/fable-library.4.1.4/MapUtil.d.ts +10 -0
- package/fable_modules/fable-library.4.1.4/MapUtil.js +112 -0
- package/fable_modules/fable-library.4.1.4/MutableMap.d.ts +52 -0
- package/fable_modules/fable-library.4.1.4/MutableMap.js +326 -0
- package/fable_modules/fable-library.4.1.4/MutableSet.d.ts +39 -0
- package/fable_modules/fable-library.4.1.4/MutableSet.js +232 -0
- package/fable_modules/fable-library.4.1.4/Native.d.ts +2 -0
- package/fable_modules/fable-library.4.1.4/Native.js +8 -0
- package/fable_modules/fable-library.4.1.4/Numeric.d.ts +19 -0
- package/fable_modules/fable-library.4.1.4/Numeric.js +71 -0
- package/fable_modules/fable-library.4.1.4/Observable.d.ts +32 -0
- package/fable_modules/fable-library.4.1.4/Observable.js +113 -0
- package/fable_modules/fable-library.4.1.4/Option.d.ts +28 -0
- package/fable_modules/fable-library.4.1.4/Option.js +96 -0
- package/fable_modules/fable-library.4.1.4/README.md +3 -0
- package/fable_modules/fable-library.4.1.4/Random.d.ts +37 -0
- package/fable_modules/fable-library.4.1.4/Random.js +170 -0
- package/fable_modules/fable-library.4.1.4/Range.d.ts +12 -0
- package/fable_modules/fable-library.4.1.4/Range.js +45 -0
- package/fable_modules/fable-library.4.1.4/Reflection.d.ts +119 -0
- package/fable_modules/fable-library.4.1.4/Reflection.js +461 -0
- package/fable_modules/fable-library.4.1.4/RegExp.d.ts +10 -0
- package/fable_modules/fable-library.4.1.4/RegExp.js +132 -0
- package/fable_modules/fable-library.4.1.4/Seq.d.ts +165 -0
- package/fable_modules/fable-library.4.1.4/Seq.js +1379 -0
- package/fable_modules/fable-library.4.1.4/Seq2.d.ts +18 -0
- package/fable_modules/fable-library.4.1.4/Seq2.js +111 -0
- package/fable_modules/fable-library.4.1.4/Set.d.ts +190 -0
- package/fable_modules/fable-library.4.1.4/Set.js +1789 -0
- package/fable_modules/fable-library.4.1.4/String.d.ts +49 -0
- package/fable_modules/fable-library.4.1.4/String.js +540 -0
- package/fable_modules/fable-library.4.1.4/System.Collections.Generic.d.ts +71 -0
- package/fable_modules/fable-library.4.1.4/System.Collections.Generic.js +307 -0
- package/fable_modules/fable-library.4.1.4/System.Text.d.ts +30 -0
- package/fable_modules/fable-library.4.1.4/System.Text.js +110 -0
- package/fable_modules/fable-library.4.1.4/SystemException.d.ts +5 -0
- package/fable_modules/fable-library.4.1.4/SystemException.js +5 -0
- package/fable_modules/fable-library.4.1.4/TimeOnly.d.ts +15 -0
- package/fable_modules/fable-library.4.1.4/TimeOnly.js +122 -0
- package/fable_modules/fable-library.4.1.4/TimeSpan.d.ts +34 -0
- package/fable_modules/fable-library.4.1.4/TimeSpan.js +177 -0
- package/fable_modules/fable-library.4.1.4/Timer.d.ts +19 -0
- package/fable_modules/fable-library.4.1.4/Timer.js +67 -0
- package/fable_modules/fable-library.4.1.4/Types.d.ts +58 -0
- package/fable_modules/fable-library.4.1.4/Types.js +208 -0
- package/fable_modules/fable-library.4.1.4/Unicode.13.0.0.d.ts +2 -0
- package/fable_modules/fable-library.4.1.4/Unicode.13.0.0.js +4 -0
- package/fable_modules/fable-library.4.1.4/Uri.d.ts +29 -0
- package/fable_modules/fable-library.4.1.4/Uri.js +142 -0
- package/fable_modules/fable-library.4.1.4/Util.d.ts +187 -0
- package/fable_modules/fable-library.4.1.4/Util.js +662 -0
- package/fable_modules/fable-library.4.1.4/lib/big.d.ts +338 -0
- package/fable_modules/fable-library.4.1.4/lib/big.js +826 -0
- package/fable_modules/fable-library.4.1.4/package.json +23 -0
- package/fable_modules/project_cracked.json +1 -0
- package/package.json +22 -0
|
@@ -0,0 +1,744 @@
|
|
|
1
|
+
import { Dictionary } from "../../../fable_modules/fable-library.4.1.4/MutableMap.js";
|
|
2
|
+
import { stringHash, compareArrays, safeHash, disposeSafe, getEnumerator, equals, comparePrimitives, arrayHash, equalArrays } from "../../../fable_modules/fable-library.4.1.4/Util.js";
|
|
3
|
+
import { map as map_2, value as value_9, defaultArg, unwrap } from "../../../fable_modules/fable-library.4.1.4/Option.js";
|
|
4
|
+
import { Unchecked_extendToRowCount, ProcessParsing_processToRows, ProcessParsing_alignByHeaders, ProcessParsing_mergeIdenticalProcesses, ProcessParsing_getProcessGetter, Unchecked_removeRowCells_withIndexChange, Unchecked_addRow, Unchecked_getEmptyCellForHeader, Unchecked_removeColumnCells_withIndexChange, tryFindDuplicateUniqueInArray, Unchecked_removeColumnCells, Unchecked_removeHeader, Unchecked_fillMissingCells, Unchecked_addColumn, tryFindDuplicateUnique, Unchecked_setCellAt, SanityChecks_validateColumn, SanityChecks_validateRowIndex, SanityChecks_validateColumnIndex, Unchecked_tryGetCellAt, getRowCount, getColumnCount } from "./ArcTableAux.js";
|
|
5
|
+
import { sortBy, item, append as append_1, indexed as indexed_1, choose, zip, fold, filter, length, singleton, collect, tryFindIndex, findIndex, toArray, removeAt, map, delay, toList } from "../../../fable_modules/fable-library.4.1.4/Seq.js";
|
|
6
|
+
import { rangeDouble } from "../../../fable_modules/fable-library.4.1.4/Range.js";
|
|
7
|
+
import { CompositeColumn } from "./CompositeColumn.js";
|
|
8
|
+
import { indexed, mapIndexed, singleton as singleton_1, initialize, sortDescending, iterateIndexed, map as map_1 } from "../../../fable_modules/fable-library.4.1.4/Array.js";
|
|
9
|
+
import { append, collect as collect_1, initialize as initialize_1, singleton as singleton_2, empty, iterate, isEmpty } from "../../../fable_modules/fable-library.4.1.4/List.js";
|
|
10
|
+
import { StringBuilder__AppendLine_Z721C83C5, StringBuilder_$ctor } from "../../../fable_modules/fable-library.4.1.4/System.Text.js";
|
|
11
|
+
import { toString } from "../../../fable_modules/fable-library.4.1.4/Types.js";
|
|
12
|
+
import { CompositeCell } from "./CompositeCell.js";
|
|
13
|
+
import { CompositeHeader } from "./CompositeHeader.js";
|
|
14
|
+
import { createMissingIdentifier } from "../Identifier.js";
|
|
15
|
+
import { ARCtrl_ISA_Component__Component_TryGetColumnIndex, ARCtrl_ISA_ProtocolParameter__ProtocolParameter_TryGetColumnIndex } from "../JsonTypes/ColumnIndex.js";
|
|
16
|
+
import { Protocol_create_Z7DFD6E67, Protocol_addComponent, Protocol_addParameter, Protocol_setName, Protocol_setDescription, Protocol_setUri, Protocol_setVersion, Protocol_setProtocolType } from "../JsonTypes/Protocol.js";
|
|
17
|
+
import { OntologyAnnotation } from "../JsonTypes/OntologyAnnotation.js";
|
|
18
|
+
import { ProtocolParameter_create_Z6C54B221 } from "../JsonTypes/ProtocolParameter.js";
|
|
19
|
+
import { Component_create_61502994 } from "../JsonTypes/Component.js";
|
|
20
|
+
import { Array_groupBy, List_distinct } from "../../../fable_modules/fable-library.4.1.4/Seq2.js";
|
|
21
|
+
import { toProtocol } from "./CompositeRow.js";
|
|
22
|
+
import { Process_create_Z42860F3E } from "../JsonTypes/Process.js";
|
|
23
|
+
import { getItemFromDict } from "../../../fable_modules/fable-library.4.1.4/MapUtil.js";
|
|
24
|
+
import { join } from "../../../fable_modules/fable-library.4.1.4/String.js";
|
|
25
|
+
import { class_type } from "../../../fable_modules/fable-library.4.1.4/Reflection.js";
|
|
26
|
+
|
|
27
|
+
export class ArcTable {
|
|
28
|
+
constructor(name, headers, values) {
|
|
29
|
+
this._name = name;
|
|
30
|
+
this["Headers@"] = headers;
|
|
31
|
+
this["Values@"] = values;
|
|
32
|
+
}
|
|
33
|
+
get Headers() {
|
|
34
|
+
const __ = this;
|
|
35
|
+
return __["Headers@"];
|
|
36
|
+
}
|
|
37
|
+
set Headers(v) {
|
|
38
|
+
const __ = this;
|
|
39
|
+
__["Headers@"] = v;
|
|
40
|
+
}
|
|
41
|
+
get Values() {
|
|
42
|
+
const __ = this;
|
|
43
|
+
return __["Values@"];
|
|
44
|
+
}
|
|
45
|
+
set Values(v) {
|
|
46
|
+
const __ = this;
|
|
47
|
+
__["Values@"] = v;
|
|
48
|
+
}
|
|
49
|
+
get Name() {
|
|
50
|
+
const this$ = this;
|
|
51
|
+
return this$._name;
|
|
52
|
+
}
|
|
53
|
+
set Name(newName) {
|
|
54
|
+
const this$ = this;
|
|
55
|
+
this$._name = newName;
|
|
56
|
+
}
|
|
57
|
+
static create(name, headers, values) {
|
|
58
|
+
return new ArcTable(name, headers, values);
|
|
59
|
+
}
|
|
60
|
+
static init(name) {
|
|
61
|
+
return new ArcTable(name, [], new Dictionary([], {
|
|
62
|
+
Equals: equalArrays,
|
|
63
|
+
GetHashCode: arrayHash,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
static createFromHeaders(name, headers) {
|
|
67
|
+
return ArcTable.create(name, headers, new Dictionary([], {
|
|
68
|
+
Equals: equalArrays,
|
|
69
|
+
GetHashCode: arrayHash,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
static createFromRows(name, headers, rows) {
|
|
73
|
+
const t = ArcTable.createFromHeaders(name, headers);
|
|
74
|
+
t.AddRows(rows);
|
|
75
|
+
return t;
|
|
76
|
+
}
|
|
77
|
+
Validate(raiseException) {
|
|
78
|
+
const this$ = this;
|
|
79
|
+
let isValid = true;
|
|
80
|
+
for (let columnIndex = 0; columnIndex <= (this$.ColumnCount - 1); columnIndex++) {
|
|
81
|
+
const column = this$.GetColumn(columnIndex);
|
|
82
|
+
isValid = column.validate(unwrap(raiseException));
|
|
83
|
+
}
|
|
84
|
+
return isValid;
|
|
85
|
+
}
|
|
86
|
+
static validate(raiseException) {
|
|
87
|
+
return (table) => table.Validate(unwrap(raiseException));
|
|
88
|
+
}
|
|
89
|
+
get ColumnCount() {
|
|
90
|
+
const this$ = this;
|
|
91
|
+
return getColumnCount(this$.Headers) | 0;
|
|
92
|
+
}
|
|
93
|
+
get RowCount() {
|
|
94
|
+
const this$ = this;
|
|
95
|
+
return getRowCount(this$.Values) | 0;
|
|
96
|
+
}
|
|
97
|
+
get Columns() {
|
|
98
|
+
const this$ = this;
|
|
99
|
+
return toList(delay(() => map((i) => this$.GetColumn(i), rangeDouble(0, 1, this$.ColumnCount - 1))));
|
|
100
|
+
}
|
|
101
|
+
Copy() {
|
|
102
|
+
const this$ = this;
|
|
103
|
+
return ArcTable.create(this$.Name, Array.from(this$.Headers), new Dictionary(this$.Values, {
|
|
104
|
+
Equals: equalArrays,
|
|
105
|
+
GetHashCode: arrayHash,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
TryGetCellAt(column, row) {
|
|
109
|
+
const this$ = this;
|
|
110
|
+
return Unchecked_tryGetCellAt(column, row, this$.Values);
|
|
111
|
+
}
|
|
112
|
+
static tryGetCellAt(column, row) {
|
|
113
|
+
return (table) => table.TryGetCellAt(column, row);
|
|
114
|
+
}
|
|
115
|
+
UpdateCellAt(columnIndex, rowIndex, c) {
|
|
116
|
+
const this$ = this;
|
|
117
|
+
SanityChecks_validateColumnIndex(columnIndex, this$.ColumnCount, false);
|
|
118
|
+
SanityChecks_validateRowIndex(rowIndex, this$.RowCount, false);
|
|
119
|
+
SanityChecks_validateColumn(CompositeColumn.create(this$.Headers[columnIndex], [c]));
|
|
120
|
+
Unchecked_setCellAt(columnIndex, rowIndex, c, this$.Values);
|
|
121
|
+
}
|
|
122
|
+
static updateCellAt(columnIndex, rowIndex, cell) {
|
|
123
|
+
return (table) => {
|
|
124
|
+
const newTable = table.Copy();
|
|
125
|
+
newTable.UpdateCellAt(columnIndex, rowIndex, cell);
|
|
126
|
+
return newTable;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
UpdateHeader(index, newHeader, forceConvertCells) {
|
|
130
|
+
const this$ = this;
|
|
131
|
+
const forceConvertCells_1 = defaultArg(forceConvertCells, false);
|
|
132
|
+
SanityChecks_validateColumnIndex(index, this$.ColumnCount, false);
|
|
133
|
+
const header = newHeader;
|
|
134
|
+
const matchValue = tryFindDuplicateUnique(header, removeAt(index, this$.Headers));
|
|
135
|
+
if (matchValue != null) {
|
|
136
|
+
throw new Error(`Invalid input. Tried setting unique header \`${header}\`, but header of same type already exists at index ${matchValue}.`);
|
|
137
|
+
}
|
|
138
|
+
const c = new CompositeColumn(newHeader, this$.GetColumn(index).Cells);
|
|
139
|
+
if (c.validate()) {
|
|
140
|
+
let setHeader;
|
|
141
|
+
setHeader = (this$.Headers[index] = newHeader);
|
|
142
|
+
}
|
|
143
|
+
else if (forceConvertCells_1) {
|
|
144
|
+
const convertedCells = newHeader.IsTermColumn ? map_1((c_1) => {
|
|
145
|
+
if (c_1.isFreeText) {
|
|
146
|
+
return c_1.ToTermCell();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return c_1;
|
|
150
|
+
}
|
|
151
|
+
}, c.Cells) : map_1((c_2) => c_2.ToFreeTextCell(), c.Cells);
|
|
152
|
+
this$.UpdateColumn(index, newHeader, convertedCells);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
throw new Error("Tried setting header for column with invalid type of cells. Set `forceConvertCells` flag to automatically convert cells into valid CompositeCell type.");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
static updateHeader(index, header) {
|
|
159
|
+
return (table) => {
|
|
160
|
+
const newTable = table.Copy();
|
|
161
|
+
newTable.UpdateHeader(index, header);
|
|
162
|
+
return newTable;
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
AddColumn(header, cells, index, forceReplace) {
|
|
166
|
+
const this$ = this;
|
|
167
|
+
const index_1 = defaultArg(index, this$.ColumnCount) | 0;
|
|
168
|
+
const cells_1 = defaultArg(cells, []);
|
|
169
|
+
const forceReplace_1 = defaultArg(forceReplace, false);
|
|
170
|
+
SanityChecks_validateColumnIndex(index_1, this$.ColumnCount, true);
|
|
171
|
+
SanityChecks_validateColumn(CompositeColumn.create(header, cells_1));
|
|
172
|
+
Unchecked_addColumn(header, cells_1, index_1, forceReplace_1, this$.Headers, this$.Values);
|
|
173
|
+
Unchecked_fillMissingCells(this$.Headers, this$.Values);
|
|
174
|
+
}
|
|
175
|
+
static addColumn(header, cells, index, forceReplace) {
|
|
176
|
+
return (table) => {
|
|
177
|
+
const newTable = table.Copy();
|
|
178
|
+
newTable.AddColumn(header, unwrap(cells), unwrap(index), unwrap(forceReplace));
|
|
179
|
+
return newTable;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
UpdateColumn(columnIndex, header, cells) {
|
|
183
|
+
const this$ = this;
|
|
184
|
+
SanityChecks_validateColumnIndex(columnIndex, this$.ColumnCount, false);
|
|
185
|
+
const column = CompositeColumn.create(header, unwrap(cells));
|
|
186
|
+
SanityChecks_validateColumn(column);
|
|
187
|
+
const header_1 = column.Header;
|
|
188
|
+
const matchValue = tryFindDuplicateUnique(header_1, removeAt(columnIndex, this$.Headers));
|
|
189
|
+
if (matchValue != null) {
|
|
190
|
+
throw new Error(`Invalid input. Tried setting unique header \`${header_1}\`, but header of same type already exists at index ${matchValue}.`);
|
|
191
|
+
}
|
|
192
|
+
Unchecked_removeHeader(columnIndex, this$.Headers);
|
|
193
|
+
Unchecked_removeColumnCells(columnIndex, this$.Values);
|
|
194
|
+
this$.Headers.splice(columnIndex, 0, column.Header);
|
|
195
|
+
iterateIndexed((rowIndex, v) => {
|
|
196
|
+
Unchecked_setCellAt(columnIndex, rowIndex, v, this$.Values);
|
|
197
|
+
}, column.Cells);
|
|
198
|
+
Unchecked_fillMissingCells(this$.Headers, this$.Values);
|
|
199
|
+
}
|
|
200
|
+
static updateColumn(columnIndex, header, cells) {
|
|
201
|
+
return (table) => {
|
|
202
|
+
const newTable = table.Copy();
|
|
203
|
+
newTable.UpdateColumn(columnIndex, header, unwrap(cells));
|
|
204
|
+
return newTable;
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
InsertColumn(index, header, cells) {
|
|
208
|
+
const this$ = this;
|
|
209
|
+
this$.AddColumn(header, unwrap(cells), index, false);
|
|
210
|
+
}
|
|
211
|
+
static insertColumn(index, header, cells) {
|
|
212
|
+
return (table) => {
|
|
213
|
+
const newTable = table.Copy();
|
|
214
|
+
newTable.InsertColumn(index, header, unwrap(cells));
|
|
215
|
+
return newTable;
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
AppendColumn(header, cells) {
|
|
219
|
+
const this$ = this;
|
|
220
|
+
this$.AddColumn(header, unwrap(cells), this$.ColumnCount, false);
|
|
221
|
+
}
|
|
222
|
+
static appendColumn(header, cells) {
|
|
223
|
+
return (table) => {
|
|
224
|
+
const newTable = table.Copy();
|
|
225
|
+
newTable.AppendColumn(header, unwrap(cells));
|
|
226
|
+
return newTable;
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
AddColumns(columns, index, forceReplace) {
|
|
230
|
+
const this$ = this;
|
|
231
|
+
let index_1 = defaultArg(index, this$.ColumnCount);
|
|
232
|
+
const forceReplace_1 = defaultArg(forceReplace, false);
|
|
233
|
+
SanityChecks_validateColumnIndex(index_1, this$.ColumnCount, true);
|
|
234
|
+
const duplicates = tryFindDuplicateUniqueInArray(map((x) => x.Header, columns));
|
|
235
|
+
if (!isEmpty(duplicates)) {
|
|
236
|
+
const sb = StringBuilder_$ctor();
|
|
237
|
+
StringBuilder__AppendLine_Z721C83C5(sb, "Found duplicate unique columns in `columns`.");
|
|
238
|
+
iterate((x_1) => {
|
|
239
|
+
StringBuilder__AppendLine_Z721C83C5(sb, `Duplicate \`${x_1.HeaderType}\` at index ${x_1.Index1} and ${x_1.Index2}.`);
|
|
240
|
+
}, duplicates);
|
|
241
|
+
throw new Error(toString(sb));
|
|
242
|
+
}
|
|
243
|
+
columns.forEach((x_2) => {
|
|
244
|
+
SanityChecks_validateColumn(x_2);
|
|
245
|
+
});
|
|
246
|
+
columns.forEach((col) => {
|
|
247
|
+
const prevHeadersCount = this$.Headers.length | 0;
|
|
248
|
+
Unchecked_addColumn(col.Header, col.Cells, index_1, forceReplace_1, this$.Headers, this$.Values);
|
|
249
|
+
if (this$.Headers.length > prevHeadersCount) {
|
|
250
|
+
index_1 = ((index_1 + 1) | 0);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
Unchecked_fillMissingCells(this$.Headers, this$.Values);
|
|
254
|
+
}
|
|
255
|
+
static addColumns(columns, index) {
|
|
256
|
+
return (table) => {
|
|
257
|
+
const newTable = table.Copy();
|
|
258
|
+
newTable.AddColumns(columns, index);
|
|
259
|
+
return newTable;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
RemoveColumn(index) {
|
|
263
|
+
const this$ = this;
|
|
264
|
+
SanityChecks_validateColumnIndex(index, this$.ColumnCount, false);
|
|
265
|
+
const columnCount = this$.ColumnCount | 0;
|
|
266
|
+
Unchecked_removeHeader(index, this$.Headers);
|
|
267
|
+
Unchecked_removeColumnCells_withIndexChange(index, columnCount, this$.RowCount, this$.Values);
|
|
268
|
+
}
|
|
269
|
+
static removeColumn(index) {
|
|
270
|
+
return (table) => {
|
|
271
|
+
const newTable = table.Copy();
|
|
272
|
+
newTable.RemoveColumn(index);
|
|
273
|
+
return newTable;
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
RemoveColumns(indexArr) {
|
|
277
|
+
const this$ = this;
|
|
278
|
+
indexArr.forEach((index) => {
|
|
279
|
+
SanityChecks_validateColumnIndex(index, this$.ColumnCount, false);
|
|
280
|
+
});
|
|
281
|
+
const indexArr_1 = sortDescending(indexArr, {
|
|
282
|
+
Compare: comparePrimitives,
|
|
283
|
+
});
|
|
284
|
+
indexArr_1.forEach((index_1) => {
|
|
285
|
+
this$.RemoveColumn(index_1);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
static removeColumns(indexArr) {
|
|
289
|
+
return (table) => {
|
|
290
|
+
const newTable = table.Copy();
|
|
291
|
+
newTable.RemoveColumns(indexArr);
|
|
292
|
+
return newTable;
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
GetColumn(columnIndex) {
|
|
296
|
+
const this$ = this;
|
|
297
|
+
SanityChecks_validateColumnIndex(columnIndex, this$.ColumnCount, false);
|
|
298
|
+
const h = this$.Headers[columnIndex];
|
|
299
|
+
const cells = toArray(delay(() => map((i) => value_9(this$.TryGetCellAt(columnIndex, i)), rangeDouble(0, 1, this$.RowCount - 1))));
|
|
300
|
+
return CompositeColumn.create(h, cells);
|
|
301
|
+
}
|
|
302
|
+
static getColumn(index) {
|
|
303
|
+
return (table) => table.GetColumn(index);
|
|
304
|
+
}
|
|
305
|
+
GetColumnByHeader(header) {
|
|
306
|
+
const this$ = this;
|
|
307
|
+
const index = findIndex((x) => equals(x, header), this$.Headers) | 0;
|
|
308
|
+
return this$.GetColumn(index);
|
|
309
|
+
}
|
|
310
|
+
static getColumnByHeader(header) {
|
|
311
|
+
return (table) => table.GetColumnByHeader(header);
|
|
312
|
+
}
|
|
313
|
+
TryGetColumnByHeader(header) {
|
|
314
|
+
const this$ = this;
|
|
315
|
+
return map_2((i) => this$.GetColumn(i), tryFindIndex((x) => equals(x, header), this$.Headers));
|
|
316
|
+
}
|
|
317
|
+
static tryGetColumnByHeader(header) {
|
|
318
|
+
return (table) => table.TryGetColumnByHeader(header);
|
|
319
|
+
}
|
|
320
|
+
AddRow(cells, index) {
|
|
321
|
+
const this$ = this;
|
|
322
|
+
const index_1 = defaultArg(index, this$.RowCount) | 0;
|
|
323
|
+
const cells_1 = (cells == null) ? toArray(delay(() => collect((columnIndex) => singleton(Unchecked_getEmptyCellForHeader(this$.Headers[columnIndex], Unchecked_tryGetCellAt(columnIndex, 0, this$.Values))), rangeDouble(0, 1, this$.ColumnCount - 1)))) : value_9(cells);
|
|
324
|
+
SanityChecks_validateRowIndex(index_1, this$.RowCount, true);
|
|
325
|
+
const columnCount = this$.ColumnCount | 0;
|
|
326
|
+
const newCellsCount = length(cells_1) | 0;
|
|
327
|
+
if (columnCount === 0) {
|
|
328
|
+
throw new Error("Table contains no columns! Cannot add row to empty table!");
|
|
329
|
+
}
|
|
330
|
+
else if (newCellsCount !== columnCount) {
|
|
331
|
+
throw new Error(`Cannot add a new row with ${newCellsCount} cells, as the table has ${columnCount} columns.`);
|
|
332
|
+
}
|
|
333
|
+
for (let columnIndex_1 = 0; columnIndex_1 <= (this$.ColumnCount - 1); columnIndex_1++) {
|
|
334
|
+
const h_1 = this$.Headers[columnIndex_1];
|
|
335
|
+
SanityChecks_validateColumn(CompositeColumn.create(h_1, [cells_1[columnIndex_1]]));
|
|
336
|
+
}
|
|
337
|
+
Unchecked_addRow(index_1, cells_1, this$.Headers, this$.Values);
|
|
338
|
+
}
|
|
339
|
+
static addRow(cells, index) {
|
|
340
|
+
return (table) => {
|
|
341
|
+
const newTable = table.Copy();
|
|
342
|
+
newTable.AddRow(unwrap(cells), unwrap(index));
|
|
343
|
+
return newTable;
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
UpdateRow(rowIndex, cells) {
|
|
347
|
+
const this$ = this;
|
|
348
|
+
SanityChecks_validateRowIndex(rowIndex, this$.RowCount, false);
|
|
349
|
+
const columnCount = this$.RowCount | 0;
|
|
350
|
+
const newCellsCount = length(cells) | 0;
|
|
351
|
+
if (columnCount === 0) {
|
|
352
|
+
throw new Error("Table contains no columns! Cannot add row to empty table!");
|
|
353
|
+
}
|
|
354
|
+
else if (newCellsCount !== columnCount) {
|
|
355
|
+
throw new Error(`Cannot add a new row with ${newCellsCount} cells, as the table has ${columnCount} columns.`);
|
|
356
|
+
}
|
|
357
|
+
iterateIndexed((i, cell) => {
|
|
358
|
+
const h = this$.Headers[i];
|
|
359
|
+
SanityChecks_validateColumn(CompositeColumn.create(h, [cell]));
|
|
360
|
+
}, cells);
|
|
361
|
+
iterateIndexed((columnIndex, cell_1) => {
|
|
362
|
+
Unchecked_setCellAt(columnIndex, rowIndex, cell_1, this$.Values);
|
|
363
|
+
}, cells);
|
|
364
|
+
}
|
|
365
|
+
static updateRow(rowIndex, cells) {
|
|
366
|
+
return (table) => {
|
|
367
|
+
const newTable = table.Copy();
|
|
368
|
+
newTable.UpdateRow(rowIndex, cells);
|
|
369
|
+
return newTable;
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
AppendRow(cells) {
|
|
373
|
+
const this$ = this;
|
|
374
|
+
this$.AddRow(unwrap(cells), this$.RowCount);
|
|
375
|
+
}
|
|
376
|
+
static appendRow(cells) {
|
|
377
|
+
return (table) => {
|
|
378
|
+
const newTable = table.Copy();
|
|
379
|
+
newTable.AppendRow(unwrap(cells));
|
|
380
|
+
return newTable;
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
InsertRow(index, cells) {
|
|
384
|
+
const this$ = this;
|
|
385
|
+
this$.AddRow(unwrap(cells), index);
|
|
386
|
+
}
|
|
387
|
+
static insertRow(index, cells) {
|
|
388
|
+
return (table) => {
|
|
389
|
+
const newTable = table.Copy();
|
|
390
|
+
newTable.AddRow(unwrap(cells), index);
|
|
391
|
+
return newTable;
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
AddRows(rows, index) {
|
|
395
|
+
const this$ = this;
|
|
396
|
+
let index_1 = defaultArg(index, this$.RowCount);
|
|
397
|
+
SanityChecks_validateRowIndex(index_1, this$.RowCount, true);
|
|
398
|
+
rows.forEach((row) => {
|
|
399
|
+
const columnCount = this$.ColumnCount | 0;
|
|
400
|
+
const newCellsCount = length(row) | 0;
|
|
401
|
+
if (columnCount === 0) {
|
|
402
|
+
throw new Error("Table contains no columns! Cannot add row to empty table!");
|
|
403
|
+
}
|
|
404
|
+
else if (newCellsCount !== columnCount) {
|
|
405
|
+
throw new Error(`Cannot add a new row with ${newCellsCount} cells, as the table has ${columnCount} columns.`);
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
for (let idx = 0; idx <= (rows.length - 1); idx++) {
|
|
409
|
+
const row_1 = rows[idx];
|
|
410
|
+
for (let columnIndex = 0; columnIndex <= (this$.ColumnCount - 1); columnIndex++) {
|
|
411
|
+
const h = this$.Headers[columnIndex];
|
|
412
|
+
SanityChecks_validateColumn(CompositeColumn.create(h, [row_1[columnIndex]]));
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
rows.forEach((row_2) => {
|
|
416
|
+
Unchecked_addRow(index_1, row_2, this$.Headers, this$.Values);
|
|
417
|
+
index_1 = ((index_1 + 1) | 0);
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
static addRows(rows, index) {
|
|
421
|
+
return (table) => {
|
|
422
|
+
const newTable = table.Copy();
|
|
423
|
+
newTable.AddRows(rows, unwrap(index));
|
|
424
|
+
return newTable;
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
AddRowsEmpty(rowCount, index) {
|
|
428
|
+
const this$ = this;
|
|
429
|
+
const row = toArray(delay(() => collect((columnIndex) => singleton(Unchecked_getEmptyCellForHeader(this$.Headers[columnIndex], Unchecked_tryGetCellAt(columnIndex, 0, this$.Values))), rangeDouble(0, 1, this$.ColumnCount - 1))));
|
|
430
|
+
const rows = initialize(rowCount, (_arg) => row);
|
|
431
|
+
this$.AddRows(rows, unwrap(index));
|
|
432
|
+
}
|
|
433
|
+
static addRowsEmpty(rowCount, index) {
|
|
434
|
+
return (table) => {
|
|
435
|
+
const newTable = table.Copy();
|
|
436
|
+
newTable.AddRowsEmpty(rowCount, unwrap(index));
|
|
437
|
+
return newTable;
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
RemoveRow(index) {
|
|
441
|
+
const this$ = this;
|
|
442
|
+
SanityChecks_validateRowIndex(index, this$.RowCount, false);
|
|
443
|
+
const removeCells = Unchecked_removeRowCells_withIndexChange(index, this$.ColumnCount, this$.RowCount, this$.Values);
|
|
444
|
+
}
|
|
445
|
+
static removeRow(index) {
|
|
446
|
+
return (table) => {
|
|
447
|
+
const newTable = table.Copy();
|
|
448
|
+
newTable.RemoveRow(index);
|
|
449
|
+
return newTable;
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
RemoveRows(indexArr) {
|
|
453
|
+
const this$ = this;
|
|
454
|
+
indexArr.forEach((index) => {
|
|
455
|
+
SanityChecks_validateRowIndex(index, this$.RowCount, false);
|
|
456
|
+
});
|
|
457
|
+
const indexArr_1 = sortDescending(indexArr, {
|
|
458
|
+
Compare: comparePrimitives,
|
|
459
|
+
});
|
|
460
|
+
indexArr_1.forEach((index_1) => {
|
|
461
|
+
this$.RemoveRow(index_1);
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
static removeRows(indexArr) {
|
|
465
|
+
return (table) => {
|
|
466
|
+
const newTable = table.Copy();
|
|
467
|
+
newTable.RemoveColumns(indexArr);
|
|
468
|
+
return newTable;
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
GetRow(rowIndex) {
|
|
472
|
+
const this$ = this;
|
|
473
|
+
SanityChecks_validateRowIndex(rowIndex, this$.RowCount, false);
|
|
474
|
+
return toArray(delay(() => map((columnIndex) => value_9(this$.TryGetCellAt(columnIndex, rowIndex)), rangeDouble(0, 1, this$.ColumnCount - 1))));
|
|
475
|
+
}
|
|
476
|
+
static getRow(index) {
|
|
477
|
+
return (table) => table.GetRow(index);
|
|
478
|
+
}
|
|
479
|
+
static insertParameterValue(t, p) {
|
|
480
|
+
throw new Error();
|
|
481
|
+
}
|
|
482
|
+
static getParameterValues(t) {
|
|
483
|
+
throw new Error();
|
|
484
|
+
}
|
|
485
|
+
AddProtocolTypeColumn(types, index) {
|
|
486
|
+
const this$ = this;
|
|
487
|
+
const cells = map_2((array) => map_1((arg) => (new CompositeCell(0, [arg])), array), types);
|
|
488
|
+
this$.AddColumn(new CompositeHeader(4, []), cells, index);
|
|
489
|
+
}
|
|
490
|
+
AddProtocolVersionColumn(versions, index) {
|
|
491
|
+
const this$ = this;
|
|
492
|
+
const cells = map_2((array) => map_1((arg) => (new CompositeCell(1, [arg])), array), versions);
|
|
493
|
+
this$.AddColumn(new CompositeHeader(7, []), cells, index);
|
|
494
|
+
}
|
|
495
|
+
AddProtocolUriColumn(uris, index) {
|
|
496
|
+
const this$ = this;
|
|
497
|
+
const cells = map_2((array) => map_1((arg) => (new CompositeCell(1, [arg])), array), uris);
|
|
498
|
+
this$.AddColumn(new CompositeHeader(6, []), cells, index);
|
|
499
|
+
}
|
|
500
|
+
AddProtocolDescriptionColumn(descriptions, index) {
|
|
501
|
+
const this$ = this;
|
|
502
|
+
const cells = map_2((array) => map_1((arg) => (new CompositeCell(1, [arg])), array), descriptions);
|
|
503
|
+
this$.AddColumn(new CompositeHeader(5, []), cells, index);
|
|
504
|
+
}
|
|
505
|
+
AddProtocolNameColumn(names, index) {
|
|
506
|
+
const this$ = this;
|
|
507
|
+
const cells = map_2((array) => map_1((arg) => (new CompositeCell(1, [arg])), array), names);
|
|
508
|
+
this$.AddColumn(new CompositeHeader(8, []), cells, index);
|
|
509
|
+
}
|
|
510
|
+
GetProtocolTypeColumn() {
|
|
511
|
+
const this$ = this;
|
|
512
|
+
return this$.GetColumnByHeader(new CompositeHeader(4, []));
|
|
513
|
+
}
|
|
514
|
+
GetProtocolVersionColumn() {
|
|
515
|
+
const this$ = this;
|
|
516
|
+
return this$.GetColumnByHeader(new CompositeHeader(7, []));
|
|
517
|
+
}
|
|
518
|
+
GetProtocolUriColumn() {
|
|
519
|
+
const this$ = this;
|
|
520
|
+
return this$.GetColumnByHeader(new CompositeHeader(6, []));
|
|
521
|
+
}
|
|
522
|
+
GetProtocolDescriptionColumn() {
|
|
523
|
+
const this$ = this;
|
|
524
|
+
return this$.GetColumnByHeader(new CompositeHeader(5, []));
|
|
525
|
+
}
|
|
526
|
+
GetProtocolNameColumn() {
|
|
527
|
+
const this$ = this;
|
|
528
|
+
return this$.GetColumnByHeader(new CompositeHeader(8, []));
|
|
529
|
+
}
|
|
530
|
+
TryGetProtocolNameColumn() {
|
|
531
|
+
const this$ = this;
|
|
532
|
+
return this$.TryGetColumnByHeader(new CompositeHeader(8, []));
|
|
533
|
+
}
|
|
534
|
+
GetComponentColumns() {
|
|
535
|
+
const this$ = this;
|
|
536
|
+
return map_1((h_1) => this$.GetColumnByHeader(h_1), toArray(filter((h) => h.isComponent, this$.Headers)));
|
|
537
|
+
}
|
|
538
|
+
static fromProtocol(p) {
|
|
539
|
+
const t = ArcTable.init(defaultArg(p.Name, createMissingIdentifier()));
|
|
540
|
+
const enumerator = getEnumerator(defaultArg(p.Parameters, empty()));
|
|
541
|
+
try {
|
|
542
|
+
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
543
|
+
const pp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
544
|
+
t.AddColumn(new CompositeHeader(3, [value_9(pp.ParameterName)]), void 0, ARCtrl_ISA_ProtocolParameter__ProtocolParameter_TryGetColumnIndex(pp));
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
finally {
|
|
548
|
+
disposeSafe(enumerator);
|
|
549
|
+
}
|
|
550
|
+
const enumerator_1 = getEnumerator(defaultArg(p.Components, empty()));
|
|
551
|
+
try {
|
|
552
|
+
while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
|
|
553
|
+
const c = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
554
|
+
const v_1 = map_2((arg) => singleton_1(CompositeCell.fromValue(arg, unwrap(c.ComponentUnit))), c.ComponentValue);
|
|
555
|
+
t.AddColumn(new CompositeHeader(3, [value_9(c.ComponentType)]), v_1, ARCtrl_ISA_Component__Component_TryGetColumnIndex(c));
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
finally {
|
|
559
|
+
disposeSafe(enumerator_1);
|
|
560
|
+
}
|
|
561
|
+
map_2((d) => {
|
|
562
|
+
t.AddProtocolDescriptionColumn([d]);
|
|
563
|
+
}, p.Description);
|
|
564
|
+
map_2((d_1) => {
|
|
565
|
+
t.AddProtocolVersionColumn([d_1]);
|
|
566
|
+
}, p.Version);
|
|
567
|
+
map_2((d_2) => {
|
|
568
|
+
t.AddProtocolTypeColumn([d_2]);
|
|
569
|
+
}, p.ProtocolType);
|
|
570
|
+
map_2((d_3) => {
|
|
571
|
+
t.AddProtocolUriColumn([d_3]);
|
|
572
|
+
}, p.Uri);
|
|
573
|
+
map_2((d_4) => {
|
|
574
|
+
t.AddProtocolNameColumn([d_4]);
|
|
575
|
+
}, p.Name);
|
|
576
|
+
return t;
|
|
577
|
+
}
|
|
578
|
+
GetProtocols() {
|
|
579
|
+
let source;
|
|
580
|
+
const this$ = this;
|
|
581
|
+
return (this$.RowCount === 0) ? singleton_2((source = this$.Headers, fold((p, h) => {
|
|
582
|
+
switch (h.tag) {
|
|
583
|
+
case 4:
|
|
584
|
+
return Protocol_setProtocolType(p, OntologyAnnotation.empty);
|
|
585
|
+
case 7:
|
|
586
|
+
return Protocol_setVersion(p, "");
|
|
587
|
+
case 6:
|
|
588
|
+
return Protocol_setUri(p, "");
|
|
589
|
+
case 5:
|
|
590
|
+
return Protocol_setDescription(p, "");
|
|
591
|
+
case 8:
|
|
592
|
+
return Protocol_setName(p, "");
|
|
593
|
+
case 3:
|
|
594
|
+
return Protocol_addParameter(ProtocolParameter_create_Z6C54B221(void 0, h.fields[0]), p);
|
|
595
|
+
case 0:
|
|
596
|
+
return Protocol_addComponent(Component_create_61502994(void 0, void 0, void 0, h.fields[0]), p);
|
|
597
|
+
default:
|
|
598
|
+
return p;
|
|
599
|
+
}
|
|
600
|
+
}, Protocol_create_Z7DFD6E67(void 0, this$.Name), source))) : List_distinct(initialize_1(this$.RowCount, (i) => {
|
|
601
|
+
let row;
|
|
602
|
+
const source_2 = this$.GetRow(i);
|
|
603
|
+
row = zip(this$.Headers, source_2);
|
|
604
|
+
return toProtocol(this$.Name, row);
|
|
605
|
+
}), {
|
|
606
|
+
Equals: equals,
|
|
607
|
+
GetHashCode: safeHash,
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
GetProcesses() {
|
|
611
|
+
const this$ = this;
|
|
612
|
+
if (this$.RowCount === 0) {
|
|
613
|
+
return singleton_2(Process_create_Z42860F3E(void 0, this$.Name));
|
|
614
|
+
}
|
|
615
|
+
else {
|
|
616
|
+
let getter;
|
|
617
|
+
const clo = ProcessParsing_getProcessGetter(this$.Name, this$.Headers);
|
|
618
|
+
getter = ((arg) => {
|
|
619
|
+
const clo_1 = clo(arg);
|
|
620
|
+
return clo_1;
|
|
621
|
+
});
|
|
622
|
+
return ProcessParsing_mergeIdenticalProcesses(toList(delay(() => map((i) => getter(this$.Values)(i), rangeDouble(0, 1, this$.RowCount - 1)))));
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
static fromProcesses(name, ps) {
|
|
626
|
+
const tupledArg = ProcessParsing_alignByHeaders(true, collect_1(ProcessParsing_processToRows, ps));
|
|
627
|
+
return ArcTable.create(name, tupledArg[0], tupledArg[1]);
|
|
628
|
+
}
|
|
629
|
+
static SplitByColumnValues(columnIndex) {
|
|
630
|
+
return (table) => mapIndexed((i, indexGroup) => {
|
|
631
|
+
let headers;
|
|
632
|
+
const arg = table.Headers;
|
|
633
|
+
headers = Array.from(arg);
|
|
634
|
+
const rows = map_1((i_1) => table.GetRow(i_1), indexGroup);
|
|
635
|
+
return ArcTable.createFromRows(table.Name, headers, rows);
|
|
636
|
+
}, map_1((tupledArg) => map_1((tuple_1) => tuple_1[0], tupledArg[1], Int32Array), Array_groupBy((tuple) => tuple[1], indexed(table.GetColumn(columnIndex).Cells), {
|
|
637
|
+
Equals: equals,
|
|
638
|
+
GetHashCode: safeHash,
|
|
639
|
+
})));
|
|
640
|
+
}
|
|
641
|
+
static SplitByColumnValuesByHeader(header) {
|
|
642
|
+
return (table) => {
|
|
643
|
+
const index = tryFindIndex((x) => equals(x, header), table.Headers);
|
|
644
|
+
if (index == null) {
|
|
645
|
+
return [table.Copy()];
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
const i = index | 0;
|
|
649
|
+
return ArcTable.SplitByColumnValues(i)(table);
|
|
650
|
+
}
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
static get SplitByProtocolREF() {
|
|
654
|
+
return (table) => ArcTable.SplitByColumnValuesByHeader(new CompositeHeader(8, []))(table);
|
|
655
|
+
}
|
|
656
|
+
static updateReferenceByAnnotationTable(refTable, annotationTable) {
|
|
657
|
+
const refTable_1 = refTable.Copy();
|
|
658
|
+
const annotationTable_1 = annotationTable.Copy();
|
|
659
|
+
const nonProtocolColumns = toArray(choose((tupledArg) => {
|
|
660
|
+
if (tupledArg[1].isProtocolColumn) {
|
|
661
|
+
return void 0;
|
|
662
|
+
}
|
|
663
|
+
else {
|
|
664
|
+
return tupledArg[0];
|
|
665
|
+
}
|
|
666
|
+
}, indexed_1(refTable_1.Headers)));
|
|
667
|
+
refTable_1.RemoveColumns(nonProtocolColumns);
|
|
668
|
+
Unchecked_extendToRowCount(annotationTable_1.RowCount, refTable_1.Headers, refTable_1.Values);
|
|
669
|
+
const enumerator = getEnumerator(annotationTable_1.Columns);
|
|
670
|
+
try {
|
|
671
|
+
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
672
|
+
const c = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
673
|
+
refTable_1.AddColumn(c.Header, c.Cells, void 0, true);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
finally {
|
|
677
|
+
disposeSafe(enumerator);
|
|
678
|
+
}
|
|
679
|
+
return refTable_1;
|
|
680
|
+
}
|
|
681
|
+
static append(table1, table2) {
|
|
682
|
+
const getList = (t) => toList(delay(() => map((row) => toList(delay(() => map((col) => [t.Headers[col], getItemFromDict(t.Values, [col, row])], rangeDouble(0, 1, t.ColumnCount - 1)))), rangeDouble(0, 1, t.RowCount - 1))));
|
|
683
|
+
const patternInput = ProcessParsing_alignByHeaders(false, append(getList(table1), getList(table2)));
|
|
684
|
+
return ArcTable.create(table1.Name, patternInput[0], patternInput[1]);
|
|
685
|
+
}
|
|
686
|
+
toString() {
|
|
687
|
+
const this$ = this;
|
|
688
|
+
return join("\n", toList(delay(() => append_1(singleton(`Table: ${this$.Name}`), delay(() => append_1(singleton("-------------"), delay(() => append_1(singleton(join("\t|\t", map(toString, this$.Headers))), delay(() => map((rowI) => join("\t|\t", map(toString, this$.GetRow(rowI))), rangeDouble(0, 1, this$.RowCount - 1)))))))))));
|
|
689
|
+
}
|
|
690
|
+
StructurallyEquals(other) {
|
|
691
|
+
let a, b;
|
|
692
|
+
const this$ = this;
|
|
693
|
+
if ((this$.Name === other.Name) && ((a = this$.Headers, (b = other.Headers, (length(a) === length(b)) && fold((acc, e) => {
|
|
694
|
+
if (acc) {
|
|
695
|
+
return e;
|
|
696
|
+
}
|
|
697
|
+
else {
|
|
698
|
+
return false;
|
|
699
|
+
}
|
|
700
|
+
}, true, toList(delay(() => map((i) => equals(item(i, a), item(i, b)), rangeDouble(0, 1, length(a) - 1))))))))) {
|
|
701
|
+
const a_1 = sortBy((x) => x[0], this$.Values, {
|
|
702
|
+
Compare: compareArrays,
|
|
703
|
+
});
|
|
704
|
+
const b_1 = sortBy((x_2) => x_2[0], other.Values, {
|
|
705
|
+
Compare: compareArrays,
|
|
706
|
+
});
|
|
707
|
+
return (length(a_1) === length(b_1)) && fold((acc_1, e_1) => {
|
|
708
|
+
if (acc_1) {
|
|
709
|
+
return e_1;
|
|
710
|
+
}
|
|
711
|
+
else {
|
|
712
|
+
return false;
|
|
713
|
+
}
|
|
714
|
+
}, true, toList(delay(() => map((i_1) => equals(item(i_1, a_1), item(i_1, b_1)), rangeDouble(0, 1, length(a_1) - 1)))));
|
|
715
|
+
}
|
|
716
|
+
else {
|
|
717
|
+
return false;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
ReferenceEquals(other) {
|
|
721
|
+
const this$ = this;
|
|
722
|
+
return this$ === other;
|
|
723
|
+
}
|
|
724
|
+
Equals(other) {
|
|
725
|
+
let table;
|
|
726
|
+
const this$ = this;
|
|
727
|
+
return (other instanceof ArcTable) && ((table = other, this$.StructurallyEquals(table)));
|
|
728
|
+
}
|
|
729
|
+
GetHashCode() {
|
|
730
|
+
const this$ = this;
|
|
731
|
+
return ((stringHash(this$.Name) + fold((state, ele) => (state + safeHash(ele)), 0, this$.Headers)) + fold((state_2, ele_1) => (state_2 + safeHash(ele_1)), 0, sortBy((x) => x[0], this$.Values, {
|
|
732
|
+
Compare: compareArrays,
|
|
733
|
+
}))) | 0;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
export function ArcTable_$reflection() {
|
|
738
|
+
return class_type("ARCtrl.ISA.ArcTable", void 0, ArcTable);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
export function ArcTable_$ctor_474CDC4E(name, headers, values) {
|
|
742
|
+
return new ArcTable(name, headers, values);
|
|
743
|
+
}
|
|
744
|
+
|