@platforma-sdk/model 1.45.42 → 1.46.0
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/annotations/converter.cjs +30 -14
- package/dist/annotations/converter.cjs.map +1 -1
- package/dist/annotations/converter.d.ts.map +1 -1
- package/dist/annotations/converter.js +30 -14
- package/dist/annotations/converter.js.map +1 -1
- package/dist/components/PFrameForGraphs.cjs +12 -27
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +4 -3
- package/dist/components/PFrameForGraphs.d.ts.map +1 -1
- package/dist/components/PFrameForGraphs.js +12 -28
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/filters/converter.cjs +4 -2
- package/dist/filters/converter.cjs.map +1 -1
- package/dist/filters/converter.d.ts.map +1 -1
- package/dist/filters/converter.js +4 -2
- package/dist/filters/converter.js.map +1 -1
- package/dist/filters/types.d.ts +1 -1
- package/dist/filters/types.d.ts.map +1 -1
- package/dist/index.cjs +10 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/package.json.cjs +1 -1
- package/dist/package.json.js +1 -1
- package/dist/pframe.cjs +11 -5
- package/dist/pframe.cjs.map +1 -1
- package/dist/pframe.d.ts +1 -0
- package/dist/pframe.d.ts.map +1 -1
- package/dist/pframe.js +11 -5
- package/dist/pframe.js.map +1 -1
- package/dist/pframe_utils/index.cjs +294 -0
- package/dist/pframe_utils/index.cjs.map +1 -0
- package/dist/pframe_utils/index.d.ts +48 -0
- package/dist/pframe_utils/index.d.ts.map +1 -0
- package/dist/pframe_utils/index.js +285 -0
- package/dist/pframe_utils/index.js.map +1 -0
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +2 -2
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/api.js.map +1 -1
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +11 -6
- package/dist/render/util/column_collection.d.ts.map +1 -1
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/pcolumn_data.cjs +10 -6
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +3 -3
- package/dist/render/util/pcolumn_data.d.ts.map +1 -1
- package/dist/render/util/pcolumn_data.js +10 -6
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/package.json +12 -11
- package/src/annotations/converter.ts +35 -15
- package/src/components/PFrameForGraphs.ts +19 -37
- package/src/filters/converter.ts +4 -1
- package/src/filters/types.ts +1 -1
- package/src/global.d.ts +2 -2
- package/src/index.ts +1 -0
- package/src/internal.ts +2 -2
- package/src/pframe.ts +12 -5
- package/src/pframe_utils/index.ts +442 -0
- package/src/render/api.ts +6 -4
- package/src/render/util/column_collection.ts +13 -5
- package/src/render/util/pcolumn_data.ts +15 -10
package/src/render/api.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
DataInfo,
|
|
6
6
|
Option,
|
|
7
7
|
PColumn,
|
|
8
|
+
PColumnLazy,
|
|
8
9
|
PColumnSelector,
|
|
9
10
|
PColumnSpec,
|
|
10
11
|
PColumnValues,
|
|
@@ -79,8 +80,9 @@ export type UniversalColumnOption = { label: string; value: SUniversalPColumnId
|
|
|
79
80
|
* @param data Data from a PColumn to transform
|
|
80
81
|
* @returns Transformed data compatible with platform API
|
|
81
82
|
*/
|
|
82
|
-
function transformPColumnData(
|
|
83
|
-
PColumn<
|
|
83
|
+
function transformPColumnData(
|
|
84
|
+
data: PColumn<PColumnDataUniversal> | PColumnLazy<PColumnDataUniversal>,
|
|
85
|
+
): PColumn<PColumnValues | AccessorHandle | DataInfo<AccessorHandle>> {
|
|
84
86
|
return mapPObjectData(data, (d) => {
|
|
85
87
|
if (d instanceof TreeNodeAccessor) {
|
|
86
88
|
return d.handle;
|
|
@@ -591,7 +593,7 @@ export class RenderCtx<Args, UiState> {
|
|
|
591
593
|
return this.resultPool.findLabels(axis);
|
|
592
594
|
}
|
|
593
595
|
|
|
594
|
-
private verifyInlineAndExplicitColumnsSupport(columns: PColumn<PColumnDataUniversal>[]) {
|
|
596
|
+
private verifyInlineAndExplicitColumnsSupport(columns: (PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>)[]) {
|
|
595
597
|
const hasInlineColumns = columns.some((c) => !(c.data instanceof TreeNodeAccessor) || isDataInfo(c.data)); // Updated check for DataInfo
|
|
596
598
|
const inlineColumnsSupport = this.ctx.featureFlags?.inlineColumnsSupport === true;
|
|
597
599
|
if (hasInlineColumns && !inlineColumnsSupport) throw Error(`Inline or explicit columns not supported`); // Combined check
|
|
@@ -619,7 +621,7 @@ export class RenderCtx<Args, UiState> {
|
|
|
619
621
|
}
|
|
620
622
|
|
|
621
623
|
// TODO remove all non-PColumn fields
|
|
622
|
-
public createPFrame(def: PFrameDef<PColumn<PColumnDataUniversal>>): PFrameHandle | undefined {
|
|
624
|
+
public createPFrame(def: PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>>): PFrameHandle | undefined {
|
|
623
625
|
this.verifyInlineAndExplicitColumnsSupport(def);
|
|
624
626
|
if (!allPColumnsReady(def)) return undefined;
|
|
625
627
|
return this.ctx.createPFrame(
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
NativePObjectId,
|
|
8
8
|
PartitionedDataInfoEntries,
|
|
9
9
|
PColumn,
|
|
10
|
+
PColumnLazy,
|
|
10
11
|
PColumnSelector,
|
|
11
12
|
PColumnSpec,
|
|
12
13
|
PColumnValues,
|
|
@@ -64,15 +65,22 @@ class ArrayColumnProvider implements ColumnProvider {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
spec: PColumnSpec;
|
|
70
|
-
/** Lazy calculates the data, returns undefined if data is not ready. */
|
|
71
|
-
data(): PColumnDataUniversal | undefined;
|
|
68
|
+
/** Lazy calculates the data, returns undefined if data is not ready. */
|
|
69
|
+
export type PColumnLazyWithLabel<T> = PColumnLazy<T> & {
|
|
72
70
|
label: string;
|
|
73
71
|
};
|
|
74
72
|
|
|
75
73
|
/** Universal column is a column that uses a universal column id, and always have label. */
|
|
74
|
+
export type PColumnLazyUniversal<T> = PColumnLazyWithLabel<T> & {
|
|
75
|
+
id: SUniversalPColumnId;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/** @deprecated Use PColumnLazyWithLabel instead. */
|
|
79
|
+
export type PColumnEntryWithLabel = PColumnLazy<undefined | PColumnDataUniversal> & {
|
|
80
|
+
label: string;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/** @deprecated Use PColumnLazyUniversal instead. */
|
|
76
84
|
export type PColumnEntryUniversal = PColumnEntryWithLabel & {
|
|
77
85
|
id: SUniversalPColumnId;
|
|
78
86
|
};
|
|
@@ -2,6 +2,7 @@ import type {
|
|
|
2
2
|
DataInfo,
|
|
3
3
|
PartitionedDataInfoEntries,
|
|
4
4
|
PColumn,
|
|
5
|
+
PColumnLazy,
|
|
5
6
|
PColumnValues,
|
|
6
7
|
} from '@milaboratories/pl-model-common';
|
|
7
8
|
import {
|
|
@@ -501,8 +502,9 @@ export function parsePColumnData(
|
|
|
501
502
|
* @param acc - The input data, which can be TreeNodeAccessor, DataInfoEntries, DataInfo, or undefined.
|
|
502
503
|
* @returns The data in DataInfoEntries format, or undefined if the input was undefined or data is not ready.
|
|
503
504
|
*/
|
|
504
|
-
export function convertOrParsePColumnData(
|
|
505
|
-
DataInfoEntries<TreeNodeAccessor> | undefined
|
|
505
|
+
export function convertOrParsePColumnData(
|
|
506
|
+
acc: TreeNodeAccessor | DataInfoEntries<TreeNodeAccessor> | DataInfo<TreeNodeAccessor> | undefined,
|
|
507
|
+
): DataInfoEntries<TreeNodeAccessor> | undefined {
|
|
506
508
|
if (acc === undefined) return undefined;
|
|
507
509
|
|
|
508
510
|
if (isDataInfoEntries(acc)) return acc;
|
|
@@ -512,22 +514,25 @@ DataInfoEntries<TreeNodeAccessor> | undefined {
|
|
|
512
514
|
throw new Error(`Unexpected input type: ${typeof acc}`);
|
|
513
515
|
}
|
|
514
516
|
|
|
515
|
-
export function isPColumnReady(c: PColumn<PColumnDataUniversal>):
|
|
517
|
+
export function isPColumnReady(c: (PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>)): c is PColumn<PColumnDataUniversal> | PColumnLazy<PColumnDataUniversal> {
|
|
516
518
|
const isValues = (d: PColumnDataUniversal): d is PColumnValues => Array.isArray(d);
|
|
517
519
|
const isAccessor = (d: PColumnDataUniversal): d is TreeNodeAccessor => d instanceof TreeNodeAccessor;
|
|
518
520
|
|
|
519
521
|
let ready = true;
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
522
|
+
const data = typeof c.data === 'function' ? c.data() : c.data;
|
|
523
|
+
if (data == null) {
|
|
524
|
+
return false;
|
|
525
|
+
} else if (isAccessor(data)) {
|
|
526
|
+
ready &&= data.getIsReadyOrError();
|
|
527
|
+
} else if (isDataInfo(data)) {
|
|
528
|
+
visitDataInfo(data, (v) => ready &&= v.getIsReadyOrError());
|
|
529
|
+
} else if (!isValues(data)) {
|
|
525
530
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
526
|
-
throw Error(`unsupported column data type: ${
|
|
531
|
+
throw Error(`unsupported column data type: ${data satisfies never}`);
|
|
527
532
|
}
|
|
528
533
|
return ready;
|
|
529
534
|
}
|
|
530
535
|
|
|
531
|
-
export function allPColumnsReady(columns: PColumn<PColumnDataUniversal>[]):
|
|
536
|
+
export function allPColumnsReady(columns: (PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>)[]): columns is (PColumn<PColumnDataUniversal> | PColumnLazy<PColumnDataUniversal>)[] {
|
|
532
537
|
return columns.every(isPColumnReady);
|
|
533
538
|
}
|