@nfdi4plants/arctrl 3.0.0-alpha.3 → 3.0.0-beta.1
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/README.md +17 -9
- package/dist/ts/cjs/ts/ARC.js +25 -17
- package/dist/ts/cjs/ts/Conversion.js +133 -86
- package/dist/ts/cjs/ts/Core/ArcTypes.js +1 -1
- package/dist/ts/cjs/ts/Core/Conversion.js +110 -43
- package/dist/ts/cjs/ts/Core/Helper/Collections.js +84 -1
- package/dist/ts/cjs/ts/Core/OntologyAnnotation.js +27 -23
- package/dist/ts/cjs/ts/Core/Table/ArcTable.js +234 -217
- package/dist/ts/cjs/ts/Core/Table/ArcTableAux.js +915 -235
- package/dist/ts/cjs/ts/Core/Table/ArcTables.js +12 -19
- package/dist/ts/cjs/ts/Core/Table/CompositeColumn.js +4 -2
- package/dist/ts/cjs/ts/FileSystem/DefaultGitattributes.js +1 -1
- package/dist/ts/cjs/ts/Json/Decode.js +105 -0
- package/dist/ts/cjs/ts/Json/Encode.js +42 -0
- package/dist/ts/cjs/ts/Json/StringTable.js +9 -2
- package/dist/ts/cjs/ts/Json/Table/ArcTable.js +100 -113
- package/dist/ts/cjs/ts/Json/Table/CellTable.js +2 -2
- package/dist/ts/cjs/ts/Json/Table/OATable.js +2 -2
- package/dist/ts/cjs/ts/JsonIO/Table/Compression.js +4 -11
- package/dist/ts/cjs/ts/ROCrate/Generic/LabProcess.js +1 -1
- package/dist/ts/cjs/ts/ROCrate/LDContext.js +92 -54
- package/dist/ts/cjs/ts/Spreadsheet/AnnotationTable/ArcTable.js +15 -4
- package/dist/ts/cjs/ts/Spreadsheet/AnnotationTable/CompositeColumn.js +77 -6
- package/dist/ts/cjs/ts/Spreadsheet/ArcInvestigation.js +31 -15
- package/dist/ts/cjs/ts/Spreadsheet/DataMapTable/DataMapHeader.js +1 -1
- package/dist/ts/cjs/ts/Spreadsheet/Metadata/SparseTable.js +2 -5
- package/dist/ts/esm/ts/ARC.js +28 -20
- package/dist/ts/esm/ts/Conversion.js +137 -90
- package/dist/ts/esm/ts/Core/ArcTypes.js +1 -1
- package/dist/ts/esm/ts/Core/Conversion.js +112 -45
- package/dist/ts/esm/ts/Core/Helper/Collections.js +73 -1
- package/dist/ts/esm/ts/Core/OntologyAnnotation.js +29 -25
- package/dist/ts/esm/ts/Core/Table/ArcTable.js +243 -226
- package/dist/ts/esm/ts/Core/Table/ArcTableAux.js +907 -246
- package/dist/ts/esm/ts/Core/Table/ArcTables.js +15 -22
- package/dist/ts/esm/ts/Core/Table/CompositeColumn.js +5 -3
- package/dist/ts/esm/ts/FileSystem/DefaultGitattributes.js +1 -1
- package/dist/ts/esm/ts/Json/Decode.js +105 -3
- package/dist/ts/esm/ts/Json/Encode.js +42 -2
- package/dist/ts/esm/ts/Json/StringTable.js +10 -3
- package/dist/ts/esm/ts/Json/Table/ArcTable.js +108 -121
- package/dist/ts/esm/ts/Json/Table/CellTable.js +2 -2
- package/dist/ts/esm/ts/Json/Table/OATable.js +2 -2
- package/dist/ts/esm/ts/JsonIO/Table/Compression.js +4 -11
- package/dist/ts/esm/ts/ROCrate/Generic/LabProcess.js +1 -1
- package/dist/ts/esm/ts/ROCrate/LDContext.js +106 -66
- package/dist/ts/esm/ts/Spreadsheet/AnnotationTable/ArcTable.js +17 -7
- package/dist/ts/esm/ts/Spreadsheet/AnnotationTable/CompositeColumn.js +78 -9
- package/dist/ts/esm/ts/Spreadsheet/ArcInvestigation.js +33 -17
- package/dist/ts/esm/ts/Spreadsheet/DataMapTable/DataMapHeader.js +1 -1
- package/dist/ts/esm/ts/Spreadsheet/Metadata/SparseTable.js +3 -6
- package/dist/ts/types/ts/ARC.d.ts +2 -2
- package/dist/ts/types/ts/ARC.d.ts.map +1 -1
- package/dist/ts/types/ts/Conversion.d.ts +17 -18
- package/dist/ts/types/ts/Conversion.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/ArcTypes.d.ts +2 -0
- package/dist/ts/types/ts/Core/ArcTypes.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Conversion.d.ts +14 -15
- package/dist/ts/types/ts/Core/Conversion.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Helper/Collections.d.ts +11 -0
- package/dist/ts/types/ts/Core/Helper/Collections.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/OntologyAnnotation.d.ts +9 -0
- package/dist/ts/types/ts/Core/OntologyAnnotation.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Table/ArcTable.d.ts +35 -28
- package/dist/ts/types/ts/Core/Table/ArcTable.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Table/ArcTableAux.d.ts +84 -33
- package/dist/ts/types/ts/Core/Table/ArcTableAux.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Table/ArcTables.d.ts.map +1 -1
- package/dist/ts/types/ts/Core/Table/CompositeColumn.d.ts.map +1 -1
- package/dist/ts/types/ts/FileSystem/DefaultGitattributes.d.ts +1 -1
- package/dist/ts/types/ts/FileSystem/DefaultGitattributes.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/Decode.d.ts +6 -0
- package/dist/ts/types/ts/Json/Decode.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/Encode.d.ts +2 -0
- package/dist/ts/types/ts/Json/Encode.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/StringTable.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/Table/ArcTable.d.ts +4 -3
- package/dist/ts/types/ts/Json/Table/ArcTable.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/Table/CellTable.d.ts.map +1 -1
- package/dist/ts/types/ts/Json/Table/OATable.d.ts.map +1 -1
- package/dist/ts/types/ts/JsonIO/Table/Compression.d.ts.map +1 -1
- package/dist/ts/types/ts/ROCrate/LDContext.d.ts +3 -5
- package/dist/ts/types/ts/ROCrate/LDContext.d.ts.map +1 -1
- package/dist/ts/types/ts/Spreadsheet/AnnotationTable/ArcTable.d.ts +5 -0
- package/dist/ts/types/ts/Spreadsheet/AnnotationTable/ArcTable.d.ts.map +1 -1
- package/dist/ts/types/ts/Spreadsheet/AnnotationTable/CompositeColumn.d.ts +7 -0
- package/dist/ts/types/ts/Spreadsheet/AnnotationTable/CompositeColumn.d.ts.map +1 -1
- package/dist/ts/types/ts/Spreadsheet/ArcInvestigation.d.ts.map +1 -1
- package/dist/ts/types/ts/Spreadsheet/Metadata/SparseTable.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { sortBy, map, toArray } from "@fable-org/fable-library-js/Seq.js";
|
|
2
|
+
import { Dictionary_tryFind, Dictionary_items } from "../../Core/Helper/Collections.js";
|
|
2
3
|
import { comparePrimitives } from "@fable-org/fable-library-js/Util.js";
|
|
3
4
|
import { item, map as map_1 } from "@fable-org/fable-library-js/Array.js";
|
|
4
5
|
import { OntologyAnnotation_compressedDecoder, OntologyAnnotation_compressedEncoder } from "../OntologyAnnotation.js";
|
|
5
6
|
import { int, object, array as array_2 } from "../../fable_modules/Thoth.Json.Core.0.4.0/Decode.fs.js";
|
|
6
|
-
import { Dictionary_tryFind } from "../../Core/Helper/Collections.js";
|
|
7
7
|
import { value as value_2 } from "@fable-org/fable-library-js/Option.js";
|
|
8
8
|
import { addToDict } from "@fable-org/fable-library-js/MapUtil.js";
|
|
9
9
|
export function arrayFromMap(otm) {
|
|
10
|
-
return toArray(map((kv_1) => kv_1[0], sortBy((kv) => kv[1], otm, {
|
|
10
|
+
return toArray(map((kv_1) => kv_1[0], sortBy((kv) => kv[1], Dictionary_items(otm), {
|
|
11
11
|
Compare: comparePrimitives,
|
|
12
12
|
})));
|
|
13
13
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Dictionary } from "@fable-org/fable-library-js/MutableMap.js";
|
|
1
|
+
import { Dictionary_init } from "../../Core/Helper/Collections.js";
|
|
3
2
|
import { toString } from "../../fable_modules/Thoth.Json.JavaScript.0.3.0/Encode.fs.js";
|
|
4
3
|
import { decoder as decoder_3, arrayFromMap, encoder as encoder_1 } from "../../Json/Table/CellTable.js";
|
|
5
4
|
import { decoder as decoder_2, arrayFromMap as arrayFromMap_1, encoder as encoder_2 } from "../../Json/Table/OATable.js";
|
|
@@ -7,15 +6,9 @@ import { decoder as decoder_1, arrayFromMap as arrayFromMap_2, encoder as encode
|
|
|
7
6
|
import { map } from "@fable-org/fable-library-js/Seq.js";
|
|
8
7
|
import { object as object_1 } from "../../fable_modules/Thoth.Json.Core.0.4.0/Decode.fs.js";
|
|
9
8
|
export function encode(encoder, obj) {
|
|
10
|
-
const stringTable =
|
|
11
|
-
const oaTable =
|
|
12
|
-
|
|
13
|
-
GetHashCode: safeHash,
|
|
14
|
-
});
|
|
15
|
-
const cellTable = new Dictionary([], {
|
|
16
|
-
Equals: equals,
|
|
17
|
-
GetHashCode: safeHash,
|
|
18
|
-
});
|
|
9
|
+
const stringTable = Dictionary_init();
|
|
10
|
+
const oaTable = Dictionary_init();
|
|
11
|
+
const cellTable = Dictionary_init();
|
|
19
12
|
const object = encoder(stringTable, oaTable, cellTable, obj);
|
|
20
13
|
toString(0, object);
|
|
21
14
|
const values = [["cellTable", encoder_1(stringTable, oaTable, arrayFromMap(cellTable))], ["oaTable", encoder_2(stringTable, arrayFromMap_1(oaTable))], ["stringTable", encoder_3(arrayFromMap_2(stringTable))], ["object", object]];
|
|
@@ -212,7 +212,7 @@ export class LDLabProcess {
|
|
|
212
212
|
}
|
|
213
213
|
static genId(name, assayName, studyName) {
|
|
214
214
|
let study_1, assay_1, assay, study;
|
|
215
|
-
return clean((assayName == null) ? ((studyName != null) ? ((study_1 = value(studyName), `#
|
|
215
|
+
return clean((assayName == null) ? ((studyName != null) ? ((study_1 = value(studyName), `#Process_S_${study_1}_${name}`)) : (`#Process_${name}`)) : ((studyName == null) ? ((assay_1 = value(assayName), `#Process_A_${assay_1}_${name}`)) : ((assay = value(assayName), (study = value(studyName), `#Process_S_${study}_A_${assay}_${name}`)))));
|
|
216
216
|
}
|
|
217
217
|
static create(name, objects, results, id, agent, executesLabProtocol, parameterValues, endTime, disambiguatingDescriptions, context) {
|
|
218
218
|
const id_1 = (id == null) ? LDLabProcess.genId(name) : value(id);
|
|
@@ -1,42 +1,18 @@
|
|
|
1
|
-
import { Dictionary } from "@fable-org/fable-library-js/MutableMap.js";
|
|
2
|
-
import { stringHash, comparePrimitives, safeHash, disposeSafe, getEnumerator, defaultOf, structuralHash, equals } from "@fable-org/fable-library-js/Util.js";
|
|
3
|
-
import { tryPick, sort, map, reduce, iterate } from "@fable-org/fable-library-js/Seq.js";
|
|
4
|
-
import { getItemFromDict, tryGetValue, addToDict } from "@fable-org/fable-library-js/MapUtil.js";
|
|
5
|
-
import { toString, FSharpRef } from "@fable-org/fable-library-js/Types.js";
|
|
6
|
-
import { defaultArg, unwrap, value as value_1, some } from "@fable-org/fable-library-js/Option.js";
|
|
7
1
|
import { ActivePatterns_$007CRegex$007C_$007C } from "../Core/Helper/Regex.js";
|
|
2
|
+
import { defaultArg, unwrap, value as value_5 } from "@fable-org/fable-library-js/Option.js";
|
|
3
|
+
import { FSharpRef, toString } from "@fable-org/fable-library-js/Types.js";
|
|
8
4
|
import { Uri } from "@fable-org/fable-library-js/Uri.js";
|
|
9
|
-
import {
|
|
5
|
+
import { defaultOf, stringHash, comparePrimitives, safeHash, disposeSafe, getEnumerator } from "@fable-org/fable-library-js/Util.js";
|
|
6
|
+
import { tryGetValue, getItemFromDict, addToDict } from "@fable-org/fable-library-js/MapUtil.js";
|
|
7
|
+
import { tryPick, sort, map, reduce } from "@fable-org/fable-library-js/Seq.js";
|
|
8
|
+
import { StringDictionary_ofSeq } from "../Core/Helper/Collections.js";
|
|
10
9
|
import { hash as hash_2, mergeHashes, boxHashSeq } from "../Core/Helper/HashCodes.js";
|
|
11
10
|
import { class_type } from "@fable-org/fable-library-js/Reflection.js";
|
|
12
|
-
export function Dictionary_ofSeq(s) {
|
|
13
|
-
const dict = new Dictionary([], {
|
|
14
|
-
Equals: equals,
|
|
15
|
-
GetHashCode: structuralHash,
|
|
16
|
-
});
|
|
17
|
-
iterate((tupledArg) => {
|
|
18
|
-
addToDict(dict, tupledArg[0], tupledArg[1]);
|
|
19
|
-
}, s);
|
|
20
|
-
return dict;
|
|
21
|
-
}
|
|
22
|
-
export function Dictionary_tryFind(key, dict) {
|
|
23
|
-
let patternInput;
|
|
24
|
-
let outArg = defaultOf();
|
|
25
|
-
patternInput = [tryGetValue(dict, key, new FSharpRef(() => outArg, (v) => {
|
|
26
|
-
outArg = v;
|
|
27
|
-
})), outArg];
|
|
28
|
-
if (patternInput[0]) {
|
|
29
|
-
return some(patternInput[1]);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
11
|
export const IRIHelper_compactIRIRegex = "(?<prefix>.*):(?<suffix>[^\\/][^\\/].*)";
|
|
36
12
|
export function IRIHelper_$007CCompactIri$007C_$007C(termDefition) {
|
|
37
13
|
const activePatternResult = ActivePatterns_$007CRegex$007C_$007C(IRIHelper_compactIRIRegex, termDefition);
|
|
38
14
|
if (activePatternResult != null) {
|
|
39
|
-
const result =
|
|
15
|
+
const result = value_5(activePatternResult);
|
|
40
16
|
return [(result.groups && result.groups.prefix) || "", (result.groups && result.groups.suffix) || ""];
|
|
41
17
|
}
|
|
42
18
|
else {
|
|
@@ -54,7 +30,7 @@ export function IRIHelper_combine(baseIRI, relative) {
|
|
|
54
30
|
export function IRIHelper_combineOptional(baseIRI, relative) {
|
|
55
31
|
if (baseIRI == null) {
|
|
56
32
|
if (relative != null) {
|
|
57
|
-
const r_1 =
|
|
33
|
+
const r_1 = value_5(relative);
|
|
58
34
|
return r_1;
|
|
59
35
|
}
|
|
60
36
|
else {
|
|
@@ -62,23 +38,23 @@ export function IRIHelper_combineOptional(baseIRI, relative) {
|
|
|
62
38
|
}
|
|
63
39
|
}
|
|
64
40
|
else if (relative == null) {
|
|
65
|
-
const b_1 =
|
|
41
|
+
const b_1 = value_5(baseIRI);
|
|
66
42
|
return b_1;
|
|
67
43
|
}
|
|
68
44
|
else {
|
|
69
|
-
const b =
|
|
70
|
-
const r =
|
|
45
|
+
const b = value_5(baseIRI);
|
|
46
|
+
const r = value_5(relative);
|
|
71
47
|
return IRIHelper_combine(b, r);
|
|
72
48
|
}
|
|
73
49
|
}
|
|
74
50
|
export class LDContext {
|
|
75
51
|
constructor(mappings, baseContexts) {
|
|
76
|
-
this["baseContexts@
|
|
52
|
+
this["baseContexts@41"] = defaultArg(baseContexts, []);
|
|
77
53
|
this.name = undefined;
|
|
78
|
-
this["mappings@
|
|
54
|
+
this["mappings@45"] = ((mappings == null) ? (new Map([])) : value_5(mappings));
|
|
79
55
|
this.reverseMappings = (new Map([]));
|
|
80
56
|
this.compactReverseMappings = (new Map([]));
|
|
81
|
-
let enumerator = getEnumerator(this["mappings@
|
|
57
|
+
let enumerator = getEnumerator(this["mappings@45"]);
|
|
82
58
|
try {
|
|
83
59
|
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
84
60
|
const kvp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
@@ -91,15 +67,15 @@ export class LDContext {
|
|
|
91
67
|
}
|
|
92
68
|
get Mappings() {
|
|
93
69
|
const this$ = this;
|
|
94
|
-
return this$["mappings@
|
|
70
|
+
return this$["mappings@45"];
|
|
95
71
|
}
|
|
96
72
|
get BaseContexts() {
|
|
97
73
|
const this$ = this;
|
|
98
|
-
return this$["baseContexts@
|
|
74
|
+
return this$["baseContexts@41"];
|
|
99
75
|
}
|
|
100
76
|
set BaseContexts(value) {
|
|
101
77
|
const this$ = this;
|
|
102
|
-
this$["baseContexts@
|
|
78
|
+
this$["baseContexts@41"] = value;
|
|
103
79
|
}
|
|
104
80
|
get Name() {
|
|
105
81
|
const this$ = this;
|
|
@@ -111,7 +87,15 @@ export class LDContext {
|
|
|
111
87
|
}
|
|
112
88
|
AddMapping(term, definition) {
|
|
113
89
|
const this$ = this;
|
|
114
|
-
|
|
90
|
+
const key = term;
|
|
91
|
+
const value = definition;
|
|
92
|
+
const dict = this$["mappings@45"];
|
|
93
|
+
if (dict.has(key)) {
|
|
94
|
+
dict.set(key, value);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
addToDict(dict, key, value);
|
|
98
|
+
}
|
|
115
99
|
this$.addReverseMapping(term, definition);
|
|
116
100
|
}
|
|
117
101
|
TryResolveTerm(term) {
|
|
@@ -131,11 +115,11 @@ export class LDContext {
|
|
|
131
115
|
else {
|
|
132
116
|
const p1Def = this$.TryResolveTerm(p1);
|
|
133
117
|
const p2Def = this$.TryResolveTerm(p2);
|
|
134
|
-
return (p1Def == null) ? ((p2Def != null) && ((p2Def_2 =
|
|
118
|
+
return (p1Def == null) ? ((p2Def != null) && ((p2Def_2 = value_5(p2Def), p1 === p2Def_2))) : ((p2Def == null) ? ((p1Def_2 = value_5(p1Def), p1Def_2 === p2)) : ((p1Def_1 = value_5(p1Def), (p2Def_1 = value_5(p2Def), p1Def_1 === p2Def_1))));
|
|
135
119
|
}
|
|
136
120
|
}
|
|
137
121
|
static fromMappingSeq(mappings) {
|
|
138
|
-
return new LDContext(
|
|
122
|
+
return new LDContext(StringDictionary_ofSeq(mappings));
|
|
139
123
|
}
|
|
140
124
|
static combine_InPlace(baseContext, specificContext) {
|
|
141
125
|
void (specificContext.BaseContexts.push(baseContext));
|
|
@@ -146,12 +130,12 @@ export class LDContext {
|
|
|
146
130
|
}
|
|
147
131
|
static tryCombineOptional(baseContext, specificContext) {
|
|
148
132
|
let s_1, f_1, f, s;
|
|
149
|
-
return (baseContext == null) ? ((specificContext != null) ? ((s_1 =
|
|
133
|
+
return (baseContext == null) ? ((specificContext != null) ? ((s_1 = value_5(specificContext), s_1)) : undefined) : ((specificContext == null) ? ((f_1 = value_5(baseContext), f_1)) : ((f = value_5(baseContext), (s = value_5(specificContext), LDContext.combine(f, s)))));
|
|
150
134
|
}
|
|
151
135
|
ShallowCopy() {
|
|
152
136
|
const this$ = this;
|
|
153
137
|
const newMappings = new Map([]);
|
|
154
|
-
let enumerator = getEnumerator(this$["mappings@
|
|
138
|
+
let enumerator = getEnumerator(this$["mappings@45"]);
|
|
155
139
|
try {
|
|
156
140
|
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
157
141
|
const kvp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
@@ -161,12 +145,12 @@ export class LDContext {
|
|
|
161
145
|
finally {
|
|
162
146
|
disposeSafe(enumerator);
|
|
163
147
|
}
|
|
164
|
-
return new LDContext(newMappings, this$["baseContexts@
|
|
148
|
+
return new LDContext(newMappings, this$["baseContexts@41"]);
|
|
165
149
|
}
|
|
166
150
|
DeepCopy() {
|
|
167
151
|
const this$ = this;
|
|
168
152
|
const newMappings = new Map([]);
|
|
169
|
-
let enumerator = getEnumerator(this$["mappings@
|
|
153
|
+
let enumerator = getEnumerator(this$["mappings@45"]);
|
|
170
154
|
try {
|
|
171
155
|
while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
|
|
172
156
|
const kvp = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
@@ -177,7 +161,7 @@ export class LDContext {
|
|
|
177
161
|
disposeSafe(enumerator);
|
|
178
162
|
}
|
|
179
163
|
const newBaseContexts = [];
|
|
180
|
-
let enumerator_1 = getEnumerator(this$["baseContexts@
|
|
164
|
+
let enumerator_1 = getEnumerator(this$["baseContexts@41"]);
|
|
181
165
|
try {
|
|
182
166
|
while (enumerator_1["System.Collections.IEnumerator.MoveNext"]()) {
|
|
183
167
|
const ctx = enumerator_1["System.Collections.Generic.IEnumerator`1.get_Current"]();
|
|
@@ -209,8 +193,8 @@ export class LDContext {
|
|
|
209
193
|
}))) | 0;
|
|
210
194
|
let nameHash;
|
|
211
195
|
const matchValue = this$.Name;
|
|
212
|
-
nameHash = ((matchValue == null) ? 0 : stringHash(
|
|
213
|
-
const baseContextsHash = ((this$["baseContexts@
|
|
196
|
+
nameHash = ((matchValue == null) ? 0 : stringHash(value_5(matchValue)));
|
|
197
|
+
const baseContextsHash = ((this$["baseContexts@41"].length === 0) ? 0 : reduce(mergeHashes, map(safeHash, this$["baseContexts@41"]))) | 0;
|
|
214
198
|
return mergeHashes(mergeHashes(mappingsHash, nameHash), baseContextsHash) | 0;
|
|
215
199
|
}
|
|
216
200
|
"System.ICloneable.Clone"() {
|
|
@@ -219,26 +203,70 @@ export class LDContext {
|
|
|
219
203
|
}
|
|
220
204
|
addReverseMapping(key, value) {
|
|
221
205
|
const this$ = this;
|
|
222
|
-
|
|
206
|
+
const key_1 = value;
|
|
207
|
+
const value_1 = key;
|
|
208
|
+
const dict = this$.reverseMappings;
|
|
209
|
+
if (dict.has(key_1)) {
|
|
210
|
+
dict.set(key_1, value_1);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
addToDict(dict, key_1, value_1);
|
|
214
|
+
}
|
|
223
215
|
const activePatternResult = IRIHelper_$007CCompactIri$007C_$007C(value);
|
|
224
216
|
if (activePatternResult != null) {
|
|
225
|
-
const prefix =
|
|
226
|
-
const suffix =
|
|
227
|
-
|
|
228
|
-
const
|
|
217
|
+
const prefix = value_5(activePatternResult)[0];
|
|
218
|
+
const suffix = value_5(activePatternResult)[1];
|
|
219
|
+
const key_2 = prefix;
|
|
220
|
+
const value_2 = [suffix, key];
|
|
221
|
+
const dict_1 = this$.compactReverseMappings;
|
|
222
|
+
if (dict_1.has(key_2)) {
|
|
223
|
+
dict_1.set(key_2, value_2);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
addToDict(dict_1, key_2, value_2);
|
|
227
|
+
}
|
|
228
|
+
let matchValue;
|
|
229
|
+
let patternInput;
|
|
230
|
+
let outArg = defaultOf();
|
|
231
|
+
patternInput = [tryGetValue(this$["mappings@45"], prefix, new FSharpRef(() => outArg, (v) => {
|
|
232
|
+
outArg = v;
|
|
233
|
+
})), outArg];
|
|
234
|
+
matchValue = (patternInput[0] ? patternInput[1] : undefined);
|
|
229
235
|
if (matchValue == null) {
|
|
230
236
|
}
|
|
231
237
|
else {
|
|
232
|
-
|
|
238
|
+
const key_4 = IRIHelper_combine(value_5(matchValue), suffix);
|
|
239
|
+
const value_3 = key;
|
|
240
|
+
const dict_3 = this$.reverseMappings;
|
|
241
|
+
if (dict_3.has(key_4)) {
|
|
242
|
+
dict_3.set(key_4, value_3);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
addToDict(dict_3, key_4, value_3);
|
|
246
|
+
}
|
|
233
247
|
}
|
|
234
248
|
}
|
|
235
249
|
else {
|
|
236
|
-
|
|
250
|
+
let matchValue_1;
|
|
251
|
+
let patternInput_1;
|
|
252
|
+
let outArg_1 = defaultOf();
|
|
253
|
+
patternInput_1 = [tryGetValue(this$.compactReverseMappings, key, new FSharpRef(() => outArg_1, (v_2) => {
|
|
254
|
+
outArg_1 = v_2;
|
|
255
|
+
})), outArg_1];
|
|
256
|
+
matchValue_1 = (patternInput_1[0] ? patternInput_1[1] : undefined);
|
|
237
257
|
if (matchValue_1 == null) {
|
|
238
258
|
}
|
|
239
259
|
else {
|
|
240
|
-
const term =
|
|
241
|
-
|
|
260
|
+
const term = value_5(matchValue_1)[1];
|
|
261
|
+
const key_6 = IRIHelper_combine(value, value_5(matchValue_1)[0]);
|
|
262
|
+
const value_4 = term;
|
|
263
|
+
const dict_5 = this$.reverseMappings;
|
|
264
|
+
if (dict_5.has(key_6)) {
|
|
265
|
+
dict_5.set(key_6, value_4);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
addToDict(dict_5, key_6, value_4);
|
|
269
|
+
}
|
|
242
270
|
}
|
|
243
271
|
}
|
|
244
272
|
}
|
|
@@ -246,20 +274,32 @@ export class LDContext {
|
|
|
246
274
|
let prefix, suffix, d;
|
|
247
275
|
const this$ = this;
|
|
248
276
|
let definition;
|
|
249
|
-
|
|
250
|
-
|
|
277
|
+
let matchValue;
|
|
278
|
+
let patternInput;
|
|
279
|
+
let outArg = defaultOf();
|
|
280
|
+
patternInput = [tryGetValue(this$["mappings@45"], term, new FSharpRef(() => outArg, (v) => {
|
|
281
|
+
outArg = v;
|
|
282
|
+
})), outArg];
|
|
283
|
+
matchValue = (patternInput[0] ? patternInput[1] : undefined);
|
|
284
|
+
definition = ((matchValue == null) ? tryPick((ctx) => ctx.TryResolveTerm(term), this$["baseContexts@41"]) : value_5(matchValue));
|
|
251
285
|
if (definition == null) {
|
|
252
286
|
return undefined;
|
|
253
287
|
}
|
|
254
288
|
else {
|
|
255
|
-
const activePatternResult = IRIHelper_$007CCompactIri$007C_$007C(
|
|
256
|
-
return (activePatternResult != null) ? ((prefix =
|
|
289
|
+
const activePatternResult = IRIHelper_$007CCompactIri$007C_$007C(value_5(definition));
|
|
290
|
+
return (activePatternResult != null) ? ((prefix = value_5(activePatternResult)[0], (suffix = value_5(activePatternResult)[1], IRIHelper_combine((prefix === term) ? prefix : defaultArg(this$.tryFindTerm(prefix), prefix), (suffix === term) ? suffix : defaultArg(this$.tryFindTerm(suffix), suffix))))) : ((d = value_5(definition), d));
|
|
257
291
|
}
|
|
258
292
|
}
|
|
259
293
|
tryFindIri(iri) {
|
|
260
294
|
const this$ = this;
|
|
261
|
-
|
|
262
|
-
|
|
295
|
+
let matchValue;
|
|
296
|
+
let patternInput;
|
|
297
|
+
let outArg = defaultOf();
|
|
298
|
+
patternInput = [tryGetValue(this$.reverseMappings, iri, new FSharpRef(() => outArg, (v) => {
|
|
299
|
+
outArg = v;
|
|
300
|
+
})), outArg];
|
|
301
|
+
matchValue = (patternInput[0] ? patternInput[1] : undefined);
|
|
302
|
+
return (matchValue == null) ? tryPick((ctx) => ctx.TryGetTerm(iri), this$["baseContexts@41"]) : value_5(matchValue);
|
|
263
303
|
}
|
|
264
304
|
tryCompactIRI(iri) {
|
|
265
305
|
throw new Error("TryCompactIRI is Not implemented yet");
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { iterateIndexed, length, sortBy, collect as collect_1, exists, toArray, ofArray, empty, tail, head, isEmpty, cons, singleton, fold, map, reverse } from "@fable-org/fable-library-js/List.js";
|
|
2
|
-
import { item, map as map_1 } from "@fable-org/fable-library-js/Array.js";
|
|
1
|
+
import { iterateIndexed, length, ofSeq, sortBy, collect as collect_1, exists, toArray, ofArray, empty, tail, head, isEmpty, cons, singleton, fold, map, reverse } from "@fable-org/fable-library-js/List.js";
|
|
2
|
+
import { unzip, item, map as map_1 } from "@fable-org/fable-library-js/Array.js";
|
|
3
3
|
import { fold as fold_1, singleton as singleton_1, collect, map as map_2, delay, toArray as toArray_1, tryFind } from "@fable-org/fable-library-js/Seq.js";
|
|
4
4
|
import { FsWorksheet } from "../../fable_modules/FsSpreadsheet.6.3.1/FsWorksheet.fs.js";
|
|
5
5
|
import { value as value_1 } from "@fable-org/fable-library-js/Option.js";
|
|
6
|
-
import { toStringCellColumns, fixDeprecatedIOHeader, fromStringCellColumns } from "./CompositeColumn.js";
|
|
6
|
+
import { toStringCellColumns, fixDeprecatedIOHeader, ColumnValueRefs_fromStringCellColumns, fromStringCellColumns } from "./CompositeColumn.js";
|
|
7
|
+
import { comparePrimitives } from "@fable-org/fable-library-js/Util.js";
|
|
8
|
+
import { ArcTableValues } from "../../Core/Table/ArcTableAux.js";
|
|
7
9
|
import { printf, toFail } from "@fable-org/fable-library-js/String.js";
|
|
8
10
|
import { Dictionary_tryGet, FsCellsCollection__TryGetCell_Z37302880 } from "../../fable_modules/FsSpreadsheet.6.3.1/Cells/FsCellsCollection.fs.js";
|
|
9
11
|
import { rangeDouble } from "@fable-org/fable-library-js/Range.js";
|
|
@@ -11,7 +13,6 @@ import { FsAddress_$ctor_Z37302880, FsAddress__get_ColumnNumber, FsAddress__get_
|
|
|
11
13
|
import { FsRangeAddress_$ctor_7E77A4A0, FsRangeAddress__get_LastAddress } from "../../fable_modules/FsSpreadsheet.6.3.1/Ranges/FsRangeAddress.fs.js";
|
|
12
14
|
import { FsRangeBase__Cell_Z3407A44B, FsRangeBase__get_RangeAddress } from "../../fable_modules/FsSpreadsheet.6.3.1/Ranges/FsRangeBase.fs.js";
|
|
13
15
|
import { ArcTable } from "../../Core/Table/ArcTable.js";
|
|
14
|
-
import { comparePrimitives } from "@fable-org/fable-library-js/Util.js";
|
|
15
16
|
import { max } from "@fable-org/fable-library-js/Double.js";
|
|
16
17
|
import { addToDict } from "@fable-org/fable-library-js/MapUtil.js";
|
|
17
18
|
/**
|
|
@@ -81,6 +82,15 @@ export function tryAnnotationTable(sheet) {
|
|
|
81
82
|
export function composeColumns(stringCellColumns) {
|
|
82
83
|
return map_1(fromStringCellColumns, groupColumnsByHeader(stringCellColumns));
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Groups and parses a collection of single columns into the according ISA composite columns
|
|
87
|
+
*/
|
|
88
|
+
export function composeArcTableValues(stringCellColumns) {
|
|
89
|
+
const valueMap = new Map([]);
|
|
90
|
+
const rowCount = (item(0, stringCellColumns).length - 1) | 0;
|
|
91
|
+
const patternInput = unzip(map_1((columns) => ColumnValueRefs_fromStringCellColumns(valueMap, columns), groupColumnsByHeader(stringCellColumns)));
|
|
92
|
+
return [patternInput[0], ArcTableValues.fromRefColumns(patternInput[1], valueMap, rowCount)];
|
|
93
|
+
}
|
|
84
94
|
/**
|
|
85
95
|
* Returns the protocol described by the headers and a function for parsing the values of the matrix to the processes of this protocol
|
|
86
96
|
*/
|
|
@@ -92,7 +102,7 @@ export function tryFromFsWorksheet(sheet) {
|
|
|
92
102
|
}
|
|
93
103
|
else {
|
|
94
104
|
const t = value_1(matchValue);
|
|
95
|
-
const
|
|
105
|
+
const patternInput = composeArcTableValues(map_1(fixDeprecatedIOHeader, toArray_1(delay(() => map_2((c) => toArray_1(delay(() => collect((r) => {
|
|
96
106
|
const matchValue_1 = FsCellsCollection__TryGetCell_Z37302880(sheet.CellCollection, r, c);
|
|
97
107
|
if (matchValue_1 == null) {
|
|
98
108
|
return singleton_1("");
|
|
@@ -102,7 +112,7 @@ export function tryFromFsWorksheet(sheet) {
|
|
|
102
112
|
return singleton_1(cell.ValueAsString());
|
|
103
113
|
}
|
|
104
114
|
}, rangeDouble(1, 1, FsAddress__get_RowNumber(FsRangeAddress__get_LastAddress(FsRangeBase__get_RangeAddress(t))))))), rangeDouble(1, 1, FsAddress__get_ColumnNumber(FsRangeAddress__get_LastAddress(FsRangeBase__get_RangeAddress(t)))))))));
|
|
105
|
-
return ArcTable.
|
|
115
|
+
return ArcTable.fromArcTableValues(sheet.Name, Array.from(patternInput[0]), patternInput[1]);
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
118
|
catch (err) {
|
|
@@ -118,7 +128,7 @@ export function toFsWorksheet(index, table) {
|
|
|
118
128
|
return ws;
|
|
119
129
|
}
|
|
120
130
|
else {
|
|
121
|
-
const columns = collect_1(toStringCellColumns, sortBy(classifyColumnOrder,
|
|
131
|
+
const columns = collect_1(toStringCellColumns, sortBy(classifyColumnOrder, ofSeq(table.Columns), {
|
|
122
132
|
Compare: comparePrimitives,
|
|
123
133
|
}));
|
|
124
134
|
let tableRowCount;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { tryItem, map, setItem, item, skip } from "@fable-org/fable-library-js/Array.js";
|
|
2
2
|
import { CompositeHeader_Output, CompositeHeader_Input, IOType_Source, IOType } from "../../Core/Table/CompositeHeader.js";
|
|
3
|
-
import { toString } from "@fable-org/fable-library-js/Types.js";
|
|
3
|
+
import { FSharpRef, toString } from "@fable-org/fable-library-js/Types.js";
|
|
4
4
|
import { toStringCells, fromStringCells } from "./CompositeHeader.js";
|
|
5
|
-
import { singleton, append, toList, exists, map as map_1, delay, toArray } from "@fable-org/fable-library-js/Seq.js";
|
|
5
|
+
import { reduce, singleton, append, toList, exists, map as map_1, delay, toArray } from "@fable-org/fable-library-js/Seq.js";
|
|
6
6
|
import { rangeDouble } from "@fable-org/fable-library-js/Range.js";
|
|
7
7
|
import { CompositeColumn } from "../../Core/Table/CompositeColumn.js";
|
|
8
8
|
import { FsCell } from "../../fable_modules/FsSpreadsheet.6.3.1/Cells/FsCell.fs.js";
|
|
9
9
|
import { toStringCells as toStringCells_1 } from "./CompositeCell.js";
|
|
10
|
-
import { defaultArg } from "@fable-org/fable-library-js/Option.js";
|
|
10
|
+
import { value as value_1, defaultArg } from "@fable-org/fable-library-js/Option.js";
|
|
11
11
|
import { map as map_2, singleton as singleton_1, ofArray } from "@fable-org/fable-library-js/List.js";
|
|
12
|
+
import { defaultOf, stringHash } from "@fable-org/fable-library-js/Util.js";
|
|
13
|
+
import { ColumnValueRefs_Constant, ensureCellHashInValueMap, ColumnValueRefs_Sparse } from "../../Core/Table/ArcTableAux.js";
|
|
14
|
+
import { mergeHashes } from "../../Core/Helper/HashCodes.js";
|
|
15
|
+
import { getItemFromDict, tryGetValue } from "@fable-org/fable-library-js/MapUtil.js";
|
|
12
16
|
/**
|
|
13
17
|
* Checks if the column header is a deprecated IO Header. If so, fixes it.
|
|
14
18
|
*
|
|
@@ -38,9 +42,15 @@ export function fixDeprecatedIOHeader(stringCellCol) {
|
|
|
38
42
|
export function fromStringCellColumns(columns) {
|
|
39
43
|
const patternInput = fromStringCells(map((c) => item(0, c), columns));
|
|
40
44
|
const l = item(0, columns).length | 0;
|
|
41
|
-
const cells = toArray(delay(() => map_1((i) => patternInput[1](map((c_1) => item(i, c_1), columns)), rangeDouble(1, 1, l - 1))));
|
|
45
|
+
const cells = Array.from(toArray(delay(() => map_1((i) => patternInput[1](map((c_1) => item(i, c_1), columns)), rangeDouble(1, 1, l - 1)))));
|
|
42
46
|
return CompositeColumn.create(patternInput[0], cells);
|
|
43
47
|
}
|
|
48
|
+
export function stringCellColumnsOfFsColumns(columns) {
|
|
49
|
+
return map((c) => {
|
|
50
|
+
c.ToDenseColumn();
|
|
51
|
+
return map((cell) => cell.ValueAsString(), toArray(c.Cells));
|
|
52
|
+
}, columns);
|
|
53
|
+
}
|
|
44
54
|
export function fromFsColumns(columns) {
|
|
45
55
|
return fromStringCellColumns(map((c) => {
|
|
46
56
|
c.ToDenseColumn();
|
|
@@ -52,21 +62,80 @@ export function toStringCellColumns(column) {
|
|
|
52
62
|
const isTerm = column.Header.IsTermColumn;
|
|
53
63
|
const isData = column.Header.IsDataColumn && exists((c_1) => c_1.isData, column.Cells);
|
|
54
64
|
const header = toStringCells(hasUnit, column.Header);
|
|
55
|
-
const
|
|
65
|
+
const compositeCells = toArray(column.Cells);
|
|
66
|
+
const cells = map((cell) => toStringCells_1(isTerm, hasUnit, cell), toArray(column.Cells));
|
|
56
67
|
const getCellOrDefault = (ri, ci, cells_1) => defaultArg(tryItem(ci, item(ri, cells_1)), "");
|
|
57
68
|
if (hasUnit) {
|
|
58
|
-
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i) => getCellOrDefault(i, 0, cells), rangeDouble(0, 1,
|
|
69
|
+
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i) => getCellOrDefault(i, 0, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(1, header)), delay(() => map_1((i_1) => getCellOrDefault(i_1, 1, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(2, header)), delay(() => map_1((i_2) => getCellOrDefault(i_2, 2, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(3, header)), delay(() => map_1((i_3) => getCellOrDefault(i_3, 3, cells), rangeDouble(0, 1, compositeCells.length - 1))))))]);
|
|
59
70
|
}
|
|
60
71
|
else if (isTerm) {
|
|
61
|
-
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_4) => getCellOrDefault(i_4, 0, cells), rangeDouble(0, 1,
|
|
72
|
+
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_4) => getCellOrDefault(i_4, 0, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(1, header)), delay(() => map_1((i_5) => getCellOrDefault(i_5, 1, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(2, header)), delay(() => map_1((i_6) => getCellOrDefault(i_6, 2, cells), rangeDouble(0, 1, compositeCells.length - 1))))))]);
|
|
62
73
|
}
|
|
63
74
|
else if (isData) {
|
|
64
|
-
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_7) => getCellOrDefault(i_7, 0, cells), rangeDouble(0, 1,
|
|
75
|
+
return ofArray([toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_7) => getCellOrDefault(i_7, 0, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(1, header)), delay(() => map_1((i_8) => getCellOrDefault(i_8, 1, cells), rangeDouble(0, 1, compositeCells.length - 1)))))), toList(delay(() => append(singleton(item(2, header)), delay(() => map_1((i_9) => getCellOrDefault(i_9, 2, cells), rangeDouble(0, 1, compositeCells.length - 1))))))]);
|
|
65
76
|
}
|
|
66
77
|
else {
|
|
67
|
-
return singleton_1(toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_10) => item(0, item(i_10, cells)), rangeDouble(0, 1,
|
|
78
|
+
return singleton_1(toList(delay(() => append(singleton(item(0, header)), delay(() => map_1((i_10) => item(0, item(i_10, cells)), rangeDouble(0, 1, compositeCells.length - 1)))))));
|
|
68
79
|
}
|
|
69
80
|
}
|
|
70
81
|
export function toFsColumns(column) {
|
|
71
82
|
return map_2((c) => map_2((s) => (new FsCell(s)), c), toStringCellColumns(column));
|
|
72
83
|
}
|
|
84
|
+
export function ColumnValueRefs_fromStringCellColumns(valueMap, columns) {
|
|
85
|
+
let cellHash;
|
|
86
|
+
const hashMap = new Map([]);
|
|
87
|
+
const cells = new Map([]);
|
|
88
|
+
let constant = true;
|
|
89
|
+
const patternInput = fromStringCells(map((c) => item(0, c), columns));
|
|
90
|
+
const header = patternInput[0];
|
|
91
|
+
const cellParser = patternInput[1];
|
|
92
|
+
const l = item(0, columns).length | 0;
|
|
93
|
+
if (l === 1) {
|
|
94
|
+
return [header, ColumnValueRefs_Sparse(cells)];
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
for (let i = 1; i <= (l - 1); i++) {
|
|
98
|
+
const strings = map((c_1) => item(i, c_1), columns);
|
|
99
|
+
const hash_2 = reduce(mergeHashes, map_1(stringHash, strings)) | 0;
|
|
100
|
+
let matchValue;
|
|
101
|
+
let patternInput_1;
|
|
102
|
+
let outArg = defaultOf();
|
|
103
|
+
patternInput_1 = [tryGetValue(hashMap, hash_2, new FSharpRef(() => outArg, (v) => {
|
|
104
|
+
outArg = (v | 0);
|
|
105
|
+
})), outArg];
|
|
106
|
+
matchValue = (patternInput_1[0] ? patternInput_1[1] : undefined);
|
|
107
|
+
if (matchValue == null) {
|
|
108
|
+
if (i === 1) {
|
|
109
|
+
const cellHash_3 = ensureCellHashInValueMap(cellParser(strings), valueMap) | 0;
|
|
110
|
+
hashMap.set(hash_2, cellHash_3);
|
|
111
|
+
cells.set(i - 1, cellHash_3);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
if (constant) {
|
|
115
|
+
constant = false;
|
|
116
|
+
for (let j = 0; j <= (i - 1); j++) {
|
|
117
|
+
const cellHash_4 = getItemFromDict(cells, 0) | 0;
|
|
118
|
+
cells.set(j, cellHash_4);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const cellHash_5 = ensureCellHashInValueMap(cellParser(strings), valueMap) | 0;
|
|
122
|
+
hashMap.set(hash_2, cellHash_5);
|
|
123
|
+
cells.set(i - 1, cellHash_5);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else if ((cellHash = (value_1(matchValue) | 0), constant)) {
|
|
127
|
+
const cellHash_1 = value_1(matchValue) | 0;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const cellHash_2 = value_1(matchValue) | 0;
|
|
131
|
+
cells.set(i - 1, cellHash_2);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (constant) {
|
|
135
|
+
return [header, ColumnValueRefs_Constant(getItemFromDict(cells, 0))];
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
return [header, ColumnValueRefs_Sparse(cells)];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|