@nfdi4plants/arctrl 2.0.0-alpha.6 → 2.0.0-alpha.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 (48) hide show
  1. package/Core/Data.js +53 -4
  2. package/Core/DataContext.js +92 -0
  3. package/Core/Helper/Regex.js +26 -10
  4. package/Core/Helper/Url.js +38 -0
  5. package/Core/OntologyAnnotation.js +2 -1
  6. package/Core/Table/ArcTableAux.js +2 -2
  7. package/Core/Table/CompositeCell.js +4 -0
  8. package/Core/Table/DataMap.js +95 -82
  9. package/Json/Assay.js +51 -22
  10. package/Json/Comment.js +35 -6
  11. package/Json/IDTable.js +19 -0
  12. package/Json/Investigation.js +22 -5
  13. package/Json/OntologyAnnotation.js +61 -6
  14. package/Json/OntologySourceReference.js +29 -7
  15. package/Json/Person.js +38 -16
  16. package/Json/Process/AssayMaterials.js +2 -2
  17. package/Json/Process/Component.js +19 -5
  18. package/Json/Process/Data.js +23 -7
  19. package/Json/Process/DataFile.js +9 -0
  20. package/Json/Process/Factor.js +33 -6
  21. package/Json/Process/FactorValue.js +23 -6
  22. package/Json/Process/Material.js +22 -5
  23. package/Json/Process/MaterialAttribute.js +30 -7
  24. package/Json/Process/MaterialAttributeValue.js +27 -6
  25. package/Json/Process/MaterialType.js +5 -0
  26. package/Json/Process/Process.js +22 -5
  27. package/Json/Process/ProcessInput.js +13 -7
  28. package/Json/Process/ProcessOutput.js +16 -6
  29. package/Json/Process/ProcessParameterValue.js +18 -4
  30. package/Json/Process/ProcessSequence.js +4 -2
  31. package/Json/Process/PropertyValue.js +29 -4
  32. package/Json/Process/Protocol.js +88 -52
  33. package/Json/Process/ProtocolParameter.js +28 -6
  34. package/Json/Process/Sample.js +23 -7
  35. package/Json/Process/Source.js +23 -6
  36. package/Json/Process/StudyMaterials.js +2 -2
  37. package/Json/Process/Value.js +3 -3
  38. package/Json/Publication.js +21 -8
  39. package/Json/Study.js +86 -56
  40. package/Json/Table/CellTable.js +4 -1
  41. package/Json/Table/Templates.js +10 -2
  42. package/Json.js +9 -9
  43. package/Spreadsheet/DataMapTable/DataMapColumn.js +36 -30
  44. package/Spreadsheet/DataMapTable/DataMapHeader.js +146 -122
  45. package/Spreadsheet/DataMapTable/DataMapTable.js +17 -12
  46. package/Template.Web.js +1 -1
  47. package/fable_modules/project_cracked.json +1 -1
  48. package/package.json +1 -1
@@ -1,16 +1,36 @@
1
- import { singleton, ofArray, tryFindIndex, tail, head, isEmpty, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
- import { dataFromFsCells, freeTextFromFsCells, termFromFsCells } from "../AnnotationTable/CompositeCell.js";
3
- import { DataMapAux_generatedByHeader, DataMapAux_descriptionHeader, DataMapAux_objectTypeHeader, DataMapAux_unitHeader, DataMapAux_explicationHeader } from "../../Core/Table/DataMap.js";
1
+ import { tryFindIndex, tail, head, isEmpty, item, map } from "../../fable_modules/fable-library-js.4.16.0/List.js";
4
2
  import { map as map_1 } from "../../fable_modules/fable-library-js.4.16.0/Option.js";
5
- import { CompositeHeader, IOType } from "../../Core/Table/CompositeHeader.js";
6
- import { printf, toFail } from "../../fable_modules/fable-library-js.4.16.0/String.js";
3
+ import { OntologyAnnotation } from "../../Core/OntologyAnnotation.js";
4
+ import { Data } from "../../Core/Data.js";
5
+ import { DataContext__set_GeneratedBy_6DFDD678, DataContext__set_Description_6DFDD678, DataContext__set_ObjectType_279AAFF2, DataContext__set_Unit_279AAFF2, DataContext__set_Explication_279AAFF2 } from "../../Core/DataContext.js";
6
+ import { Comment$ } from "../../Core/Comment.js";
7
+ import { ActivePatterns_$007CComment$007C_$007C } from "../../Core/Helper/Regex.js";
8
+ import { printf, toFail, join } from "../../fable_modules/fable-library-js.4.16.0/String.js";
9
+ import { map as map_2, append, delay, toList } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
7
10
  import { FsCell } from "../../fable_modules/FsSpreadsheet.6.1.2/Cells/FsCell.fs.js";
8
- import { equals } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
9
11
 
10
- export function ActivePattern_$007CTerm$007C_$007C(categoryString, categoryHeader, cells) {
12
+ export function ActivePattern_ontologyAnnotationFromFsCells(tsrCol, tanCol, cells) {
13
+ const cellValues = map((c) => c.ValueAsString(), cells);
14
+ const tsr = map_1((i) => item(i, cellValues), tsrCol);
15
+ const tan = map_1((i_1) => item(i_1, cellValues), tanCol);
16
+ return new OntologyAnnotation(item(0, cellValues), tsr, tan);
17
+ }
18
+
19
+ export function ActivePattern_freeTextFromFsCells(cells) {
20
+ return item(0, map((c) => c.ValueAsString(), cells));
21
+ }
22
+
23
+ export function ActivePattern_dataFromFsCells(format, selectorFormat, cells) {
24
+ const cellValues = map((c) => c.ValueAsString(), cells);
25
+ const format_1 = map_1((i) => item(i, cellValues), format);
26
+ const selectorFormat_1 = map_1((i_1) => item(i_1, cellValues), selectorFormat);
27
+ return new Data(void 0, item(0, cellValues), void 0, format_1, selectorFormat_1);
28
+ }
29
+
30
+ export function ActivePattern_$007CTerm$007C_$007C(categoryString, cells) {
11
31
  const $007CAC$007C_$007C = (s) => {
12
32
  if (s === categoryString) {
13
- return categoryHeader;
33
+ return 1;
14
34
  }
15
35
  else {
16
36
  return void 0;
@@ -54,7 +74,7 @@ export function ActivePattern_$007CTerm$007C_$007C(categoryString, categoryHeade
54
74
  }
55
75
  switch (matchResult) {
56
76
  case 0:
57
- return [header, (cells_1) => termFromFsCells(void 0, void 0, cells_1)];
77
+ return (cells_1) => ActivePattern_ontologyAnnotationFromFsCells(void 0, void 0, cells_1);
58
78
  default: {
59
79
  let matchResult_1, header_1;
60
80
  if (!isEmpty(cellValues)) {
@@ -97,7 +117,7 @@ export function ActivePattern_$007CTerm$007C_$007C(categoryString, categoryHeade
97
117
  }
98
118
  switch (matchResult_1) {
99
119
  case 0:
100
- return [header_1, (cells_2) => termFromFsCells(1, 2, cells_2)];
120
+ return (cells_2) => ActivePattern_ontologyAnnotationFromFsCells(1, 2, cells_2);
101
121
  default: {
102
122
  let matchResult_2, header_2;
103
123
  if (!isEmpty(cellValues)) {
@@ -140,7 +160,7 @@ export function ActivePattern_$007CTerm$007C_$007C(categoryString, categoryHeade
140
160
  }
141
161
  switch (matchResult_2) {
142
162
  case 0:
143
- return [header_2, (cells_3) => termFromFsCells(2, 1, cells_3)];
163
+ return (cells_3) => ActivePattern_ontologyAnnotationFromFsCells(2, 1, cells_3);
144
164
  default:
145
165
  return void 0;
146
166
  }
@@ -151,10 +171,13 @@ export function ActivePattern_$007CTerm$007C_$007C(categoryString, categoryHeade
151
171
  }
152
172
 
153
173
  export function ActivePattern_$007CExplication$007C_$007C(cells) {
154
- const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Explication", DataMapAux_explicationHeader, cells);
174
+ const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Explication", cells);
155
175
  if (activePatternResult != null) {
156
176
  const r = activePatternResult;
157
- return r;
177
+ return (dc) => ((cells_1) => {
178
+ DataContext__set_Explication_279AAFF2(dc, r(cells_1));
179
+ return dc;
180
+ });
158
181
  }
159
182
  else {
160
183
  return void 0;
@@ -162,10 +185,13 @@ export function ActivePattern_$007CExplication$007C_$007C(cells) {
162
185
  }
163
186
 
164
187
  export function ActivePattern_$007CUnit$007C_$007C(cells) {
165
- const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Unit", DataMapAux_unitHeader, cells);
188
+ const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Unit", cells);
166
189
  if (activePatternResult != null) {
167
190
  const r = activePatternResult;
168
- return r;
191
+ return (dc) => ((cells_1) => {
192
+ DataContext__set_Unit_279AAFF2(dc, r(cells_1));
193
+ return dc;
194
+ });
169
195
  }
170
196
  else {
171
197
  return void 0;
@@ -173,10 +199,13 @@ export function ActivePattern_$007CUnit$007C_$007C(cells) {
173
199
  }
174
200
 
175
201
  export function ActivePattern_$007CObjectType$007C_$007C(cells) {
176
- const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Object Type", DataMapAux_objectTypeHeader, cells);
202
+ const activePatternResult = ActivePattern_$007CTerm$007C_$007C("Object Type", cells);
177
203
  if (activePatternResult != null) {
178
204
  const r = activePatternResult;
179
- return r;
205
+ return (dc) => ((cells_1) => {
206
+ DataContext__set_ObjectType_279AAFF2(dc, r(cells_1));
207
+ return dc;
208
+ });
180
209
  }
181
210
  else {
182
211
  return void 0;
@@ -204,7 +233,10 @@ export function ActivePattern_$007CDescription$007C_$007C(cells) {
204
233
  }
205
234
  switch (matchResult) {
206
235
  case 0:
207
- return [DataMapAux_descriptionHeader, freeTextFromFsCells];
236
+ return (dc) => ((cells_1) => {
237
+ DataContext__set_Description_6DFDD678(dc, ActivePattern_freeTextFromFsCells(cells_1));
238
+ return dc;
239
+ });
208
240
  default:
209
241
  return void 0;
210
242
  }
@@ -231,7 +263,10 @@ export function ActivePattern_$007CGeneratedBy$007C_$007C(cells) {
231
263
  }
232
264
  switch (matchResult) {
233
265
  case 0:
234
- return [DataMapAux_generatedByHeader, freeTextFromFsCells];
266
+ return (dc) => ((cells_1) => {
267
+ DataContext__set_GeneratedBy_6DFDD678(dc, ActivePattern_freeTextFromFsCells(cells_1));
268
+ return dc;
269
+ });
235
270
  default:
236
271
  return void 0;
237
272
  }
@@ -253,23 +288,60 @@ export function ActivePattern_$007CData$007C_$007C(cells) {
253
288
  matchResult = 1;
254
289
  }
255
290
  switch (matchResult) {
256
- case 0: {
257
- const format = map_1((y) => (1 + y), tryFindIndex((s) => (s.indexOf("Data Format") === 0), cols));
258
- const selectorFormat = map_1((y_1) => (1 + y_1), tryFindIndex((s_1) => (s_1.indexOf("Data Selector Format") === 0), cols));
259
- return [new CompositeHeader(11, [new IOType(2, [])]), (cells_1) => dataFromFsCells(format, selectorFormat, cells_1)];
291
+ case 0:
292
+ return (dc) => ((cells_1) => {
293
+ const d = ActivePattern_dataFromFsCells(map_1((y) => (1 + y), tryFindIndex((s) => (s.indexOf("Data Format") === 0), cols)), map_1((y_1) => (1 + y_1), tryFindIndex((s_1) => (s_1.indexOf("Data Selector Format") === 0), cols)), cells_1);
294
+ dc.FilePath = d.FilePath;
295
+ dc.Selector = d.Selector;
296
+ dc.Format = d.Format;
297
+ dc.SelectorFormat = d.SelectorFormat;
298
+ return dc;
299
+ });
300
+ default:
301
+ return void 0;
302
+ }
303
+ }
304
+
305
+ export function ActivePattern_$007CComment$007C_$007C(cells) {
306
+ const cellValues = map((c) => c.ValueAsString(), cells);
307
+ let matchResult, key;
308
+ if (!isEmpty(cellValues)) {
309
+ const activePatternResult = ActivePatterns_$007CComment$007C_$007C(head(cellValues));
310
+ if (activePatternResult != null) {
311
+ if (isEmpty(tail(cellValues))) {
312
+ matchResult = 0;
313
+ key = activePatternResult;
314
+ }
315
+ else {
316
+ matchResult = 1;
317
+ }
318
+ }
319
+ else {
320
+ matchResult = 1;
260
321
  }
322
+ }
323
+ else {
324
+ matchResult = 1;
325
+ }
326
+ switch (matchResult) {
327
+ case 0:
328
+ return (dc) => ((cells_1) => {
329
+ const comment = item(0, map((c_1) => c_1.ValueAsString(), cells_1));
330
+ void (dc.Comments.push(Comment$.create(key, comment)));
331
+ return dc;
332
+ });
261
333
  default:
262
334
  return void 0;
263
335
  }
264
336
  }
265
337
 
266
- export function ActivePattern_$007CFreeText$007C_$007C(cells) {
338
+ export function ActivePattern_$007CFreetext$007C_$007C(cells) {
267
339
  const cellValues = map((c) => c.ValueAsString(), cells);
268
- let matchResult, text;
340
+ let matchResult, key;
269
341
  if (!isEmpty(cellValues)) {
270
342
  if (isEmpty(tail(cellValues))) {
271
343
  matchResult = 0;
272
- text = head(cellValues);
344
+ key = head(cellValues);
273
345
  }
274
346
  else {
275
347
  matchResult = 1;
@@ -280,56 +352,68 @@ export function ActivePattern_$007CFreeText$007C_$007C(cells) {
280
352
  }
281
353
  switch (matchResult) {
282
354
  case 0:
283
- return [new CompositeHeader(13, [text]), freeTextFromFsCells];
355
+ return (dc) => ((cells_1) => {
356
+ const comment = item(0, map((c_1) => c_1.ValueAsString(), cells_1));
357
+ void (dc.Comments.push(Comment$.create(key, comment)));
358
+ return dc;
359
+ });
284
360
  default:
285
361
  return void 0;
286
362
  }
287
363
  }
288
364
 
289
365
  export function fromFsCells(cells) {
290
- const activePatternResult = ActivePattern_$007CData$007C_$007C(cells);
366
+ let matchResult, r;
367
+ const activePatternResult = ActivePattern_$007CExplication$007C_$007C(cells);
291
368
  if (activePatternResult != null) {
292
- const d = activePatternResult;
293
- return d;
369
+ matchResult = 0;
370
+ r = activePatternResult;
294
371
  }
295
372
  else {
296
- const activePatternResult_1 = ActivePattern_$007CExplication$007C_$007C(cells);
373
+ const activePatternResult_1 = ActivePattern_$007CUnit$007C_$007C(cells);
297
374
  if (activePatternResult_1 != null) {
298
- const e = activePatternResult_1;
299
- return e;
375
+ matchResult = 0;
376
+ r = activePatternResult_1;
300
377
  }
301
378
  else {
302
- const activePatternResult_2 = ActivePattern_$007CUnit$007C_$007C(cells);
379
+ const activePatternResult_2 = ActivePattern_$007CObjectType$007C_$007C(cells);
303
380
  if (activePatternResult_2 != null) {
304
- const u = activePatternResult_2;
305
- return u;
381
+ matchResult = 0;
382
+ r = activePatternResult_2;
306
383
  }
307
384
  else {
308
- const activePatternResult_3 = ActivePattern_$007CObjectType$007C_$007C(cells);
385
+ const activePatternResult_3 = ActivePattern_$007CDescription$007C_$007C(cells);
309
386
  if (activePatternResult_3 != null) {
310
- const ot = activePatternResult_3;
311
- return ot;
387
+ matchResult = 0;
388
+ r = activePatternResult_3;
312
389
  }
313
390
  else {
314
- const activePatternResult_4 = ActivePattern_$007CDescription$007C_$007C(cells);
391
+ const activePatternResult_4 = ActivePattern_$007CGeneratedBy$007C_$007C(cells);
315
392
  if (activePatternResult_4 != null) {
316
- const d_1 = activePatternResult_4;
317
- return d_1;
393
+ matchResult = 0;
394
+ r = activePatternResult_4;
318
395
  }
319
396
  else {
320
- const activePatternResult_5 = ActivePattern_$007CGeneratedBy$007C_$007C(cells);
397
+ const activePatternResult_5 = ActivePattern_$007CData$007C_$007C(cells);
321
398
  if (activePatternResult_5 != null) {
322
- const gb = activePatternResult_5;
323
- return gb;
399
+ matchResult = 0;
400
+ r = activePatternResult_5;
324
401
  }
325
402
  else {
326
- const activePatternResult_6 = ActivePattern_$007CFreeText$007C_$007C(cells);
403
+ const activePatternResult_6 = ActivePattern_$007CComment$007C_$007C(cells);
327
404
  if (activePatternResult_6 != null) {
328
- const ft = activePatternResult_6;
329
- return ft;
405
+ matchResult = 0;
406
+ r = activePatternResult_6;
330
407
  }
331
408
  else {
332
- return toFail(printf("Could not parse header group %O"))(cells);
409
+ const activePatternResult_7 = ActivePattern_$007CFreetext$007C_$007C(cells);
410
+ if (activePatternResult_7 != null) {
411
+ matchResult = 0;
412
+ r = activePatternResult_7;
413
+ }
414
+ else {
415
+ matchResult = 1;
416
+ }
333
417
  }
334
418
  }
335
419
  }
@@ -337,81 +421,21 @@ export function fromFsCells(cells) {
337
421
  }
338
422
  }
339
423
  }
340
- }
341
-
342
- export function toFsCells(header) {
343
- let matchResult, h_9, h_10, h_11, text;
344
- switch (header.tag) {
345
- case 11: {
346
- if (header.fields[0].tag === 2) {
347
- matchResult = 0;
348
- }
349
- else if (equals(header, DataMapAux_explicationHeader)) {
350
- matchResult = 1;
351
- h_9 = header;
352
- }
353
- else if (equals(header, DataMapAux_unitHeader)) {
354
- matchResult = 2;
355
- h_10 = header;
356
- }
357
- else if (equals(header, DataMapAux_objectTypeHeader)) {
358
- matchResult = 3;
359
- h_11 = header;
360
- }
361
- else {
362
- matchResult = 5;
363
- }
364
- break;
365
- }
366
- case 13: {
367
- if (equals(header, DataMapAux_explicationHeader)) {
368
- matchResult = 1;
369
- h_9 = header;
370
- }
371
- else if (equals(header, DataMapAux_unitHeader)) {
372
- matchResult = 2;
373
- h_10 = header;
374
- }
375
- else if (equals(header, DataMapAux_objectTypeHeader)) {
376
- matchResult = 3;
377
- h_11 = header;
378
- }
379
- else {
380
- matchResult = 4;
381
- text = header.fields[0];
382
- }
383
- break;
384
- }
385
- default:
386
- if (equals(header, DataMapAux_explicationHeader)) {
387
- matchResult = 1;
388
- h_9 = header;
389
- }
390
- else if (equals(header, DataMapAux_unitHeader)) {
391
- matchResult = 2;
392
- h_10 = header;
393
- }
394
- else if (equals(header, DataMapAux_objectTypeHeader)) {
395
- matchResult = 3;
396
- h_11 = header;
397
- }
398
- else {
399
- matchResult = 5;
400
- }
401
- }
402
424
  switch (matchResult) {
403
425
  case 0:
404
- return ofArray([new FsCell("Data"), new FsCell("Data Format"), new FsCell("Data Selector Format")]);
405
- case 1:
406
- return ofArray([new FsCell("Explication"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")]);
407
- case 2:
408
- return ofArray([new FsCell("Unit"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")]);
409
- case 3:
410
- return ofArray([new FsCell("Object Type"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")]);
411
- case 4:
412
- return singleton(new FsCell(text));
413
- default:
414
- return toFail(printf("Could not parse DataMap header %O."))(header);
426
+ return (dc) => ((cells_1) => r(dc)(cells_1));
427
+ default: {
428
+ const arg = join(", ", map((c) => c.ValueAsString(), cells));
429
+ const clo_1 = toFail(printf("Could not parse data map column: %s"))(arg);
430
+ return (arg_1) => {
431
+ const clo_2 = clo_1(arg_1);
432
+ return clo_2;
433
+ };
434
+ }
415
435
  }
416
436
  }
417
437
 
438
+ export function toFsCells(commentKeys) {
439
+ return toList(delay(() => append([new FsCell("Data"), new FsCell("Data Format"), new FsCell("Data Selector Format")], delay(() => append([new FsCell("Explication"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")], delay(() => append([new FsCell("Unit"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")], delay(() => append([new FsCell("Object Type"), new FsCell("Term Source REF"), new FsCell("Term Accession Number")], delay(() => append([new FsCell("Description")], delay(() => append([new FsCell("Generated By")], delay(() => map_2((ck) => (new FsCell(ck)), commentKeys)))))))))))))));
440
+ }
441
+
@@ -1,11 +1,12 @@
1
- import { iterateIndexed, head, length, sortBy, collect, map, toArray, exists, ofArray } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
- import { classifyColumnOrder, Aux_List_groupWhen } from "../AnnotationTable/ArcTable.js";
3
- import { toList, tryFind } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
4
- import { toFsColumns, fromFsColumns } from "./DataMapColumn.js";
1
+ import { iterateIndexed, head, length, iterate, exists, ofArray } from "../../fable_modules/fable-library-js.4.16.0/List.js";
2
+ import { Aux_List_groupWhen } from "../AnnotationTable/ArcTable.js";
3
+ import { toList, map, delay, toArray, item, tryFind } from "../../fable_modules/fable-library-js.4.16.0/Seq.js";
4
+ import { DataContext_$ctor_Z2FD70A12 } from "../../Core/DataContext.js";
5
+ import { rangeDouble } from "../../fable_modules/fable-library-js.4.16.0/Range.js";
6
+ import { toFsColumns, setFromFsColumns } from "./DataMapColumn.js";
5
7
  import { printf, toFail } from "../../fable_modules/fable-library-js.4.16.0/String.js";
6
- import { DataMap__get_Table, DataMap_init, DataMap_addColumns_6369C010 } from "../../Core/Table/DataMap.js";
8
+ import { DataMap__get_DataContexts, DataMap_$ctor_4E3220A7 } from "../../Core/Table/DataMap.js";
7
9
  import { FsWorksheet } from "../../fable_modules/FsSpreadsheet.6.1.2/FsWorksheet.fs.js";
8
- import { comparePrimitives } from "../../fable_modules/fable-library-js.4.16.0/Util.js";
9
10
  import { FsRangeAddress_$ctor_7E77A4A0 } from "../../fable_modules/FsSpreadsheet.6.1.2/Ranges/FsRangeAddress.fs.js";
10
11
  import { FsAddress_$ctor_Z37302880 } from "../../fable_modules/FsSpreadsheet.6.1.2/FsAddress.fs.js";
11
12
  import { Dictionary_tryGet } from "../../fable_modules/FsSpreadsheet.6.1.2/Cells/FsCellsCollection.fs.js";
@@ -32,7 +33,12 @@ export function tryDataMapTable(sheet) {
32
33
  * Groups and parses a collection of single columns into the according ISA composite columns
33
34
  */
34
35
  export function composeColumns(columns) {
35
- return toArray(map(fromFsColumns, groupColumnsByHeader(toList(columns))));
36
+ const l = (item(0, columns).MaxRowIndex - 1) | 0;
37
+ const dc = Array.from(toArray(delay(() => map((i) => DataContext_$ctor_Z2FD70A12(), rangeDouble(0, 1, l - 1)))));
38
+ iterate((arg) => {
39
+ setFromFsColumns(dc, arg);
40
+ }, groupColumnsByHeader(toList(columns)));
41
+ return dc;
36
42
  }
37
43
 
38
44
  /**
@@ -46,7 +52,7 @@ export function tryFromFsWorksheet(sheet) {
46
52
  }
47
53
  else {
48
54
  const t = matchValue;
49
- return DataMap_addColumns_6369C010(composeColumns(t.GetColumns(sheet.CellCollection)), true)(DataMap_init());
55
+ return DataMap_$ctor_4E3220A7(composeColumns(t.GetColumns(sheet.CellCollection)));
50
56
  }
51
57
  }
52
58
  catch (err) {
@@ -59,13 +65,11 @@ export function tryFromFsWorksheet(sheet) {
59
65
  export function toFsWorksheet(table) {
60
66
  const stringCount = new Map([]);
61
67
  const ws = new FsWorksheet("isa_datamap");
62
- if (DataMap__get_Table(table).Columns.length === 0) {
68
+ if (DataMap__get_DataContexts(table).length === 0) {
63
69
  return ws;
64
70
  }
65
71
  else {
66
- const columns = collect(toFsColumns, sortBy(classifyColumnOrder, ofArray(DataMap__get_Table(table).Columns), {
67
- Compare: comparePrimitives,
68
- }));
72
+ const columns = toFsColumns(DataMap__get_DataContexts(table));
69
73
  const maxRow = length(head(columns)) | 0;
70
74
  const maxCol = length(columns) | 0;
71
75
  const fsTable = ws.Table("datamapTable", FsRangeAddress_$ctor_7E77A4A0(FsAddress_$ctor_Z37302880(1, 1), FsAddress_$ctor_Z37302880(maxRow, maxCol)));
@@ -92,6 +96,7 @@ export function toFsWorksheet(table) {
92
96
  FsRangeBase__Cell_Z3407A44B(fsTable, address, ws.CellCollection).SetValueAs(value);
93
97
  }, col);
94
98
  }, columns);
99
+ ws.RescanRows();
95
100
  return ws;
96
101
  }
97
102
  }
package/Template.Web.js CHANGED
@@ -6,7 +6,7 @@ import { startAsPromise } from "./fable_modules/fable-library-js.4.16.0/Async.js
6
6
  import { class_type } from "./fable_modules/fable-library-js.4.16.0/Reflection.js";
7
7
 
8
8
  export function getTemplates(url) {
9
- const url_1 = defaultArg(url, "https://github.com/nfdi4plants/Swate-templates/releases/download/latest/templates.json");
9
+ const url_1 = defaultArg(url, "https://github.com/nfdi4plants/Swate-templates/releases/download/latest/templates_v2.0.0.json");
10
10
  return singleton.Delay(() => singleton.Bind(downloadFile(url_1), (_arg) => {
11
11
  const mapResult = Templates_fromJsonString(_arg);
12
12
  return singleton.Return(mapResult);