@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.
Files changed (90) hide show
  1. package/dist/annotations/converter.cjs +29 -0
  2. package/dist/annotations/converter.cjs.map +1 -0
  3. package/dist/annotations/converter.d.ts +3 -0
  4. package/dist/annotations/converter.d.ts.map +1 -0
  5. package/dist/annotations/converter.js +27 -0
  6. package/dist/annotations/converter.js.map +1 -0
  7. package/dist/annotations/index.d.ts +3 -0
  8. package/dist/annotations/index.d.ts.map +1 -0
  9. package/dist/annotations/types.d.ts +22 -0
  10. package/dist/annotations/types.d.ts.map +1 -0
  11. package/dist/components/PFrameForGraphs.cjs +5 -22
  12. package/dist/components/PFrameForGraphs.cjs.map +1 -1
  13. package/dist/components/PFrameForGraphs.d.ts +0 -2
  14. package/dist/components/PFrameForGraphs.d.ts.map +1 -1
  15. package/dist/components/PFrameForGraphs.js +7 -22
  16. package/dist/components/PFrameForGraphs.js.map +1 -1
  17. package/dist/components/PlAnnotations/filter.d.ts.map +1 -1
  18. package/dist/components/PlAnnotations/filters_ui.cjs +1 -372
  19. package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
  20. package/dist/components/PlAnnotations/filters_ui.d.ts +11 -756
  21. package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -1
  22. package/dist/components/PlAnnotations/filters_ui.js +2 -370
  23. package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
  24. package/dist/components/PlAnnotations/index.d.ts.map +1 -1
  25. package/dist/components/PlAnnotations/types.d.ts.map +1 -1
  26. package/dist/components/PlDataTable.cjs +6 -38
  27. package/dist/components/PlDataTable.cjs.map +1 -1
  28. package/dist/components/PlDataTable.d.ts +1 -4
  29. package/dist/components/PlDataTable.d.ts.map +1 -1
  30. package/dist/components/PlDataTable.js +7 -38
  31. package/dist/components/PlDataTable.js.map +1 -1
  32. package/dist/components/index.d.ts +1 -1
  33. package/dist/components/index.d.ts.map +1 -1
  34. package/dist/filters/converter.cjs +101 -0
  35. package/dist/filters/converter.cjs.map +1 -0
  36. package/dist/filters/converter.d.ts +5 -0
  37. package/dist/filters/converter.d.ts.map +1 -0
  38. package/dist/filters/converter.js +98 -0
  39. package/dist/filters/converter.js.map +1 -0
  40. package/dist/filters/index.d.ts +3 -0
  41. package/dist/filters/index.d.ts.map +1 -0
  42. package/dist/filters/types.d.ts +102 -0
  43. package/dist/filters/types.d.ts.map +1 -0
  44. package/dist/index.cjs +12 -11
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.ts +2 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +6 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/package.json.cjs +1 -1
  51. package/dist/package.json.js +1 -1
  52. package/dist/render/api.cjs +7 -1
  53. package/dist/render/api.cjs.map +1 -1
  54. package/dist/render/api.d.ts +3 -3
  55. package/dist/render/api.d.ts.map +1 -1
  56. package/dist/render/api.js +7 -1
  57. package/dist/render/api.js.map +1 -1
  58. package/dist/render/util/column_collection.cjs +2 -2
  59. package/dist/render/util/column_collection.cjs.map +1 -1
  60. package/dist/render/util/column_collection.d.ts +2 -2
  61. package/dist/render/util/column_collection.d.ts.map +1 -1
  62. package/dist/render/util/column_collection.js +2 -2
  63. package/dist/render/util/column_collection.js.map +1 -1
  64. package/dist/render/util/pcolumn_data.cjs +21 -0
  65. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  66. package/dist/render/util/pcolumn_data.d.ts +4 -1
  67. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  68. package/dist/render/util/pcolumn_data.js +21 -2
  69. package/dist/render/util/pcolumn_data.js.map +1 -1
  70. package/package.json +7 -6
  71. package/src/annotations/converter.test.ts +74 -0
  72. package/src/annotations/converter.ts +28 -0
  73. package/src/annotations/index.ts +2 -0
  74. package/src/annotations/types.ts +23 -0
  75. package/src/components/PFrameForGraphs.ts +5 -23
  76. package/src/components/PlAnnotations/filter.ts +1 -0
  77. package/src/components/PlAnnotations/filters_ui.test.ts +1 -0
  78. package/src/components/PlAnnotations/filters_ui.ts +56 -439
  79. package/src/components/PlAnnotations/index.ts +1 -0
  80. package/src/components/PlAnnotations/types.ts +1 -0
  81. package/src/components/PlDataTable.ts +5 -40
  82. package/src/components/index.ts +1 -1
  83. package/src/filters/converter.test.ts +336 -0
  84. package/src/filters/converter.ts +119 -0
  85. package/src/filters/index.ts +2 -0
  86. package/src/filters/types.ts +47 -0
  87. package/src/index.ts +2 -0
  88. package/src/render/api.ts +9 -5
  89. package/src/render/util/column_collection.ts +19 -19
  90. 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,3 @@
1
+ export * from './converter';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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.allColumnsComputed = PlDataTable.allColumnsComputed;
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) {
@@ -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';
@@ -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;AAG/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAE9C,OAAO,KAAK,gBAAgB,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,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 { allColumnsReady, createPFrameForGraphs, enrichCompatible, getAvailableWithLinkersAxes, isColumnReady, isLinkerColumn } from './components/PFrameForGraphs.js';
6
- export { allColumnsComputed, createPlDataTableSheet, createPlDataTableStateV2, createPlDataTableV2, getAllLabelColumns, getMatchingLabelColumns, isColumnHidden, isColumnOptional, isLabelColumn, makeDefaultPTableParams, upgradePlDataTableStateV2 } from './components/PlDataTable.js';
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "1.44.14";
3
+ var version = "1.45.17";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.cjs.map
@@ -1,4 +1,4 @@
1
- var version = "1.44.14";
1
+ var version = "1.45.17";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.js.map
@@ -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
- this.verifyInlineAndExplicitColumnsSupport(plModelCommon.extractAllColumns(rawDef.src));
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 */