@platforma-sdk/model 1.53.10 → 1.53.13

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 (288) hide show
  1. package/dist/annotations/converter.cjs +11 -11
  2. package/dist/annotations/converter.cjs.map +1 -1
  3. package/dist/annotations/converter.d.ts +1 -1
  4. package/dist/annotations/converter.d.ts.map +1 -1
  5. package/dist/annotations/converter.js +11 -11
  6. package/dist/annotations/converter.js.map +1 -1
  7. package/dist/annotations/index.d.ts +2 -2
  8. package/dist/annotations/types.d.ts +4 -4
  9. package/dist/bconfig/index.d.ts +5 -5
  10. package/dist/bconfig/lambdas.d.ts +7 -7
  11. package/dist/bconfig/lambdas.d.ts.map +1 -1
  12. package/dist/bconfig/normalization.cjs.map +1 -1
  13. package/dist/bconfig/normalization.d.ts +3 -3
  14. package/dist/bconfig/normalization.js.map +1 -1
  15. package/dist/bconfig/types.cjs.map +1 -1
  16. package/dist/bconfig/types.d.ts +2 -2
  17. package/dist/bconfig/types.d.ts.map +1 -1
  18. package/dist/bconfig/types.js.map +1 -1
  19. package/dist/bconfig/util.d.ts +4 -4
  20. package/dist/bconfig/v3.d.ts +3 -3
  21. package/dist/block_api_v1.d.ts +2 -2
  22. package/dist/block_api_v1.d.ts.map +1 -1
  23. package/dist/block_api_v2.d.ts +2 -2
  24. package/dist/block_api_v2.d.ts.map +1 -1
  25. package/dist/block_api_v3.d.ts +3 -3
  26. package/dist/block_migrations.cjs +10 -10
  27. package/dist/block_migrations.cjs.map +1 -1
  28. package/dist/block_migrations.d.ts.map +1 -1
  29. package/dist/block_migrations.js +10 -10
  30. package/dist/block_migrations.js.map +1 -1
  31. package/dist/block_model.cjs +11 -11
  32. package/dist/block_model.cjs.map +1 -1
  33. package/dist/block_model.d.ts +8 -8
  34. package/dist/block_model.d.ts.map +1 -1
  35. package/dist/block_model.js +11 -11
  36. package/dist/block_model.js.map +1 -1
  37. package/dist/block_state_patch.d.ts +2 -2
  38. package/dist/block_state_util.cjs +1 -1
  39. package/dist/block_state_util.cjs.map +1 -1
  40. package/dist/block_state_util.d.ts +3 -3
  41. package/dist/block_state_util.js +1 -1
  42. package/dist/block_state_util.js.map +1 -1
  43. package/dist/block_storage.cjs +10 -10
  44. package/dist/block_storage.cjs.map +1 -1
  45. package/dist/block_storage.d.ts +2 -2
  46. package/dist/block_storage.d.ts.map +1 -1
  47. package/dist/block_storage.js +10 -10
  48. package/dist/block_storage.js.map +1 -1
  49. package/dist/block_storage_vm.cjs +22 -22
  50. package/dist/block_storage_vm.cjs.map +1 -1
  51. package/dist/block_storage_vm.d.ts +1 -1
  52. package/dist/block_storage_vm.d.ts.map +1 -1
  53. package/dist/block_storage_vm.js +22 -22
  54. package/dist/block_storage_vm.js.map +1 -1
  55. package/dist/builder.cjs +32 -23
  56. package/dist/builder.cjs.map +1 -1
  57. package/dist/builder.d.ts +7 -7
  58. package/dist/builder.d.ts.map +1 -1
  59. package/dist/builder.js +32 -23
  60. package/dist/builder.js.map +1 -1
  61. package/dist/components/PFrameForGraphs.cjs +7 -6
  62. package/dist/components/PFrameForGraphs.cjs.map +1 -1
  63. package/dist/components/PFrameForGraphs.d.ts +4 -4
  64. package/dist/components/PFrameForGraphs.d.ts.map +1 -1
  65. package/dist/components/PFrameForGraphs.js +7 -6
  66. package/dist/components/PFrameForGraphs.js.map +1 -1
  67. package/dist/components/PlAnnotations/filter.d.ts +14 -14
  68. package/dist/components/PlAnnotations/filter.d.ts.map +1 -1
  69. package/dist/components/PlAnnotations/filters_ui.cjs +46 -46
  70. package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
  71. package/dist/components/PlAnnotations/filters_ui.d.ts +10 -34
  72. package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -1
  73. package/dist/components/PlAnnotations/filters_ui.js +46 -46
  74. package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
  75. package/dist/components/PlAnnotations/index.d.ts +2 -2
  76. package/dist/components/PlAnnotations/types.d.ts +2 -2
  77. package/dist/components/PlDataTable.cjs +19 -20
  78. package/dist/components/PlDataTable.cjs.map +1 -1
  79. package/dist/components/PlDataTable.d.ts +27 -27
  80. package/dist/components/PlDataTable.d.ts.map +1 -1
  81. package/dist/components/PlDataTable.js +19 -20
  82. package/dist/components/PlDataTable.js.map +1 -1
  83. package/dist/components/PlMultiSequenceAlignment.cjs +2 -2
  84. package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -1
  85. package/dist/components/PlMultiSequenceAlignment.d.ts +6 -6
  86. package/dist/components/PlMultiSequenceAlignment.d.ts.map +1 -1
  87. package/dist/components/PlMultiSequenceAlignment.js +2 -2
  88. package/dist/components/PlMultiSequenceAlignment.js.map +1 -1
  89. package/dist/components/PlSelectionModel.cjs.map +1 -1
  90. package/dist/components/PlSelectionModel.d.ts +1 -1
  91. package/dist/components/PlSelectionModel.js.map +1 -1
  92. package/dist/components/index.d.ts +5 -5
  93. package/dist/config/actions.cjs +39 -39
  94. package/dist/config/actions.cjs.map +1 -1
  95. package/dist/config/actions.d.ts +9 -9
  96. package/dist/config/actions.d.ts.map +1 -1
  97. package/dist/config/actions.js +39 -39
  98. package/dist/config/actions.js.map +1 -1
  99. package/dist/config/actions_kinds.d.ts +30 -30
  100. package/dist/config/actions_kinds.d.ts.map +1 -1
  101. package/dist/config/index.d.ts +6 -6
  102. package/dist/config/model.d.ts +28 -28
  103. package/dist/config/model_meta.d.ts +1 -1
  104. package/dist/config/type_engine.d.ts +3 -3
  105. package/dist/config/type_util.d.ts +2 -2
  106. package/dist/env_value.cjs +1 -1
  107. package/dist/env_value.cjs.map +1 -1
  108. package/dist/env_value.js +1 -1
  109. package/dist/env_value.js.map +1 -1
  110. package/dist/filters/converter.cjs +36 -32
  111. package/dist/filters/converter.cjs.map +1 -1
  112. package/dist/filters/converter.d.ts +2 -2
  113. package/dist/filters/converter.d.ts.map +1 -1
  114. package/dist/filters/converter.js +36 -32
  115. package/dist/filters/converter.js.map +1 -1
  116. package/dist/filters/index.d.ts +2 -2
  117. package/dist/filters/types.d.ts +33 -33
  118. package/dist/filters/types.d.ts.map +1 -1
  119. package/dist/index.d.ts +24 -24
  120. package/dist/internal.cjs +7 -7
  121. package/dist/internal.cjs.map +1 -1
  122. package/dist/internal.d.ts +4 -4
  123. package/dist/internal.d.ts.map +1 -1
  124. package/dist/internal.js +7 -7
  125. package/dist/internal.js.map +1 -1
  126. package/dist/package.json.cjs +1 -1
  127. package/dist/package.json.js +1 -1
  128. package/dist/pframe.cjs +1 -1
  129. package/dist/pframe.cjs.map +1 -1
  130. package/dist/pframe.d.ts +1 -1
  131. package/dist/pframe.js +1 -1
  132. package/dist/pframe.js.map +1 -1
  133. package/dist/pframe_utils/columns.cjs +23 -15
  134. package/dist/pframe_utils/columns.cjs.map +1 -1
  135. package/dist/pframe_utils/columns.d.ts +3 -3
  136. package/dist/pframe_utils/columns.d.ts.map +1 -1
  137. package/dist/pframe_utils/columns.js +23 -15
  138. package/dist/pframe_utils/columns.js.map +1 -1
  139. package/dist/pframe_utils/index.cjs +25 -25
  140. package/dist/pframe_utils/index.cjs.map +1 -1
  141. package/dist/pframe_utils/index.d.ts +3 -3
  142. package/dist/pframe_utils/index.d.ts.map +1 -1
  143. package/dist/pframe_utils/index.js +25 -25
  144. package/dist/pframe_utils/index.js.map +1 -1
  145. package/dist/platforma.d.ts +7 -7
  146. package/dist/platforma.d.ts.map +1 -1
  147. package/dist/raw_globals.cjs +4 -1
  148. package/dist/raw_globals.cjs.map +1 -1
  149. package/dist/raw_globals.d.ts +2 -2
  150. package/dist/raw_globals.d.ts.map +1 -1
  151. package/dist/raw_globals.js +4 -1
  152. package/dist/raw_globals.js.map +1 -1
  153. package/dist/ref_util.cjs +4 -4
  154. package/dist/ref_util.cjs.map +1 -1
  155. package/dist/ref_util.d.ts +1 -1
  156. package/dist/ref_util.js +4 -4
  157. package/dist/ref_util.js.map +1 -1
  158. package/dist/render/accessor.cjs +24 -24
  159. package/dist/render/accessor.cjs.map +1 -1
  160. package/dist/render/accessor.d.ts +10 -10
  161. package/dist/render/accessor.d.ts.map +1 -1
  162. package/dist/render/accessor.js +24 -24
  163. package/dist/render/accessor.js.map +1 -1
  164. package/dist/render/api.cjs +23 -23
  165. package/dist/render/api.cjs.map +1 -1
  166. package/dist/render/api.d.ts +11 -11
  167. package/dist/render/api.d.ts.map +1 -1
  168. package/dist/render/api.js +23 -23
  169. package/dist/render/api.js.map +1 -1
  170. package/dist/render/future.cjs.map +1 -1
  171. package/dist/render/future.d.ts +1 -1
  172. package/dist/render/future.js.map +1 -1
  173. package/dist/render/index.d.ts +6 -6
  174. package/dist/render/internal.cjs +4 -4
  175. package/dist/render/internal.cjs.map +1 -1
  176. package/dist/render/internal.d.ts +7 -7
  177. package/dist/render/internal.d.ts.map +1 -1
  178. package/dist/render/internal.js +4 -4
  179. package/dist/render/internal.js.map +1 -1
  180. package/dist/render/traversal_ops.d.ts +1 -1
  181. package/dist/render/util/axis_filtering.cjs +48 -44
  182. package/dist/render/util/axis_filtering.cjs.map +1 -1
  183. package/dist/render/util/axis_filtering.d.ts +2 -2
  184. package/dist/render/util/axis_filtering.js +48 -44
  185. package/dist/render/util/axis_filtering.js.map +1 -1
  186. package/dist/render/util/column_collection.cjs +42 -35
  187. package/dist/render/util/column_collection.cjs.map +1 -1
  188. package/dist/render/util/column_collection.d.ts +4 -4
  189. package/dist/render/util/column_collection.d.ts.map +1 -1
  190. package/dist/render/util/column_collection.js +42 -35
  191. package/dist/render/util/column_collection.js.map +1 -1
  192. package/dist/render/util/index.d.ts +4 -4
  193. package/dist/render/util/label.cjs +15 -21
  194. package/dist/render/util/label.cjs.map +1 -1
  195. package/dist/render/util/label.d.ts +2 -2
  196. package/dist/render/util/label.d.ts.map +1 -1
  197. package/dist/render/util/label.js +15 -21
  198. package/dist/render/util/label.js.map +1 -1
  199. package/dist/render/util/pcolumn_data.cjs +56 -54
  200. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  201. package/dist/render/util/pcolumn_data.d.ts +5 -5
  202. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  203. package/dist/render/util/pcolumn_data.js +56 -54
  204. package/dist/render/util/pcolumn_data.js.map +1 -1
  205. package/dist/render/util/pframe_upgraders.cjs +6 -6
  206. package/dist/render/util/pframe_upgraders.cjs.map +1 -1
  207. package/dist/render/util/pframe_upgraders.d.ts +1 -1
  208. package/dist/render/util/pframe_upgraders.d.ts.map +1 -1
  209. package/dist/render/util/pframe_upgraders.js +6 -6
  210. package/dist/render/util/pframe_upgraders.js.map +1 -1
  211. package/dist/render/util/split_selectors.d.ts +1 -1
  212. package/dist/render/util/split_selectors.d.ts.map +1 -1
  213. package/dist/sdk_info.cjs.map +1 -1
  214. package/dist/sdk_info.js.map +1 -1
  215. package/dist/version.cjs.map +1 -1
  216. package/dist/version.js.map +1 -1
  217. package/package.json +23 -21
  218. package/src/annotations/converter.test.ts +98 -101
  219. package/src/annotations/converter.ts +21 -17
  220. package/src/annotations/index.ts +2 -2
  221. package/src/annotations/types.ts +4 -4
  222. package/src/bconfig/index.ts +5 -5
  223. package/src/bconfig/lambdas.ts +10 -12
  224. package/src/bconfig/normalization.ts +5 -5
  225. package/src/bconfig/types.ts +3 -5
  226. package/src/bconfig/util.ts +3 -3
  227. package/src/bconfig/v3.ts +3 -3
  228. package/src/block_api_v1.ts +7 -3
  229. package/src/block_api_v2.ts +7 -3
  230. package/src/block_api_v3.ts +3 -3
  231. package/src/block_migrations.test.ts +66 -67
  232. package/src/block_migrations.ts +16 -16
  233. package/src/block_model.ts +76 -140
  234. package/src/block_state_patch.ts +2 -2
  235. package/src/block_state_util.ts +4 -4
  236. package/src/block_storage.test.ts +106 -99
  237. package/src/block_storage.ts +22 -25
  238. package/src/block_storage_vm.ts +41 -35
  239. package/src/builder.ts +107 -95
  240. package/src/components/PFrameForGraphs.test.ts +261 -255
  241. package/src/components/PFrameForGraphs.ts +35 -22
  242. package/src/components/PlAnnotations/filter.ts +21 -15
  243. package/src/components/PlAnnotations/filters_ui.test.ts +230 -73
  244. package/src/components/PlAnnotations/filters_ui.ts +138 -105
  245. package/src/components/PlAnnotations/index.ts +2 -2
  246. package/src/components/PlAnnotations/types.ts +2 -2
  247. package/src/components/PlDataTable.ts +177 -164
  248. package/src/components/PlMultiSequenceAlignment.ts +11 -18
  249. package/src/components/PlSelectionModel.ts +1 -1
  250. package/src/components/index.ts +5 -5
  251. package/src/config/actions.ts +64 -59
  252. package/src/config/actions_kinds.ts +38 -34
  253. package/src/config/index.ts +6 -6
  254. package/src/config/model.ts +28 -28
  255. package/src/config/model_meta.ts +1 -1
  256. package/src/config/type_engine.ts +3 -3
  257. package/src/config/type_util.ts +2 -2
  258. package/src/env_value.ts +2 -2
  259. package/src/filters/converter.test.ts +185 -144
  260. package/src/filters/converter.ts +47 -35
  261. package/src/filters/index.ts +2 -2
  262. package/src/filters/types.ts +44 -39
  263. package/src/global.d.ts +1 -1
  264. package/src/index.ts +24 -24
  265. package/src/internal.ts +27 -17
  266. package/src/pframe.ts +3 -3
  267. package/src/pframe_utils/columns.ts +81 -31
  268. package/src/pframe_utils/index.ts +65 -43
  269. package/src/platforma.ts +44 -21
  270. package/src/raw_globals.ts +13 -7
  271. package/src/ref_util.ts +6 -6
  272. package/src/render/accessor.ts +43 -44
  273. package/src/render/api.ts +102 -78
  274. package/src/render/future.ts +2 -2
  275. package/src/render/index.ts +6 -6
  276. package/src/render/internal.ts +11 -12
  277. package/src/render/traversal_ops.ts +1 -1
  278. package/src/render/util/axis_filtering.ts +67 -52
  279. package/src/render/util/column_collection.ts +171 -91
  280. package/src/render/util/index.ts +4 -4
  281. package/src/render/util/label.test.ts +139 -139
  282. package/src/render/util/label.ts +42 -33
  283. package/src/render/util/pcolumn_data.ts +111 -75
  284. package/src/render/util/pframe_upgraders.ts +24 -13
  285. package/src/render/util/split_selectors.ts +6 -1
  286. package/src/sdk_info.ts +1 -1
  287. package/src/typing.test.ts +56 -56
  288. package/src/version.ts +1 -1
@@ -1,48 +1,68 @@
1
1
  // @DEPRECATED - use sdk/model/src/filters + sdk/model/src/annotations
2
- import type { SUniversalPColumnId } from '@milaboratories/pl-model-common';
3
- import { describe, expect, it, test } from 'vitest';
4
- import type { AnnotationFilter, AnnotationScript, IsNA, NotFilter, NumericalComparisonFilter, PatternFilter, ValueRank } from './filter';
5
- import { compileAnnotationScript, compileFilter, type FilterUi } from './filters_ui';
2
+ import type { SUniversalPColumnId } from "@milaboratories/pl-model-common";
3
+ import { describe, expect, it, test } from "vitest";
4
+ import type {
5
+ AnnotationFilter,
6
+ AnnotationScript,
7
+ IsNA,
8
+ NotFilter,
9
+ NumericalComparisonFilter,
10
+ PatternFilter,
11
+ ValueRank,
12
+ } from "./filter";
13
+ import { compileAnnotationScript, compileFilter, type FilterUi } from "./filters_ui";
6
14
 
7
- describe('compileAnnotationScript', () => {
8
- test('should compile an empty annotation script', () => {
9
- const script = compileAnnotationScript({ title: 'My Annotation', mode: 'byClonotype', steps: [] });
10
- expect(script).toEqual({ title: 'My Annotation', mode: 'byClonotype', steps: [] });
15
+ describe("compileAnnotationScript", () => {
16
+ test("should compile an empty annotation script", () => {
17
+ const script = compileAnnotationScript({
18
+ title: "My Annotation",
19
+ mode: "byClonotype",
20
+ steps: [],
21
+ });
22
+ expect(script).toEqual({ title: "My Annotation", mode: "byClonotype", steps: [] });
11
23
  });
12
24
 
13
- test('should compile an annotation script with steps', () => {
25
+ test("should compile an annotation script with steps", () => {
14
26
  // Helper type for testing, refine if needed
15
27
  type AnnotationStepUi = {
16
28
  label: string;
17
- filter: Extract<FilterUi, { type: 'and' | 'or' }>;
29
+ filter: Extract<FilterUi, { type: "and" | "or" }>;
18
30
  };
19
- const uiScript: { title: string; mode: 'byClonotype'; steps: AnnotationStepUi[] } = {
20
- title: 'My Annotation',
21
- mode: 'byClonotype',
31
+ const uiScript: { title: string; mode: "byClonotype"; steps: AnnotationStepUi[] } = {
32
+ title: "My Annotation",
33
+ mode: "byClonotype",
22
34
  steps: [
23
35
  {
24
- label: 'Step 1',
36
+ label: "Step 1",
25
37
  filter: {
26
- type: 'and',
38
+ type: "and",
27
39
  filters: [
28
- { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId },
29
- { type: 'patternEquals', column: 'colB' as unknown as SUniversalPColumnId, value: 'abc' },
40
+ { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
41
+ {
42
+ type: "patternEquals",
43
+ column: "colB" as unknown as SUniversalPColumnId,
44
+ value: "abc",
45
+ },
30
46
  ],
31
47
  },
32
48
  },
33
49
  ],
34
50
  };
35
51
  const expectedScript: AnnotationScript = {
36
- title: 'My Annotation',
37
- mode: 'byClonotype',
52
+ title: "My Annotation",
53
+ mode: "byClonotype",
38
54
  steps: [
39
55
  {
40
- label: 'Step 1',
56
+ label: "Step 1",
41
57
  filter: {
42
- type: 'and',
58
+ type: "and",
43
59
  filters: [
44
- { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId },
45
- { type: 'pattern', column: 'colB' as unknown as SUniversalPColumnId, predicate: { type: 'equals', value: 'abc' } },
60
+ { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
61
+ {
62
+ type: "pattern",
63
+ column: "colB" as unknown as SUniversalPColumnId,
64
+ predicate: { type: "equals", value: "abc" },
65
+ },
46
66
  ],
47
67
  },
48
68
  },
@@ -53,95 +73,169 @@ describe('compileAnnotationScript', () => {
53
73
  });
54
74
  });
55
75
 
56
- describe('compileFilter', () => {
76
+ describe("compileFilter", () => {
57
77
  it('should compile "or" filter', () => {
58
- const uiFilter: FilterUi = { type: 'or', filters: [{ type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId }] };
59
- const expectedFilter: AnnotationFilter = { type: 'or', filters: [{ type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId }] };
78
+ const uiFilter: FilterUi = {
79
+ type: "or",
80
+ filters: [{ type: "isNA", column: "colA" as unknown as SUniversalPColumnId }],
81
+ };
82
+ const expectedFilter: AnnotationFilter = {
83
+ type: "or",
84
+ filters: [{ type: "isNA", column: "colA" as unknown as SUniversalPColumnId }],
85
+ };
60
86
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
61
87
  });
62
88
 
63
89
  it('should compile "and" filter', () => {
64
- const uiFilter: FilterUi = { type: 'and', filters: [{ type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId }] };
65
- const expectedFilter: AnnotationFilter = { type: 'and', filters: [{ type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId }] };
90
+ const uiFilter: FilterUi = {
91
+ type: "and",
92
+ filters: [{ type: "isNA", column: "colA" as unknown as SUniversalPColumnId }],
93
+ };
94
+ const expectedFilter: AnnotationFilter = {
95
+ type: "and",
96
+ filters: [{ type: "isNA", column: "colA" as unknown as SUniversalPColumnId }],
97
+ };
66
98
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
67
99
  });
68
100
 
69
101
  it('should compile nested "and"/"or" filters', () => {
70
102
  const uiFilter: FilterUi = {
71
- type: 'and',
103
+ type: "and",
72
104
  filters: [
73
- { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId },
74
- { type: 'or', filters: [{ type: 'patternEquals', column: 'colB' as unknown as SUniversalPColumnId, value: 'test' }] },
105
+ { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
106
+ {
107
+ type: "or",
108
+ filters: [
109
+ {
110
+ type: "patternEquals",
111
+ column: "colB" as unknown as SUniversalPColumnId,
112
+ value: "test",
113
+ },
114
+ ],
115
+ },
75
116
  ],
76
117
  };
77
118
  const expectedFilter: AnnotationFilter = {
78
- type: 'and',
119
+ type: "and",
79
120
  filters: [
80
- { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId },
81
- { type: 'or', filters: [{ type: 'pattern', column: 'colB' as unknown as SUniversalPColumnId, predicate: { type: 'equals', value: 'test' } }] },
121
+ { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
122
+ {
123
+ type: "or",
124
+ filters: [
125
+ {
126
+ type: "pattern",
127
+ column: "colB" as unknown as SUniversalPColumnId,
128
+ predicate: { type: "equals", value: "test" },
129
+ },
130
+ ],
131
+ },
82
132
  ],
83
133
  };
84
134
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
85
135
  });
86
136
 
87
137
  it('should compile "not" filter', () => {
88
- const uiFilter: FilterUi = { type: 'not', filter: { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId } };
89
- const expectedFilter: AnnotationFilter = { type: 'not', filter: { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId } };
138
+ const uiFilter: FilterUi = {
139
+ type: "not",
140
+ filter: { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
141
+ };
142
+ const expectedFilter: AnnotationFilter = {
143
+ type: "not",
144
+ filter: { type: "isNA", column: "colA" as unknown as SUniversalPColumnId },
145
+ };
90
146
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
91
147
  });
92
148
 
93
149
  it('should compile "isNA" filter', () => {
94
- const uiFilter: FilterUi = { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId };
95
- const expectedFilter: AnnotationFilter = { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId };
150
+ const uiFilter: FilterUi = { type: "isNA", column: "colA" as unknown as SUniversalPColumnId };
151
+ const expectedFilter: AnnotationFilter = {
152
+ type: "isNA",
153
+ column: "colA" as unknown as SUniversalPColumnId,
154
+ };
96
155
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
97
156
  });
98
157
 
99
158
  it('should compile "isNotNA" filter', () => {
100
- const uiFilter: FilterUi = { type: 'isNotNA', column: 'colA' as unknown as SUniversalPColumnId };
101
- const expectedIsNA: IsNA = { type: 'isNA', column: 'colA' as unknown as SUniversalPColumnId };
102
- const expectedFilter: NotFilter = { type: 'not', filter: expectedIsNA };
159
+ const uiFilter: FilterUi = {
160
+ type: "isNotNA",
161
+ column: "colA" as unknown as SUniversalPColumnId,
162
+ };
163
+ const expectedIsNA: IsNA = { type: "isNA", column: "colA" as unknown as SUniversalPColumnId };
164
+ const expectedFilter: NotFilter = { type: "not", filter: expectedIsNA };
103
165
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
104
166
  });
105
167
 
106
168
  it('should compile "patternEquals" filter', () => {
107
- const uiFilter: FilterUi = { type: 'patternEquals', column: 'colB' as unknown as SUniversalPColumnId, value: 'abc' };
108
- const expectedFilter: AnnotationFilter = { type: 'pattern', column: 'colB' as unknown as SUniversalPColumnId, predicate: { type: 'equals', value: 'abc' } };
169
+ const uiFilter: FilterUi = {
170
+ type: "patternEquals",
171
+ column: "colB" as unknown as SUniversalPColumnId,
172
+ value: "abc",
173
+ };
174
+ const expectedFilter: AnnotationFilter = {
175
+ type: "pattern",
176
+ column: "colB" as unknown as SUniversalPColumnId,
177
+ predicate: { type: "equals", value: "abc" },
178
+ };
109
179
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
110
180
  });
111
181
 
112
182
  it('should compile "patternNotEquals" filter', () => {
113
- const uiFilter: FilterUi = { type: 'patternNotEquals', column: 'colB' as unknown as SUniversalPColumnId, value: 'abc' };
183
+ const uiFilter: FilterUi = {
184
+ type: "patternNotEquals",
185
+ column: "colB" as unknown as SUniversalPColumnId,
186
+ value: "abc",
187
+ };
114
188
  const expectedPatternFilter: PatternFilter = {
115
- type: 'pattern',
116
- column: 'colB' as unknown as SUniversalPColumnId,
117
- predicate: { type: 'equals', value: 'abc' },
189
+ type: "pattern",
190
+ column: "colB" as unknown as SUniversalPColumnId,
191
+ predicate: { type: "equals", value: "abc" },
118
192
  };
119
- const expectedFilter: NotFilter = { type: 'not', filter: expectedPatternFilter };
193
+ const expectedFilter: NotFilter = { type: "not", filter: expectedPatternFilter };
120
194
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
121
195
  });
122
196
 
123
197
  it('should compile "patternContainSubsequence" filter', () => {
124
- const uiFilter: FilterUi = { type: 'patternContainSubsequence', column: 'colC' as unknown as SUniversalPColumnId, value: 'sub' };
125
- const expectedFilter: AnnotationFilter = { type: 'pattern', column: 'colC' as unknown as SUniversalPColumnId, predicate: { type: 'containSubsequence', value: 'sub' } };
198
+ const uiFilter: FilterUi = {
199
+ type: "patternContainSubsequence",
200
+ column: "colC" as unknown as SUniversalPColumnId,
201
+ value: "sub",
202
+ };
203
+ const expectedFilter: AnnotationFilter = {
204
+ type: "pattern",
205
+ column: "colC" as unknown as SUniversalPColumnId,
206
+ predicate: { type: "containSubsequence", value: "sub" },
207
+ };
126
208
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
127
209
  });
128
210
 
129
211
  it('should compile "patternNotContainSubsequence" filter', () => {
130
- const uiFilter: FilterUi = { type: 'patternNotContainSubsequence', column: 'colC' as unknown as SUniversalPColumnId, value: 'sub' };
212
+ const uiFilter: FilterUi = {
213
+ type: "patternNotContainSubsequence",
214
+ column: "colC" as unknown as SUniversalPColumnId,
215
+ value: "sub",
216
+ };
131
217
  const expectedPatternFilter: PatternFilter = {
132
- type: 'pattern',
133
- column: 'colC' as unknown as SUniversalPColumnId,
134
- predicate: { type: 'containSubsequence', value: 'sub' },
218
+ type: "pattern",
219
+ column: "colC" as unknown as SUniversalPColumnId,
220
+ predicate: { type: "containSubsequence", value: "sub" },
135
221
  };
136
- const expectedFilter: NotFilter = { type: 'not', filter: expectedPatternFilter };
222
+ const expectedFilter: NotFilter = { type: "not", filter: expectedPatternFilter };
137
223
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
138
224
  });
139
225
 
140
226
  it('should compile "topN" filter (Top 5)', () => {
141
- const uiFilter: FilterUi = { type: 'topN', column: 'colNum' as unknown as SUniversalPColumnId, n: 5 };
142
- const expectedRank: ValueRank = { transformer: 'rank', column: 'colNum' as unknown as SUniversalPColumnId, descending: true };
227
+ const uiFilter: FilterUi = {
228
+ type: "topN",
229
+ column: "colNum" as unknown as SUniversalPColumnId,
230
+ n: 5,
231
+ };
232
+ const expectedRank: ValueRank = {
233
+ transformer: "rank",
234
+ column: "colNum" as unknown as SUniversalPColumnId,
235
+ descending: true,
236
+ };
143
237
  const expectedFilter: NumericalComparisonFilter = {
144
- type: 'numericalComparison',
238
+ type: "numericalComparison",
145
239
  lhs: expectedRank,
146
240
  rhs: 5,
147
241
  allowEqual: true,
@@ -150,10 +244,17 @@ describe('compileFilter', () => {
150
244
  });
151
245
 
152
246
  it('should compile "topN" filter (Bottom 3)', () => {
153
- const uiFilter: FilterUi = { type: 'bottomN', column: 'colNum' as unknown as SUniversalPColumnId, n: 3 };
154
- const expectedRank: ValueRank = { transformer: 'rank', column: 'colNum' as unknown as SUniversalPColumnId };
247
+ const uiFilter: FilterUi = {
248
+ type: "bottomN",
249
+ column: "colNum" as unknown as SUniversalPColumnId,
250
+ n: 3,
251
+ };
252
+ const expectedRank: ValueRank = {
253
+ transformer: "rank",
254
+ column: "colNum" as unknown as SUniversalPColumnId,
255
+ };
155
256
  const expectedFilter: NumericalComparisonFilter = {
156
- type: 'numericalComparison',
257
+ type: "numericalComparison",
157
258
  lhs: expectedRank,
158
259
  rhs: 3,
159
260
  allowEqual: true,
@@ -162,38 +263,94 @@ describe('compileFilter', () => {
162
263
  });
163
264
 
164
265
  it('should compile "lessThan" filter', () => {
165
- const uiFilter: FilterUi = { type: 'lessThan', column: 'colNum' as unknown as SUniversalPColumnId, x: 10 };
166
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', lhs: 'colNum' as unknown as SUniversalPColumnId, rhs: 10 };
266
+ const uiFilter: FilterUi = {
267
+ type: "lessThan",
268
+ column: "colNum" as unknown as SUniversalPColumnId,
269
+ x: 10,
270
+ };
271
+ const expectedFilter: AnnotationFilter = {
272
+ type: "numericalComparison",
273
+ lhs: "colNum" as unknown as SUniversalPColumnId,
274
+ rhs: 10,
275
+ };
167
276
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
168
277
  });
169
278
 
170
279
  it('should compile "greaterThan" filter', () => {
171
- const uiFilter: FilterUi = { type: 'greaterThan', column: 'colNum' as unknown as SUniversalPColumnId, x: 5 };
172
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', rhs: 'colNum' as unknown as SUniversalPColumnId, lhs: 5 };
280
+ const uiFilter: FilterUi = {
281
+ type: "greaterThan",
282
+ column: "colNum" as unknown as SUniversalPColumnId,
283
+ x: 5,
284
+ };
285
+ const expectedFilter: AnnotationFilter = {
286
+ type: "numericalComparison",
287
+ rhs: "colNum" as unknown as SUniversalPColumnId,
288
+ lhs: 5,
289
+ };
173
290
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
174
291
  });
175
292
 
176
293
  it('should compile "lessThanOrEqual" filter', () => {
177
- const uiFilter: FilterUi = { type: 'lessThanOrEqual', column: 'colNum' as unknown as SUniversalPColumnId, x: 20 };
178
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', lhs: 'colNum' as unknown as SUniversalPColumnId, rhs: 20, allowEqual: true };
294
+ const uiFilter: FilterUi = {
295
+ type: "lessThanOrEqual",
296
+ column: "colNum" as unknown as SUniversalPColumnId,
297
+ x: 20,
298
+ };
299
+ const expectedFilter: AnnotationFilter = {
300
+ type: "numericalComparison",
301
+ lhs: "colNum" as unknown as SUniversalPColumnId,
302
+ rhs: 20,
303
+ allowEqual: true,
304
+ };
179
305
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
180
306
  });
181
307
 
182
308
  it('should compile "greaterThanOrEqual" filter', () => {
183
- const uiFilter: FilterUi = { type: 'greaterThanOrEqual', column: 'colNum' as unknown as SUniversalPColumnId, x: 0 };
184
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', rhs: 'colNum' as unknown as SUniversalPColumnId, lhs: 0, allowEqual: true };
309
+ const uiFilter: FilterUi = {
310
+ type: "greaterThanOrEqual",
311
+ column: "colNum" as unknown as SUniversalPColumnId,
312
+ x: 0,
313
+ };
314
+ const expectedFilter: AnnotationFilter = {
315
+ type: "numericalComparison",
316
+ rhs: "colNum" as unknown as SUniversalPColumnId,
317
+ lhs: 0,
318
+ allowEqual: true,
319
+ };
185
320
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
186
321
  });
187
322
 
188
323
  it('should compile "lessThanColumn" filter', () => {
189
- const uiFilter: FilterUi = { type: 'lessThanColumn', column: 'colNum1' as unknown as SUniversalPColumnId, rhs: 'colNum2' as unknown as SUniversalPColumnId, minDiff: 5 };
190
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', lhs: 'colNum1' as unknown as SUniversalPColumnId, rhs: 'colNum2' as unknown as SUniversalPColumnId, minDiff: 5, allowEqual: undefined };
324
+ const uiFilter: FilterUi = {
325
+ type: "lessThanColumn",
326
+ column: "colNum1" as unknown as SUniversalPColumnId,
327
+ rhs: "colNum2" as unknown as SUniversalPColumnId,
328
+ minDiff: 5,
329
+ };
330
+ const expectedFilter: AnnotationFilter = {
331
+ type: "numericalComparison",
332
+ lhs: "colNum1" as unknown as SUniversalPColumnId,
333
+ rhs: "colNum2" as unknown as SUniversalPColumnId,
334
+ minDiff: 5,
335
+ allowEqual: undefined,
336
+ };
191
337
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
192
338
  });
193
339
 
194
340
  it('should compile "lessThanColumnOrEqual" filter', () => {
195
- const uiFilter: FilterUi = { type: 'lessThanColumnOrEqual', column: 'colNum1' as unknown as SUniversalPColumnId, rhs: 'colNum2' as unknown as SUniversalPColumnId, minDiff: 6 };
196
- const expectedFilter: AnnotationFilter = { type: 'numericalComparison', lhs: 'colNum1' as unknown as SUniversalPColumnId, rhs: 'colNum2' as unknown as SUniversalPColumnId, minDiff: 6, allowEqual: true };
341
+ const uiFilter: FilterUi = {
342
+ type: "lessThanColumnOrEqual",
343
+ column: "colNum1" as unknown as SUniversalPColumnId,
344
+ rhs: "colNum2" as unknown as SUniversalPColumnId,
345
+ minDiff: 6,
346
+ };
347
+ const expectedFilter: AnnotationFilter = {
348
+ type: "numericalComparison",
349
+ lhs: "colNum1" as unknown as SUniversalPColumnId,
350
+ rhs: "colNum2" as unknown as SUniversalPColumnId,
351
+ minDiff: 6,
352
+ allowEqual: true,
353
+ };
197
354
  expect(compileFilter(uiFilter)).toEqual(expectedFilter);
198
355
  });
199
356
  });