@platforma-sdk/model 1.31.16 → 1.32.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/dist/components/PFrameForGraphs.d.ts +9 -3
- package/dist/components/PFrameForGraphs.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +584 -535
- package/dist/index.mjs.map +1 -1
- package/dist/render/api.d.ts +3 -0
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/internal.d.ts +3 -0
- package/dist/render/internal.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/components/PFrameForGraphs.test.ts +123 -1
- package/src/components/PFrameForGraphs.ts +90 -9
- package/src/render/api.ts +12 -0
- package/src/render/internal.ts +10 -0
package/dist/render/api.d.ts
CHANGED
|
@@ -176,6 +176,9 @@ export declare class RenderCtx<Args, UiState> {
|
|
|
176
176
|
/** @deprecated scheduled for removal from SDK */
|
|
177
177
|
getBlockLabel(blockId: string): string;
|
|
178
178
|
getCurrentUnstableMarker(): string | undefined;
|
|
179
|
+
logInfo(msg: string): void;
|
|
180
|
+
logWarn(msg: string): void;
|
|
181
|
+
logError(msg: string): void;
|
|
179
182
|
}
|
|
180
183
|
export type RenderFunction<Args = unknown, UiState = unknown, Ret = unknown> = (rCtx: RenderCtx<Args, UiState>) => Ret;
|
|
181
184
|
export type UnwrapFutureRef<K> = K extends FutureRef<infer T> ? T : K extends bigint | boolean | null | number | string | symbol | undefined ? K : {
|
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":"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
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/render/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,9 @@ export interface GlobalCfgRenderCtxMethods<AHandle = AccessorHandle, FHandle = F
|
|
|
45
45
|
createPFrame(def: PFrameDef<AHandle | PColumnValues | DataInfo<AHandle>>): PFrameHandle;
|
|
46
46
|
createPTable(def: PTableDef<PColumn<AHandle | PColumnValues | DataInfo<AHandle>>>): PTableHandle;
|
|
47
47
|
getCurrentUnstableMarker(): string | undefined;
|
|
48
|
+
logInfo(message: string): void;
|
|
49
|
+
logWarn(message: string): void;
|
|
50
|
+
logError(message: string): void;
|
|
48
51
|
}
|
|
49
52
|
export declare const GlobalCfgRenderCtxFeatureFlags: {
|
|
50
53
|
explicitColumnsSupport: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/render/internal.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/render/internal.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PlatformaSDKVersion = "1.
|
|
1
|
+
export declare const PlatformaSDKVersion = "1.32.1";
|
|
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,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/model",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.32.1",
|
|
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.2",
|
|
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
|
-
"@
|
|
35
|
-
"@platforma-
|
|
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",
|
|
@@ -2,6 +2,8 @@ import {test, expect, describe} from '@jest/globals';
|
|
|
2
2
|
import {
|
|
3
3
|
enrichColumnsWithCompatible,
|
|
4
4
|
getAdditionalColumns,
|
|
5
|
+
getLinkerColumnsMap,
|
|
6
|
+
LINKER_COLUMN_ANNOTATION,
|
|
5
7
|
IS_VIRTUAL_COLUMN,
|
|
6
8
|
LABEL_ANNOTATION
|
|
7
9
|
} from './PFrameForGraphs';
|
|
@@ -223,7 +225,6 @@ describe('PFrameForGraph', () => {
|
|
|
223
225
|
expect(enrichedColumns.map((c) => c.id)).toEqual(['id1', 'id3', 'id4'])
|
|
224
226
|
})
|
|
225
227
|
|
|
226
|
-
|
|
227
228
|
test('Labels of added columns include added domains, but not include common domains', () => {
|
|
228
229
|
const columnSpec1: PColumnSpec = {
|
|
229
230
|
kind: 'PColumn',
|
|
@@ -250,4 +251,125 @@ describe('PFrameForGraph', () => {
|
|
|
250
251
|
expect(additionalColumns[0].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / a');
|
|
251
252
|
expect(additionalColumns[1].spec.annotations?.[LABEL_ANNOTATION]).toEqual('Label of column2 / b');
|
|
252
253
|
})
|
|
254
|
+
|
|
255
|
+
test('Column added from upstream with linker column', () => {
|
|
256
|
+
const columnSpec1: PColumnSpec = {
|
|
257
|
+
kind: 'PColumn',
|
|
258
|
+
name: 'column1',
|
|
259
|
+
valueType: 'Int',
|
|
260
|
+
axesSpec: [
|
|
261
|
+
{type: 'String', name: 'axis1', domain: {key1: 'a'}},
|
|
262
|
+
{type: 'String', name: 'axis2', domain: {key1: 'b'}},
|
|
263
|
+
]
|
|
264
|
+
};
|
|
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
|
+
const linkerColumn13: PColumnSpec = {
|
|
284
|
+
kind: 'PColumn',
|
|
285
|
+
name: 'linker13',
|
|
286
|
+
valueType: 'String',
|
|
287
|
+
annotations: {[LINKER_COLUMN_ANNOTATION]: 'true'},
|
|
288
|
+
axesSpec: [
|
|
289
|
+
{type: 'String', name: 'axis1'},
|
|
290
|
+
{type: 'String', name: 'axis3'}
|
|
291
|
+
]
|
|
292
|
+
}
|
|
293
|
+
|
|
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
|
+
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'])
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
test('Column added from upstream with linker columns chain', () => {
|
|
312
|
+
const columnSpec1: PColumnSpec = {
|
|
313
|
+
kind: 'PColumn',
|
|
314
|
+
name: 'column1',
|
|
315
|
+
valueType: 'Int',
|
|
316
|
+
axesSpec: [{type: 'String', name: 'axis1'}]
|
|
317
|
+
};
|
|
318
|
+
const metaColumnSpec1: PColumnSpec = {
|
|
319
|
+
kind: 'PColumn',
|
|
320
|
+
name: 'metadata1',
|
|
321
|
+
valueType: 'Int',
|
|
322
|
+
axesSpec: [{type: 'String', name: 'axis4'}]
|
|
323
|
+
};
|
|
324
|
+
const linkerColumn12: PColumnSpec = {
|
|
325
|
+
kind: 'PColumn',
|
|
326
|
+
name: 'linker12',
|
|
327
|
+
valueType: 'String',
|
|
328
|
+
annotations: {[LINKER_COLUMN_ANNOTATION]: 'true'},
|
|
329
|
+
axesSpec: [
|
|
330
|
+
{type: 'String', name: 'axis1'},
|
|
331
|
+
{type: 'String', name: 'axis2'}
|
|
332
|
+
]
|
|
333
|
+
}
|
|
334
|
+
const linkerColumn23: PColumnSpec = {
|
|
335
|
+
kind: 'PColumn',
|
|
336
|
+
name: 'linker23',
|
|
337
|
+
valueType: 'String',
|
|
338
|
+
annotations: {[LINKER_COLUMN_ANNOTATION]: 'true'},
|
|
339
|
+
axesSpec: [
|
|
340
|
+
{type: 'String', name: 'axis2'},
|
|
341
|
+
{type: 'String', name: 'axis3'}
|
|
342
|
+
]
|
|
343
|
+
}
|
|
344
|
+
const linkerColumn34: PColumnSpec = {
|
|
345
|
+
kind: 'PColumn',
|
|
346
|
+
name: 'linker34',
|
|
347
|
+
valueType: 'String',
|
|
348
|
+
annotations: {[LINKER_COLUMN_ANNOTATION]: 'true'},
|
|
349
|
+
axesSpec: [
|
|
350
|
+
{type: 'String', name: 'axis3'},
|
|
351
|
+
{type: 'String', name: 'axis4'}
|
|
352
|
+
]
|
|
353
|
+
}
|
|
354
|
+
|
|
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
|
+
const linkerColumns = [
|
|
367
|
+
{id: 'id3' as PObjectId, spec: linkerColumn12, data: []},
|
|
368
|
+
{id: 'id4' as PObjectId, spec: linkerColumn23, data: []},
|
|
369
|
+
{id: 'id5' as PObjectId, spec: linkerColumn34, data: []},
|
|
370
|
+
];
|
|
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'])
|
|
374
|
+
})
|
|
253
375
|
})
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
CanonicalizedJson,
|
|
4
4
|
DataInfo,
|
|
5
5
|
PColumn,
|
|
6
|
+
PColumnIdAndSpec,
|
|
6
7
|
PColumnSpec,
|
|
7
8
|
PColumnSpecId,
|
|
8
9
|
PColumnValues,
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
getPColumnSpecId,
|
|
16
17
|
isPColumn,
|
|
17
18
|
matchAxisId,
|
|
19
|
+
parseJson,
|
|
18
20
|
} from '@milaboratories/pl-model-common';
|
|
19
21
|
import type { RenderCtx } from '../render';
|
|
20
22
|
import { TreeNodeAccessor } from '../render';
|
|
@@ -49,43 +51,103 @@ function getKeysCombinations(idsLists: AxisId[][]) {
|
|
|
49
51
|
return result;
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
/** Check if column is a linker column */
|
|
55
|
+
export function isLinkerColumn(column: PColumnSpec) {
|
|
56
|
+
return column.axesSpec.length === 2 && column.annotations?.[LINKER_COLUMN_ANNOTATION] === 'true';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export type LinkerColumnsMap = Map<CanonicalizedJson<AxisId>, Map<CanonicalizedJson<AxisId>, PColumnIdAndSpec>>;
|
|
60
|
+
export function getLinkerColumnsMap(linkerColumns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[]) {
|
|
61
|
+
const resultMap: LinkerColumnsMap = new Map();
|
|
62
|
+
for (const { id, spec } of linkerColumns) {
|
|
63
|
+
const [idA, idB] = spec.axesSpec.map(getAxisId).map(canonicalizeJson);
|
|
64
|
+
if (!resultMap.has(idA)) {
|
|
65
|
+
resultMap.set(idA, new Map());
|
|
66
|
+
}
|
|
67
|
+
if (!resultMap.has(idB)) {
|
|
68
|
+
resultMap.set(idB, new Map());
|
|
69
|
+
}
|
|
70
|
+
resultMap.get(idA)?.set(idB, { columnId: id, spec })
|
|
71
|
+
resultMap.get(idB)?.set(idA, { columnId: id, spec })
|
|
72
|
+
}
|
|
73
|
+
return resultMap;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function hasPathWithLinkerColumns(
|
|
77
|
+
linkerColumnsMap: LinkerColumnsMap,
|
|
78
|
+
startId: AxisId,
|
|
79
|
+
endId: AxisId,
|
|
80
|
+
): boolean {
|
|
81
|
+
const linkerColumnsMapIds = [...linkerColumnsMap.keys()].map(parseJson);
|
|
82
|
+
const startIdMatched = linkerColumnsMapIds.find((id) => matchAxisId(startId, id));
|
|
83
|
+
if (!startIdMatched) return false;
|
|
84
|
+
|
|
85
|
+
const startKey = canonicalizeJson(getAxisId(startIdMatched));
|
|
86
|
+
const visited = new Set([startKey]);
|
|
87
|
+
let nextKeys = [startKey];
|
|
88
|
+
|
|
89
|
+
while (nextKeys.length) {
|
|
90
|
+
const next: CanonicalizedJson<AxisId>[] = [];
|
|
91
|
+
for (const nextKey of nextKeys) {
|
|
92
|
+
for (const availableKey of linkerColumnsMap.get(nextKey)?.keys() ?? []) {
|
|
93
|
+
const availableId = parseJson(availableKey);
|
|
94
|
+
if (matchAxisId(endId, availableId)) return true;
|
|
95
|
+
if (!visited.has(availableKey)) {
|
|
96
|
+
next.push(availableKey);
|
|
97
|
+
visited.add(availableKey);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
nextKeys = next;
|
|
102
|
+
}
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
|
|
52
106
|
/** Check if axes of secondary column are exactly in axes of main column */
|
|
53
107
|
function checkFullCompatibility(
|
|
54
108
|
mainColumn: PColumnSpec,
|
|
55
109
|
secondaryColumn: PColumnSpec,
|
|
110
|
+
linkerColumnsMap?: LinkerColumnsMap,
|
|
56
111
|
): boolean {
|
|
57
112
|
const mainAxesIds = mainColumn.axesSpec.map(getAxisId);
|
|
58
113
|
const secondaryAxesIds = secondaryColumn.axesSpec.map(getAxisId);
|
|
59
|
-
|
|
114
|
+
// with fixed axes (sliced columns) in data-mapping there is enough to have only one axis in intersection
|
|
115
|
+
return secondaryAxesIds.some((id) => mainAxesIds.some((mainId) => matchAxisId(mainId, id) && matchAxisId(id, mainId)))
|
|
116
|
+
|| (!!linkerColumnsMap && secondaryAxesIds.some((id) => mainAxesIds.some((mainId) => hasPathWithLinkerColumns(linkerColumnsMap, mainId, id))));
|
|
60
117
|
}
|
|
61
118
|
|
|
62
119
|
/** Check if axes of secondary column are in axes of main column, but they can have compatible difference in domains */
|
|
63
120
|
function checkCompatibility(
|
|
64
121
|
mainColumn: PColumnSpec,
|
|
65
122
|
secondaryColumn: PColumnSpec,
|
|
123
|
+
linkerColumnsMap?: LinkerColumnsMap,
|
|
66
124
|
): boolean {
|
|
67
125
|
const mainAxesIds = mainColumn.axesSpec.map(getAxisId);
|
|
68
126
|
const secondaryAxesIds = secondaryColumn.axesSpec.map(getAxisId);
|
|
69
|
-
|
|
127
|
+
// with fixed axes (sliced columns) in data-mapping there is enough to have only one axis in intersection
|
|
128
|
+
return secondaryAxesIds.some((id) => mainAxesIds.some((mainId) => matchAxisId(mainId, id)))
|
|
129
|
+
|| (!!linkerColumnsMap && secondaryAxesIds.some((id) => mainAxesIds.some((mainId) => hasPathWithLinkerColumns(linkerColumnsMap, mainId, id))));
|
|
70
130
|
}
|
|
71
131
|
|
|
72
132
|
export const IS_VIRTUAL_COLUMN = 'pl7.app/graph/isVirtual'; // annotation for column duplicates with extended domains
|
|
73
133
|
export const LABEL_ANNOTATION = 'pl7.app/label';
|
|
134
|
+
export const LINKER_COLUMN_ANNOTATION = 'pl7.app/isLinkerColumn';
|
|
74
135
|
|
|
75
136
|
/** Main column can have additional domains, if secondary column (meta-column) has all axes match main column axes
|
|
76
137
|
we can add its copy with missed domain fields for compatibility */
|
|
77
138
|
function getAdditionalColumnsForPair(
|
|
78
139
|
mainColumn: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>,
|
|
79
140
|
secondaryColumn: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>,
|
|
141
|
+
linkerColumnsMap?: LinkerColumnsMap,
|
|
80
142
|
): PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] {
|
|
81
143
|
const mainAxesIds = mainColumn.spec.axesSpec.map(getAxisId);
|
|
82
144
|
const secondaryAxesIds = secondaryColumn.spec.axesSpec.map(getAxisId);
|
|
83
145
|
|
|
84
|
-
const isFullCompatible = checkFullCompatibility(mainColumn.spec, secondaryColumn.spec);
|
|
146
|
+
const isFullCompatible = checkFullCompatibility(mainColumn.spec, secondaryColumn.spec, linkerColumnsMap);
|
|
85
147
|
if (isFullCompatible) { // in this case it isn't necessary to add more columns
|
|
86
148
|
return [];
|
|
87
149
|
}
|
|
88
|
-
const isCompatible = checkCompatibility(mainColumn.spec, secondaryColumn.spec);
|
|
150
|
+
const isCompatible = checkCompatibility(mainColumn.spec, secondaryColumn.spec, linkerColumnsMap);
|
|
89
151
|
if (!isCompatible) { // in this case it is impossible to add some compatible column
|
|
90
152
|
return [];
|
|
91
153
|
}
|
|
@@ -159,6 +221,7 @@ function getAdditionalColumnsForPair(
|
|
|
159
221
|
|
|
160
222
|
export function getAdditionalColumns(
|
|
161
223
|
columns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[],
|
|
224
|
+
linkerColumnsMap: LinkerColumnsMap = new Map(),
|
|
162
225
|
): PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] {
|
|
163
226
|
const additionalColumns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] = [];
|
|
164
227
|
for (let i = 0; i < columns.length; i++) {
|
|
@@ -168,8 +231,8 @@ export function getAdditionalColumns(
|
|
|
168
231
|
|
|
169
232
|
// check if column 1 is meta for column 2 or backward
|
|
170
233
|
additionalColumns.push(
|
|
171
|
-
...getAdditionalColumnsForPair(column1, column2),
|
|
172
|
-
...getAdditionalColumnsForPair(column2, column1),
|
|
234
|
+
...getAdditionalColumnsForPair(column1, column2, linkerColumnsMap),
|
|
235
|
+
...getAdditionalColumnsForPair(column2, column1, linkerColumnsMap),
|
|
173
236
|
);
|
|
174
237
|
}
|
|
175
238
|
}
|
|
@@ -179,6 +242,8 @@ export function getAdditionalColumns(
|
|
|
179
242
|
export function enrichColumnsWithCompatible(
|
|
180
243
|
mainColumns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[],
|
|
181
244
|
secondaryColumns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[],
|
|
245
|
+
linkerColumns: PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] = [],
|
|
246
|
+
linkerColumnsMap: LinkerColumnsMap = new Map(),
|
|
182
247
|
): PColumn<TreeNodeAccessor | DataInfo<TreeNodeAccessor> | PColumnValues>[] {
|
|
183
248
|
const mainColumnsIds = new Set<PObjectId>();
|
|
184
249
|
const mainColumnsBySpec = new Map<CanonicalizedJson<PColumnSpecId>, typeof mainColumns[number]>();
|
|
@@ -195,13 +260,24 @@ export function enrichColumnsWithCompatible(
|
|
|
195
260
|
if (mainColumnsBySpec.has(spec)) continue;
|
|
196
261
|
|
|
197
262
|
for (const mainColumn of mainColumnsBySpec.values()) {
|
|
198
|
-
if (checkCompatibility(mainColumn.spec, secondaryColumn.spec)) {
|
|
263
|
+
if (checkCompatibility(mainColumn.spec, secondaryColumn.spec, linkerColumnsMap)) {
|
|
199
264
|
secondaryColumnsBySpec.set(spec, secondaryColumn);
|
|
200
265
|
break;
|
|
201
266
|
}
|
|
202
267
|
}
|
|
203
268
|
}
|
|
204
269
|
|
|
270
|
+
for (const linkerColumn of linkerColumns) {
|
|
271
|
+
if (mainColumnsIds.has(linkerColumn.id)) continue;
|
|
272
|
+
|
|
273
|
+
const spec = canonicalizeJson(getPColumnSpecId(linkerColumn.spec));
|
|
274
|
+
if (mainColumnsBySpec.has(spec)) continue;
|
|
275
|
+
if (secondaryColumnsBySpec.has(spec)) continue;
|
|
276
|
+
|
|
277
|
+
mainColumnsIds.add(linkerColumn.id);
|
|
278
|
+
mainColumnsBySpec.set(spec, linkerColumn);
|
|
279
|
+
}
|
|
280
|
+
|
|
205
281
|
return [...mainColumnsBySpec.values(), ...secondaryColumnsBySpec.values()];
|
|
206
282
|
}
|
|
207
283
|
|
|
@@ -216,10 +292,15 @@ export function createPFrameForGraphs<A, U>(
|
|
|
216
292
|
.entries.map((v) => v.obj)
|
|
217
293
|
.filter(isPColumn);
|
|
218
294
|
|
|
219
|
-
const
|
|
295
|
+
const allAvailableColumns = [...blockColumns, ...upstreamColumns];
|
|
296
|
+
// all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden
|
|
297
|
+
const linkerColumns = allAvailableColumns.filter((col) => isLinkerColumn(col.spec));
|
|
298
|
+
|
|
299
|
+
const linkerColumnsMap = getLinkerColumnsMap(linkerColumns);
|
|
300
|
+
const columnsWithCompatibleFromUpstream = enrichColumnsWithCompatible(blockColumns, upstreamColumns, linkerColumns, linkerColumnsMap);
|
|
220
301
|
|
|
221
302
|
// additional columns are duplicates with extra fields in domains for compatibility in all possible pairs of columns set
|
|
222
|
-
const extendedColumns = [...columnsWithCompatibleFromUpstream, ...getAdditionalColumns(columnsWithCompatibleFromUpstream)];
|
|
303
|
+
const extendedColumns = [...columnsWithCompatibleFromUpstream, ...getAdditionalColumns(columnsWithCompatibleFromUpstream, linkerColumnsMap)];
|
|
223
304
|
|
|
224
305
|
// if at least one column is not yet ready, we can't show the table
|
|
225
306
|
if (
|
package/src/render/api.ts
CHANGED
|
@@ -626,6 +626,18 @@ export class RenderCtx<Args, UiState> {
|
|
|
626
626
|
public getCurrentUnstableMarker(): string | undefined {
|
|
627
627
|
return this.ctx.getCurrentUnstableMarker();
|
|
628
628
|
}
|
|
629
|
+
|
|
630
|
+
public logInfo(msg: string): void {
|
|
631
|
+
this.ctx.logInfo(msg);
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
public logWarn(msg: string): void {
|
|
635
|
+
this.ctx.logWarn(msg);
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
public logError(msg: string): void {
|
|
639
|
+
this.ctx.logError(msg);
|
|
640
|
+
}
|
|
629
641
|
}
|
|
630
642
|
|
|
631
643
|
export type RenderFunction<Args = unknown, UiState = unknown, Ret = unknown> = (
|
package/src/render/internal.ts
CHANGED
|
@@ -151,6 +151,16 @@ export interface GlobalCfgRenderCtxMethods<AHandle = AccessorHandle, FHandle = F
|
|
|
151
151
|
//
|
|
152
152
|
|
|
153
153
|
getCurrentUnstableMarker(): string | undefined;
|
|
154
|
+
|
|
155
|
+
//
|
|
156
|
+
// Logging
|
|
157
|
+
//
|
|
158
|
+
|
|
159
|
+
logInfo(message: string): void;
|
|
160
|
+
|
|
161
|
+
logWarn(message: string): void;
|
|
162
|
+
|
|
163
|
+
logError(message: string): void;
|
|
154
164
|
}
|
|
155
165
|
|
|
156
166
|
export const GlobalCfgRenderCtxFeatureFlags = {
|