@nfdi4plants/arctrl 2.0.0-beta.1 → 2.0.0-beta.8

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 (163) hide show
  1. package/ARC.js +12 -8
  2. package/Contract/ArcAssay.js +4 -4
  3. package/Contract/ArcStudy.js +3 -3
  4. package/Contract/Datamap.js +1 -1
  5. package/Contract/ValidationPackagesConfig.js +95 -0
  6. package/Core/ArcTypes.js +4 -4
  7. package/Core/Conversion.js +13 -13
  8. package/Core/DataContext.js +53 -6
  9. package/Core/{Table/DataMap.js → DataMap.js} +34 -22
  10. package/Core/Process/Component.js +15 -5
  11. package/Core/Process/FactorValue.js +14 -5
  12. package/Core/Process/MaterialAttributeValue.js +14 -5
  13. package/Core/Process/ProcessParameterValue.js +11 -2
  14. package/Core/Table/CompositeCell.js +12 -23
  15. package/Core/{Process/Value.js → Value.js} +9 -9
  16. package/Json/Assay.js +10 -9
  17. package/Json/{Process/Data.js → Data.js} +17 -17
  18. package/Json/{Process/DataFile.js → DataFile.js} +9 -9
  19. package/Json/DataMap/DataContext.js +30 -0
  20. package/Json/DataMap/DataMap.js +25 -0
  21. package/Json/Encode.js +10 -1
  22. package/Json/Process/Component.js +1 -1
  23. package/Json/Process/FactorValue.js +1 -1
  24. package/Json/Process/MaterialAttributeValue.js +1 -1
  25. package/Json/Process/ProcessInput.js +1 -1
  26. package/Json/Process/ProcessOutput.js +1 -1
  27. package/Json/Process/ProcessParameterValue.js +2 -2
  28. package/Json/Process/Value.js +3 -3
  29. package/Json/{Process/PropertyValue.js → PropertyValue.js} +30 -21
  30. package/Json/Study.js +9 -8
  31. package/Json/Table/CompositeCell.js +1 -1
  32. package/Json/context/rocrate/isa_data_context.js +2 -2
  33. package/Json/context/rocrate/isa_investigation_context.js +1 -1
  34. package/Json/context/rocrate/property_value_context.js +1 -1
  35. package/Spreadsheet/AnnotationTable/ArcTable.js +5 -5
  36. package/Spreadsheet/AnnotationTable/CompositeColumn.js +10 -8
  37. package/Spreadsheet/ArcAssay.js +32 -16
  38. package/Spreadsheet/ArcInvestigation.js +2 -2
  39. package/Spreadsheet/ArcStudy.js +26 -10
  40. package/Spreadsheet/DataMap.js +2 -2
  41. package/Spreadsheet/DataMapTable/DataMapColumn.js +1 -1
  42. package/Spreadsheet/DataMapTable/DataMapHeader.js +1 -1
  43. package/Spreadsheet/DataMapTable/DataMapTable.js +8 -8
  44. package/Spreadsheet/Metadata/SparseTable.js +7 -7
  45. package/Spreadsheet/Template.js +2 -2
  46. package/ValidationPackages/ValidationPackage.js +54 -0
  47. package/ValidationPackages/ValidationPackagesConfig.js +55 -0
  48. package/Xlsx.js +9 -9
  49. package/Yaml/Encode.js +8 -0
  50. package/Yaml/ValidationPackage.js +47 -0
  51. package/Yaml/ValidationPackagesConfig.js +48 -0
  52. package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsSpreadsheet.fableproj +1 -0
  53. package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsWorksheet.fs +4 -0
  54. package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsWorksheet.fs.js +9 -1
  55. package/fable_modules/FsSpreadsheet.6.2.0/Json/Cell.fs +45 -0
  56. package/fable_modules/FsSpreadsheet.6.2.0/Json/Cell.fs.js +38 -0
  57. package/fable_modules/FsSpreadsheet.6.2.0/Json/Column.fs +28 -0
  58. package/fable_modules/FsSpreadsheet.6.2.0/Json/Column.fs.js +24 -0
  59. package/fable_modules/FsSpreadsheet.6.2.0/Json/Row.fs +28 -0
  60. package/fable_modules/FsSpreadsheet.6.2.0/Json/Row.fs.js +24 -0
  61. package/fable_modules/FsSpreadsheet.6.2.0/Json/Workbook.fs +33 -0
  62. package/fable_modules/FsSpreadsheet.6.2.0/Json/Workbook.fs.js +35 -0
  63. package/fable_modules/FsSpreadsheet.6.2.0/Json/Worksheet.fs +148 -0
  64. package/fable_modules/FsSpreadsheet.6.2.0/Json/Worksheet.fs.js +109 -0
  65. package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/obj/Release/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +3 -3
  66. package/fable_modules/YAMLicious.0.0.1/Decode.fs +374 -0
  67. package/fable_modules/YAMLicious.0.0.1/Decode.fs.js +1684 -0
  68. package/fable_modules/YAMLicious.0.0.1/Encode.fs +148 -0
  69. package/fable_modules/YAMLicious.0.0.1/Encode.fs.js +74 -0
  70. package/fable_modules/YAMLicious.0.0.1/Interop/JsInterop.fs +14 -0
  71. package/fable_modules/YAMLicious.0.0.1/Interop/JsInterop.fs.js +11 -0
  72. package/fable_modules/YAMLicious.0.0.1/Interop/PyInterop.fs +9 -0
  73. package/fable_modules/YAMLicious.0.0.1/Library.fs +138 -0
  74. package/fable_modules/YAMLicious.0.0.1/Library.fs.js +7 -0
  75. package/fable_modules/YAMLicious.0.0.1/Persil.fs +86 -0
  76. package/fable_modules/YAMLicious.0.0.1/Persil.fs.js +49 -0
  77. package/fable_modules/YAMLicious.0.0.1/Preprocessing.fs +59 -0
  78. package/fable_modules/YAMLicious.0.0.1/Preprocessing.fs.js +102 -0
  79. package/fable_modules/YAMLicious.0.0.1/Reader.fs +295 -0
  80. package/fable_modules/YAMLicious.0.0.1/Reader.fs.js +530 -0
  81. package/fable_modules/YAMLicious.0.0.1/Regex.fs +108 -0
  82. package/fable_modules/YAMLicious.0.0.1/Regex.fs.js +19 -0
  83. package/fable_modules/YAMLicious.0.0.1/RegexActivePatterns.fs +166 -0
  84. package/fable_modules/YAMLicious.0.0.1/RegexActivePatterns.fs.js +225 -0
  85. package/fable_modules/YAMLicious.0.0.1/Writer.fs +84 -0
  86. package/fable_modules/YAMLicious.0.0.1/Writer.fs.js +161 -0
  87. package/fable_modules/YAMLicious.0.0.1/YAMLicious.fableproj +39 -0
  88. package/fable_modules/YAMLicious.0.0.1/YAMLiciousTypes.fs +82 -0
  89. package/fable_modules/YAMLicious.0.0.1/YAMLiciousTypes.fs.js +130 -0
  90. package/fable_modules/YAMLicious.0.0.1/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
  91. package/fable_modules/YAMLicious.0.0.1/obj/Debug/netstandard2.0/YAMLicious.AssemblyInfo.fs +19 -0
  92. package/fable_modules/YAMLicious.0.0.1/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +3 -0
  93. package/fable_modules/YAMLicious.0.0.1/obj/Release/netstandard2.0/YAMLicious.AssemblyInfo.fs +19 -0
  94. package/fable_modules/project_cracked.json +1 -1
  95. package/index.js +1 -0
  96. package/package.json +1 -1
  97. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs +0 -23
  98. package/fable_modules/FsSpreadsheet.6.1.2/Json/Cell.fs.js +0 -21
  99. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs +0 -23
  100. package/fable_modules/FsSpreadsheet.6.1.2/Json/Row.fs.js +0 -19
  101. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs +0 -20
  102. package/fable_modules/FsSpreadsheet.6.1.2/Json/Workbook.fs.js +0 -21
  103. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs +0 -49
  104. package/fable_modules/FsSpreadsheet.6.1.2/Json/Worksheet.fs.js +0 -44
  105. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Cells/FsCell.fs +0 -0
  106. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Cells/FsCell.fs.js +0 -0
  107. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Cells/FsCellsCollection.fs +0 -0
  108. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Cells/FsCellsCollection.fs.js +0 -0
  109. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/CellBuilder.fs +0 -0
  110. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/CellBuilder.fs.js +0 -0
  111. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/ColumnBuilder.fs +0 -0
  112. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/ColumnBuilder.fs.js +0 -0
  113. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/DSL.fs +0 -0
  114. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/DSL.fs.js +0 -0
  115. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Expression.fs +0 -0
  116. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Expression.fs.js +0 -0
  117. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Operators.fs +0 -0
  118. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Operators.fs.js +0 -0
  119. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/RowBuilder.fs +0 -0
  120. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/RowBuilder.fs.js +0 -0
  121. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/SheetBuilder.fs +0 -0
  122. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/SheetBuilder.fs.js +0 -0
  123. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/TableBuilder.fs +0 -0
  124. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/TableBuilder.fs.js +0 -0
  125. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Transform.fs +0 -0
  126. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Transform.fs.js +0 -0
  127. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Types.fs +0 -0
  128. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/Types.fs.js +0 -0
  129. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/WorkbookBuilder.fs +0 -0
  130. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/DSL/WorkbookBuilder.fs.js +0 -0
  131. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsAddress.fs +0 -0
  132. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsAddress.fs.js +0 -0
  133. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsColumn.fs +0 -0
  134. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsColumn.fs.js +0 -0
  135. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsRow.fs +0 -0
  136. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsRow.fs.js +0 -0
  137. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsWorkbook.fs +0 -0
  138. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/FsWorkbook.fs.js +0 -0
  139. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Json/Table.fs +0 -0
  140. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Json/Table.fs.js +0 -0
  141. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Json/Value.fs +0 -0
  142. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Json/Value.fs.js +0 -0
  143. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRange.fs +0 -0
  144. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRange.fs.js +0 -0
  145. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeAddress.fs +0 -0
  146. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeAddress.fs.js +0 -0
  147. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeBase.fs +0 -0
  148. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeBase.fs.js +0 -0
  149. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeColumn.fs +0 -0
  150. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeColumn.fs.js +0 -0
  151. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeRow.fs +0 -0
  152. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Ranges/FsRangeRow.fs.js +0 -0
  153. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/SheetBuilder.fs +0 -0
  154. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/SheetBuilder.fs.js +0 -0
  155. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTable.fs +0 -0
  156. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTable.fs.js +0 -0
  157. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTableField.fs +0 -0
  158. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTableField.fs.js +0 -0
  159. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTableRow.fs +0 -0
  160. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/Tables/FsTableRow.fs.js +0 -0
  161. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
  162. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/obj/Debug/netstandard2.0/FsSpreadsheet.AssemblyInfo.fs +0 -0
  163. /package/fable_modules/{FsSpreadsheet.6.1.2 → FsSpreadsheet.6.2.0}/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.fs +0 -0
@@ -0,0 +1,109 @@
1
+ import { seq } from "../../Thoth.Json.Core.0.2.1/Encode.fs.js";
2
+ import { iterate, empty, isEmpty, append, singleton, collect, map, delay, toList } from "../../fable-library-js.4.16.0/Seq.js";
3
+ import { decode as decode_1, encode, encodeNoNumbers } from "./Row.fs.js";
4
+ import { FsCellsCollection__TryGetCell_Z37302880 } from "../Cells/FsCellsCollection.fs.js";
5
+ import { FsCell } from "../Cells/FsCell.fs.js";
6
+ import { rangeDouble } from "../../fable-library-js.4.16.0/Range.js";
7
+ import { Json } from "../../Thoth.Json.Core.0.2.1/Types.fs.js";
8
+ import { decode, encode as encode_1 } from "./Table.fs.js";
9
+ import { seq as seq_1, string, object } from "../../Thoth.Json.Core.0.2.1/Decode.fs.js";
10
+ import { defaultArg } from "../../fable-library-js.4.16.0/Option.js";
11
+ import { FsWorksheet } from "../FsWorksheet.fs.js";
12
+ import { decode as decode_2, encode as encode_2, encodeNoNumbers as encodeNoNumbers_1 } from "./Column.fs.js";
13
+
14
+ export function encodeRows(noNumbering, sheet) {
15
+ sheet.RescanRows();
16
+ const jRows = noNumbering ? seq(toList(delay(() => map((r) => encodeNoNumbers(toList(delay(() => collect((c) => {
17
+ const matchValue = FsCellsCollection__TryGetCell_Z37302880(sheet.CellCollection, r, c);
18
+ return (matchValue == null) ? singleton(new FsCell("")) : singleton(matchValue);
19
+ }, rangeDouble(1, 1, sheet.MaxColumnIndex))))), rangeDouble(1, 1, sheet.MaxRowIndex))))) : seq(map(encode, sheet.Rows));
20
+ return new Json(5, [toList(delay(() => append(singleton(["name", new Json(0, [sheet.Name])]), delay(() => append(!isEmpty(sheet.Tables) ? singleton(["tables", seq(map(encode_1, sheet.Tables))]) : empty(), delay(() => singleton(["rows", jRows])))))))]);
21
+ }
22
+
23
+ export const decodeRows = object((builder) => {
24
+ let arg_5, objectArg_2;
25
+ let rowIndex = 0;
26
+ let n;
27
+ const objectArg = builder.Required;
28
+ n = objectArg.Field("name", string);
29
+ let ts;
30
+ const arg_3 = seq_1(decode);
31
+ const objectArg_1 = builder.Optional;
32
+ ts = objectArg_1.Field("tables", arg_3);
33
+ const rs = defaultArg((arg_5 = seq_1(decode_1), (objectArg_2 = builder.Optional, objectArg_2.Field("rows", arg_5))), empty());
34
+ const sheet = new FsWorksheet(n);
35
+ iterate((tupledArg) => {
36
+ const rowI = tupledArg[0];
37
+ let colIndex = 0;
38
+ const rowI_1 = ((rowI == null) ? (rowIndex + 1) : rowI) | 0;
39
+ rowIndex = (rowI_1 | 0);
40
+ const r = sheet.Row(rowI_1);
41
+ iterate((cell) => {
42
+ let colI;
43
+ const matchValue = cell.ColumnNumber | 0;
44
+ colI = ((matchValue === 0) ? (colIndex + 1) : matchValue);
45
+ colIndex = (colI | 0);
46
+ const c = r.Item(colI);
47
+ c.Value = cell.Value;
48
+ c.DataType = cell.DataType;
49
+ }, tupledArg[1]);
50
+ }, rs);
51
+ if (ts == null) {
52
+ }
53
+ else {
54
+ iterate((t) => {
55
+ sheet.AddTable(t);
56
+ }, ts);
57
+ }
58
+ return sheet;
59
+ });
60
+
61
+ export function encodeColumns(noNumbering, sheet) {
62
+ sheet.RescanRows();
63
+ const jColumns = noNumbering ? seq(toList(delay(() => map((c) => encodeNoNumbers_1(toList(delay(() => collect((r) => {
64
+ const matchValue = FsCellsCollection__TryGetCell_Z37302880(sheet.CellCollection, r, c);
65
+ return (matchValue == null) ? singleton(new FsCell("")) : singleton(matchValue);
66
+ }, rangeDouble(1, 1, sheet.MaxRowIndex))))), rangeDouble(1, 1, sheet.MaxColumnIndex))))) : seq(map(encode_2, sheet.Columns));
67
+ return new Json(5, [toList(delay(() => append(singleton(["name", new Json(0, [sheet.Name])]), delay(() => append(!isEmpty(sheet.Tables) ? singleton(["tables", seq(map(encode_1, sheet.Tables))]) : empty(), delay(() => singleton(["columns", jColumns])))))))]);
68
+ }
69
+
70
+ export const decodeColumns = object((builder) => {
71
+ let colIndex = 0;
72
+ let n;
73
+ const objectArg = builder.Required;
74
+ n = objectArg.Field("name", string);
75
+ let ts;
76
+ const arg_3 = seq_1(decode);
77
+ const objectArg_1 = builder.Optional;
78
+ ts = objectArg_1.Field("tables", arg_3);
79
+ let cs;
80
+ const arg_5 = seq_1(decode_2);
81
+ const objectArg_2 = builder.Required;
82
+ cs = objectArg_2.Field("columns", arg_5);
83
+ const sheet = new FsWorksheet(n);
84
+ iterate((tupledArg) => {
85
+ const colI = tupledArg[0];
86
+ let rowIndex = 0;
87
+ const colI_1 = ((colI == null) ? (colIndex + 1) : colI) | 0;
88
+ colIndex = (colI_1 | 0);
89
+ const col = sheet.Column(colI_1);
90
+ iterate((cell) => {
91
+ let rowI;
92
+ const matchValue = cell.RowNumber | 0;
93
+ rowI = ((matchValue === 0) ? (rowIndex + 1) : matchValue);
94
+ rowIndex = (rowI | 0);
95
+ const c = col.Item(rowIndex);
96
+ c.Value = cell.Value;
97
+ c.DataType = cell.DataType;
98
+ }, tupledArg[1]);
99
+ }, cs);
100
+ if (ts == null) {
101
+ }
102
+ else {
103
+ iterate((t) => {
104
+ sheet.AddTable(t);
105
+ }, ts);
106
+ }
107
+ return sheet;
108
+ });
109
+
@@ -10,10 +10,10 @@ open System.Reflection
10
10
  [<assembly: System.Reflection.AssemblyCompanyAttribute("Heinrich Lukas Weil, Oliver Maus, Kevin Schneider, Kevin Frey, Timo Mühlhaus")>]
11
11
  [<assembly: System.Reflection.AssemblyConfigurationAttribute("Release")>]
12
12
  [<assembly: System.Reflection.AssemblyDescriptionAttribute("Fable compliant Spreadsheet creation and manipulation in FSharp")>]
13
- [<assembly: System.Reflection.AssemblyFileVersionAttribute("6.1.2.0")>]
14
- [<assembly: System.Reflection.AssemblyInformationalVersionAttribute("6.1.2")>]
13
+ [<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
14
+ [<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")>]
15
15
  [<assembly: System.Reflection.AssemblyProductAttribute("FsSpreadsheet")>]
16
16
  [<assembly: System.Reflection.AssemblyTitleAttribute("FsSpreadsheet")>]
17
- [<assembly: System.Reflection.AssemblyVersionAttribute("6.1.2.0")>]
17
+ [<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
18
18
  [<assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/CSBiology/FsSpreadsheet")>]
19
19
  do()
@@ -0,0 +1,374 @@
1
+ /// From YAML
2
+ [<RequireQualifiedAccessAttribute>]
3
+ module YAMLicious.Decode
4
+
5
+ open System
6
+ open System.Collections.Generic
7
+
8
+ open YAMLicious
9
+ open YAMLicious.YAMLiciousTypes
10
+ open Fable.Core
11
+
12
+ [<AutoOpen>]
13
+ module Interop =
14
+
15
+ [<Erase>]
16
+ type IExports =
17
+ abstract Number: obj
18
+
19
+ [<ImportAll("numbers")>]
20
+ let numbers: IExports = nativeOnly
21
+
22
+ [<Global; Emit("list")>]
23
+ let pyList: obj = nativeOnly
24
+
25
+ [<Global; Emit("dict")>]
26
+ let pyDict: obj = nativeOnly
27
+
28
+ [<Global; Emit("int")>]
29
+ let pyInt: obj = nativeOnly
30
+
31
+ [<Global; Emit("bool")>]
32
+ let pyBool: obj = nativeOnly
33
+
34
+ module Helper =
35
+
36
+ let inline raiseInvalidArg (name: string) (message: string) wrongV =
37
+ invalidArg name (sprintf "%s: %A" message wrongV)
38
+
39
+ //let isInt (value: string) =
40
+ // #if FABLE_COMPILER_JAVASCRIPT || FABLE_COMPILER_TYPESCRIPT
41
+ // JsInterop.isInt value
42
+ // #else
43
+ // match System.Int32.TryParse value with
44
+ // | true, _ -> true
45
+ // | false, _ -> false
46
+ // #endif
47
+
48
+ //let isFloat (value: string) =
49
+ // #if FABLE_COMPILER_JAVASCRIPT || FABLE_COMPILER_TYPESCRIPT
50
+ // JsInterop.isInt value
51
+ // #else
52
+ // match System.Double.TryParse value with
53
+ // | true, _ -> true
54
+ // | false, _ -> false
55
+ // #endif
56
+
57
+ let isString (value: string) =
58
+ #if FABLE_COMPILER_JAVASCRIPT || FABLE_COMPILER_TYPESCRIPT
59
+ JsInterop.isString value
60
+ #endif
61
+ #if FABLE_COMPILER_PYTHON
62
+ YAMLicious.PyInterop.isString value
63
+ #endif
64
+ #if !FABLE_COMPILER
65
+ match System.Char.TryParse value with
66
+ | true, _ -> true
67
+ | false, _ -> false
68
+ #endif
69
+
70
+ open Helper
71
+ let int (value: YAMLElement) : int =
72
+ match value with
73
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
74
+ match System.Int32.TryParse v.Value with
75
+ | true, v -> v
76
+ | false, _ -> raiseInvalidArg "value" "Expected an int" v.Value
77
+ | _ -> raiseInvalidArg "value" "Expected an YAMLElement.Value" value
78
+
79
+ let float (value: YAMLElement) : float =
80
+ let Culture = System.Globalization.CultureInfo.InvariantCulture
81
+ match value with
82
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
83
+ #if FABLE_COMPILER
84
+ match System.Double.TryParse(v.Value) with // numberstyle and culture return not implemented warning
85
+ #else
86
+ match System.Double.TryParse(v.Value, System.Globalization.NumberStyles.Float, Culture) with
87
+ #endif
88
+ | true, v -> float v
89
+ | false, _ -> raiseInvalidArg "value" "Expected an int" v.Value
90
+ | _ -> raiseInvalidArg "value" "Expected an YAMLElement.Value" value
91
+
92
+ let char (value: YAMLElement) : char =
93
+ match value with
94
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
95
+ match isString v.Value with
96
+ | true -> v.Value.[0]
97
+ | _ -> Helper.raiseInvalidArg "value" "Expected a char" v.Value
98
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a char" anyElse
99
+
100
+ let bool (value: YAMLElement) : bool =
101
+ match value with
102
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
103
+ match System.Boolean.TryParse v.Value with
104
+ | true, bool -> bool
105
+ | false, _ -> Helper.raiseInvalidArg "value" "Expected a bool" v.Value
106
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a bool" anyElse
107
+
108
+ let map (keyDecoder: string -> 'a) (valueDecoder: YAMLElement -> 'b) (value: YAMLElement) : Map<'a, 'b> =
109
+ match value with
110
+ | YAMLElement.Object v ->
111
+ v |> List.map (fun x ->
112
+ match x with
113
+ | YAMLElement.Mapping (k, v) -> (keyDecoder k.Value, valueDecoder v)
114
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a mapping" x
115
+ ) |> Map.ofList
116
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a map" anyElse
117
+
118
+ let dict (keyDecoder: string -> 'a) (valueDecoder: YAMLElement -> 'b) (value: YAMLElement) : Dictionary<'a, 'b> =
119
+ match value with
120
+ | YAMLElement.Object v ->
121
+ v |> List.map (fun x ->
122
+ match x with
123
+ | YAMLElement.Mapping (k, v) -> (keyDecoder k.Value, valueDecoder v)
124
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a mapping" anyElse
125
+ ) |> Map |> Dictionary
126
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a dictionary" anyElse
127
+
128
+ let datetime (value: YAMLElement) : DateTime =
129
+ match value with
130
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
131
+ match System.DateTime.TryParse(v.Value) with
132
+ | true, dateTime -> dateTime
133
+ | false, _ -> Helper.raiseInvalidArg "value" "Expected a DateTime" v.Value
134
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a DateTime" anyElse
135
+
136
+ let datetimeOffset (value: YAMLElement) : DateTimeOffset =
137
+ match value with
138
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
139
+ match System.DateTimeOffset.TryParse(v.Value) with
140
+ | true, dateTimeOffset -> dateTimeOffset
141
+ | false, _ -> Helper.raiseInvalidArg "value" "Expected a DateTimeOffset" v.Value
142
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a DateTimeOffset" anyElse
143
+
144
+ let option (decoder: YAMLElement -> 'a) (value: YAMLElement) : 'a option =
145
+ match value with
146
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] ->
147
+ match v.Value with
148
+ | YAML_NULL -> None
149
+ | _ -> Some (decoder value)
150
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected an option" anyElse
151
+
152
+ let string (value: YAMLElement) : string =
153
+ match value with
154
+ | YAMLElement.Value v | YAMLElement.Object [YAMLElement.Value v] -> v.Value
155
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a string" anyElse
156
+
157
+ let tuple2 (decoderA: YAMLElement -> 'a) (decoderB: YAMLElement -> 'b) (value: YAMLElement) : 'a * 'b =
158
+ match value with
159
+ | YAMLElement.Object [YAMLElement.Sequence [a; b]] | YAMLElement.Sequence [a; b] -> (decoderA a, decoderB b)
160
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple2" anyElse
161
+
162
+ let tuple3 (decoderA: YAMLElement -> 'a) (decoderB: YAMLElement -> 'b) (decoderC: YAMLElement -> 'c) (value: YAMLElement) : 'a * 'b * 'c =
163
+ match value with
164
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c]] | YAMLElement.Sequence [a; b; c] -> (decoderA a, decoderB b, decoderC c)
165
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple3" anyElse
166
+
167
+ let tuple4
168
+ (decoderA: YAMLElement -> 'a)
169
+ (decoderB: YAMLElement -> 'b)
170
+ (decoderC: YAMLElement -> 'c)
171
+ (decoderD: YAMLElement -> 'd)
172
+ (value: YAMLElement)
173
+ : 'a * 'b * 'c * 'd
174
+ =
175
+ match value with
176
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c; d]] | YAMLElement.Sequence [a; b; c; d] -> (decoderA a, decoderB b, decoderC c, decoderD d)
177
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple4" anyElse
178
+
179
+ let tuple5
180
+ (decoderA: YAMLElement -> 'a)
181
+ (decoderB: YAMLElement -> 'b)
182
+ (decoderC: YAMLElement -> 'c)
183
+ (decoderD: YAMLElement -> 'd)
184
+ (decoderE: YAMLElement -> 'e)
185
+ (value: YAMLElement)
186
+ : 'a * 'b * 'c * 'd * 'e
187
+ =
188
+ match value with
189
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c; d; e]] | YAMLElement.Sequence [a; b; c; d; e] -> (decoderA a, decoderB b, decoderC c, decoderD d, decoderE e)
190
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple5" anyElse
191
+
192
+ let tuple6
193
+ (decoderA: YAMLElement -> 'a)
194
+ (decoderB: YAMLElement -> 'b)
195
+ (decoderC: YAMLElement -> 'c)
196
+ (decoderD: YAMLElement -> 'd)
197
+ (decoderE: YAMLElement -> 'e)
198
+ (decoderF: YAMLElement -> 'f)
199
+ (value: YAMLElement)
200
+ : 'a * 'b * 'c * 'd * 'e * 'f
201
+ =
202
+ match value with
203
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c; d; e; f]]
204
+ | YAMLElement.Sequence [a; b; c; d; e; f] ->
205
+ (decoderA a, decoderB b, decoderC c, decoderD d, decoderE e, decoderF f)
206
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple6" anyElse
207
+
208
+ let tuple7
209
+ (decoderA: YAMLElement -> 'a)
210
+ (decoderB: YAMLElement -> 'b)
211
+ (decoderC: YAMLElement -> 'c)
212
+ (decoderD: YAMLElement -> 'd)
213
+ (decoderE: YAMLElement -> 'e)
214
+ (decoderF: YAMLElement -> 'f)
215
+ (decoderG: YAMLElement -> 'g)
216
+ (value: YAMLElement)
217
+ : 'a * 'b * 'c * 'd * 'e * 'f * 'g
218
+ =
219
+ match value with
220
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c; d; e; f; g]]
221
+ | YAMLElement.Sequence [a; b; c; d; e; f; g] ->
222
+ (decoderA a, decoderB b, decoderC c, decoderD d, decoderE e, decoderF f, decoderG g)
223
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple7" anyElse
224
+
225
+ let tuple8
226
+ (decoderA: YAMLElement -> 'a)
227
+ (decoderB: YAMLElement -> 'b)
228
+ (decoderC: YAMLElement -> 'c)
229
+ (decoderD: YAMLElement -> 'd)
230
+ (decoderE: YAMLElement -> 'e)
231
+ (decoderF: YAMLElement -> 'f)
232
+ (decoderG: YAMLElement -> 'g)
233
+ (decoderH: YAMLElement -> 'h)
234
+ (value: YAMLElement)
235
+ : 'a * 'b * 'c * 'd * 'e * 'f * 'g * 'h
236
+ =
237
+ match value with
238
+ | YAMLElement.Object [YAMLElement.Sequence [a; b; c; d; e; f; g; h]]
239
+ | YAMLElement.Sequence [a; b; c; d; e; f; g; h] ->
240
+ (decoderA a, decoderB b, decoderC c, decoderD d, decoderE e, decoderF f, decoderG g, decoderH h)
241
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a tuple8" anyElse
242
+
243
+ let list (decoder: YAMLElement -> 'a) (value: YAMLElement) : 'a list =
244
+ match value with
245
+ | YAMLElement.Sequence v | YAMLElement.Object [YAMLElement.Sequence v] ->
246
+ v |> List.map decoder
247
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a list" anyElse
248
+
249
+ let array (decoder: YAMLElement -> 'a) (value: YAMLElement) : 'a [] =
250
+ match value with
251
+ | YAMLElement.Sequence v | YAMLElement.Object [YAMLElement.Sequence v] ->
252
+ v |> List.map decoder |> List.toArray
253
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected an array" anyElse
254
+
255
+ let seq (decoder: YAMLElement -> 'a) (value: YAMLElement) : seq<'a> =
256
+ match value with
257
+ | YAMLElement.Sequence v | YAMLElement.Object [YAMLElement.Sequence v] ->
258
+ v |> Seq.map decoder
259
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a seq" anyElse
260
+
261
+ let resizearray (decoder: YAMLElement -> 'a) (value: YAMLElement) : ResizeArray<'a> =
262
+ match value with
263
+ | YAMLElement.Sequence v | YAMLElement.Object [YAMLElement.Sequence v] ->
264
+ v |> List.map decoder |> ResizeArray
265
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a resizearray" anyElse
266
+
267
+ let values (decoder: YAMLElement -> 'a) (value: YAMLElement) : 'a list =
268
+ match value with
269
+ | YAMLElement.Sequence v | YAMLElement.Object [YAMLElement.Sequence v] | YAMLElement.Object v ->
270
+ v
271
+ |> List.map (function
272
+ | YAMLElement.Value _ as v -> decoder v
273
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a values" anyElse
274
+ )
275
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected a values" anyElse
276
+
277
+ module ObjectHelper =
278
+
279
+ type IRequiredGetter =
280
+ abstract Field: string -> (YAMLElement -> 'a) -> 'a
281
+ //abstract At: List<string> -> Decoder<'a> -> 'a
282
+ //abstract Raw: Decoder<'a> -> 'a
283
+
284
+ type IOptionalGetter =
285
+ abstract Field: string -> (YAMLElement -> 'a) -> 'a option
286
+ //abstract At: List<string> -> Decoder<'a> -> 'a option
287
+ //abstract Raw: Decoder<'a> -> 'a option
288
+
289
+ type IOverflowGetter =
290
+ abstract FieldList: string list -> Dictionary<string, YAMLElement>
291
+
292
+
293
+ open ObjectHelper
294
+
295
+ type IGetters =
296
+ abstract Required: IRequiredGetter
297
+ abstract Optional: IOptionalGetter
298
+ abstract Overflow: IOverflowGetter
299
+
300
+ type Getter(ele: YAMLElement) =
301
+ let required =
302
+ { new IRequiredGetter with
303
+ member _.Field fieldName dec =
304
+ match ele with
305
+ | YAMLElement.Object v ->
306
+ //printfn "[GETTER] IsObject"
307
+ v
308
+ |> List.tryFind (function
309
+ | YAMLElement.Mapping (k, _) ->
310
+ //printfn "[GETTER] IsMapping"
311
+ let equals = k.Value = fieldName
312
+ //printfn "[GETTER] Equals: %A" equals
313
+ equals
314
+ | _ -> false
315
+ )
316
+ |> Option.map (function
317
+ | YAMLElement.Mapping (_, v) ->
318
+ //printfn "[GETTER] Mapping: %A" v
319
+ dec v
320
+ | _ -> Helper.raiseInvalidArg "value" "Expected a mapping" ele
321
+ )
322
+ |> fun x ->
323
+ if x .IsNone then
324
+ Helper.raiseInvalidArg "value" (sprintf "Field not found: %s" fieldName) ele
325
+ else x.Value
326
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected an object" anyElse
327
+ }
328
+ let optional =
329
+ { new IOptionalGetter with
330
+ member this.Field (fieldName: string) (dec: YAMLElement -> 'a) =
331
+ match ele with
332
+ | YAMLElement.Object v ->
333
+ v
334
+ |> List.tryFind (function
335
+ | YAMLElement.Mapping (k, _) -> k.Value = fieldName
336
+ | _ -> false
337
+ )
338
+ |> Option.map (function
339
+ | YAMLElement.Mapping (_, v) -> dec v
340
+ | _ -> Helper.raiseInvalidArg "value" "Expected a mapping" ele
341
+ )
342
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected an object" anyElse
343
+ }
344
+ let overflow =
345
+ { new IOverflowGetter with
346
+ member this.FieldList (fieldNames: string list) =
347
+ match ele with
348
+ | YAMLElement.Object v ->
349
+ let overflow =
350
+ v
351
+ |> List.filter (function
352
+ | YAMLElement.Mapping (k, _) -> fieldNames |> List.exists (fun x -> x = k.Value)
353
+ | _ -> false
354
+ )
355
+ |> List.map (function
356
+ | YAMLElement.Mapping (k, v) -> (k.Value, v)
357
+ | _ -> Helper.raiseInvalidArg "value" "Expected a mapping" ele
358
+ )
359
+ let dict = new Dictionary<string, YAMLElement>()
360
+ overflow |> List.iter (fun (k, v) -> dict.Add(k, v))
361
+ dict
362
+ | anyElse -> Helper.raiseInvalidArg "value" "Expected an object" anyElse
363
+ }
364
+ interface IGetters with
365
+ member __.Required = required
366
+ member __.Optional = optional
367
+ member __.Overflow = overflow
368
+
369
+ let object (getter: IGetters -> 'a) (value: YAMLElement) : 'a =
370
+ let getterObj = Getter(value) :> IGetters
371
+ getter getterObj
372
+
373
+ let read (yaml: string) =
374
+ Reader.read yaml