@platforma-sdk/model 1.33.8 → 1.33.10
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/components/PFrameForGraphs.d.ts +8 -8
- package/dist/components/PFrameForGraphs.d.ts.map +1 -1
- package/dist/components/PlDataTable.d.ts +3 -3
- package/dist/components/PlDataTable.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +616 -620
- package/dist/index.mjs.map +1 -1
- package/dist/render/api.d.ts +5 -4
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/util/column_collection.d.ts +8 -8
- package/dist/render/util/column_collection.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/PFrameForGraphs.test.ts +58 -159
- package/src/components/PFrameForGraphs.ts +105 -165
- package/src/components/PlDataTable.ts +6 -5
- package/src/render/api.ts +11 -9
- package/src/render/util/column_collection.ts +26 -16
package/dist/render/api.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { FutureRef } from './future';
|
|
|
5
5
|
import { AxisLabelProvider, ColumnProvider } from './util/column_collection';
|
|
6
6
|
import { LabelDerivationOps } from './util/label';
|
|
7
7
|
import { APColumnSelectorWithSplit } from './util/split_selectors';
|
|
8
|
+
export type PColumnDataUniversal = TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues;
|
|
8
9
|
export type UniversalColumnOption = {
|
|
9
10
|
label: string;
|
|
10
11
|
value: SUniversalPColumnId;
|
|
@@ -46,7 +47,7 @@ export declare class ResultPool implements ColumnProvider, AxisLabelProvider {
|
|
|
46
47
|
* @param opts - Optional configuration for label generation and data waiting
|
|
47
48
|
* @returns A PFrameHandle for the created PFrame, or undefined if any required data is missing
|
|
48
49
|
*/
|
|
49
|
-
getAnchoredPColumns(anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>, predicateOrSelectors: ((spec: PColumnSpec) => boolean) | APColumnSelectorWithSplit | APColumnSelectorWithSplit[], opts?: UniversalPColumnOpts): PColumn<
|
|
50
|
+
getAnchoredPColumns(anchorsOrCtx: AnchoredIdDeriver | Record<string, PColumnSpec | PlRef>, predicateOrSelectors: ((spec: PColumnSpec) => boolean) | APColumnSelectorWithSplit | APColumnSelectorWithSplit[], opts?: UniversalPColumnOpts): PColumn<PColumnDataUniversal>[] | undefined;
|
|
50
51
|
/**
|
|
51
52
|
* Calculates anchored identifier options for columns matching a given predicate and returns their
|
|
52
53
|
* canonicalized representations.
|
|
@@ -165,10 +166,10 @@ export declare class RenderCtx<Args, UiState> {
|
|
|
165
166
|
*/
|
|
166
167
|
findLabels(axis: AxisId): Record<string | number, string> | undefined;
|
|
167
168
|
private verifyInlineAndExplicitColumnsSupport;
|
|
168
|
-
createPFrame(def: PFrameDef<
|
|
169
|
-
createPTable(def: PTableDef<PColumn<
|
|
169
|
+
createPFrame(def: PFrameDef<PColumnDataUniversal>): PFrameHandle;
|
|
170
|
+
createPTable(def: PTableDef<PColumn<PColumnDataUniversal>>): PTableHandle;
|
|
170
171
|
createPTable(def: {
|
|
171
|
-
columns: PColumn<
|
|
172
|
+
columns: PColumn<PColumnDataUniversal>[];
|
|
172
173
|
filters?: PTableRecordFilter[];
|
|
173
174
|
/** Table sorting */
|
|
174
175
|
sorting?: PTableSorting[];
|
package/dist/render/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,WAAW,EACX,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,EAEP,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EAalB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAS,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAqB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AnchoredIdDeriver, AxisId,
|
|
2
|
-
import { TreeNodeAccessor } from '../accessor';
|
|
1
|
+
import { AnchoredIdDeriver, AxisId, PColumn, PColumnSelector, PColumnSpec, PObjectId, SUniversalPColumnId, AnchoredPColumnSelector, ResolveAnchorsOptions } from '@milaboratories/pl-model-common';
|
|
3
2
|
import { LabelDerivationOps } from './label';
|
|
4
3
|
import { APColumnSelectorWithSplit, PColumnSelectorWithSplit } from './split_selectors';
|
|
4
|
+
import { PColumnDataUniversal } from '../api';
|
|
5
5
|
export interface ColumnProvider {
|
|
6
|
-
selectColumns(selectors: ((spec: PColumnSpec) => boolean) | PColumnSelector | PColumnSelector[]): PColumn<
|
|
6
|
+
selectColumns(selectors: ((spec: PColumnSpec) => boolean) | PColumnSelector | PColumnSelector[]): PColumn<PColumnDataUniversal | undefined>[];
|
|
7
7
|
}
|
|
8
8
|
export interface AxisLabelProvider {
|
|
9
9
|
findLabels(axis: AxisId): Record<string | number, string> | undefined;
|
|
@@ -12,7 +12,7 @@ export type PColumnEntryWithLabel = {
|
|
|
12
12
|
id: PObjectId;
|
|
13
13
|
spec: PColumnSpec;
|
|
14
14
|
/** Lazy calculates the data, returns undefined if data is not ready. */
|
|
15
|
-
data():
|
|
15
|
+
data(): PColumnDataUniversal | undefined;
|
|
16
16
|
label: string;
|
|
17
17
|
};
|
|
18
18
|
/** Universal column is a column that uses a universal column id, and always have label. */
|
|
@@ -43,14 +43,14 @@ export declare class PColumnCollection {
|
|
|
43
43
|
constructor();
|
|
44
44
|
addColumnProvider(provider: ColumnProvider): this;
|
|
45
45
|
addAxisLabelProvider(provider: AxisLabelProvider): this;
|
|
46
|
-
addColumns(columns: PColumn<
|
|
47
|
-
addColumn(column: PColumn<
|
|
46
|
+
addColumns(columns: PColumn<PColumnDataUniversal | undefined>[]): this;
|
|
47
|
+
addColumn(column: PColumn<PColumnDataUniversal | undefined>): this;
|
|
48
48
|
/** Fetches labels for a given axis from the registered providers */
|
|
49
49
|
private findLabels;
|
|
50
50
|
getUniversalEntries(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | APColumnSelectorWithSplit | APColumnSelectorWithSplit[], opts: UniversalPColumnOpts): PColumnEntryUniversal[] | undefined;
|
|
51
51
|
getUniversalEntries(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | PColumnSelectorWithSplit | PColumnSelectorWithSplit[], opts?: UniversalPColumnOptsNoDeriver): PColumnEntryWithLabel[] | undefined;
|
|
52
|
-
getColumns(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | APColumnSelectorWithSplit | APColumnSelectorWithSplit[], opts: UniversalPColumnOpts): PColumn<
|
|
53
|
-
getColumns(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | PColumnSelectorWithSplit | PColumnSelectorWithSplit[], opts?: UniversalPColumnOptsNoDeriver): PColumn<
|
|
52
|
+
getColumns(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | APColumnSelectorWithSplit | APColumnSelectorWithSplit[], opts: UniversalPColumnOpts): PColumn<PColumnDataUniversal>[] | undefined;
|
|
53
|
+
getColumns(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | PColumnSelectorWithSplit | PColumnSelectorWithSplit[], opts?: UniversalPColumnOptsNoDeriver): PColumn<PColumnDataUniversal>[] | undefined;
|
|
54
54
|
}
|
|
55
55
|
export {};
|
|
56
56
|
//# sourceMappingURL=column_collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column_collection.d.ts","sourceRoot":"","sources":["../../../src/render/util/column_collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"column_collection.d.ts","sourceRoot":"","sources":["../../../src/render/util/column_collection.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PlatformaSDKVersion = "1.33.
|
|
1
|
+
export declare const PlatformaSDKVersion = "1.33.10";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/model",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.10",
|
|
4
4
|
"description": "Platforma.bio SDK / Block Model",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"utility-types": "^3.11.0",
|
|
22
22
|
"canonicalize": "~2.1.0",
|
|
23
23
|
"zod": "~3.23.8",
|
|
24
|
-
"@milaboratories/pl-
|
|
25
|
-
"@milaboratories/pl-
|
|
24
|
+
"@milaboratories/pl-model-common": "^1.15.3",
|
|
25
|
+
"@milaboratories/pl-error-like": "^1.12.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"typescript": "~5.5.4",
|
|
@@ -1,15 +1,30 @@
|
|
|
1
1
|
import {test, expect, describe} from '@jest/globals';
|
|
2
2
|
import {
|
|
3
|
-
enrichColumnsWithCompatible,
|
|
4
|
-
getAdditionalColumns,
|
|
5
|
-
getLinkerColumnsMap,
|
|
6
|
-
LINKER_COLUMN_ANNOTATION,
|
|
7
3
|
IS_VIRTUAL_COLUMN,
|
|
8
|
-
LABEL_ANNOTATION
|
|
4
|
+
LABEL_ANNOTATION,
|
|
5
|
+
enrichCompatible, LINKER_COLUMN_ANNOTATION, getAvailableWithLinkersAxes
|
|
9
6
|
} from './PFrameForGraphs';
|
|
10
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
AxisId, CanonicalizedJson,
|
|
9
|
+
canonicalizeJson, DataInfo,
|
|
10
|
+
getAxisId,
|
|
11
|
+
PColumn,
|
|
12
|
+
PColumnSpec,
|
|
13
|
+
PColumnValues,
|
|
14
|
+
PObjectId
|
|
15
|
+
} from "@milaboratories/pl-model-common";
|
|
11
16
|
import {TreeNodeAccessor} from "../render";
|
|
12
17
|
|
|
18
|
+
function getAllAxesFromSpecs (specs:PColumnSpec[]):Map<CanonicalizedJson<AxisId>, AxisId> {
|
|
19
|
+
const allAxes:Map<CanonicalizedJson<AxisId>, AxisId> = new Map();
|
|
20
|
+
for (const spec of specs) {
|
|
21
|
+
for (const id of spec.axesSpec) {
|
|
22
|
+
const aid = getAxisId(id);
|
|
23
|
+
allAxes.set(canonicalizeJson(aid), aid);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return allAxes
|
|
27
|
+
}
|
|
13
28
|
describe('PFrameForGraph', () => {
|
|
14
29
|
test('columns are compatible, no additional columns', () => {
|
|
15
30
|
const columnSpec1: PColumnSpec = {
|
|
@@ -37,8 +52,9 @@ describe('PFrameForGraph', () => {
|
|
|
37
52
|
data: []
|
|
38
53
|
}
|
|
39
54
|
] as PColumn<PColumnValues>[]
|
|
55
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1, columnSpec2]);
|
|
40
56
|
|
|
41
|
-
expect(
|
|
57
|
+
expect(enrichCompatible(allAxes, columns).length).toEqual(2);
|
|
42
58
|
});
|
|
43
59
|
|
|
44
60
|
test('columns are not compatible, 1 additional column', () => {
|
|
@@ -54,16 +70,17 @@ describe('PFrameForGraph', () => {
|
|
|
54
70
|
valueType: 'Int',
|
|
55
71
|
axesSpec: [{type: 'String', name: 'axis1', domain: {}}]
|
|
56
72
|
}
|
|
73
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1]);
|
|
57
74
|
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
58
75
|
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
59
76
|
{id: 'id2' as PObjectId, spec: columnSpec2, data: []}
|
|
60
|
-
] as PColumn<PColumnValues>[]
|
|
77
|
+
] as PColumn<PColumnValues>[];
|
|
61
78
|
|
|
62
|
-
const
|
|
63
|
-
expect(
|
|
64
|
-
expect(
|
|
65
|
-
expect(
|
|
66
|
-
expect(
|
|
79
|
+
const resultColumns = enrichCompatible(allAxes, columns);
|
|
80
|
+
expect(resultColumns.length).toEqual(3);
|
|
81
|
+
expect(resultColumns[2].id === columns[0].id).toEqual(false);
|
|
82
|
+
expect(resultColumns[2].id === columns[1].id).toEqual(false);
|
|
83
|
+
expect(resultColumns[2].spec).toEqual({
|
|
67
84
|
kind: 'PColumn',
|
|
68
85
|
name: 'column2',
|
|
69
86
|
valueType: 'Int',
|
|
@@ -84,13 +101,14 @@ describe('PFrameForGraph', () => {
|
|
|
84
101
|
valueType: 'Int',
|
|
85
102
|
axesSpec: [{type: 'String', name: 'axis1', domain: {key2: 'b'}}]
|
|
86
103
|
}
|
|
104
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1]);
|
|
87
105
|
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
88
106
|
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
89
107
|
{id: 'id2' as PObjectId, spec: columnSpec2, data: []}
|
|
90
108
|
] as PColumn<PColumnValues>[]
|
|
91
109
|
|
|
92
|
-
const
|
|
93
|
-
expect(
|
|
110
|
+
const resultColumns = enrichCompatible(allAxes, columns);
|
|
111
|
+
expect(resultColumns.length).toEqual(2);
|
|
94
112
|
});
|
|
95
113
|
test('columns are not compatible, 2 additional columns', () => {
|
|
96
114
|
const columnSpec1: PColumnSpec = {
|
|
@@ -108,13 +126,14 @@ describe('PFrameForGraph', () => {
|
|
|
108
126
|
valueType: 'Int',
|
|
109
127
|
axesSpec: [{type: 'String', name: 'axis1', domain: {}}]
|
|
110
128
|
}
|
|
111
|
-
const
|
|
129
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1]);
|
|
130
|
+
const columns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] = [
|
|
112
131
|
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
113
132
|
{id: 'id2' as PObjectId, spec: columnSpec2, data: []}
|
|
114
133
|
] as PColumn<PColumnValues>[]
|
|
115
134
|
|
|
116
|
-
const
|
|
117
|
-
expect(
|
|
135
|
+
const resultColumns = enrichCompatible(allAxes, columns);
|
|
136
|
+
expect(resultColumns.length).toEqual(4);
|
|
118
137
|
});
|
|
119
138
|
test('columns are not compatible, 4 additional columns - by 2 axes', () => {
|
|
120
139
|
const columnSpec1: PColumnSpec = {
|
|
@@ -137,94 +156,15 @@ describe('PFrameForGraph', () => {
|
|
|
137
156
|
{type: 'String', name: 'axis2', domain: {}}
|
|
138
157
|
]
|
|
139
158
|
}
|
|
140
|
-
const
|
|
159
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1]);
|
|
160
|
+
const columns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] = [
|
|
141
161
|
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
142
162
|
{id: 'id2' as PObjectId, spec: columnSpec2, data: []}
|
|
143
|
-
]
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
expect(additionalColumns.length).toEqual(4);
|
|
163
|
+
];
|
|
164
|
+
const resultColumns = enrichCompatible(allAxes, columns);
|
|
165
|
+
expect(resultColumns.length).toEqual(6);
|
|
147
166
|
});
|
|
148
167
|
|
|
149
|
-
test('enrichColumnsWithCompatibleMetadata', () => {
|
|
150
|
-
const columnSpec1: PColumnSpec = {
|
|
151
|
-
kind: 'PColumn',
|
|
152
|
-
name: 'column1',
|
|
153
|
-
valueType: 'Int',
|
|
154
|
-
axesSpec: [
|
|
155
|
-
{type: 'String', name: 'axis1', domain: {key1: 'a'}},
|
|
156
|
-
{type: 'String', name: 'axis2', domain: {key1: 'b'}},
|
|
157
|
-
]
|
|
158
|
-
};
|
|
159
|
-
const metaColumnSpec1: PColumnSpec = {
|
|
160
|
-
kind: 'PColumn',
|
|
161
|
-
name: 'metadata1',
|
|
162
|
-
valueType: 'Int',
|
|
163
|
-
axesSpec: [{type: 'String', name: 'axis1'}]
|
|
164
|
-
};
|
|
165
|
-
const metaColumnSpec2: PColumnSpec = {
|
|
166
|
-
kind: 'PColumn',
|
|
167
|
-
name: 'metadata2',
|
|
168
|
-
valueType: 'String',
|
|
169
|
-
axesSpec: [{type: 'String', name: 'axis1', domain: {key1: 'a'}}]
|
|
170
|
-
};
|
|
171
|
-
const metaColumnSpec3: PColumnSpec = {
|
|
172
|
-
kind: 'PColumn',
|
|
173
|
-
name: 'metadata2',
|
|
174
|
-
valueType: 'String',
|
|
175
|
-
axesSpec: [{type: 'String', name: 'axis3'}]
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
179
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
180
|
-
] as PColumn<PColumnValues>[];
|
|
181
|
-
const upstream: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
182
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
183
|
-
{id: 'id2' as PObjectId, spec: metaColumnSpec1, data: []},
|
|
184
|
-
{id: 'id3' as PObjectId, spec: metaColumnSpec2, data: []},
|
|
185
|
-
{id: 'id4' as PObjectId, spec: metaColumnSpec3, data: []},
|
|
186
|
-
] as PColumn<PColumnValues>[];
|
|
187
|
-
|
|
188
|
-
const enrichedColumns = enrichColumnsWithCompatible(columns, upstream);
|
|
189
|
-
expect(enrichedColumns.map((c) => c.id)).toEqual(['id1', 'id2', 'id3'])
|
|
190
|
-
})
|
|
191
|
-
|
|
192
|
-
test('enrichColumnsWithCompatibleMetadata doesn\'t add column with identical spec', () => {
|
|
193
|
-
const columnSpec1: PColumnSpec = {
|
|
194
|
-
kind: 'PColumn',
|
|
195
|
-
name: 'column1',
|
|
196
|
-
valueType: 'Int',
|
|
197
|
-
axesSpec: [
|
|
198
|
-
{type: 'String', name: 'axis1', domain: {key1: 'a'}},
|
|
199
|
-
{type: 'String', name: 'axis2', domain: {key1: 'b'}},
|
|
200
|
-
]
|
|
201
|
-
};
|
|
202
|
-
const metaColumnSpec1: PColumnSpec = {
|
|
203
|
-
kind: 'PColumn',
|
|
204
|
-
name: 'metadata1',
|
|
205
|
-
valueType: 'Int',
|
|
206
|
-
axesSpec: [{type: 'String', name: 'axis1'}]
|
|
207
|
-
};
|
|
208
|
-
const metaColumnSpec2: PColumnSpec = {
|
|
209
|
-
kind: 'PColumn',
|
|
210
|
-
name: 'metadata2',
|
|
211
|
-
valueType: 'String',
|
|
212
|
-
axesSpec: [{type: 'String', name: 'axis1', domain: {key1: 'a'}}]
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
216
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
217
|
-
] as PColumn<PColumnValues>[];
|
|
218
|
-
const upstream: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
219
|
-
{id: 'id2' as PObjectId, spec: columnSpec1, data: []},
|
|
220
|
-
{id: 'id3' as PObjectId, spec: metaColumnSpec1, data: []},
|
|
221
|
-
{id: 'id4' as PObjectId, spec: metaColumnSpec2, data: []},
|
|
222
|
-
] as PColumn<PColumnValues>[];
|
|
223
|
-
|
|
224
|
-
const enrichedColumns = enrichColumnsWithCompatible(columns, upstream);
|
|
225
|
-
expect(enrichedColumns.map((c) => c.id)).toEqual(['id1', 'id3', 'id4'])
|
|
226
|
-
})
|
|
227
|
-
|
|
228
168
|
test('Labels of added columns include added domains, but not include common domains', () => {
|
|
229
169
|
const columnSpec1: PColumnSpec = {
|
|
230
170
|
kind: 'PColumn',
|
|
@@ -242,17 +182,18 @@ describe('PFrameForGraph', () => {
|
|
|
242
182
|
annotations: {[LABEL_ANNOTATION]: 'Label of column2'},
|
|
243
183
|
axesSpec: [{type: 'String', name: 'axis1', domain: {key0: 'commonDomain'}}]
|
|
244
184
|
}
|
|
185
|
+
const allAxes = getAllAxesFromSpecs([columnSpec1]);
|
|
245
186
|
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
246
187
|
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
247
188
|
{id: 'id2' as PObjectId, spec: columnSpec2, data: []}
|
|
248
189
|
] as PColumn<PColumnValues>[]
|
|
249
190
|
|
|
250
|
-
const
|
|
251
|
-
expect(
|
|
252
|
-
expect(
|
|
191
|
+
const resultColumns = enrichCompatible(allAxes, columns);
|
|
192
|
+
expect(resultColumns[2].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / a');
|
|
193
|
+
expect(resultColumns[3].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / b');
|
|
253
194
|
})
|
|
254
195
|
|
|
255
|
-
test('
|
|
196
|
+
test('Linker column adds available axis', () => {
|
|
256
197
|
const columnSpec1: PColumnSpec = {
|
|
257
198
|
kind: 'PColumn',
|
|
258
199
|
name: 'column1',
|
|
@@ -262,24 +203,6 @@ describe('PFrameForGraph', () => {
|
|
|
262
203
|
{type: 'String', name: 'axis2', domain: {key1: 'b'}},
|
|
263
204
|
]
|
|
264
205
|
};
|
|
265
|
-
const metaColumnSpec1: PColumnSpec = {
|
|
266
|
-
kind: 'PColumn',
|
|
267
|
-
name: 'metadata1',
|
|
268
|
-
valueType: 'Int',
|
|
269
|
-
axesSpec: [{type: 'String', name: 'axis1'}]
|
|
270
|
-
};
|
|
271
|
-
const metaColumnSpec2: PColumnSpec = {
|
|
272
|
-
kind: 'PColumn',
|
|
273
|
-
name: 'metadata2',
|
|
274
|
-
valueType: 'String',
|
|
275
|
-
axesSpec: [{type: 'String', name: 'axis1', domain: {key1: 'a'}}]
|
|
276
|
-
};
|
|
277
|
-
const metaColumnSpec3: PColumnSpec = {
|
|
278
|
-
kind: 'PColumn',
|
|
279
|
-
name: 'metadata2',
|
|
280
|
-
valueType: 'String',
|
|
281
|
-
axesSpec: [{type: 'String', name: 'axis3'}]
|
|
282
|
-
};
|
|
283
206
|
const linkerColumn13: PColumnSpec = {
|
|
284
207
|
kind: 'PColumn',
|
|
285
208
|
name: 'linker13',
|
|
@@ -291,36 +214,21 @@ describe('PFrameForGraph', () => {
|
|
|
291
214
|
]
|
|
292
215
|
}
|
|
293
216
|
|
|
294
|
-
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
295
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
296
|
-
] as PColumn<PColumnValues>[];
|
|
297
|
-
const upstream: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
298
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
299
|
-
{id: 'id2' as PObjectId, spec: metaColumnSpec1, data: []},
|
|
300
|
-
{id: 'id3' as PObjectId, spec: metaColumnSpec2, data: []},
|
|
301
|
-
{id: 'id4' as PObjectId, spec: metaColumnSpec3, data: []},
|
|
302
|
-
{id: 'id5' as PObjectId, spec: linkerColumn13, data: []},
|
|
303
|
-
] as PColumn<PColumnValues>[];
|
|
304
|
-
|
|
305
217
|
const linkerColumns = [{id: 'id5' as PObjectId, spec: linkerColumn13, data: []}];
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
218
|
+
const availableAxes = getAvailableWithLinkersAxes(
|
|
219
|
+
linkerColumns,
|
|
220
|
+
getAllAxesFromSpecs([columnSpec1])
|
|
221
|
+
);
|
|
222
|
+
expect([...availableAxes.values()].map(id => id.name)).toEqual(['axis3'])
|
|
309
223
|
})
|
|
310
224
|
|
|
311
|
-
test('
|
|
225
|
+
test('Linker columns add available axes by chains', () => {
|
|
312
226
|
const columnSpec1: PColumnSpec = {
|
|
313
227
|
kind: 'PColumn',
|
|
314
228
|
name: 'column1',
|
|
315
229
|
valueType: 'Int',
|
|
316
230
|
axesSpec: [{type: 'String', name: 'axis1'}]
|
|
317
231
|
};
|
|
318
|
-
const metaColumnSpec1: PColumnSpec = {
|
|
319
|
-
kind: 'PColumn',
|
|
320
|
-
name: 'metadata1',
|
|
321
|
-
valueType: 'Int',
|
|
322
|
-
axesSpec: [{type: 'String', name: 'axis4'}]
|
|
323
|
-
};
|
|
324
232
|
const linkerColumn12: PColumnSpec = {
|
|
325
233
|
kind: 'PColumn',
|
|
326
234
|
name: 'linker12',
|
|
@@ -352,24 +260,15 @@ describe('PFrameForGraph', () => {
|
|
|
352
260
|
]
|
|
353
261
|
}
|
|
354
262
|
|
|
355
|
-
const columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
356
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
357
|
-
] as PColumn<PColumnValues>[];
|
|
358
|
-
const upstream: PColumn<TreeNodeAccessor | PColumnValues>[] = [
|
|
359
|
-
{id: 'id1' as PObjectId, spec: columnSpec1, data: []},
|
|
360
|
-
{id: 'id2' as PObjectId, spec: metaColumnSpec1, data: []},
|
|
361
|
-
{id: 'id3' as PObjectId, spec: linkerColumn12, data: []},
|
|
362
|
-
{id: 'id4' as PObjectId, spec: linkerColumn23, data: []},
|
|
363
|
-
{id: 'id5' as PObjectId, spec: linkerColumn34, data: []},
|
|
364
|
-
] as PColumn<PColumnValues>[];
|
|
365
|
-
|
|
366
263
|
const linkerColumns = [
|
|
367
264
|
{id: 'id3' as PObjectId, spec: linkerColumn12, data: []},
|
|
368
265
|
{id: 'id4' as PObjectId, spec: linkerColumn23, data: []},
|
|
369
266
|
{id: 'id5' as PObjectId, spec: linkerColumn34, data: []},
|
|
370
267
|
];
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
|
|
268
|
+
const availableAxes = getAvailableWithLinkersAxes(
|
|
269
|
+
linkerColumns,
|
|
270
|
+
getAllAxesFromSpecs([columnSpec1])
|
|
271
|
+
);
|
|
272
|
+
expect([...availableAxes.values()].map(id => id.name)).toEqual(['axis2', 'axis3', 'axis4'])
|
|
374
273
|
})
|
|
375
274
|
})
|