@nfdi4plants/arctrl 1.0.0-alpha7 → 1.0.0-alpha9

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.
@@ -1,8 +1,8 @@
1
1
  import { map as map_1, defaultArg, unwrap } from "../../../fable_modules/fable-library.4.1.4/Option.js";
2
- import { ArcTables_updateReferenceTablesBySheets_Z2EE88E97, ArcTables_fromProcesses_134EBDED, ArcTables__get_Tables, ArcTables__GetProcesses, ArcTables__GetRow_Z18115A39, ArcTables__GetRowAt_Z37302880, ArcTables__UpdateRow_1BFE2CFB, ArcTables__UpdateRowAt_1CF7B5DC, ArcTables__RemoveRow_Z18115A39, ArcTables__RemoveRowAt_Z37302880, ArcTables__AddRow_Z16315DE5, ArcTables__AddRowAt_Z12CDB784, ArcTables__GetColumn_Z18115A39, ArcTables__GetColumnAt_Z37302880, ArcTables__UpdateColumn_Z6083042A, ArcTables__UpdateColumnAt_21300791, ArcTables__RemoveColumn_Z18115A39, ArcTables__RemoveColumnAt_Z37302880, ArcTables__AddColumn_1FF50D3C, ArcTables__AddColumnAt_6A9784DB, ArcTables__RenameTable_Z384F8060, ArcTables__RenameTableAt_Z176EF219, ArcTables__MapTable_27DD7B1B, ArcTables__MapTableAt_8FC095C, ArcTables__RemoveTable_Z721C83C5, ArcTables__RemoveTableAt_Z524259A4, ArcTables__SetTable_51766571, ArcTables__SetTableAt_7E571736, ArcTables__UpdateTable_51766571, ArcTables__UpdateTableAt_7E571736, ArcTables__GetTable_Z721C83C5, ArcTables__GetTableAt_Z524259A4, ArcTables__InitTables_7B28792B, ArcTables__InitTable_3B406CA4, ArcTables__AddTables_Z2D453886, ArcTables__AddTable_EC12B15, ArcTables__get_TableNames, ArcTables_$ctor_Z18C2F36D, ArcTables__get_Count } from "./ArcTables.js";
3
- import { concat, toList, tryFind, removeAt, tryFindIndex, map as map_2, contains, filter, toArray } from "../../../fable_modules/fable-library.4.1.4/Seq.js";
2
+ import { ArcTablesAux_applyIOMap, ArcTablesAux_getIOMap, ArcTables_updateReferenceTablesBySheets_Z2EE88E97, ArcTables_fromProcesses_134EBDED, ArcTables__get_Tables, ArcTables__GetProcesses, ArcTables__GetRow_Z18115A39, ArcTables__GetRowAt_Z37302880, ArcTables__UpdateRow_1BFE2CFB, ArcTables__UpdateRowAt_1CF7B5DC, ArcTables__RemoveRow_Z18115A39, ArcTables__RemoveRowAt_Z37302880, ArcTables__AddRow_Z16315DE5, ArcTables__AddRowAt_Z12CDB784, ArcTables__GetColumn_Z18115A39, ArcTables__GetColumnAt_Z37302880, ArcTables__UpdateColumn_Z6083042A, ArcTables__UpdateColumnAt_21300791, ArcTables__RemoveColumn_Z18115A39, ArcTables__RemoveColumnAt_Z37302880, ArcTables__AddColumn_1FF50D3C, ArcTables__AddColumnAt_6A9784DB, ArcTables__RenameTable_Z384F8060, ArcTables__RenameTableAt_Z176EF219, ArcTables__MapTable_27DD7B1B, ArcTables__MapTableAt_8FC095C, ArcTables__RemoveTable_Z721C83C5, ArcTables__RemoveTableAt_Z524259A4, ArcTables__SetTable_51766571, ArcTables__SetTableAt_7E571736, ArcTables__UpdateTable_51766571, ArcTables__UpdateTableAt_7E571736, ArcTables__GetTable_Z721C83C5, ArcTables__GetTableAt_Z524259A4, ArcTables__InitTables_7B28792B, ArcTables__InitTable_3B406CA4, ArcTables__AddTables_Z2D453886, ArcTables__AddTable_EC12B15, ArcTables__get_TableNames, ArcTables_$ctor_Z18C2F36D, ArcTables__get_Count } from "./ArcTables.js";
3
+ import { concat, collect, append as append_4, tryFind, removeAt, tryFindIndex, item, map as map_2, delay, toList, fold, length, forAll, contains, filter, toArray } from "../../../fable_modules/fable-library.4.1.4/Seq.js";
4
4
  import { defaultOf, safeHash, equals, disposeSafe, getEnumerator, stringHash } from "../../../fable_modules/fable-library.4.1.4/Util.js";
5
- import { tryFind as tryFind_1, removeInPlace, equalsWith, append as append_3, contains as contains_1, map } from "../../../fable_modules/fable-library.4.1.4/Array.js";
5
+ import { addRangeInPlace, tryFind as tryFind_1, removeInPlace, equalsWith, append as append_3, contains as contains_1, map } from "../../../fable_modules/fable-library.4.1.4/Array.js";
6
6
  import { distinctBy, Array_distinct } from "../../../fable_modules/fable-library.4.1.4/Seq2.js";
7
7
  import { printf, toText } from "../../../fable_modules/fable-library.4.1.4/String.js";
8
8
  import { create, match } from "../../../fable_modules/fable-library.4.1.4/RegExp.js";
@@ -10,11 +10,12 @@ import { OntologyAnnotation } from "../JsonTypes/OntologyAnnotation.js";
10
10
  import { Value_fromString_Z721C83C5, Value__get_Text } from "../JsonTypes/Value.js";
11
11
  import { AnnotationValue } from "../JsonTypes/AnnotationValue.js";
12
12
  import { AssayMaterials_get_empty, AssayMaterials_create_Z253F0553 } from "../JsonTypes/AssayMaterials.js";
13
- import { Option_fromValueWithDefault } from "../Helper.js";
13
+ import { HashCodes_boxHashOption, HashCodes_boxHashArray, Option_fromValueWithDefault } from "../Helper.js";
14
14
  import { unzip, ofSeq, map as map_3, toArray as toArray_1, ofArray, empty } from "../../../fable_modules/fable-library.4.1.4/List.js";
15
15
  import { getSources, getProtocols, getUnits, getCharacteristics, getData, getMaterials, getSamples } from "../JsonTypes/ProcessSequence.js";
16
16
  import { Assay_create_3D372A24 } from "../JsonTypes/Assay.js";
17
17
  import { Study_identifierFromFileName, Study_fileNameFromIdentifier, Assay_identifierFromFileName, createMissingIdentifier, Assay_fileNameFromIdentifier, isMissingIdentifier } from "../Identifier.js";
18
+ import { rangeDouble } from "../../../fable_modules/fable-library.4.1.4/Range.js";
18
19
  import { class_type } from "../../../fable_modules/fable-library.4.1.4/Reflection.js";
19
20
  import { StudyMaterials_get_empty, StudyMaterials_create_1BE9FA55 } from "../JsonTypes/StudyMaterials.js";
20
21
  import { Study_create_Z2D28E954 } from "../JsonTypes/Study.js";
@@ -501,7 +502,11 @@ export class ArcAssay {
501
502
  }
502
503
  const nextComments = map((c) => c.Copy(), this$.Comments);
503
504
  const nextPerformers = map((c_1) => c_1.Copy(), this$.Performers);
504
- return new ArcAssay(this$.Identifier, unwrap(this$.MeasurementType), unwrap(this$.TechnologyType), unwrap(this$.TechnologyPlatform), nextTables, nextPerformers, nextComments);
505
+ const arg = this$.Identifier;
506
+ const arg_1 = this$.MeasurementType;
507
+ const arg_2 = this$.TechnologyType;
508
+ const arg_3 = this$.TechnologyPlatform;
509
+ return ArcAssay.make(arg, arg_1, arg_2, arg_3, nextTables, nextPerformers, nextComments);
505
510
  }
506
511
  UpdateBy(assay, onlyReplaceExisting, appendSequences) {
507
512
  const this$ = this;
@@ -637,6 +642,45 @@ export class ArcAssay {
637
642
  identifer = ((matchValue == null) ? createMissingIdentifier() : Assay_identifierFromFileName(matchValue));
638
643
  return ArcAssay.create(identifer, unwrap(map_1((x) => x.Copy(), a.MeasurementType)), unwrap(map_1((x_1) => x_1.Copy(), a.TechnologyType)), unwrap(map_1((arg_2) => ArcAssay.decomposeTechnologyPlatform(arg_2), a.TechnologyPlatform)), unwrap(tables), void 0, unwrap(map_1(toArray_1, a.Comments)));
639
644
  }
645
+ StructurallyEquals(other) {
646
+ let a, b, a_1, b_1, a_2, b_2;
647
+ const this$ = this;
648
+ return forAll((x) => (x === true), [this$.Identifier === other.Identifier, equals(this$.MeasurementType, other.MeasurementType), equals(this$.TechnologyType, other.TechnologyType), equals(this$.TechnologyPlatform, other.TechnologyPlatform), (a = this$.Tables, (b = other.Tables, (length(a) === length(b)) && fold((acc, e) => {
649
+ if (acc) {
650
+ return e;
651
+ }
652
+ else {
653
+ return false;
654
+ }
655
+ }, true, toList(delay(() => map_2((i_1) => equals(item(i_1, a), item(i_1, b)), rangeDouble(0, 1, length(a) - 1))))))), (a_1 = this$.Performers, (b_1 = other.Performers, (length(a_1) === length(b_1)) && fold((acc_1, e_1) => {
656
+ if (acc_1) {
657
+ return e_1;
658
+ }
659
+ else {
660
+ return false;
661
+ }
662
+ }, true, toList(delay(() => map_2((i_2) => equals(item(i_2, a_1), item(i_2, b_1)), rangeDouble(0, 1, length(a_1) - 1))))))), (a_2 = this$.Comments, (b_2 = other.Comments, (length(a_2) === length(b_2)) && fold((acc_2, e_2) => {
663
+ if (acc_2) {
664
+ return e_2;
665
+ }
666
+ else {
667
+ return false;
668
+ }
669
+ }, true, toList(delay(() => map_2((i_3) => equals(item(i_3, a_2), item(i_3, b_2)), rangeDouble(0, 1, length(a_2) - 1)))))))]);
670
+ }
671
+ ReferenceEquals(other) {
672
+ const this$ = this;
673
+ return this$ === other;
674
+ }
675
+ Equals(other) {
676
+ let assay;
677
+ const this$ = this;
678
+ return (other instanceof ArcAssay) && ((assay = other, this$.StructurallyEquals(assay)));
679
+ }
680
+ GetHashCode() {
681
+ const this$ = this;
682
+ return HashCodes_boxHashArray([this$.Identifier, HashCodes_boxHashOption(this$.MeasurementType), HashCodes_boxHashOption(this$.TechnologyType), HashCodes_boxHashOption(this$.TechnologyPlatform), HashCodes_boxHashArray(Array.from(this$.Tables)), HashCodes_boxHashArray(this$.Performers), HashCodes_boxHashArray(this$.Comments)]) | 0;
683
+ }
640
684
  }
641
685
 
642
686
  export function ArcAssay_$reflection() {
@@ -656,7 +700,7 @@ export class ArcStudy {
656
700
  const registeredAssayIdentifiers_1 = defaultArg(registeredAssayIdentifiers, []);
657
701
  const factors_1 = defaultArg(factors, []);
658
702
  const comments_1 = defaultArg(comments, []);
659
- this["identifier@615"] = identifier;
703
+ this["identifier@653"] = identifier;
660
704
  this.investigation = void 0;
661
705
  this["Title@"] = title;
662
706
  this["Description@"] = description;
@@ -672,11 +716,11 @@ export class ArcStudy {
672
716
  }
673
717
  get Identifier() {
674
718
  const this$ = this;
675
- return this$["identifier@615"];
719
+ return this$["identifier@653"];
676
720
  }
677
721
  set Identifier(i) {
678
722
  const this$ = this;
679
- this$["identifier@615"] = i;
723
+ this$["identifier@653"] = i;
680
724
  }
681
725
  get Investigation() {
682
726
  const this$ = this;
@@ -1314,7 +1358,12 @@ export class ArcStudy {
1314
1358
  const nextContacts = map((c_2) => c_2.Copy(), this$.Contacts);
1315
1359
  const nextPublications = map((c_3) => c_3.Copy(), this$.Publications);
1316
1360
  const nextStudyDesignDescriptors = map((c_4) => c_4.Copy(), this$.StudyDesignDescriptors);
1317
- return new ArcStudy(this$.Identifier, unwrap(this$.Title), unwrap(this$.Description), unwrap(this$.SubmissionDate), unwrap(this$.PublicReleaseDate), nextPublications, nextContacts, nextStudyDesignDescriptors, nextTables, nextAssayIdentifiers, nextFactors, nextComments);
1361
+ const arg = this$.Identifier;
1362
+ const arg_1 = this$.Title;
1363
+ const arg_2 = this$.Description;
1364
+ const arg_3 = this$.SubmissionDate;
1365
+ const arg_4 = this$.PublicReleaseDate;
1366
+ return ArcStudy.make(arg, arg_1, arg_2, arg_3, arg_4, nextPublications, nextContacts, nextStudyDesignDescriptors, nextTables, nextAssayIdentifiers, nextFactors, nextComments);
1318
1367
  }
1319
1368
  UpdateReferenceByStudyFile(study, onlyReplaceExisting, keepUnusedRefTables) {
1320
1369
  const this$ = this;
@@ -1379,6 +1428,73 @@ export class ArcStudy {
1379
1428
  assaysIdentifiers = Array.from(arg_5);
1380
1429
  return [ArcStudy.create(identifer, unwrap(s.Title), unwrap(s.Description), unwrap(s.SubmissionDate), unwrap(s.PublicReleaseDate), unwrap(map_1(toArray_1, s.Publications)), unwrap(map_1(toArray_1, s.Contacts)), unwrap(map_1(toArray_1, s.StudyDesignDescriptors)), unwrap(tables), assaysIdentifiers, unwrap(map_1(toArray_1, s.Factors)), unwrap(map_1(toArray_1, s.Comments))), assays];
1381
1430
  }
1431
+ StructurallyEquals(other) {
1432
+ let a, b, a_1, b_1, a_2, b_2, a_3, b_3, a_4, b_4, a_5, b_5, a_6, b_6;
1433
+ const this$ = this;
1434
+ return forAll((x) => (x === true), [this$.Identifier === other.Identifier, equals(this$.Title, other.Title), equals(this$.Description, other.Description), equals(this$.SubmissionDate, other.SubmissionDate), equals(this$.PublicReleaseDate, other.PublicReleaseDate), (a = this$.Publications, (b = other.Publications, (length(a) === length(b)) && fold((acc, e) => {
1435
+ if (acc) {
1436
+ return e;
1437
+ }
1438
+ else {
1439
+ return false;
1440
+ }
1441
+ }, true, toList(delay(() => map_2((i_1) => equals(item(i_1, a), item(i_1, b)), rangeDouble(0, 1, length(a) - 1))))))), (a_1 = this$.Contacts, (b_1 = other.Contacts, (length(a_1) === length(b_1)) && fold((acc_1, e_1) => {
1442
+ if (acc_1) {
1443
+ return e_1;
1444
+ }
1445
+ else {
1446
+ return false;
1447
+ }
1448
+ }, true, toList(delay(() => map_2((i_2) => equals(item(i_2, a_1), item(i_2, b_1)), rangeDouble(0, 1, length(a_1) - 1))))))), (a_2 = this$.StudyDesignDescriptors, (b_2 = other.StudyDesignDescriptors, (length(a_2) === length(b_2)) && fold((acc_2, e_2) => {
1449
+ if (acc_2) {
1450
+ return e_2;
1451
+ }
1452
+ else {
1453
+ return false;
1454
+ }
1455
+ }, true, toList(delay(() => map_2((i_3) => equals(item(i_3, a_2), item(i_3, b_2)), rangeDouble(0, 1, length(a_2) - 1))))))), (a_3 = this$.Tables, (b_3 = other.Tables, (length(a_3) === length(b_3)) && fold((acc_3, e_3) => {
1456
+ if (acc_3) {
1457
+ return e_3;
1458
+ }
1459
+ else {
1460
+ return false;
1461
+ }
1462
+ }, true, toList(delay(() => map_2((i_4) => equals(item(i_4, a_3), item(i_4, b_3)), rangeDouble(0, 1, length(a_3) - 1))))))), (a_4 = this$.RegisteredAssayIdentifiers, (b_4 = other.RegisteredAssayIdentifiers, (length(a_4) === length(b_4)) && fold((acc_4, e_4) => {
1463
+ if (acc_4) {
1464
+ return e_4;
1465
+ }
1466
+ else {
1467
+ return false;
1468
+ }
1469
+ }, true, toList(delay(() => map_2((i_5) => (item(i_5, a_4) === item(i_5, b_4)), rangeDouble(0, 1, length(a_4) - 1))))))), (a_5 = this$.Factors, (b_5 = other.Factors, (length(a_5) === length(b_5)) && fold((acc_5, e_5) => {
1470
+ if (acc_5) {
1471
+ return e_5;
1472
+ }
1473
+ else {
1474
+ return false;
1475
+ }
1476
+ }, true, toList(delay(() => map_2((i_6) => equals(item(i_6, a_5), item(i_6, b_5)), rangeDouble(0, 1, length(a_5) - 1))))))), (a_6 = this$.Comments, (b_6 = other.Comments, (length(a_6) === length(b_6)) && fold((acc_6, e_6) => {
1477
+ if (acc_6) {
1478
+ return e_6;
1479
+ }
1480
+ else {
1481
+ return false;
1482
+ }
1483
+ }, true, toList(delay(() => map_2((i_7) => equals(item(i_7, a_6), item(i_7, b_6)), rangeDouble(0, 1, length(a_6) - 1)))))))]);
1484
+ }
1485
+ ReferenceEquals(other) {
1486
+ const this$ = this;
1487
+ return this$ === other;
1488
+ }
1489
+ Equals(other) {
1490
+ let s;
1491
+ const this$ = this;
1492
+ return (other instanceof ArcStudy) && ((s = other, this$.StructurallyEquals(s)));
1493
+ }
1494
+ GetHashCode() {
1495
+ const this$ = this;
1496
+ return HashCodes_boxHashArray([this$.Identifier, HashCodes_boxHashOption(this$.Title), HashCodes_boxHashOption(this$.Description), HashCodes_boxHashOption(this$.SubmissionDate), HashCodes_boxHashOption(this$.PublicReleaseDate), HashCodes_boxHashArray(this$.Publications), HashCodes_boxHashArray(this$.Contacts), HashCodes_boxHashArray(this$.StudyDesignDescriptors), HashCodes_boxHashArray(Array.from(this$.Tables)), HashCodes_boxHashArray(Array.from(this$.RegisteredAssayIdentifiers)), HashCodes_boxHashArray(this$.Factors), HashCodes_boxHashArray(this$.Comments)]) | 0;
1497
+ }
1382
1498
  }
1383
1499
 
1384
1500
  export function ArcStudy_$reflection() {
@@ -1425,7 +1541,7 @@ export class ArcInvestigation {
1425
1541
  const registeredStudyIdentifiers_1 = defaultArg(registeredStudyIdentifiers, []);
1426
1542
  const comments_1 = defaultArg(comments, []);
1427
1543
  const remarks_1 = defaultArg(remarks, []);
1428
- this["identifier@1235"] = identifier;
1544
+ this["identifier@1321"] = identifier;
1429
1545
  this["Title@"] = title;
1430
1546
  this["Description@"] = description;
1431
1547
  this["SubmissionDate@"] = submissionDate;
@@ -1438,15 +1554,15 @@ export class ArcInvestigation {
1438
1554
  this["RegisteredStudyIdentifiers@"] = registeredStudyIdentifiers_1;
1439
1555
  this["Comments@"] = comments_1;
1440
1556
  this["Remarks@"] = remarks_1;
1441
- this["init@1216"] = 1;
1557
+ this["init@1302"] = 1;
1442
1558
  }
1443
1559
  get Identifier() {
1444
1560
  const this$ = this;
1445
- return this$["identifier@1235"];
1561
+ return this$["identifier@1321"];
1446
1562
  }
1447
1563
  set Identifier(i) {
1448
1564
  const this$ = this;
1449
- this$["identifier@1235"] = i;
1565
+ this$["identifier@1321"] = i;
1450
1566
  }
1451
1567
  get Title() {
1452
1568
  const __ = this;
@@ -1913,6 +2029,54 @@ export class ArcInvestigation {
1913
2029
  return copy;
1914
2030
  };
1915
2031
  }
2032
+ GetAllPersons() {
2033
+ const this$ = this;
2034
+ const persons = [];
2035
+ let enumerator = getEnumerator(this$.Assays);
2036
+ try {
2037
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
2038
+ const a = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
2039
+ addRangeInPlace(a.Performers, persons);
2040
+ }
2041
+ }
2042
+ finally {
2043
+ disposeSafe(enumerator);
2044
+ }
2045
+ let enumerator_1 = getEnumerator(this$.Studies);
2046
+ try {
2047
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
2048
+ const s = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
2049
+ addRangeInPlace(s.Contacts, persons);
2050
+ }
2051
+ }
2052
+ finally {
2053
+ disposeSafe(enumerator_1);
2054
+ }
2055
+ addRangeInPlace(this$.Contacts, persons);
2056
+ return Array_distinct(Array.from(persons), {
2057
+ Equals: equals,
2058
+ GetHashCode: safeHash,
2059
+ });
2060
+ }
2061
+ GetAllPublications() {
2062
+ const this$ = this;
2063
+ const pubs = [];
2064
+ let enumerator = getEnumerator(this$.Studies);
2065
+ try {
2066
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
2067
+ const s = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
2068
+ addRangeInPlace(s.Publications, pubs);
2069
+ }
2070
+ }
2071
+ finally {
2072
+ disposeSafe(enumerator);
2073
+ }
2074
+ addRangeInPlace(this$.Publications, pubs);
2075
+ return Array_distinct(Array.from(pubs), {
2076
+ Equals: equals,
2077
+ GetHashCode: safeHash,
2078
+ });
2079
+ }
1916
2080
  DeregisterMissingAssays() {
1917
2081
  const this$ = this;
1918
2082
  const inv = this$;
@@ -1949,6 +2113,31 @@ export class ArcInvestigation {
1949
2113
  return copy;
1950
2114
  };
1951
2115
  }
2116
+ UpdateIOTypeByEntityID() {
2117
+ let arg;
2118
+ const this$ = this;
2119
+ const ioMap = ArcTablesAux_getIOMap((arg = toList(delay(() => append_4(collect((study) => study.Tables, this$.Studies), delay(() => collect((assay) => assay.Tables, this$.Assays))))), Array.from(arg)));
2120
+ let enumerator = getEnumerator(this$.Studies);
2121
+ try {
2122
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
2123
+ const study_1 = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
2124
+ ArcTablesAux_applyIOMap(ioMap, study_1.Tables);
2125
+ }
2126
+ }
2127
+ finally {
2128
+ disposeSafe(enumerator);
2129
+ }
2130
+ let enumerator_1 = getEnumerator(this$.Assays);
2131
+ try {
2132
+ while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
2133
+ const assay_1 = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
2134
+ ArcTablesAux_applyIOMap(ioMap, assay_1.Tables);
2135
+ }
2136
+ }
2137
+ finally {
2138
+ disposeSafe(enumerator_1);
2139
+ }
2140
+ }
1952
2141
  Copy() {
1953
2142
  const this$ = this;
1954
2143
  const nextAssays = [];
@@ -2006,6 +2195,80 @@ export class ArcInvestigation {
2006
2195
  assays = Array.from(arg_2);
2007
2196
  return ArcInvestigation.create(identifer, i.Title, i.Description, i.SubmissionDate, i.PublicReleaseDate, void 0, map_1(toArray_1, i.Publications), map_1(toArray_1, i.Contacts), assays, studies, studyIdentifiers, map_1(toArray_1, i.Comments));
2008
2197
  }
2198
+ StructurallyEquals(other) {
2199
+ let a, b, a_1, b_1, a_2, b_2, a_3, b_3, a_4, b_4, a_5, b_5, a_6, b_6, a_7, b_7;
2200
+ const this$ = this;
2201
+ return forAll((x) => (x === true), [this$.Identifier === other.Identifier, equals(this$.Title, other.Title), equals(this$.Description, other.Description), equals(this$.SubmissionDate, other.SubmissionDate), equals(this$.PublicReleaseDate, other.PublicReleaseDate), (a = this$.Publications, (b = other.Publications, (length(a) === length(b)) && fold((acc, e) => {
2202
+ if (acc) {
2203
+ return e;
2204
+ }
2205
+ else {
2206
+ return false;
2207
+ }
2208
+ }, true, toList(delay(() => map_2((i_1) => equals(item(i_1, a), item(i_1, b)), rangeDouble(0, 1, length(a) - 1))))))), (a_1 = this$.Contacts, (b_1 = other.Contacts, (length(a_1) === length(b_1)) && fold((acc_1, e_1) => {
2209
+ if (acc_1) {
2210
+ return e_1;
2211
+ }
2212
+ else {
2213
+ return false;
2214
+ }
2215
+ }, true, toList(delay(() => map_2((i_2) => equals(item(i_2, a_1), item(i_2, b_1)), rangeDouble(0, 1, length(a_1) - 1))))))), (a_2 = this$.OntologySourceReferences, (b_2 = other.OntologySourceReferences, (length(a_2) === length(b_2)) && fold((acc_2, e_2) => {
2216
+ if (acc_2) {
2217
+ return e_2;
2218
+ }
2219
+ else {
2220
+ return false;
2221
+ }
2222
+ }, true, toList(delay(() => map_2((i_3) => equals(item(i_3, a_2), item(i_3, b_2)), rangeDouble(0, 1, length(a_2) - 1))))))), (a_3 = this$.Assays, (b_3 = other.Assays, (length(a_3) === length(b_3)) && fold((acc_3, e_3) => {
2223
+ if (acc_3) {
2224
+ return e_3;
2225
+ }
2226
+ else {
2227
+ return false;
2228
+ }
2229
+ }, true, toList(delay(() => map_2((i_4) => equals(item(i_4, a_3), item(i_4, b_3)), rangeDouble(0, 1, length(a_3) - 1))))))), (a_4 = this$.Studies, (b_4 = other.Studies, (length(a_4) === length(b_4)) && fold((acc_4, e_4) => {
2230
+ if (acc_4) {
2231
+ return e_4;
2232
+ }
2233
+ else {
2234
+ return false;
2235
+ }
2236
+ }, true, toList(delay(() => map_2((i_5) => equals(item(i_5, a_4), item(i_5, b_4)), rangeDouble(0, 1, length(a_4) - 1))))))), (a_5 = this$.RegisteredStudyIdentifiers, (b_5 = other.RegisteredStudyIdentifiers, (length(a_5) === length(b_5)) && fold((acc_5, e_5) => {
2237
+ if (acc_5) {
2238
+ return e_5;
2239
+ }
2240
+ else {
2241
+ return false;
2242
+ }
2243
+ }, true, toList(delay(() => map_2((i_6) => (item(i_6, a_5) === item(i_6, b_5)), rangeDouble(0, 1, length(a_5) - 1))))))), (a_6 = this$.Comments, (b_6 = other.Comments, (length(a_6) === length(b_6)) && fold((acc_6, e_6) => {
2244
+ if (acc_6) {
2245
+ return e_6;
2246
+ }
2247
+ else {
2248
+ return false;
2249
+ }
2250
+ }, true, toList(delay(() => map_2((i_7) => equals(item(i_7, a_6), item(i_7, b_6)), rangeDouble(0, 1, length(a_6) - 1))))))), (a_7 = this$.Remarks, (b_7 = other.Remarks, (length(a_7) === length(b_7)) && fold((acc_7, e_7) => {
2251
+ if (acc_7) {
2252
+ return e_7;
2253
+ }
2254
+ else {
2255
+ return false;
2256
+ }
2257
+ }, true, toList(delay(() => map_2((i_8) => equals(item(i_8, a_7), item(i_8, b_7)), rangeDouble(0, 1, length(a_7) - 1)))))))]);
2258
+ }
2259
+ ReferenceEquals(other) {
2260
+ const this$ = this;
2261
+ return this$ === other;
2262
+ }
2263
+ Equals(other) {
2264
+ let i;
2265
+ const this$ = this;
2266
+ return (other instanceof ArcInvestigation) && ((i = other, this$.StructurallyEquals(i)));
2267
+ }
2268
+ GetHashCode() {
2269
+ const this$ = this;
2270
+ return HashCodes_boxHashArray([this$.Identifier, HashCodes_boxHashOption(this$.Title), HashCodes_boxHashOption(this$.Description), HashCodes_boxHashOption(this$.SubmissionDate), HashCodes_boxHashOption(this$.PublicReleaseDate), HashCodes_boxHashArray(this$.Publications), HashCodes_boxHashArray(this$.Contacts), HashCodes_boxHashArray(this$.OntologySourceReferences), HashCodes_boxHashArray(Array.from(this$.Assays)), HashCodes_boxHashArray(Array.from(this$.Studies)), HashCodes_boxHashArray(Array.from(this$.RegisteredStudyIdentifiers)), HashCodes_boxHashArray(this$.Comments), HashCodes_boxHashArray(this$.Remarks)]) | 0;
2271
+ }
2009
2272
  }
2010
2273
 
2011
2274
  export function ArcInvestigation_$reflection() {
@@ -1,4 +1,5 @@
1
1
  import { defaultArg } from "../../../fable_modules/fable-library.4.1.4/Option.js";
2
+ import { empty, singleton, collect, delay, toArray } from "../../../fable_modules/fable-library.4.1.4/Seq.js";
2
3
  import { Record } from "../../../fable_modules/fable-library.4.1.4/Types.js";
3
4
  import { CompositeHeader_$reflection } from "./CompositeHeader.js";
4
5
  import { CompositeCell_$reflection } from "./CompositeCell.js";
@@ -13,7 +14,7 @@ export class CompositeColumn extends Record {
13
14
  static create(header, cells) {
14
15
  return new CompositeColumn(header, defaultArg(cells, []));
15
16
  }
16
- validate(raiseException) {
17
+ Validate(raiseException) {
17
18
  const this$ = this;
18
19
  const raiseExeption = defaultArg(raiseException, false);
19
20
  const header = this$.Header;
@@ -34,6 +35,11 @@ export class CompositeColumn extends Record {
34
35
  return false;
35
36
  }
36
37
  }
38
+ TryGetColumnUnits() {
39
+ const this$ = this;
40
+ const arr = toArray(delay(() => collect((cell) => (cell.isUnitized ? singleton(cell.AsUnitized[1]) : empty()), this$.Cells)));
41
+ return (arr.length === 0) ? void 0 : arr;
42
+ }
37
43
  }
38
44
 
39
45
  export function CompositeColumn_$reflection() {