@platforma-sdk/model 1.33.8 → 1.33.14

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.
@@ -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<DataInfo<TreeNodeAccessor> | TreeNodeAccessor>[] | undefined;
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<TreeNodeAccessor | PColumnValues | DataInfo<TreeNodeAccessor>>): PFrameHandle;
169
- createPTable(def: PTableDef<PColumn<TreeNodeAccessor | PColumnValues | DataInfo<TreeNodeAccessor>>>): PTableHandle;
169
+ createPFrame(def: PFrameDef<PColumnDataUniversal>): PFrameHandle;
170
+ createPTable(def: PTableDef<PColumn<PColumnDataUniversal>>): PTableHandle;
170
171
  createPTable(def: {
171
- columns: PColumn<TreeNodeAccessor | PColumnValues | DataInfo<TreeNodeAccessor>>[];
172
+ columns: PColumn<PColumnDataUniversal>[];
172
173
  filters?: PTableRecordFilter[];
173
174
  /** Table sorting */
174
175
  sorting?: PTableSorting[];
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"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"}
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, DataInfo, PColumn, PColumnSelector, PColumnSpec, PObjectId, SUniversalPColumnId, AnchoredPColumnSelector, ResolveAnchorsOptions } from '@milaboratories/pl-model-common';
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<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | undefined>[];
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(): DataInfo<TreeNodeAccessor> | TreeNodeAccessor | undefined;
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<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | undefined>[]): this;
47
- addColumn(column: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | undefined>): this;
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<TreeNodeAccessor | DataInfo<TreeNodeAccessor>>[] | undefined;
53
- getColumns(predicateOrSelectors: ((spec: PColumnSpec) => boolean) | PColumnSelectorWithSplit | PColumnSelectorWithSplit[], opts?: UniversalPColumnOptsNoDeriver): PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor>>[] | undefined;
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":"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"}
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.8";
1
+ export declare const PlatformaSDKVersion = "1.33.14";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,WAAW,CAAC"}
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.8",
3
+ "version": "1.33.14",
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-error-like": "^1.12.1",
25
- "@milaboratories/pl-model-common": "^1.15.3"
24
+ "@milaboratories/pl-model-common": "^1.15.4",
25
+ "@milaboratories/pl-error-like": "^1.12.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "typescript": "~5.5.4",
@@ -31,8 +31,8 @@
31
31
  "jest": "^29.7.0",
32
32
  "@jest/globals": "^29.7.0",
33
33
  "ts-jest": "^29.2.6",
34
- "@milaboratories/platforma-build-configs": "1.0.3",
35
- "@platforma-sdk/eslint-config": "1.0.3"
34
+ "@platforma-sdk/eslint-config": "1.0.3",
35
+ "@milaboratories/platforma-build-configs": "1.0.3"
36
36
  },
37
37
  "scripts": {
38
38
  "type-check": "node ./scripts/save-package-version.cjs && tsc --noEmit --composite false",
@@ -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 {PColumn, PColumnSpec, PColumnValues, PObjectId} from "@milaboratories/pl-model-common";
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(getAdditionalColumns(columns).length).toEqual(0);
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 additionalColumns = getAdditionalColumns(columns);
63
- expect(additionalColumns.length).toEqual(1);
64
- expect(additionalColumns[0].id === columns[0].id).toEqual(false);
65
- expect(additionalColumns[0].id === columns[1].id).toEqual(false);
66
- expect(additionalColumns[0].spec).toEqual({
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 additionalColumns = getAdditionalColumns(columns);
93
- expect(additionalColumns.length).toEqual(0);
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 columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
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 additionalColumns = getAdditionalColumns(columns);
117
- expect(additionalColumns.length).toEqual(2);
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 columns: PColumn<TreeNodeAccessor | PColumnValues>[] = [
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
- ] as PColumn<PColumnValues>[]
144
-
145
- const additionalColumns = getAdditionalColumns(columns);
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 additionalColumns = getAdditionalColumns(columns);
251
- expect(additionalColumns[0].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / a');
252
- expect(additionalColumns[1].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / b');
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('Column added from upstream with linker column', () => {
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 linkerColumnsMap = getLinkerColumnsMap(linkerColumns);
307
- const enrichedColumns = enrichColumnsWithCompatible(columns, upstream, linkerColumns, linkerColumnsMap);
308
- expect(enrichedColumns.map((c) => c.id)).toEqual(['id1', 'id2', 'id3', 'id4', 'id5'])
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('Column added from upstream with linker columns chain', () => {
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 linkerColumnsMap = getLinkerColumnsMap(linkerColumns);
372
- const enrichedColumns = enrichColumnsWithCompatible(columns, upstream, linkerColumns, linkerColumnsMap);
373
- expect(enrichedColumns.map((c) => c.id)).toEqual(['id1', 'id2', 'id3', 'id4', 'id5'])
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
  })