@platforma-sdk/model 1.44.14 → 1.45.17
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 +29 -0
- package/dist/annotations/converter.cjs.map +1 -0
- package/dist/annotations/converter.d.ts +3 -0
- package/dist/annotations/converter.d.ts.map +1 -0
- package/dist/annotations/converter.js +27 -0
- package/dist/annotations/converter.js.map +1 -0
- package/dist/annotations/index.d.ts +3 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations/types.d.ts +22 -0
- package/dist/annotations/types.d.ts.map +1 -0
- package/dist/components/PFrameForGraphs.cjs +5 -22
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +0 -2
- package/dist/components/PFrameForGraphs.d.ts.map +1 -1
- package/dist/components/PFrameForGraphs.js +7 -22
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/components/PlAnnotations/filter.d.ts.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.cjs +1 -372
- package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts +11 -756
- package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.js +2 -370
- package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
- package/dist/components/PlAnnotations/index.d.ts.map +1 -1
- package/dist/components/PlAnnotations/types.d.ts.map +1 -1
- package/dist/components/PlDataTable.cjs +6 -38
- package/dist/components/PlDataTable.cjs.map +1 -1
- package/dist/components/PlDataTable.d.ts +1 -4
- package/dist/components/PlDataTable.d.ts.map +1 -1
- package/dist/components/PlDataTable.js +7 -38
- package/dist/components/PlDataTable.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/filters/converter.cjs +101 -0
- package/dist/filters/converter.cjs.map +1 -0
- package/dist/filters/converter.d.ts +5 -0
- package/dist/filters/converter.d.ts.map +1 -0
- package/dist/filters/converter.js +98 -0
- package/dist/filters/converter.js.map +1 -0
- package/dist/filters/index.d.ts +3 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/types.d.ts +102 -0
- package/dist/filters/types.d.ts.map +1 -0
- package/dist/index.cjs +12 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/package.json.cjs +1 -1
- package/dist/package.json.js +1 -1
- package/dist/render/api.cjs +7 -1
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +3 -3
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/api.js +7 -1
- package/dist/render/api.js.map +1 -1
- package/dist/render/util/column_collection.cjs +2 -2
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +2 -2
- package/dist/render/util/column_collection.d.ts.map +1 -1
- package/dist/render/util/column_collection.js +2 -2
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/pcolumn_data.cjs +21 -0
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +4 -1
- package/dist/render/util/pcolumn_data.d.ts.map +1 -1
- package/dist/render/util/pcolumn_data.js +21 -2
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/package.json +7 -6
- package/src/annotations/converter.test.ts +74 -0
- package/src/annotations/converter.ts +28 -0
- package/src/annotations/index.ts +2 -0
- package/src/annotations/types.ts +23 -0
- package/src/components/PFrameForGraphs.ts +5 -23
- package/src/components/PlAnnotations/filter.ts +1 -0
- package/src/components/PlAnnotations/filters_ui.test.ts +1 -0
- package/src/components/PlAnnotations/filters_ui.ts +56 -439
- package/src/components/PlAnnotations/index.ts +1 -0
- package/src/components/PlAnnotations/types.ts +1 -0
- package/src/components/PlDataTable.ts +5 -40
- package/src/components/index.ts +1 -1
- package/src/filters/converter.test.ts +336 -0
- package/src/filters/converter.ts +119 -0
- package/src/filters/index.ts +2 -0
- package/src/filters/types.ts +47 -0
- package/src/index.ts +2 -0
- package/src/render/api.ts +9 -5
- package/src/render/util/column_collection.ts +19 -19
- package/src/render/util/pcolumn_data.ts +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.cjs","sources":["../../src/filters/converter.ts"],"sourcesContent":["import { assertNever } from '@milaboratories/pl-model-common';\nimport { and, col, lit, or, rank, type Expression, type ExpressionImpl } from '@milaboratories/ptabler-expression-js';\nimport type { FilterSpec } from '../filters';\n\nexport function convertFilterUiToExpressionImpl(value: FilterSpec): ExpressionImpl {\n if (value.type === 'or') {\n const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);\n if (expressions.length === 0) {\n throw new Error('OR filter requires at least one operand');\n }\n return or(...expressions);\n }\n\n if (value.type === 'and') {\n const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);\n if (expressions.length === 0) {\n throw new Error('AND filter requires at least one operand');\n }\n return and(...expressions);\n }\n\n if (value.type === 'not') {\n return convertFilterUiToExpressionImpl(value.filter).not();\n }\n\n if (value.type === 'isNA') {\n return col(value.column).isNull();\n }\n\n if (value.type === 'isNotNA') {\n return col(value.column).isNotNull();\n }\n\n if (value.type === 'patternEquals') {\n return col(value.column).eq(lit(value.value));\n }\n\n if (value.type === 'patternNotEquals') {\n return col(value.column).neq(lit(value.value));\n }\n\n if (value.type === 'patternContainSubsequence') {\n return col(value.column).strContains(value.value, false, true);\n }\n\n if (value.type === 'patternNotContainSubsequence') {\n return col(value.column).strContains(value.value, false, true).not();\n }\n\n if (value.type === 'equal') {\n return col(value.column).eq(lit(value.x));\n }\n\n if (value.type === 'lessThan') {\n return col(value.column).lt(lit(value.x));\n }\n\n if (value.type === 'greaterThan') {\n return col(value.column).gt(lit(value.x));\n }\n\n if (value.type === 'lessThanOrEqual') {\n return col(value.column).le(lit(value.x));\n }\n\n if (value.type === 'greaterThanOrEqual') {\n return col(value.column).ge(lit(value.x));\n }\n\n if (value.type === 'equalToColumn') {\n return col(value.column).eq(col(value.rhs));\n }\n\n if (value.type === 'greaterThanColumn') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).gt(col(value.rhs));\n }\n return col(value.column).gt(col(value.rhs));\n }\n\n if (value.type === 'lessThanColumn') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).lt(col(value.rhs));\n }\n return col(value.column).lt(col(value.rhs));\n }\n\n if (value.type === 'greaterThanColumnOrEqual') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).ge(col(value.rhs));\n }\n return col(value.column).ge(col(value.rhs));\n }\n\n if (value.type === 'lessThanColumnOrEqual') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).le(col(value.rhs));\n }\n return col(value.column).le(col(value.rhs));\n }\n\n if (value.type === 'topN') {\n return rank(col(value.column), true).over([]).le(lit(value.n));\n }\n\n if (value.type === 'bottomN') {\n return rank(col(value.column), false).over([]).le(lit(value.n));\n }\n\n if (value.type === undefined) {\n throw new Error('Filter type is undefined, this should not happen');\n }\n\n assertNever(value);\n}\n\nexport function convertFilterUiToExpressions(value: FilterSpec): Expression {\n return convertFilterUiToExpressionImpl(value).toJSON();\n}\n"],"names":["or","and","col","lit","rank","assertNever"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Expression, type ExpressionImpl } from '@milaboratories/ptabler-expression-js';
|
|
2
|
+
import type { FilterSpec } from '../filters';
|
|
3
|
+
export declare function convertFilterUiToExpressionImpl(value: FilterSpec): ExpressionImpl;
|
|
4
|
+
export declare function convertFilterUiToExpressions(value: FilterSpec): Expression;
|
|
5
|
+
//# sourceMappingURL=converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/filters/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CA8GjF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE1E"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { assertNever } from '@milaboratories/pl-model-common';
|
|
2
|
+
import { or, and, col, lit, rank } from '@milaboratories/ptabler-expression-js';
|
|
3
|
+
|
|
4
|
+
function convertFilterUiToExpressionImpl(value) {
|
|
5
|
+
if (value.type === 'or') {
|
|
6
|
+
const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);
|
|
7
|
+
if (expressions.length === 0) {
|
|
8
|
+
throw new Error('OR filter requires at least one operand');
|
|
9
|
+
}
|
|
10
|
+
return or(...expressions);
|
|
11
|
+
}
|
|
12
|
+
if (value.type === 'and') {
|
|
13
|
+
const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);
|
|
14
|
+
if (expressions.length === 0) {
|
|
15
|
+
throw new Error('AND filter requires at least one operand');
|
|
16
|
+
}
|
|
17
|
+
return and(...expressions);
|
|
18
|
+
}
|
|
19
|
+
if (value.type === 'not') {
|
|
20
|
+
return convertFilterUiToExpressionImpl(value.filter).not();
|
|
21
|
+
}
|
|
22
|
+
if (value.type === 'isNA') {
|
|
23
|
+
return col(value.column).isNull();
|
|
24
|
+
}
|
|
25
|
+
if (value.type === 'isNotNA') {
|
|
26
|
+
return col(value.column).isNotNull();
|
|
27
|
+
}
|
|
28
|
+
if (value.type === 'patternEquals') {
|
|
29
|
+
return col(value.column).eq(lit(value.value));
|
|
30
|
+
}
|
|
31
|
+
if (value.type === 'patternNotEquals') {
|
|
32
|
+
return col(value.column).neq(lit(value.value));
|
|
33
|
+
}
|
|
34
|
+
if (value.type === 'patternContainSubsequence') {
|
|
35
|
+
return col(value.column).strContains(value.value, false, true);
|
|
36
|
+
}
|
|
37
|
+
if (value.type === 'patternNotContainSubsequence') {
|
|
38
|
+
return col(value.column).strContains(value.value, false, true).not();
|
|
39
|
+
}
|
|
40
|
+
if (value.type === 'equal') {
|
|
41
|
+
return col(value.column).eq(lit(value.x));
|
|
42
|
+
}
|
|
43
|
+
if (value.type === 'lessThan') {
|
|
44
|
+
return col(value.column).lt(lit(value.x));
|
|
45
|
+
}
|
|
46
|
+
if (value.type === 'greaterThan') {
|
|
47
|
+
return col(value.column).gt(lit(value.x));
|
|
48
|
+
}
|
|
49
|
+
if (value.type === 'lessThanOrEqual') {
|
|
50
|
+
return col(value.column).le(lit(value.x));
|
|
51
|
+
}
|
|
52
|
+
if (value.type === 'greaterThanOrEqual') {
|
|
53
|
+
return col(value.column).ge(lit(value.x));
|
|
54
|
+
}
|
|
55
|
+
if (value.type === 'equalToColumn') {
|
|
56
|
+
return col(value.column).eq(col(value.rhs));
|
|
57
|
+
}
|
|
58
|
+
if (value.type === 'greaterThanColumn') {
|
|
59
|
+
if (value.minDiff !== undefined && value.minDiff !== 0) {
|
|
60
|
+
return col(value.column).plus(lit(value.minDiff)).gt(col(value.rhs));
|
|
61
|
+
}
|
|
62
|
+
return col(value.column).gt(col(value.rhs));
|
|
63
|
+
}
|
|
64
|
+
if (value.type === 'lessThanColumn') {
|
|
65
|
+
if (value.minDiff !== undefined && value.minDiff !== 0) {
|
|
66
|
+
return col(value.column).plus(lit(value.minDiff)).lt(col(value.rhs));
|
|
67
|
+
}
|
|
68
|
+
return col(value.column).lt(col(value.rhs));
|
|
69
|
+
}
|
|
70
|
+
if (value.type === 'greaterThanColumnOrEqual') {
|
|
71
|
+
if (value.minDiff !== undefined && value.minDiff !== 0) {
|
|
72
|
+
return col(value.column).plus(lit(value.minDiff)).ge(col(value.rhs));
|
|
73
|
+
}
|
|
74
|
+
return col(value.column).ge(col(value.rhs));
|
|
75
|
+
}
|
|
76
|
+
if (value.type === 'lessThanColumnOrEqual') {
|
|
77
|
+
if (value.minDiff !== undefined && value.minDiff !== 0) {
|
|
78
|
+
return col(value.column).plus(lit(value.minDiff)).le(col(value.rhs));
|
|
79
|
+
}
|
|
80
|
+
return col(value.column).le(col(value.rhs));
|
|
81
|
+
}
|
|
82
|
+
if (value.type === 'topN') {
|
|
83
|
+
return rank(col(value.column), true).over([]).le(lit(value.n));
|
|
84
|
+
}
|
|
85
|
+
if (value.type === 'bottomN') {
|
|
86
|
+
return rank(col(value.column), false).over([]).le(lit(value.n));
|
|
87
|
+
}
|
|
88
|
+
if (value.type === undefined) {
|
|
89
|
+
throw new Error('Filter type is undefined, this should not happen');
|
|
90
|
+
}
|
|
91
|
+
assertNever(value);
|
|
92
|
+
}
|
|
93
|
+
function convertFilterUiToExpressions(value) {
|
|
94
|
+
return convertFilterUiToExpressionImpl(value).toJSON();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { convertFilterUiToExpressionImpl, convertFilterUiToExpressions };
|
|
98
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sources":["../../src/filters/converter.ts"],"sourcesContent":["import { assertNever } from '@milaboratories/pl-model-common';\nimport { and, col, lit, or, rank, type Expression, type ExpressionImpl } from '@milaboratories/ptabler-expression-js';\nimport type { FilterSpec } from '../filters';\n\nexport function convertFilterUiToExpressionImpl(value: FilterSpec): ExpressionImpl {\n if (value.type === 'or') {\n const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);\n if (expressions.length === 0) {\n throw new Error('OR filter requires at least one operand');\n }\n return or(...expressions);\n }\n\n if (value.type === 'and') {\n const expressions = value.filters.filter((f) => f.type !== undefined).map(convertFilterUiToExpressionImpl);\n if (expressions.length === 0) {\n throw new Error('AND filter requires at least one operand');\n }\n return and(...expressions);\n }\n\n if (value.type === 'not') {\n return convertFilterUiToExpressionImpl(value.filter).not();\n }\n\n if (value.type === 'isNA') {\n return col(value.column).isNull();\n }\n\n if (value.type === 'isNotNA') {\n return col(value.column).isNotNull();\n }\n\n if (value.type === 'patternEquals') {\n return col(value.column).eq(lit(value.value));\n }\n\n if (value.type === 'patternNotEquals') {\n return col(value.column).neq(lit(value.value));\n }\n\n if (value.type === 'patternContainSubsequence') {\n return col(value.column).strContains(value.value, false, true);\n }\n\n if (value.type === 'patternNotContainSubsequence') {\n return col(value.column).strContains(value.value, false, true).not();\n }\n\n if (value.type === 'equal') {\n return col(value.column).eq(lit(value.x));\n }\n\n if (value.type === 'lessThan') {\n return col(value.column).lt(lit(value.x));\n }\n\n if (value.type === 'greaterThan') {\n return col(value.column).gt(lit(value.x));\n }\n\n if (value.type === 'lessThanOrEqual') {\n return col(value.column).le(lit(value.x));\n }\n\n if (value.type === 'greaterThanOrEqual') {\n return col(value.column).ge(lit(value.x));\n }\n\n if (value.type === 'equalToColumn') {\n return col(value.column).eq(col(value.rhs));\n }\n\n if (value.type === 'greaterThanColumn') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).gt(col(value.rhs));\n }\n return col(value.column).gt(col(value.rhs));\n }\n\n if (value.type === 'lessThanColumn') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).lt(col(value.rhs));\n }\n return col(value.column).lt(col(value.rhs));\n }\n\n if (value.type === 'greaterThanColumnOrEqual') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).ge(col(value.rhs));\n }\n return col(value.column).ge(col(value.rhs));\n }\n\n if (value.type === 'lessThanColumnOrEqual') {\n if (value.minDiff !== undefined && value.minDiff !== 0) {\n return col(value.column).plus(lit(value.minDiff)).le(col(value.rhs));\n }\n return col(value.column).le(col(value.rhs));\n }\n\n if (value.type === 'topN') {\n return rank(col(value.column), true).over([]).le(lit(value.n));\n }\n\n if (value.type === 'bottomN') {\n return rank(col(value.column), false).over([]).le(lit(value.n));\n }\n\n if (value.type === undefined) {\n throw new Error('Filter type is undefined, this should not happen');\n }\n\n assertNever(value);\n}\n\nexport function convertFilterUiToExpressions(value: FilterSpec): Expression {\n return convertFilterUiToExpressionImpl(value).toJSON();\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { PColumnSpec, SUniversalPColumnId } from '@milaboratories/pl-model-common';
|
|
2
|
+
export type SimplifiedPColumnSpec = Pick<PColumnSpec, 'valueType' | 'annotations'>;
|
|
3
|
+
export type SimplifiedUniversalPColumnEntry = {
|
|
4
|
+
id: SUniversalPColumnId;
|
|
5
|
+
label: string;
|
|
6
|
+
obj: SimplifiedPColumnSpec;
|
|
7
|
+
};
|
|
8
|
+
export type FilterSpecNode<Leaf, Common = {}> = Common & Leaf | Common & {
|
|
9
|
+
type: 'not';
|
|
10
|
+
filter: Common & Leaf;
|
|
11
|
+
} | Common & {
|
|
12
|
+
type: 'or';
|
|
13
|
+
filters: FilterSpecNode<Leaf, Common>[];
|
|
14
|
+
} | Common & {
|
|
15
|
+
type: 'and';
|
|
16
|
+
filters: FilterSpecNode<Leaf, Common>[];
|
|
17
|
+
};
|
|
18
|
+
export type FilterSpecLeaf = {
|
|
19
|
+
type: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
type: 'isNA';
|
|
22
|
+
column: SUniversalPColumnId;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'isNotNA';
|
|
25
|
+
column: SUniversalPColumnId;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'patternEquals';
|
|
28
|
+
column: SUniversalPColumnId;
|
|
29
|
+
value: string;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'patternNotEquals';
|
|
32
|
+
column: SUniversalPColumnId;
|
|
33
|
+
value: string;
|
|
34
|
+
} | {
|
|
35
|
+
type: 'patternContainSubsequence';
|
|
36
|
+
column: SUniversalPColumnId;
|
|
37
|
+
value: string;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'patternNotContainSubsequence';
|
|
40
|
+
column: SUniversalPColumnId;
|
|
41
|
+
value: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'topN';
|
|
44
|
+
column: SUniversalPColumnId;
|
|
45
|
+
n: number;
|
|
46
|
+
} | {
|
|
47
|
+
type: 'bottomN';
|
|
48
|
+
column: SUniversalPColumnId;
|
|
49
|
+
n: number;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'equal';
|
|
52
|
+
column: SUniversalPColumnId;
|
|
53
|
+
x: number;
|
|
54
|
+
} | {
|
|
55
|
+
type: 'lessThan';
|
|
56
|
+
column: SUniversalPColumnId;
|
|
57
|
+
x: number;
|
|
58
|
+
} | {
|
|
59
|
+
type: 'greaterThan';
|
|
60
|
+
column: SUniversalPColumnId;
|
|
61
|
+
x: number;
|
|
62
|
+
} | {
|
|
63
|
+
type: 'lessThanOrEqual';
|
|
64
|
+
column: SUniversalPColumnId;
|
|
65
|
+
x: number;
|
|
66
|
+
} | {
|
|
67
|
+
type: 'greaterThanOrEqual';
|
|
68
|
+
column: SUniversalPColumnId;
|
|
69
|
+
x: number;
|
|
70
|
+
} | {
|
|
71
|
+
type: 'equalToColumn';
|
|
72
|
+
column: SUniversalPColumnId;
|
|
73
|
+
rhs: SUniversalPColumnId;
|
|
74
|
+
} | {
|
|
75
|
+
type: 'lessThanColumn';
|
|
76
|
+
column: SUniversalPColumnId;
|
|
77
|
+
rhs: SUniversalPColumnId;
|
|
78
|
+
minDiff?: number;
|
|
79
|
+
} | {
|
|
80
|
+
type: 'greaterThanColumn';
|
|
81
|
+
column: SUniversalPColumnId;
|
|
82
|
+
rhs: SUniversalPColumnId;
|
|
83
|
+
minDiff?: number;
|
|
84
|
+
} | {
|
|
85
|
+
type: 'lessThanColumnOrEqual';
|
|
86
|
+
column: SUniversalPColumnId;
|
|
87
|
+
rhs: SUniversalPColumnId;
|
|
88
|
+
minDiff?: number;
|
|
89
|
+
} | {
|
|
90
|
+
type: 'greaterThanColumnOrEqual';
|
|
91
|
+
column: SUniversalPColumnId;
|
|
92
|
+
rhs: SUniversalPColumnId;
|
|
93
|
+
minDiff?: number;
|
|
94
|
+
};
|
|
95
|
+
export type FilterSpec<Leaf extends FilterSpecLeaf = FilterSpecLeaf, Common = {}> = FilterSpecNode<Leaf, Common>;
|
|
96
|
+
export type FilterSpecType = Exclude<FilterSpec, {
|
|
97
|
+
type: undefined;
|
|
98
|
+
}>['type'];
|
|
99
|
+
export type FilterSpecOfType<T extends FilterSpecType> = Extract<FilterSpec, {
|
|
100
|
+
type: T;
|
|
101
|
+
}>;
|
|
102
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/filters/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -5,10 +5,10 @@ var builder = require('./builder.cjs');
|
|
|
5
5
|
var normalization = require('./bconfig/normalization.cjs');
|
|
6
6
|
var types = require('./bconfig/types.cjs');
|
|
7
7
|
var PFrameForGraphs = require('./components/PFrameForGraphs.cjs');
|
|
8
|
+
var filters_ui = require('./components/PlAnnotations/filters_ui.cjs');
|
|
8
9
|
var PlDataTable = require('./components/PlDataTable.cjs');
|
|
9
10
|
var PlMultiSequenceAlignment = require('./components/PlMultiSequenceAlignment.cjs');
|
|
10
11
|
var PlSelectionModel = require('./components/PlSelectionModel.cjs');
|
|
11
|
-
var filters_ui = require('./components/PlAnnotations/filters_ui.cjs');
|
|
12
12
|
var actions = require('./config/actions.cjs');
|
|
13
13
|
var pframe = require('./pframe.cjs');
|
|
14
14
|
var ref_util = require('./ref_util.cjs');
|
|
@@ -21,6 +21,8 @@ var column_collection = require('./render/util/column_collection.cjs');
|
|
|
21
21
|
var future = require('./render/future.cjs');
|
|
22
22
|
var sdk_info = require('./sdk_info.cjs');
|
|
23
23
|
var raw_globals = require('./raw_globals.cjs');
|
|
24
|
+
var converter = require('./filters/converter.cjs');
|
|
25
|
+
var converter$1 = require('./annotations/converter.cjs');
|
|
24
26
|
var plModelCommon = require('@milaboratories/pl-model-common');
|
|
25
27
|
var plErrorLike = require('@milaboratories/pl-error-like');
|
|
26
28
|
var internal = require('./render/internal.cjs');
|
|
@@ -35,13 +37,14 @@ exports.BlockModel = builder.BlockModel;
|
|
|
35
37
|
exports.downgradeCfgOrLambda = normalization.downgradeCfgOrLambda;
|
|
36
38
|
exports.extractConfig = normalization.extractConfig;
|
|
37
39
|
exports.isConfigLambda = types.isConfigLambda;
|
|
38
|
-
exports.allColumnsReady = PFrameForGraphs.allColumnsReady;
|
|
39
40
|
exports.createPFrameForGraphs = PFrameForGraphs.createPFrameForGraphs;
|
|
40
41
|
exports.enrichCompatible = PFrameForGraphs.enrichCompatible;
|
|
41
42
|
exports.getAvailableWithLinkersAxes = PFrameForGraphs.getAvailableWithLinkersAxes;
|
|
42
|
-
exports.isColumnReady = PFrameForGraphs.isColumnReady;
|
|
43
43
|
exports.isLinkerColumn = PFrameForGraphs.isLinkerColumn;
|
|
44
|
-
exports.
|
|
44
|
+
exports.compileAnnotationScript = filters_ui.compileAnnotationScript;
|
|
45
|
+
exports.compileFilter = filters_ui.compileFilter;
|
|
46
|
+
exports.compileFilters = filters_ui.compileFilters;
|
|
47
|
+
exports.unreachable = filters_ui.unreachable;
|
|
45
48
|
exports.createPlDataTableSheet = PlDataTable.createPlDataTableSheet;
|
|
46
49
|
exports.createPlDataTableStateV2 = PlDataTable.createPlDataTableStateV2;
|
|
47
50
|
exports.createPlDataTableV2 = PlDataTable.createPlDataTableV2;
|
|
@@ -54,13 +57,6 @@ exports.makeDefaultPTableParams = PlDataTable.makeDefaultPTableParams;
|
|
|
54
57
|
exports.upgradePlDataTableStateV2 = PlDataTable.upgradePlDataTableStateV2;
|
|
55
58
|
exports.createRowSelectionColumn = PlMultiSequenceAlignment.createRowSelectionColumn;
|
|
56
59
|
exports.createPlSelectionModel = PlSelectionModel.createPlSelectionModel;
|
|
57
|
-
exports.compileAnnotationScript = filters_ui.compileAnnotationScript;
|
|
58
|
-
exports.compileFilter = filters_ui.compileFilter;
|
|
59
|
-
exports.compileFilters = filters_ui.compileFilters;
|
|
60
|
-
exports.filterUiMetadata = filters_ui.filterUiMetadata;
|
|
61
|
-
exports.getFilterUiMetadata = filters_ui.getFilterUiMetadata;
|
|
62
|
-
exports.getFilterUiTypeOptions = filters_ui.getFilterUiTypeOptions;
|
|
63
|
-
exports.unreachable = filters_ui.unreachable;
|
|
64
60
|
exports.Args = actions.Args;
|
|
65
61
|
exports.It = actions.It;
|
|
66
62
|
exports.MainOutputs = actions.MainOutputs;
|
|
@@ -108,9 +104,11 @@ exports.RT_PARQUET_PARTITIONED = pcolumn_data.RT_PARQUET_PARTITIONED;
|
|
|
108
104
|
exports.RT_PARQUET_SUPER_PARTITIONED = pcolumn_data.RT_PARQUET_SUPER_PARTITIONED;
|
|
109
105
|
exports.RT_RESOURCE_MAP = pcolumn_data.RT_RESOURCE_MAP;
|
|
110
106
|
exports.RT_RESOURCE_MAP_PARTITIONED = pcolumn_data.RT_RESOURCE_MAP_PARTITIONED;
|
|
107
|
+
exports.allPColumnsReady = pcolumn_data.allPColumnsReady;
|
|
111
108
|
exports.convertOrParsePColumnData = pcolumn_data.convertOrParsePColumnData;
|
|
112
109
|
exports.getPartitionKeysList = pcolumn_data.getPartitionKeysList;
|
|
113
110
|
exports.getUniquePartitionKeys = pcolumn_data.getUniquePartitionKeys;
|
|
111
|
+
exports.isPColumnReady = pcolumn_data.isPColumnReady;
|
|
114
112
|
exports.parsePColumnData = pcolumn_data.parsePColumnData;
|
|
115
113
|
exports.parseResourceMap = pcolumn_data.parseResourceMap;
|
|
116
114
|
exports.Trace = label.Trace;
|
|
@@ -122,6 +120,9 @@ exports.FutureRef = future.FutureRef;
|
|
|
122
120
|
exports.CurrentSdkInfo = sdk_info.CurrentSdkInfo;
|
|
123
121
|
exports.getPlatformaApiVersion = raw_globals.getPlatformaApiVersion;
|
|
124
122
|
exports.getRawPlatformaInstance = raw_globals.getRawPlatformaInstance;
|
|
123
|
+
exports.convertFilterUiToExpressionImpl = converter.convertFilterUiToExpressionImpl;
|
|
124
|
+
exports.convertFilterUiToExpressions = converter.convertFilterUiToExpressions;
|
|
125
|
+
exports.convertFilterSpecsToExpressionSpecs = converter$1.convertFilterSpecsToExpressionSpecs;
|
|
125
126
|
exports.JsRenderInternal = internal;
|
|
126
127
|
exports.getEnvironmentValue = env_value.getEnvironmentValue;
|
|
127
128
|
Object.keys(plModelCommon).forEach(function (k) {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export * from './sdk_info';
|
|
|
12
12
|
export * from './raw_globals';
|
|
13
13
|
export * from './block_api_v1';
|
|
14
14
|
export * from './block_api_v2';
|
|
15
|
+
export * from './filters';
|
|
16
|
+
export * from './annotations';
|
|
15
17
|
export * from '@milaboratories/pl-model-common';
|
|
16
18
|
export * from '@milaboratories/pl-error-like';
|
|
17
19
|
export * as JsRenderInternal from './render/internal';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAG9B,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAE9C,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,23 +2,25 @@ export { OutputError, readOutput, wrapOutputs } from './block_state_util.js';
|
|
|
2
2
|
export { BlockModel } from './builder.js';
|
|
3
3
|
export { downgradeCfgOrLambda, extractConfig } from './bconfig/normalization.js';
|
|
4
4
|
export { isConfigLambda } from './bconfig/types.js';
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
5
|
+
export { createPFrameForGraphs, enrichCompatible, getAvailableWithLinkersAxes, isLinkerColumn } from './components/PFrameForGraphs.js';
|
|
6
|
+
export { compileAnnotationScript, compileFilter, compileFilters, unreachable } from './components/PlAnnotations/filters_ui.js';
|
|
7
|
+
export { createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, getAllLabelColumns, getMatchingLabelColumns, isColumnHidden, isColumnOptional, isLabelColumn, makeDefaultPTableParams, upgradePlDataTableStateV2 } from './components/PlDataTable.js';
|
|
7
8
|
export { createRowSelectionColumn } from './components/PlMultiSequenceAlignment.js';
|
|
8
9
|
export { createPlSelectionModel } from './components/PlSelectionModel.js';
|
|
9
|
-
export { compileAnnotationScript, compileFilter, compileFilters, filterUiMetadata, getFilterUiMetadata, getFilterUiTypeOptions, unreachable } from './components/PlAnnotations/filters_ui.js';
|
|
10
10
|
export { Args, It, MainOutputs, StagingOutputs, UiState, and, extractArchiveAndGetURL, flatten, getBlobContent, getBlobContentAsJson, getBlobContentAsString, getDownloadedBlobContent, getFromCfg, getImmediate, getImportProgress, getJsonField, getLastLogs, getLogHandle, getOnDemandBlobContent, getProgressLog, getProgressLogWithInfo, getResourceField, getResourceValueAsJson, isEmpty, isolate, makeArray, makeObject, mapArrayValues, mapRecordValues, mapResourceFields, not, or } from './config/actions.js';
|
|
11
11
|
export { PFrameImpl } from './pframe.js';
|
|
12
12
|
export { fromPlOption, fromPlRef } from './ref_util.js';
|
|
13
13
|
export { RenderCtx, ResultPool } from './render/api.js';
|
|
14
14
|
export { TreeNodeAccessor, ifDef } from './render/accessor.js';
|
|
15
|
-
export { RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, convertOrParsePColumnData, getPartitionKeysList, getUniquePartitionKeys, parsePColumnData, parseResourceMap } from './render/util/pcolumn_data.js';
|
|
15
|
+
export { RT_BINARY_PARTITIONED, RT_BINARY_SUPER_PARTITIONED, RT_JSON_PARTITIONED, RT_JSON_SUPER_PARTITIONED, RT_PARQUET_PARTITIONED, RT_PARQUET_SUPER_PARTITIONED, RT_RESOURCE_MAP, RT_RESOURCE_MAP_PARTITIONED, allPColumnsReady, convertOrParsePColumnData, getPartitionKeysList, getUniquePartitionKeys, isPColumnReady, parsePColumnData, parseResourceMap } from './render/util/pcolumn_data.js';
|
|
16
16
|
export { Trace, TraceEntry, deriveLabels } from './render/util/label.js';
|
|
17
17
|
export { filterDataInfoEntries } from './render/util/axis_filtering.js';
|
|
18
18
|
export { PColumnCollection } from './render/util/column_collection.js';
|
|
19
19
|
export { FutureRef } from './render/future.js';
|
|
20
20
|
export { CurrentSdkInfo } from './sdk_info.js';
|
|
21
21
|
export { getPlatformaApiVersion, getRawPlatformaInstance } from './raw_globals.js';
|
|
22
|
+
export { convertFilterUiToExpressionImpl, convertFilterUiToExpressions } from './filters/converter.js';
|
|
23
|
+
export { convertFilterSpecsToExpressionSpecs } from './annotations/converter.js';
|
|
22
24
|
export * from '@milaboratories/pl-model-common';
|
|
23
25
|
export * from '@milaboratories/pl-error-like';
|
|
24
26
|
import * as internal from './render/internal.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/package.json.cjs
CHANGED
package/dist/package.json.js
CHANGED
package/dist/render/api.cjs
CHANGED
|
@@ -8,6 +8,7 @@ var internal$1 = require('./internal.cjs');
|
|
|
8
8
|
var column_collection = require('./util/column_collection.cjs');
|
|
9
9
|
var label = require('./util/label.cjs');
|
|
10
10
|
var pframe_upgraders = require('./util/pframe_upgraders.cjs');
|
|
11
|
+
var pcolumn_data = require('./util/pcolumn_data.cjs');
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Helper function to match domain objects
|
|
@@ -470,6 +471,8 @@ class RenderCtx {
|
|
|
470
471
|
// TODO remove all non-PColumn fields
|
|
471
472
|
createPFrame(def) {
|
|
472
473
|
this.verifyInlineAndExplicitColumnsSupport(def);
|
|
474
|
+
if (!pcolumn_data.allPColumnsReady(def))
|
|
475
|
+
return undefined;
|
|
473
476
|
return this.ctx.createPFrame(def.map((c) => transformPColumnData(c)));
|
|
474
477
|
}
|
|
475
478
|
createPTable(def) {
|
|
@@ -488,7 +491,10 @@ class RenderCtx {
|
|
|
488
491
|
else {
|
|
489
492
|
rawDef = this.patchPTableDef(def);
|
|
490
493
|
}
|
|
491
|
-
|
|
494
|
+
const columns = plModelCommon.extractAllColumns(rawDef.src);
|
|
495
|
+
this.verifyInlineAndExplicitColumnsSupport(columns);
|
|
496
|
+
if (!pcolumn_data.allPColumnsReady(columns))
|
|
497
|
+
return undefined;
|
|
492
498
|
return this.ctx.createPTable(plModelCommon.mapPTableDef(rawDef, (po) => transformPColumnData(po)));
|
|
493
499
|
}
|
|
494
500
|
/** @deprecated scheduled for removal from SDK */
|