@milaboratories/pl-model-common 1.25.1 → 1.25.3
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/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/author_marker.d.ts +9 -6
- package/dist/base32_encode.cjs +40 -46
- package/dist/base32_encode.cjs.map +1 -1
- package/dist/base32_encode.js +40 -45
- package/dist/base32_encode.js.map +1 -1
- package/dist/base64.cjs +5 -4
- package/dist/base64.cjs.map +1 -1
- package/dist/base64.d.ts +10 -6
- package/dist/base64.js +5 -3
- package/dist/base64.js.map +1 -1
- package/dist/block_state.d.ts +21 -23
- package/dist/bmodel/block_config.cjs +9 -10
- package/dist/bmodel/block_config.cjs.map +1 -1
- package/dist/bmodel/block_config.d.ts +53 -72
- package/dist/bmodel/block_config.js +9 -9
- package/dist/bmodel/block_config.js.map +1 -1
- package/dist/bmodel/code.cjs +7 -6
- package/dist/bmodel/code.cjs.map +1 -1
- package/dist/bmodel/code.d.ts +17 -13
- package/dist/bmodel/code.js +6 -4
- package/dist/bmodel/code.js.map +1 -1
- package/dist/bmodel/container.d.ts +46 -44
- package/dist/bmodel/index.cjs +3 -0
- package/dist/bmodel/index.d.ts +5 -6
- package/dist/bmodel/index.js +3 -0
- package/dist/bmodel/normalization.cjs +90 -106
- package/dist/bmodel/normalization.cjs.map +1 -1
- package/dist/bmodel/normalization.d.ts +7 -3
- package/dist/bmodel/normalization.js +90 -105
- package/dist/bmodel/normalization.js.map +1 -1
- package/dist/bmodel/types.d.ts +4 -1
- package/dist/branding.d.ts +5 -5
- package/dist/common_types.d.ts +19 -15
- package/dist/driver_kit.d.ts +25 -17
- package/dist/drivers/ChunkedStreamReader.cjs +168 -203
- package/dist/drivers/ChunkedStreamReader.cjs.map +1 -1
- package/dist/drivers/ChunkedStreamReader.d.ts +104 -100
- package/dist/drivers/ChunkedStreamReader.js +168 -202
- package/dist/drivers/ChunkedStreamReader.js.map +1 -1
- package/dist/drivers/blob.cjs +15 -17
- package/dist/drivers/blob.cjs.map +1 -1
- package/dist/drivers/blob.d.ts +35 -35
- package/dist/drivers/blob.js +14 -15
- package/dist/drivers/blob.js.map +1 -1
- package/dist/drivers/index.cjs +18 -0
- package/dist/drivers/index.d.ts +29 -9
- package/dist/drivers/index.js +18 -0
- package/dist/drivers/interfaces.d.ts +17 -14
- package/dist/drivers/log.cjs +4 -3
- package/dist/drivers/log.cjs.map +1 -1
- package/dist/drivers/log.d.ts +52 -49
- package/dist/drivers/log.js +4 -2
- package/dist/drivers/log.js.map +1 -1
- package/dist/drivers/ls.cjs +16 -19
- package/dist/drivers/ls.cjs.map +1 -1
- package/dist/drivers/ls.d.ts +73 -76
- package/dist/drivers/ls.js +16 -17
- package/dist/drivers/ls.js.map +1 -1
- package/dist/drivers/pframe/column_filter.d.ts +19 -15
- package/dist/drivers/pframe/data_info.cjs +201 -252
- package/dist/drivers/pframe/data_info.cjs.map +1 -1
- package/dist/drivers/pframe/data_info.d.ts +84 -109
- package/dist/drivers/pframe/data_info.js +201 -250
- package/dist/drivers/pframe/data_info.js.map +1 -1
- package/dist/drivers/pframe/data_types.cjs +38 -63
- package/dist/drivers/pframe/data_types.cjs.map +1 -1
- package/dist/drivers/pframe/data_types.d.ts +91 -93
- package/dist/drivers/pframe/data_types.js +38 -61
- package/dist/drivers/pframe/data_types.js.map +1 -1
- package/dist/drivers/pframe/driver.cjs +7 -0
- package/dist/drivers/pframe/driver.cjs.map +1 -0
- package/dist/drivers/pframe/driver.d.ts +50 -45
- package/dist/drivers/pframe/driver.js +6 -0
- package/dist/drivers/pframe/driver.js.map +1 -0
- package/dist/drivers/pframe/filter_spec.d.ts +127 -123
- package/dist/drivers/pframe/find_columns.d.ts +21 -17
- package/dist/drivers/pframe/index.cjs +15 -0
- package/dist/drivers/pframe/index.d.ts +23 -16
- package/dist/drivers/pframe/index.js +15 -0
- package/dist/drivers/pframe/linker_columns.cjs +184 -238
- package/dist/drivers/pframe/linker_columns.cjs.map +1 -1
- package/dist/drivers/pframe/linker_columns.d.ts +45 -38
- package/dist/drivers/pframe/linker_columns.js +184 -236
- package/dist/drivers/pframe/linker_columns.js.map +1 -1
- package/dist/drivers/pframe/pframe.d.ts +26 -21
- package/dist/drivers/pframe/query/index.cjs +1 -0
- package/dist/drivers/pframe/query/index.d.ts +3 -4
- package/dist/drivers/pframe/query/index.js +1 -0
- package/dist/drivers/pframe/query/query_common.d.ts +205 -247
- package/dist/drivers/pframe/query/query_data.d.ts +25 -23
- package/dist/drivers/pframe/query/query_spec.d.ts +30 -29
- package/dist/drivers/pframe/query/utils.cjs +164 -183
- package/dist/drivers/pframe/query/utils.cjs.map +1 -1
- package/dist/drivers/pframe/query/utils.d.ts +13 -12
- package/dist/drivers/pframe/query/utils.js +164 -181
- package/dist/drivers/pframe/query/utils.js.map +1 -1
- package/dist/drivers/pframe/spec/anchored.cjs +178 -216
- package/dist/drivers/pframe/spec/anchored.cjs.map +1 -1
- package/dist/drivers/pframe/spec/anchored.d.ts +53 -49
- package/dist/drivers/pframe/spec/anchored.js +176 -214
- package/dist/drivers/pframe/spec/anchored.js.map +1 -1
- package/dist/drivers/pframe/spec/filtered_column.cjs +8 -7
- package/dist/drivers/pframe/spec/filtered_column.cjs.map +1 -1
- package/dist/drivers/pframe/spec/filtered_column.d.ts +20 -17
- package/dist/drivers/pframe/spec/filtered_column.js +8 -6
- package/dist/drivers/pframe/spec/filtered_column.js.map +1 -1
- package/dist/drivers/pframe/spec/ids.cjs +16 -14
- package/dist/drivers/pframe/spec/ids.cjs.map +1 -1
- package/dist/drivers/pframe/spec/ids.d.ts +13 -8
- package/dist/drivers/pframe/spec/ids.js +14 -12
- package/dist/drivers/pframe/spec/ids.js.map +1 -1
- package/dist/drivers/pframe/spec/index.cjs +6 -0
- package/dist/drivers/pframe/spec/index.d.ts +6 -7
- package/dist/drivers/pframe/spec/index.js +6 -0
- package/dist/drivers/pframe/spec/native_id.cjs +16 -16
- package/dist/drivers/pframe/spec/native_id.cjs.map +1 -1
- package/dist/drivers/pframe/spec/native_id.d.ts +9 -4
- package/dist/drivers/pframe/spec/native_id.js +13 -13
- package/dist/drivers/pframe/spec/native_id.js.map +1 -1
- package/dist/drivers/pframe/spec/selectors.cjs +72 -112
- package/dist/drivers/pframe/spec/selectors.cjs.map +1 -1
- package/dist/drivers/pframe/spec/selectors.d.ts +99 -94
- package/dist/drivers/pframe/spec/selectors.js +72 -110
- package/dist/drivers/pframe/spec/selectors.js.map +1 -1
- package/dist/drivers/pframe/spec/spec.cjs +282 -324
- package/dist/drivers/pframe/spec/spec.cjs.map +1 -1
- package/dist/drivers/pframe/spec/spec.d.ts +263 -272
- package/dist/drivers/pframe/spec/spec.js +281 -322
- package/dist/drivers/pframe/spec/spec.js.map +1 -1
- package/dist/drivers/pframe/table.d.ts +28 -24
- package/dist/drivers/pframe/table_calculate.cjs +117 -147
- package/dist/drivers/pframe/table_calculate.cjs.map +1 -1
- package/dist/drivers/pframe/table_calculate.d.ts +219 -220
- package/dist/drivers/pframe/table_calculate.js +117 -145
- package/dist/drivers/pframe/table_calculate.js.map +1 -1
- package/dist/drivers/pframe/table_common.cjs +13 -14
- package/dist/drivers/pframe/table_common.cjs.map +1 -1
- package/dist/drivers/pframe/table_common.d.ts +24 -19
- package/dist/drivers/pframe/table_common.js +13 -13
- package/dist/drivers/pframe/table_common.js.map +1 -1
- package/dist/drivers/pframe/unique_values.d.ts +23 -18
- package/dist/drivers/upload.d.ts +21 -18
- package/dist/drivers/urls.cjs +5 -6
- package/dist/drivers/urls.cjs.map +1 -1
- package/dist/drivers/urls.d.ts +12 -9
- package/dist/drivers/urls.js +5 -5
- package/dist/drivers/urls.js.map +1 -1
- package/dist/errors.cjs +65 -86
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +36 -33
- package/dist/errors.js +65 -85
- package/dist/errors.js.map +1 -1
- package/dist/flags/block_flags.cjs +7 -6
- package/dist/flags/block_flags.cjs.map +1 -1
- package/dist/flags/block_flags.d.ts +12 -8
- package/dist/flags/block_flags.js +7 -5
- package/dist/flags/block_flags.js.map +1 -1
- package/dist/flags/flag_utils.cjs +69 -108
- package/dist/flags/flag_utils.cjs.map +1 -1
- package/dist/flags/flag_utils.d.ts +40 -42
- package/dist/flags/flag_utils.js +70 -107
- package/dist/flags/flag_utils.js.map +1 -1
- package/dist/flags/type_utils.d.ts +12 -11
- package/dist/httpAuth.cjs +16 -20
- package/dist/httpAuth.cjs.map +1 -1
- package/dist/httpAuth.d.ts +10 -7
- package/dist/httpAuth.js +16 -19
- package/dist/httpAuth.js.map +1 -1
- package/dist/index.cjs +176 -179
- package/dist/index.d.ts +58 -20
- package/dist/index.js +37 -34
- package/dist/json.cjs +10 -8
- package/dist/json.cjs.map +1 -1
- package/dist/json.d.ts +18 -18
- package/dist/json.js +8 -6
- package/dist/json.js.map +1 -1
- package/dist/navigation.cjs +3 -2
- package/dist/navigation.cjs.map +1 -1
- package/dist/navigation.d.ts +18 -21
- package/dist/navigation.js +3 -1
- package/dist/navigation.js.map +1 -1
- package/dist/plid.cjs +16 -20
- package/dist/plid.cjs.map +1 -1
- package/dist/plid.d.ts +11 -7
- package/dist/plid.js +15 -18
- package/dist/plid.js.map +1 -1
- package/dist/pool/entry.d.ts +11 -11
- package/dist/pool/index.d.ts +3 -4
- package/dist/pool/query.cjs +21 -43
- package/dist/pool/query.cjs.map +1 -1
- package/dist/pool/query.d.ts +25 -20
- package/dist/pool/query.js +20 -40
- package/dist/pool/query.js.map +1 -1
- package/dist/pool/spec.cjs +40 -47
- package/dist/pool/spec.cjs.map +1 -1
- package/dist/pool/spec.d.ts +33 -31
- package/dist/pool/spec.js +40 -45
- package/dist/pool/spec.js.map +1 -1
- package/dist/ref.cjs +51 -71
- package/dist/ref.cjs.map +1 -1
- package/dist/ref.d.ts +36 -33
- package/dist/ref.js +50 -69
- package/dist/ref.js.map +1 -1
- package/dist/utag.d.ts +18 -14
- package/dist/util.cjs +8 -7
- package/dist/util.cjs.map +1 -1
- package/dist/util.d.ts +5 -2
- package/dist/util.js +8 -6
- package/dist/util.js.map +1 -1
- package/dist/value_or_error.cjs +7 -3
- package/dist/value_or_error.cjs.map +1 -1
- package/dist/value_or_error.d.ts +9 -6
- package/dist/value_or_error.js +7 -2
- package/dist/value_or_error.js.map +1 -1
- package/package.json +6 -6
- package/src/flags/block_flags.ts +2 -1
- package/src/flags/flag_utils.ts +0 -22
- package/dist/author_marker.d.ts.map +0 -1
- package/dist/base32_encode.d.ts +0 -8
- package/dist/base32_encode.d.ts.map +0 -1
- package/dist/base64.d.ts.map +0 -1
- package/dist/block_state.d.ts.map +0 -1
- package/dist/bmodel/block_config.d.ts.map +0 -1
- package/dist/bmodel/code.d.ts.map +0 -1
- package/dist/bmodel/container.d.ts.map +0 -1
- package/dist/bmodel/index.d.ts.map +0 -1
- package/dist/bmodel/normalization.d.ts.map +0 -1
- package/dist/bmodel/types.d.ts.map +0 -1
- package/dist/branding.d.ts.map +0 -1
- package/dist/common_types.d.ts.map +0 -1
- package/dist/driver_kit.d.ts.map +0 -1
- package/dist/drivers/ChunkedStreamReader.d.ts.map +0 -1
- package/dist/drivers/blob.d.ts.map +0 -1
- package/dist/drivers/index.d.ts.map +0 -1
- package/dist/drivers/interfaces.d.ts.map +0 -1
- package/dist/drivers/log.d.ts.map +0 -1
- package/dist/drivers/ls.d.ts.map +0 -1
- package/dist/drivers/pframe/column_filter.d.ts.map +0 -1
- package/dist/drivers/pframe/data_info.d.ts.map +0 -1
- package/dist/drivers/pframe/data_types.d.ts.map +0 -1
- package/dist/drivers/pframe/driver.d.ts.map +0 -1
- package/dist/drivers/pframe/filter_spec.d.ts.map +0 -1
- package/dist/drivers/pframe/find_columns.d.ts.map +0 -1
- package/dist/drivers/pframe/index.d.ts.map +0 -1
- package/dist/drivers/pframe/linker_columns.d.ts.map +0 -1
- package/dist/drivers/pframe/pframe.d.ts.map +0 -1
- package/dist/drivers/pframe/query/index.d.ts.map +0 -1
- package/dist/drivers/pframe/query/query_common.d.ts.map +0 -1
- package/dist/drivers/pframe/query/query_data.d.ts.map +0 -1
- package/dist/drivers/pframe/query/query_spec.d.ts.map +0 -1
- package/dist/drivers/pframe/query/utils.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/anchored.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/filtered_column.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/ids.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/index.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/native_id.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/selectors.d.ts.map +0 -1
- package/dist/drivers/pframe/spec/spec.d.ts.map +0 -1
- package/dist/drivers/pframe/table.d.ts.map +0 -1
- package/dist/drivers/pframe/table_calculate.d.ts.map +0 -1
- package/dist/drivers/pframe/table_common.d.ts.map +0 -1
- package/dist/drivers/pframe/type_util.d.ts +0 -5
- package/dist/drivers/pframe/type_util.d.ts.map +0 -1
- package/dist/drivers/pframe/unique_values.d.ts.map +0 -1
- package/dist/drivers/upload.d.ts.map +0 -1
- package/dist/drivers/urls.d.ts.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/flags/block_flags.d.ts.map +0 -1
- package/dist/flags/flag_utils.d.ts.map +0 -1
- package/dist/flags/index.d.ts +0 -4
- package/dist/flags/index.d.ts.map +0 -1
- package/dist/flags/type_utils.d.ts.map +0 -1
- package/dist/httpAuth.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/json.d.ts.map +0 -1
- package/dist/navigation.d.ts.map +0 -1
- package/dist/plid.d.ts.map +0 -1
- package/dist/pool/entry.d.ts.map +0 -1
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/query.d.ts.map +0 -1
- package/dist/pool/spec.d.ts.map +0 -1
- package/dist/ref.d.ts.map +0 -1
- package/dist/utag.d.ts.map +0 -1
- package/dist/util.d.ts.map +0 -1
- package/dist/value_or_error.d.ts.map +0 -1
|
@@ -1,411 +1,370 @@
|
|
|
1
|
-
import { ensureError } from
|
|
2
|
-
import { canonicalizeJson } from
|
|
3
|
-
import { z } from
|
|
1
|
+
import { ensureError } from "../../../errors.js";
|
|
2
|
+
import { canonicalizeJson } from "../../../json.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
4
|
|
|
5
|
+
//#region src/drivers/pframe/spec/spec.ts
|
|
5
6
|
const ValueType = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
Int: "Int",
|
|
8
|
+
Long: "Long",
|
|
9
|
+
Float: "Float",
|
|
10
|
+
Double: "Double",
|
|
11
|
+
String: "String",
|
|
12
|
+
Bytes: "Bytes"
|
|
12
13
|
};
|
|
13
14
|
function readMetadata(metadata, key) {
|
|
14
|
-
|
|
15
|
+
return metadata?.[key];
|
|
15
16
|
}
|
|
16
17
|
function readMetadataJsonOrThrow(metadata, metadataJson, key, methodNameInError = "readMetadataJsonOrThrow") {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
throw new Error(`${methodNameInError} failed, ` +
|
|
27
|
-
`key: ${String(key)}, ` +
|
|
28
|
-
`value: ${json}, ` +
|
|
29
|
-
`error: ${ensureError(error)}`);
|
|
30
|
-
}
|
|
18
|
+
const json = readMetadata(metadata, key);
|
|
19
|
+
if (json === void 0) return void 0;
|
|
20
|
+
const schema = metadataJson[key];
|
|
21
|
+
try {
|
|
22
|
+
const value = JSON.parse(json);
|
|
23
|
+
return schema.parse(value);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
throw new Error(`${methodNameInError} failed, key: ${String(key)}, value: ${json}, error: ${ensureError(error)}`);
|
|
26
|
+
}
|
|
31
27
|
}
|
|
32
28
|
function readMetadataJson(metadata, metadataJson, key) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
29
|
+
try {
|
|
30
|
+
return readMetadataJsonOrThrow(metadata, metadataJson, key);
|
|
31
|
+
} catch {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
39
34
|
}
|
|
40
|
-
/// Well-known domains
|
|
41
35
|
const Domain = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
ScClonotypeChain: {
|
|
49
|
-
Index: "pl7.app/vdj/scClonotypeChain/index",
|
|
50
|
-
},
|
|
51
|
-
},
|
|
36
|
+
Alphabet: "pl7.app/alphabet",
|
|
37
|
+
BlockId: "pl7.app/blockId",
|
|
38
|
+
VDJ: {
|
|
39
|
+
Clustering: { BlockId: "pl7.app/vdj/clustering/blockId" },
|
|
40
|
+
ScClonotypeChain: { Index: "pl7.app/vdj/scClonotypeChain/index" }
|
|
41
|
+
}
|
|
52
42
|
};
|
|
53
43
|
const DomainJson = {};
|
|
54
|
-
/// Helper function for reading plain domain values
|
|
55
44
|
function readDomain(spec, key) {
|
|
56
|
-
|
|
45
|
+
return readMetadata(spec?.domain, key);
|
|
57
46
|
}
|
|
58
|
-
/// Helper function for reading json-encoded domain values, throws on JSON parsing error
|
|
59
47
|
function readDomainJsonOrThrow(spec, key) {
|
|
60
|
-
|
|
48
|
+
return readMetadataJsonOrThrow(spec?.domain, DomainJson, key, "readDomainJsonOrThrow");
|
|
61
49
|
}
|
|
62
|
-
/// Helper function for reading json-encoded domain values, returns undefined on JSON parsing error
|
|
63
50
|
function readDomainJson(spec, key) {
|
|
64
|
-
|
|
51
|
+
return readMetadataJson(spec?.domain, DomainJson, key);
|
|
65
52
|
}
|
|
66
|
-
/// Well-known annotations
|
|
67
53
|
const Annotation = {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
IsMainSequence: "pl7.app/vdj/isMainSequence",
|
|
117
|
-
},
|
|
54
|
+
AxisNature: "pl7.app/axisNature",
|
|
55
|
+
Alphabet: "pl7.app/alphabet",
|
|
56
|
+
Description: "pl7.app/description",
|
|
57
|
+
DiscreteValues: "pl7.app/discreteValues",
|
|
58
|
+
Format: "pl7.app/format",
|
|
59
|
+
Graph: {
|
|
60
|
+
Axis: {
|
|
61
|
+
HighCardinality: "pl7.app/graph/axis/highCardinality",
|
|
62
|
+
LowerLimit: "pl7.app/graph/axis/lowerLimit",
|
|
63
|
+
SymmetricRange: "pl7.app/graph/axis/symmetricRange",
|
|
64
|
+
UpperLimit: "pl7.app/graph/axis/upperLimit"
|
|
65
|
+
},
|
|
66
|
+
IsDenseAxis: "pl7.app/graph/isDenseAxis",
|
|
67
|
+
IsVirtual: "pl7.app/graph/isVirtual",
|
|
68
|
+
Palette: "pl7.app/graph/palette",
|
|
69
|
+
Thresholds: "pl7.app/graph/thresholds",
|
|
70
|
+
TreatAbsentValuesAs: "pl7.app/graph/treatAbsentValuesAs"
|
|
71
|
+
},
|
|
72
|
+
HideDataFromUi: "pl7.app/hideDataFromUi",
|
|
73
|
+
HideDataFromGraphs: "pl7.app/hideDataFromGraphs",
|
|
74
|
+
IsDiscreteFilter: "pl7.app/isDiscreteFilter",
|
|
75
|
+
IsAnchor: "pl7.app/isAnchor",
|
|
76
|
+
IsLinkerColumn: "pl7.app/isLinkerColumn",
|
|
77
|
+
IsScore: "pl7.app/isScore",
|
|
78
|
+
IsSubset: "pl7.app/isSubset",
|
|
79
|
+
Label: "pl7.app/label",
|
|
80
|
+
Max: "pl7.app/max",
|
|
81
|
+
Min: "pl7.app/min",
|
|
82
|
+
MultipliesBy: "pl7.app/multipliesBy",
|
|
83
|
+
Parents: "pl7.app/parents",
|
|
84
|
+
Score: {
|
|
85
|
+
DefaultCutoff: "pl7.app/score/defaultCutoff",
|
|
86
|
+
RankingOrder: "pl7.app/score/rankingOrder"
|
|
87
|
+
},
|
|
88
|
+
Sequence: {
|
|
89
|
+
Annotation: { Mapping: "pl7.app/sequence/annotation/mapping" },
|
|
90
|
+
IsAnnotation: "pl7.app/sequence/isAnnotation"
|
|
91
|
+
},
|
|
92
|
+
Table: {
|
|
93
|
+
FontFamily: "pl7.app/table/fontFamily",
|
|
94
|
+
OrderPriority: "pl7.app/table/orderPriority",
|
|
95
|
+
Visibility: "pl7.app/table/visibility"
|
|
96
|
+
},
|
|
97
|
+
Trace: "pl7.app/trace",
|
|
98
|
+
VDJ: {
|
|
99
|
+
IsAssemblingFeature: "pl7.app/vdj/isAssemblingFeature",
|
|
100
|
+
IsMainSequence: "pl7.app/vdj/isMainSequence"
|
|
101
|
+
}
|
|
118
102
|
};
|
|
119
|
-
const ValueTypeSchema = z.enum([
|
|
103
|
+
const ValueTypeSchema = z.enum([
|
|
104
|
+
"Int",
|
|
105
|
+
"Long",
|
|
106
|
+
"Float",
|
|
107
|
+
"Double",
|
|
108
|
+
"String"
|
|
109
|
+
]);
|
|
120
110
|
const AnnotationJson = {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
111
|
+
[Annotation.DiscreteValues]: z.array(z.string()).or(z.array(z.number())),
|
|
112
|
+
[Annotation.Graph.Axis.HighCardinality]: z.boolean(),
|
|
113
|
+
[Annotation.Graph.Axis.LowerLimit]: z.number(),
|
|
114
|
+
[Annotation.Graph.Axis.UpperLimit]: z.number(),
|
|
115
|
+
[Annotation.Graph.Axis.SymmetricRange]: z.boolean(),
|
|
116
|
+
[Annotation.Graph.IsDenseAxis]: z.boolean(),
|
|
117
|
+
[Annotation.Graph.Palette]: z.object({
|
|
118
|
+
mapping: z.record(z.number()),
|
|
119
|
+
name: z.string()
|
|
120
|
+
}),
|
|
121
|
+
[Annotation.Graph.Thresholds]: z.array(z.object({
|
|
122
|
+
columnId: z.object({
|
|
123
|
+
valueType: ValueTypeSchema,
|
|
124
|
+
name: z.string()
|
|
125
|
+
}),
|
|
126
|
+
value: z.number()
|
|
127
|
+
})),
|
|
128
|
+
[Annotation.Graph.TreatAbsentValuesAs]: z.number(),
|
|
129
|
+
[Annotation.Graph.IsVirtual]: z.boolean(),
|
|
130
|
+
[Annotation.HideDataFromUi]: z.boolean(),
|
|
131
|
+
[Annotation.HideDataFromGraphs]: z.boolean(),
|
|
132
|
+
[Annotation.IsDiscreteFilter]: z.boolean(),
|
|
133
|
+
[Annotation.IsLinkerColumn]: z.boolean(),
|
|
134
|
+
[Annotation.IsSubset]: z.boolean(),
|
|
135
|
+
[Annotation.Max]: z.number(),
|
|
136
|
+
[Annotation.Min]: z.number(),
|
|
137
|
+
[Annotation.MultipliesBy]: z.array(z.string()),
|
|
138
|
+
[Annotation.Parents]: z.array(z.string()),
|
|
139
|
+
[Annotation.Sequence.Annotation.Mapping]: z.record(z.string(), z.string()),
|
|
140
|
+
[Annotation.Sequence.IsAnnotation]: z.boolean(),
|
|
141
|
+
[Annotation.Table.OrderPriority]: z.number(),
|
|
142
|
+
[Annotation.Trace]: z.record(z.string(), z.unknown()),
|
|
143
|
+
[Annotation.VDJ.IsAssemblingFeature]: z.boolean()
|
|
148
144
|
};
|
|
149
|
-
/// Helper function for reading plain annotation values
|
|
150
145
|
function readAnnotation(spec, key) {
|
|
151
|
-
|
|
146
|
+
return readMetadata(spec?.annotations, key);
|
|
152
147
|
}
|
|
153
|
-
/// Helper function for reading json-encoded annotation values, throws on JSON parsing error
|
|
154
148
|
function readAnnotationJsonOrThrow(spec, key) {
|
|
155
|
-
|
|
149
|
+
return readMetadataJsonOrThrow(spec?.annotations, AnnotationJson, key, "readAnnotationJsonOrThrow");
|
|
156
150
|
}
|
|
157
|
-
/// Helper function for reading json-encoded annotation values, returns undefined on JSON parsing error
|
|
158
151
|
function readAnnotationJson(spec, key) {
|
|
159
|
-
|
|
152
|
+
return readMetadataJson(spec?.annotations, AnnotationJson, key);
|
|
160
153
|
}
|
|
161
154
|
function isLinkerColumn(column) {
|
|
162
|
-
|
|
155
|
+
return !!readAnnotationJson(column, Annotation.IsLinkerColumn);
|
|
163
156
|
}
|
|
164
157
|
function makeAxisTree(axis) {
|
|
165
|
-
|
|
158
|
+
return {
|
|
159
|
+
axis,
|
|
160
|
+
children: []
|
|
161
|
+
};
|
|
166
162
|
}
|
|
167
163
|
/** Build tree by axis parents annotations */
|
|
168
164
|
function getAxesTree(rootAxis) {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
165
|
+
const root = makeAxisTree(rootAxis);
|
|
166
|
+
let nodesQ = [root];
|
|
167
|
+
while (nodesQ.length) {
|
|
168
|
+
const nextNodes = [];
|
|
169
|
+
for (const node of nodesQ) {
|
|
170
|
+
node.children = node.axis.parentAxesSpec.map(makeAxisTree);
|
|
171
|
+
nextNodes.push(...node.children);
|
|
172
|
+
}
|
|
173
|
+
nodesQ = nextNodes;
|
|
174
|
+
}
|
|
175
|
+
return root;
|
|
180
176
|
}
|
|
181
177
|
/** Get set of canonicalized axisIds from axisTree */
|
|
182
178
|
function getSetFromAxisTree(tree) {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
return set;
|
|
179
|
+
const set = new Set([canonicalizeJson(getAxisId(tree.axis))]);
|
|
180
|
+
let nodesQ = [tree];
|
|
181
|
+
while (nodesQ.length) {
|
|
182
|
+
const nextNodes = [];
|
|
183
|
+
for (const node of nodesQ) for (const parent of node.children) {
|
|
184
|
+
set.add(canonicalizeJson(getAxisId(parent.axis)));
|
|
185
|
+
nextNodes.push(parent);
|
|
186
|
+
}
|
|
187
|
+
nodesQ = nextNodes;
|
|
188
|
+
}
|
|
189
|
+
return set;
|
|
196
190
|
}
|
|
197
191
|
/** Get array of axisSpecs from axisTree */
|
|
198
192
|
function getArrayFromAxisTree(tree) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}
|
|
211
|
-
return res;
|
|
193
|
+
const res = [tree.axis];
|
|
194
|
+
let nodesQ = [tree];
|
|
195
|
+
while (nodesQ.length) {
|
|
196
|
+
const nextNodes = [];
|
|
197
|
+
for (const node of nodesQ) for (const parent of node.children) {
|
|
198
|
+
res.push(parent.axis);
|
|
199
|
+
nextNodes.push(parent);
|
|
200
|
+
}
|
|
201
|
+
nodesQ = nextNodes;
|
|
202
|
+
}
|
|
203
|
+
return res;
|
|
212
204
|
}
|
|
213
205
|
function canonicalizeAxisWithParents(axis) {
|
|
214
|
-
|
|
206
|
+
return canonicalizeJson(getArrayFromAxisTree(getAxesTree(axis)).map(getAxisId));
|
|
215
207
|
}
|
|
216
208
|
function normalizingAxesComparator(axis1, axis2) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
const parents2 = canonicalizeAxisWithParents(axis2);
|
|
230
|
-
if (parents1 !== parents2) {
|
|
231
|
-
return parents1 < parents2 ? 1 : -1;
|
|
232
|
-
}
|
|
233
|
-
const annotation1 = canonicalizeJson(axis1.annotations ?? {});
|
|
234
|
-
const annotation2 = canonicalizeJson(axis2.annotations ?? {});
|
|
235
|
-
if (annotation1 !== annotation2) {
|
|
236
|
-
return annotation1 < annotation2 ? 1 : -1;
|
|
237
|
-
}
|
|
238
|
-
return 0;
|
|
209
|
+
if (axis1.name !== axis2.name) return axis1.name < axis2.name ? 1 : -1;
|
|
210
|
+
if (axis1.type !== axis2.type) return axis1.type < axis2.type ? 1 : -1;
|
|
211
|
+
const domain1 = canonicalizeJson(axis1.domain ?? {});
|
|
212
|
+
const domain2 = canonicalizeJson(axis2.domain ?? {});
|
|
213
|
+
if (domain1 !== domain2) return domain1 < domain2 ? 1 : -1;
|
|
214
|
+
const parents1 = canonicalizeAxisWithParents(axis1);
|
|
215
|
+
const parents2 = canonicalizeAxisWithParents(axis2);
|
|
216
|
+
if (parents1 !== parents2) return parents1 < parents2 ? 1 : -1;
|
|
217
|
+
const annotation1 = canonicalizeJson(axis1.annotations ?? {});
|
|
218
|
+
const annotation2 = canonicalizeJson(axis2.annotations ?? {});
|
|
219
|
+
if (annotation1 !== annotation2) return annotation1 < annotation2 ? 1 : -1;
|
|
220
|
+
return 0;
|
|
239
221
|
}
|
|
240
222
|
function parseParentsFromAnnotations(axis) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
return parentsList;
|
|
223
|
+
const parentsList = readAnnotationJson(axis, Annotation.Parents);
|
|
224
|
+
if (parentsList === void 0) return [];
|
|
225
|
+
return parentsList;
|
|
246
226
|
}
|
|
247
227
|
function sortParentsDeep(axisSpec) {
|
|
248
|
-
|
|
249
|
-
|
|
228
|
+
axisSpec.parentAxesSpec.forEach(sortParentsDeep);
|
|
229
|
+
axisSpec.parentAxesSpec.sort(normalizingAxesComparator);
|
|
250
230
|
}
|
|
251
231
|
function hasCycleOfParents(axisSpec) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
nodesQ = nextNodes;
|
|
273
|
-
}
|
|
274
|
-
return false;
|
|
232
|
+
let nodesQ = [makeAxisTree(axisSpec)];
|
|
233
|
+
const ancestors = new Set(canonicalizeJson(getAxisId(axisSpec)));
|
|
234
|
+
while (nodesQ.length) {
|
|
235
|
+
const nextNodes = [];
|
|
236
|
+
const levelIds = /* @__PURE__ */ new Set();
|
|
237
|
+
for (const node of nodesQ) {
|
|
238
|
+
node.children = node.axis.parentAxesSpec.map(makeAxisTree);
|
|
239
|
+
for (const child of node.children) {
|
|
240
|
+
const childId = canonicalizeJson(getAxisId(child.axis));
|
|
241
|
+
if (!levelIds.has(childId)) {
|
|
242
|
+
nextNodes.push(child);
|
|
243
|
+
levelIds.add(childId);
|
|
244
|
+
if (ancestors.has(childId)) return true;
|
|
245
|
+
ancestors.add(childId);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
nodesQ = nextNodes;
|
|
250
|
+
}
|
|
251
|
+
return false;
|
|
275
252
|
}
|
|
276
253
|
/** Create list of normalized axisSpec (parents are in array of specs, not indexes) */
|
|
277
254
|
function getNormalizedAxesList(axes) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
axis.parentAxesSpec = [];
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
modifiedAxes.forEach((axis) => {
|
|
308
|
-
sortParentsDeep(axis);
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
return modifiedAxes;
|
|
255
|
+
if (!axes.length) return [];
|
|
256
|
+
const modifiedAxes = axes.map((axis) => {
|
|
257
|
+
const { parentAxes: _, ...copiedRest } = axis;
|
|
258
|
+
return {
|
|
259
|
+
...copiedRest,
|
|
260
|
+
annotations: { ...copiedRest.annotations },
|
|
261
|
+
parentAxesSpec: []
|
|
262
|
+
};
|
|
263
|
+
});
|
|
264
|
+
axes.forEach((axis, idx) => {
|
|
265
|
+
const modifiedAxis = modifiedAxes[idx];
|
|
266
|
+
if (axis.parentAxes) modifiedAxis.parentAxesSpec = axis.parentAxes.map((idx) => modifiedAxes[idx]);
|
|
267
|
+
else {
|
|
268
|
+
const parents = parseParentsFromAnnotations(axis).map((name) => modifiedAxes.find((axis) => axis.name === name));
|
|
269
|
+
modifiedAxis.parentAxesSpec = parents.some((p) => p === void 0) ? [] : parents;
|
|
270
|
+
delete modifiedAxis.annotations?.[Annotation.Parents];
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
if (modifiedAxes.some(hasCycleOfParents)) modifiedAxes.forEach((axis) => {
|
|
274
|
+
axis.parentAxesSpec = [];
|
|
275
|
+
});
|
|
276
|
+
else modifiedAxes.forEach((axis) => {
|
|
277
|
+
sortParentsDeep(axis);
|
|
278
|
+
});
|
|
279
|
+
return modifiedAxes;
|
|
312
280
|
}
|
|
313
281
|
/** Create list of regular axisSpec from normalized (parents are indexes, inside of current axes list) */
|
|
314
282
|
function getDenormalizedAxesList(axesSpec) {
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
283
|
+
const idsList = axesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec)));
|
|
284
|
+
return axesSpec.map((axisSpec) => {
|
|
285
|
+
const parentIdxs = axisSpec.parentAxesSpec.map((axisSpec) => canonicalizeJson(getAxisId(axisSpec))).map((id) => idsList.indexOf(id));
|
|
286
|
+
const { parentAxesSpec: _, ...copiedRest } = axisSpec;
|
|
287
|
+
if (parentIdxs.length) return {
|
|
288
|
+
...copiedRest,
|
|
289
|
+
parentAxes: parentIdxs
|
|
290
|
+
};
|
|
291
|
+
return copiedRest;
|
|
292
|
+
});
|
|
325
293
|
}
|
|
326
|
-
/// Well-known column names
|
|
327
294
|
const PColumnName = {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
Sequence: "pl7.app/vdj/sequence",
|
|
336
|
-
},
|
|
295
|
+
Label: "pl7.app/label",
|
|
296
|
+
Table: { RowSelection: "pl7.app/table/row-selection" },
|
|
297
|
+
VDJ: {
|
|
298
|
+
LeadSelection: "pl7.app/vdj/lead-selection",
|
|
299
|
+
RankingOrder: "pl7.app/vdj/ranking-order",
|
|
300
|
+
Sequence: "pl7.app/vdj/sequence"
|
|
301
|
+
}
|
|
337
302
|
};
|
|
338
|
-
/// Well-known axis names
|
|
339
303
|
const PAxisName = {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
ScClonotypeKey: "pl7.app/vdj/scClonotypeKey",
|
|
348
|
-
},
|
|
304
|
+
SampleId: "pl7.app/sampleId",
|
|
305
|
+
VDJ: {
|
|
306
|
+
Assay: { SequenceId: "pl7.app/vdj/assay/sequenceId" },
|
|
307
|
+
ClusterId: "pl7.app/vdj/clusterId",
|
|
308
|
+
ClonotypeKey: "pl7.app/vdj/clonotypeKey",
|
|
309
|
+
ScClonotypeKey: "pl7.app/vdj/scClonotypeKey"
|
|
310
|
+
}
|
|
349
311
|
};
|
|
350
312
|
function isLabelColumn(column) {
|
|
351
|
-
|
|
313
|
+
return column.axesSpec.length === 1 && column.name === PColumnName.Label;
|
|
352
314
|
}
|
|
353
315
|
function getPColumnSpecId(spec) {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
316
|
+
return {
|
|
317
|
+
kind: spec.kind,
|
|
318
|
+
valueType: spec.valueType,
|
|
319
|
+
name: spec.name,
|
|
320
|
+
domain: spec.domain,
|
|
321
|
+
parentAxes: spec.parentAxes,
|
|
322
|
+
axesId: getAxesId(spec.axesSpec)
|
|
323
|
+
};
|
|
362
324
|
}
|
|
363
325
|
/** Get column id and spec from a column */
|
|
364
326
|
function getColumnIdAndSpec(column) {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
327
|
+
return {
|
|
328
|
+
columnId: column.id,
|
|
329
|
+
spec: column.spec
|
|
330
|
+
};
|
|
369
331
|
}
|
|
370
332
|
/** Extracts axis ids from axis spec */
|
|
371
333
|
function getAxisId(spec) {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
334
|
+
const { type, name, domain } = spec;
|
|
335
|
+
const result = {
|
|
336
|
+
type,
|
|
337
|
+
name
|
|
338
|
+
};
|
|
339
|
+
if (domain && Object.entries(domain).length > 0) Object.assign(result, { domain });
|
|
340
|
+
return result;
|
|
378
341
|
}
|
|
379
342
|
/** Extracts axes ids from axes spec array from column spec */
|
|
380
343
|
function getAxesId(spec) {
|
|
381
|
-
|
|
344
|
+
return spec.map(getAxisId);
|
|
382
345
|
}
|
|
383
346
|
/** Canonicalizes axis id */
|
|
384
347
|
function canonicalizeAxisId(id) {
|
|
385
|
-
|
|
348
|
+
return canonicalizeJson(getAxisId(id));
|
|
386
349
|
}
|
|
387
350
|
/** Returns true if all domains from query are found in target */
|
|
388
351
|
function matchDomain(query, target) {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
for (const k in target) {
|
|
394
|
-
if (query[k] !== target[k])
|
|
395
|
-
return false;
|
|
396
|
-
}
|
|
397
|
-
return true;
|
|
352
|
+
if (query === void 0) return target === void 0;
|
|
353
|
+
if (target === void 0) return true;
|
|
354
|
+
for (const k in target) if (query[k] !== target[k]) return false;
|
|
355
|
+
return true;
|
|
398
356
|
}
|
|
399
357
|
/** Returns whether "match" axis id is compatible with the "query" */
|
|
400
358
|
function matchAxisId(query, target) {
|
|
401
|
-
|
|
359
|
+
return query.name === target.name && matchDomain(query.domain, target.domain);
|
|
402
360
|
}
|
|
403
361
|
function getTypeFromPColumnOrAxisSpec(spec) {
|
|
404
|
-
|
|
362
|
+
return "valueType" in spec ? spec.valueType : spec.type;
|
|
405
363
|
}
|
|
406
364
|
function isAxisId(id) {
|
|
407
|
-
|
|
365
|
+
return typeof id === "object" && id !== null && "name" in id && "type" in id;
|
|
408
366
|
}
|
|
409
367
|
|
|
368
|
+
//#endregion
|
|
410
369
|
export { Annotation, AnnotationJson, Domain, DomainJson, PAxisName, PColumnName, ValueType, canonicalizeAxisId, canonicalizeAxisWithParents, getArrayFromAxisTree, getAxesId, getAxesTree, getAxisId, getColumnIdAndSpec, getDenormalizedAxesList, getNormalizedAxesList, getPColumnSpecId, getSetFromAxisTree, getTypeFromPColumnOrAxisSpec, isAxisId, isLabelColumn, isLinkerColumn, matchAxisId, readAnnotation, readAnnotationJson, readAnnotationJsonOrThrow, readDomain, readDomainJson, readDomainJsonOrThrow, readMetadata, readMetadataJson, readMetadataJsonOrThrow };
|
|
411
|
-
//# sourceMappingURL=spec.js.map
|
|
370
|
+
//# sourceMappingURL=spec.js.map
|