@platforma-sdk/model 1.79.24 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/dist/block_model.d.ts +2 -0
  2. package/dist/block_model.d.ts.map +1 -1
  3. package/dist/columns/column.cjs +28 -0
  4. package/dist/columns/column.cjs.map +1 -0
  5. package/dist/columns/column.d.ts +30 -0
  6. package/dist/columns/column.d.ts.map +1 -0
  7. package/dist/columns/column.js +27 -0
  8. package/dist/columns/column.js.map +1 -0
  9. package/dist/columns/column_lazy.cjs +248 -0
  10. package/dist/columns/column_lazy.cjs.map +1 -0
  11. package/dist/columns/column_lazy.d.ts +137 -0
  12. package/dist/columns/column_lazy.d.ts.map +1 -0
  13. package/dist/columns/column_lazy.js +245 -0
  14. package/dist/columns/column_lazy.js.map +1 -0
  15. package/dist/columns/column_providers/index.cjs +62 -0
  16. package/dist/columns/column_providers/index.cjs.map +1 -0
  17. package/dist/columns/column_providers/index.d.ts +30 -0
  18. package/dist/columns/column_providers/index.d.ts.map +1 -0
  19. package/dist/columns/column_providers/index.js +53 -0
  20. package/dist/columns/column_providers/index.js.map +1 -0
  21. package/dist/columns/column_providers/providers.cjs +123 -0
  22. package/dist/columns/column_providers/providers.cjs.map +1 -0
  23. package/dist/columns/column_providers/providers.d.ts +75 -0
  24. package/dist/columns/column_providers/providers.d.ts.map +1 -0
  25. package/dist/columns/column_providers/providers.js +118 -0
  26. package/dist/columns/column_providers/providers.js.map +1 -0
  27. package/dist/columns/column_providers/types.d.ts +23 -0
  28. package/dist/columns/column_providers/types.d.ts.map +1 -0
  29. package/dist/columns/column_recipes/column_discovered_recipe.cjs +180 -0
  30. package/dist/columns/column_recipes/column_discovered_recipe.cjs.map +1 -0
  31. package/dist/columns/column_recipes/column_discovered_recipe.d.ts +120 -0
  32. package/dist/columns/column_recipes/column_discovered_recipe.d.ts.map +1 -0
  33. package/dist/columns/column_recipes/column_discovered_recipe.js +180 -0
  34. package/dist/columns/column_recipes/column_discovered_recipe.js.map +1 -0
  35. package/dist/columns/column_recipes/column_filtered_recipe.cjs +133 -0
  36. package/dist/columns/column_recipes/column_filtered_recipe.cjs.map +1 -0
  37. package/dist/columns/column_recipes/column_filtered_recipe.d.ts +75 -0
  38. package/dist/columns/column_recipes/column_filtered_recipe.d.ts.map +1 -0
  39. package/dist/columns/column_recipes/column_filtered_recipe.js +133 -0
  40. package/dist/columns/column_recipes/column_filtered_recipe.js.map +1 -0
  41. package/dist/columns/column_recipes/column_overrided_recipe.cjs +101 -0
  42. package/dist/columns/column_recipes/column_overrided_recipe.cjs.map +1 -0
  43. package/dist/columns/column_recipes/column_overrided_recipe.d.ts +73 -0
  44. package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -0
  45. package/dist/columns/column_recipes/column_overrided_recipe.js +101 -0
  46. package/dist/columns/column_recipes/column_overrided_recipe.js.map +1 -0
  47. package/dist/columns/column_recipes/index.cjs +72 -0
  48. package/dist/columns/column_recipes/index.cjs.map +1 -0
  49. package/dist/columns/column_recipes/index.d.ts +52 -0
  50. package/dist/columns/column_recipes/index.d.ts.map +1 -0
  51. package/dist/columns/column_recipes/index.js +68 -0
  52. package/dist/columns/column_recipes/index.js.map +1 -0
  53. package/dist/columns/column_recipes/leaf_rebrand.cjs +22 -0
  54. package/dist/columns/column_recipes/leaf_rebrand.cjs.map +1 -0
  55. package/dist/columns/column_recipes/leaf_rebrand.js +22 -0
  56. package/dist/columns/column_recipes/leaf_rebrand.js.map +1 -0
  57. package/dist/columns/column_recipes/types.d.ts +101 -0
  58. package/dist/columns/column_recipes/types.d.ts.map +1 -0
  59. package/dist/columns/columns_collection.cjs +124 -0
  60. package/dist/columns/columns_collection.cjs.map +1 -0
  61. package/dist/columns/columns_collection.d.ts +64 -0
  62. package/dist/columns/columns_collection.d.ts.map +1 -0
  63. package/dist/columns/columns_collection.js +122 -0
  64. package/dist/columns/columns_collection.js.map +1 -0
  65. package/dist/columns/derive_axis_values_labels.cjs +76 -0
  66. package/dist/columns/derive_axis_values_labels.cjs.map +1 -0
  67. package/dist/columns/derive_axis_values_labels.d.ts +30 -0
  68. package/dist/columns/derive_axis_values_labels.d.ts.map +1 -0
  69. package/dist/columns/derive_axis_values_labels.js +76 -0
  70. package/dist/columns/derive_axis_values_labels.js.map +1 -0
  71. package/dist/columns/expand_by_partition.cjs +53 -56
  72. package/dist/columns/expand_by_partition.cjs.map +1 -1
  73. package/dist/columns/expand_by_partition.d.ts +22 -18
  74. package/dist/columns/expand_by_partition.d.ts.map +1 -1
  75. package/dist/columns/expand_by_partition.js +55 -58
  76. package/dist/columns/expand_by_partition.js.map +1 -1
  77. package/dist/columns/index.cjs +44 -18
  78. package/dist/columns/index.d.ts +15 -7
  79. package/dist/columns/index.js +12 -6
  80. package/dist/columns/utils.cjs +186 -0
  81. package/dist/columns/utils.cjs.map +1 -0
  82. package/dist/columns/utils.d.ts +96 -0
  83. package/dist/columns/utils.d.ts.map +1 -0
  84. package/dist/columns/utils.js +179 -0
  85. package/dist/columns/utils.js.map +1 -0
  86. package/dist/components/PFrameForGraphs.cjs +1 -0
  87. package/dist/components/PFrameForGraphs.cjs.map +1 -1
  88. package/dist/components/PFrameForGraphs.d.ts +1 -1
  89. package/dist/components/PFrameForGraphs.d.ts.map +1 -1
  90. package/dist/components/PFrameForGraphs.js +1 -0
  91. package/dist/components/PFrameForGraphs.js.map +1 -1
  92. package/dist/components/PlDataTable/columnResolver.cjs +28 -0
  93. package/dist/components/PlDataTable/columnResolver.cjs.map +1 -0
  94. package/dist/components/PlDataTable/columnResolver.js +28 -0
  95. package/dist/components/PlDataTable/columnResolver.js.map +1 -0
  96. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +4 -2
  97. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
  98. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +4 -2
  99. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
  100. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs +20 -25
  101. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs.map +1 -1
  102. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js +20 -25
  103. package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js.map +1 -1
  104. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +58 -26
  105. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
  106. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts +1 -1
  107. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts.map +1 -1
  108. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +60 -28
  109. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
  110. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +224 -194
  111. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
  112. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts +13 -16
  113. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts.map +1 -1
  114. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +228 -198
  115. package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
  116. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +40 -98
  117. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
  118. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts +17 -8
  119. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts.map +1 -1
  120. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +40 -98
  121. package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
  122. package/dist/components/PlDataTable/createPlDataTable/index.cjs +1 -1
  123. package/dist/components/PlDataTable/createPlDataTable/index.cjs.map +1 -1
  124. package/dist/components/PlDataTable/createPlDataTable/index.d.ts +2 -2
  125. package/dist/components/PlDataTable/createPlDataTable/index.js +2 -2
  126. package/dist/components/PlDataTable/createPlDataTable/index.js.map +1 -1
  127. package/dist/components/PlDataTable/createPlDataTable/utils.cjs +51 -169
  128. package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -1
  129. package/dist/components/PlDataTable/createPlDataTable/utils.d.ts +1 -1
  130. package/dist/components/PlDataTable/createPlDataTable/utils.d.ts.map +1 -1
  131. package/dist/components/PlDataTable/createPlDataTable/utils.js +52 -166
  132. package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -1
  133. package/dist/components/PlDataTable/createPlDataTableSheet.cjs.map +1 -1
  134. package/dist/components/PlDataTable/createPlDataTableSheet.d.ts +1 -1
  135. package/dist/components/PlDataTable/createPlDataTableSheet.js.map +1 -1
  136. package/dist/components/PlDataTable/index.cjs +1 -1
  137. package/dist/components/PlDataTable/index.d.ts +4 -4
  138. package/dist/components/PlDataTable/index.js +2 -2
  139. package/dist/components/PlDataTable/labels.cjs +0 -1
  140. package/dist/components/PlDataTable/labels.cjs.map +1 -1
  141. package/dist/components/PlDataTable/labels.js +0 -1
  142. package/dist/components/PlDataTable/labels.js.map +1 -1
  143. package/dist/components/PlDataTable/state-migration.cjs +107 -10
  144. package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
  145. package/dist/components/PlDataTable/state-migration.d.ts +5 -4
  146. package/dist/components/PlDataTable/state-migration.d.ts.map +1 -1
  147. package/dist/components/PlDataTable/state-migration.js +107 -10
  148. package/dist/components/PlDataTable/state-migration.js.map +1 -1
  149. package/dist/components/PlDataTable/typesV7.d.ts +1 -36
  150. package/dist/components/PlDataTable/typesV7.d.ts.map +1 -1
  151. package/dist/components/PlDataTable/typesV8.d.ts +123 -0
  152. package/dist/components/PlDataTable/typesV8.d.ts.map +1 -0
  153. package/dist/components/PlDatasetSelector/build_dataset_options.cjs +27 -34
  154. package/dist/components/PlDatasetSelector/build_dataset_options.cjs.map +1 -1
  155. package/dist/components/PlDatasetSelector/build_dataset_options.d.ts.map +1 -1
  156. package/dist/components/PlDatasetSelector/build_dataset_options.js +27 -34
  157. package/dist/components/PlDatasetSelector/build_dataset_options.js.map +1 -1
  158. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs +28 -33
  159. package/dist/components/PlDatasetSelector/enrichment_discovery.cjs.map +1 -1
  160. package/dist/components/PlDatasetSelector/enrichment_discovery.js +29 -34
  161. package/dist/components/PlDatasetSelector/enrichment_discovery.js.map +1 -1
  162. package/dist/components/PlDatasetSelector/filter_discovery.cjs +27 -17
  163. package/dist/components/PlDatasetSelector/filter_discovery.cjs.map +1 -1
  164. package/dist/components/PlDatasetSelector/filter_discovery.d.ts +24 -10
  165. package/dist/components/PlDatasetSelector/filter_discovery.d.ts.map +1 -1
  166. package/dist/components/PlDatasetSelector/filter_discovery.js +28 -18
  167. package/dist/components/PlDatasetSelector/filter_discovery.js.map +1 -1
  168. package/dist/components/PlDatasetSelector/index.d.ts +2 -2
  169. package/dist/components/index.cjs +1 -1
  170. package/dist/components/index.d.ts +5 -5
  171. package/dist/components/index.js +2 -2
  172. package/dist/filters/converters/filterToQuery.cjs +5 -6
  173. package/dist/filters/converters/filterToQuery.cjs.map +1 -1
  174. package/dist/filters/converters/filterToQuery.d.ts +12 -3
  175. package/dist/filters/converters/filterToQuery.d.ts.map +1 -1
  176. package/dist/filters/converters/filterToQuery.js +5 -6
  177. package/dist/filters/converters/filterToQuery.js.map +1 -1
  178. package/dist/filters/converters/index.d.ts +2 -2
  179. package/dist/filters/index.d.ts +2 -2
  180. package/dist/index.cjs +64 -35
  181. package/dist/index.d.ts +23 -15
  182. package/dist/index.js +15 -9
  183. package/dist/labels/derive_distinct_labels.cjs.map +1 -1
  184. package/dist/labels/derive_distinct_labels.d.ts +1 -2
  185. package/dist/labels/derive_distinct_labels.d.ts.map +1 -1
  186. package/dist/labels/derive_distinct_labels.js.map +1 -1
  187. package/dist/labels/derive_distinct_tooltips.cjs +1 -1
  188. package/dist/labels/derive_distinct_tooltips.cjs.map +1 -1
  189. package/dist/labels/derive_distinct_tooltips.d.ts +6 -3
  190. package/dist/labels/derive_distinct_tooltips.d.ts.map +1 -1
  191. package/dist/labels/derive_distinct_tooltips.js +1 -1
  192. package/dist/labels/derive_distinct_tooltips.js.map +1 -1
  193. package/dist/package.cjs +1 -1
  194. package/dist/package.js +1 -1
  195. package/dist/pframe_utils/axes.cjs.map +1 -1
  196. package/dist/pframe_utils/axes.d.ts +2 -2
  197. package/dist/pframe_utils/axes.d.ts.map +1 -1
  198. package/dist/pframe_utils/axes.js.map +1 -1
  199. package/dist/pframe_utils/columns.cjs +6 -10
  200. package/dist/pframe_utils/columns.cjs.map +1 -1
  201. package/dist/pframe_utils/columns.d.ts +4 -4
  202. package/dist/pframe_utils/columns.d.ts.map +1 -1
  203. package/dist/pframe_utils/columns.js +7 -11
  204. package/dist/pframe_utils/columns.js.map +1 -1
  205. package/dist/pframe_utils/index.cjs.map +1 -1
  206. package/dist/pframe_utils/index.d.ts +1 -1
  207. package/dist/pframe_utils/index.d.ts.map +1 -1
  208. package/dist/pframe_utils/index.js.map +1 -1
  209. package/dist/render/accessor.cjs +15 -16
  210. package/dist/render/accessor.cjs.map +1 -1
  211. package/dist/render/accessor.d.ts +7 -10
  212. package/dist/render/accessor.d.ts.map +1 -1
  213. package/dist/render/accessor.js +15 -16
  214. package/dist/render/accessor.js.map +1 -1
  215. package/dist/render/api.cjs +34 -36
  216. package/dist/render/api.cjs.map +1 -1
  217. package/dist/render/api.d.ts +30 -20
  218. package/dist/render/api.d.ts.map +1 -1
  219. package/dist/render/api.js +35 -38
  220. package/dist/render/api.js.map +1 -1
  221. package/dist/render/index.cjs +4 -0
  222. package/dist/render/index.d.ts +4 -4
  223. package/dist/render/index.js +3 -2
  224. package/dist/render/internal.cjs +3 -2
  225. package/dist/render/internal.cjs.map +1 -1
  226. package/dist/render/internal.d.ts +17 -9
  227. package/dist/render/internal.d.ts.map +1 -1
  228. package/dist/render/internal.js +3 -2
  229. package/dist/render/internal.js.map +1 -1
  230. package/dist/render/util/axis_filtering.cjs.map +1 -1
  231. package/dist/render/util/axis_filtering.js.map +1 -1
  232. package/dist/render/util/column_collection.cjs +6 -4
  233. package/dist/render/util/column_collection.cjs.map +1 -1
  234. package/dist/render/util/column_collection.d.ts +9 -9
  235. package/dist/render/util/column_collection.d.ts.map +1 -1
  236. package/dist/render/util/column_collection.js +6 -4
  237. package/dist/render/util/column_collection.js.map +1 -1
  238. package/dist/render/util/index.d.ts +2 -2
  239. package/dist/render/util/pcolumn_data.cjs +1 -1
  240. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  241. package/dist/render/util/pcolumn_data.d.ts +3 -3
  242. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  243. package/dist/render/util/pcolumn_data.js +1 -1
  244. package/dist/render/util/pcolumn_data.js.map +1 -1
  245. package/dist/services/block_services.cjs +2 -1
  246. package/dist/services/block_services.cjs.map +1 -1
  247. package/dist/services/block_services.d.ts +1 -0
  248. package/dist/services/block_services.d.ts.map +1 -1
  249. package/dist/services/block_services.js +2 -1
  250. package/dist/services/block_services.js.map +1 -1
  251. package/dist/services/get_services.cjs +2 -2
  252. package/dist/services/get_services.cjs.map +1 -1
  253. package/dist/services/get_services.d.ts +4 -1
  254. package/dist/services/get_services.d.ts.map +1 -1
  255. package/dist/services/get_services.js +2 -2
  256. package/dist/services/get_services.js.map +1 -1
  257. package/package.json +9 -7
  258. package/src/columns/__test_helpers__/collection_driver.ts +197 -0
  259. package/src/columns/__test_helpers__/stub_registry.ts +134 -0
  260. package/src/columns/column.ts +46 -0
  261. package/src/columns/column_lazy.test.ts +201 -0
  262. package/src/columns/column_lazy.ts +311 -0
  263. package/src/columns/column_providers/index.ts +78 -0
  264. package/src/columns/column_providers/providers.ts +193 -0
  265. package/src/columns/column_providers/types.ts +24 -0
  266. package/src/columns/column_recipes/column_discovered_recipe.ts +231 -0
  267. package/src/columns/column_recipes/column_filtered_recipe.ts +184 -0
  268. package/src/columns/column_recipes/column_overrided_recipe.ts +146 -0
  269. package/src/columns/column_recipes/column_recipes.test.ts +681 -0
  270. package/src/columns/column_recipes/index.ts +127 -0
  271. package/src/columns/column_recipes/leaf_rebrand.ts +28 -0
  272. package/src/columns/column_recipes/types.ts +113 -0
  273. package/src/columns/columns_collection.test.ts +164 -0
  274. package/src/columns/columns_collection.ts +170 -0
  275. package/src/columns/derive_axis_values_labels.ts +98 -0
  276. package/src/columns/expand_by_partition.test.ts +146 -110
  277. package/src/columns/expand_by_partition.ts +72 -84
  278. package/src/columns/index.ts +7 -5
  279. package/src/columns/utils.test.ts +249 -0
  280. package/src/columns/utils.ts +226 -0
  281. package/src/components/PFrameForGraphs.ts +3 -1
  282. package/src/components/PlAnnotations/filters_ui.test.ts +46 -47
  283. package/src/components/PlDataTable/columnResolver.test.ts +122 -0
  284. package/src/components/PlDataTable/columnResolver.ts +57 -0
  285. package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +9 -9
  286. package/src/components/PlDataTable/createPlDataTable/createPTableDefV3.ts +31 -63
  287. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +85 -58
  288. package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +316 -354
  289. package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +48 -144
  290. package/src/components/PlDataTable/createPlDataTable/index.ts +2 -2
  291. package/src/components/PlDataTable/createPlDataTable/utils.test.ts +60 -69
  292. package/src/components/PlDataTable/createPlDataTable/utils.ts +65 -173
  293. package/src/components/PlDataTable/createPlDataTableSheet.ts +1 -1
  294. package/src/components/PlDataTable/index.ts +4 -2
  295. package/src/components/PlDataTable/labels.ts +4 -33
  296. package/src/components/PlDataTable/state-migration.ts +151 -22
  297. package/src/components/PlDataTable/typesV8.ts +188 -0
  298. package/src/components/PlDatasetSelector/build_dataset_options.ts +35 -60
  299. package/src/components/PlDatasetSelector/enrichment_discovery.ts +65 -61
  300. package/src/components/PlDatasetSelector/filter_discovery.test.ts +110 -72
  301. package/src/components/PlDatasetSelector/filter_discovery.ts +51 -31
  302. package/src/filters/converters/filterToQuery.test.ts +15 -8
  303. package/src/filters/converters/filterToQuery.ts +22 -9
  304. package/src/filters/converters/filterUiToExpressionImpl.test.ts +35 -36
  305. package/src/labels/derive_distinct_labels.ts +1 -1
  306. package/src/labels/derive_distinct_tooltips.test.ts +7 -4
  307. package/src/labels/derive_distinct_tooltips.ts +3 -3
  308. package/src/pframe_utils/axes.ts +2 -2
  309. package/src/pframe_utils/columns.ts +14 -23
  310. package/src/pframe_utils/index.ts +1 -1
  311. package/src/render/accessor.ts +35 -38
  312. package/src/render/api.ts +45 -61
  313. package/src/render/index.ts +2 -1
  314. package/src/render/internal.ts +43 -10
  315. package/src/render/util/axis_filtering.ts +0 -1
  316. package/src/render/util/column_collection.ts +17 -17
  317. package/src/render/util/pcolumn_data.ts +5 -9
  318. package/src/services/block_services.ts +1 -0
  319. package/src/services/get_services.ts +5 -2
  320. package/dist/columns/column_collection_builder.cjs +0 -241
  321. package/dist/columns/column_collection_builder.cjs.map +0 -1
  322. package/dist/columns/column_collection_builder.d.ts +0 -119
  323. package/dist/columns/column_collection_builder.d.ts.map +0 -1
  324. package/dist/columns/column_collection_builder.js +0 -241
  325. package/dist/columns/column_collection_builder.js.map +0 -1
  326. package/dist/columns/column_selector.cjs +0 -49
  327. package/dist/columns/column_selector.cjs.map +0 -1
  328. package/dist/columns/column_selector.d.ts +0 -33
  329. package/dist/columns/column_selector.d.ts.map +0 -1
  330. package/dist/columns/column_selector.js +0 -47
  331. package/dist/columns/column_selector.js.map +0 -1
  332. package/dist/columns/column_snapshot.cjs +0 -19
  333. package/dist/columns/column_snapshot.cjs.map +0 -1
  334. package/dist/columns/column_snapshot.d.ts +0 -39
  335. package/dist/columns/column_snapshot.d.ts.map +0 -1
  336. package/dist/columns/column_snapshot.js +0 -18
  337. package/dist/columns/column_snapshot.js.map +0 -1
  338. package/dist/columns/column_snapshot_provider.cjs +0 -137
  339. package/dist/columns/column_snapshot_provider.cjs.map +0 -1
  340. package/dist/columns/column_snapshot_provider.d.ts +0 -74
  341. package/dist/columns/column_snapshot_provider.d.ts.map +0 -1
  342. package/dist/columns/column_snapshot_provider.js +0 -133
  343. package/dist/columns/column_snapshot_provider.js.map +0 -1
  344. package/dist/columns/ctx_column_sources.cjs +0 -80
  345. package/dist/columns/ctx_column_sources.cjs.map +0 -1
  346. package/dist/columns/ctx_column_sources.d.ts +0 -30
  347. package/dist/columns/ctx_column_sources.d.ts.map +0 -1
  348. package/dist/columns/ctx_column_sources.js +0 -79
  349. package/dist/columns/ctx_column_sources.js.map +0 -1
  350. package/src/columns/column_collection_builder.test.ts +0 -484
  351. package/src/columns/column_collection_builder.ts +0 -485
  352. package/src/columns/column_selector.test.ts +0 -90
  353. package/src/columns/column_selector.ts +0 -100
  354. package/src/columns/column_snapshot.ts +0 -58
  355. package/src/columns/column_snapshot_provider.ts +0 -194
  356. package/src/columns/ctx_column_sources.ts +0 -99
@@ -1,11 +1,11 @@
1
1
  import {
2
+ type AnnotationDataStatus,
3
+ type ColumnUniversalId,
2
4
  type PColumn,
3
5
  type PColumnSpec,
4
- type PFrameSpecDriver,
5
6
  type PObjectId,
6
7
  Annotation,
7
- canonicalizeAxisId,
8
- DiscoveredPColumnId,
8
+ extractPObjectId,
9
9
  readAnnotation,
10
10
  } from "@milaboratories/pl-model-common";
11
11
  import {
@@ -16,13 +16,18 @@ import {
16
16
  deriveDistinctTooltips,
17
17
  type TooltipEntry,
18
18
  } from "../../../labels/derive_distinct_tooltips";
19
- import type { ColumnDataStatus, MatchQualifications, MatchVariant } from "../../../columns";
20
- import type { ColumnMatcher, ColumnOrderRule, ColumnVisibilityRule } from "./createPlDataTableV3";
21
- import type { ColumnSelector } from "../../../columns";
22
- import { ArrayColumnProvider, ColumnCollectionBuilder } from "../../../columns";
23
- import { isNil } from "es-toolkit";
19
+ import type { ColumnOrderRule, ColumnVisibilityRule } from "./createPlDataTableV3";
20
+ import type { ColumnSelector, MatchQualifications } from "@milaboratories/pl-model-common";
21
+ import { ColumnsCollection, hasColumnData, type ColumnRecipe } from "../../../columns";
22
+ import type { GlobalCfgRenderCtx } from "../../../render/internal";
23
+ import { isNil, uniqBy } from "es-toolkit";
24
24
  import { getField } from "@milaboratories/helpers";
25
25
 
26
+ /** Adapt a {@link ColumnRecipe} to the plain {@link RuleColumn} shape. */
27
+ export function toRuleColumn(col: ColumnRecipe): RuleColumn {
28
+ return { id: extractPObjectId(col.id), spec: col.getSpec() };
29
+ }
30
+
26
31
  /** Check if column should be omitted from the table */
27
32
  export function isColumnHidden(spec: { annotations?: Annotation }): boolean {
28
33
  return readAnnotation(spec, Annotation.Table.Visibility) === "hidden";
@@ -64,47 +69,36 @@ export function getOrderPriority(
64
69
  * (first-match-wins, preserving original rule order).
65
70
  *
66
71
  * Predicate-based rules (`ColumnMatcher`) are evaluated directly on the spec.
67
- * Selector-based rules (`ColumnSelector`) are matched via `PFrameSpecDriver.discoverColumns`
68
- * using the same engine as `ColumnCollection.findColumns` — no client-side matcher.
72
+ * Selector-based rules (`ColumnSelector`) are matched via the
73
+ * `columnsCollection` service — the inline column ids must be resolvable in
74
+ * the active render ctx for the host to read their specs.
69
75
  */
70
- export function evaluateRules<R extends { match: ColumnMatcher | ColumnSelector }>(
76
+ export function evaluateRules<R extends { match: ColumnSelector }>(
71
77
  rules: R[],
72
- columns: RuleColumn[],
73
- pframeSpec: PFrameSpecDriver,
78
+ columns: ColumnRecipe[],
74
79
  ): Map<PObjectId, R> {
75
80
  const result = new Map<PObjectId, R>();
76
81
  if (rules.length === 0 || columns.length === 0) return result;
77
82
 
78
- const hasSelectorRules = rules.some((rule) => typeof rule.match !== "function");
83
+ const selectorRules = rules.filter((rule) => typeof rule.match !== "function");
79
84
  const selectorHitsByRule = new Map<R, Set<PObjectId>>();
80
85
 
81
- if (hasSelectorRules) {
82
- const dedupedColumns = dedupeById(columns);
83
- const pColumns = dedupedColumns.map((c) => ({ id: c.id, spec: c.spec, data: undefined }));
84
- const collection = new ColumnCollectionBuilder(pframeSpec)
85
- .addSource(new ArrayColumnProvider(pColumns))
86
- .build();
87
- if (collection === undefined) return result;
88
-
89
- try {
90
- for (const rule of rules) {
91
- if (typeof rule.match === "function") continue;
92
- const hits = collection.findColumns({ include: rule.match });
93
- selectorHitsByRule.set(rule, new Set(hits.map((h) => h.id)));
94
- }
95
- } finally {
96
- collection.dispose();
86
+ if (selectorRules.length > 0) {
87
+ const baseColumns = uniqBy(columns, (col) => col.id);
88
+ const baseCollection = ColumnsCollection([{ columns: baseColumns, isFinal: true }]);
89
+ for (const rule of selectorRules) {
90
+ const hitIds = baseCollection.filter({ include: rule.match }).getColumnIds();
91
+ if (hitIds.length === 0) return result;
92
+ selectorHitsByRule.set(rule, new Set(hitIds.map((id) => extractPObjectId(id))));
97
93
  }
98
94
  }
99
95
 
100
96
  for (const col of columns) {
97
+ const colKey = extractPObjectId(col.id);
101
98
  for (const rule of rules) {
102
- const matches =
103
- typeof rule.match === "function"
104
- ? rule.match(col.spec)
105
- : (selectorHitsByRule.get(rule)?.has(col.id) ?? false);
99
+ const matches = selectorHitsByRule.get(rule)?.has(colKey) ?? false;
106
100
  if (matches) {
107
- result.set(col.id, rule);
101
+ result.set(colKey, rule);
108
102
  break;
109
103
  }
110
104
  }
@@ -112,146 +106,46 @@ export function evaluateRules<R extends { match: ColumnMatcher | ColumnSelector
112
106
  return result;
113
107
  }
114
108
 
115
- function dedupeById(columns: RuleColumn[]): RuleColumn[] {
116
- const seen = new Set<PObjectId>();
117
- const result: RuleColumn[] = [];
118
- for (const col of columns) {
119
- if (seen.has(col.id)) continue;
120
- seen.add(col.id);
121
- result.push(col);
122
- }
123
- return result;
124
- }
125
-
126
109
  /**
127
- * Writes derived labels into column and axis annotations.
128
- * Returns new column objects with modified specs — original columns are not mutated.
110
+ * Build a sidecar map `columnId → AnnotationDataStatus` derived from each
111
+ * recipe's own status. This is *rendering* metadata — kept out of the spec
112
+ * so it cannot perturb column identity (id-bearing spec overrides would
113
+ * diverge the visible PTable's column ids from the full table / pframe).
129
114
  *
130
- * For each column: writes derived label into Annotation.Label (if present in derivedLabels).
131
- * For each axis in column specs: writes derived axis label into AxisSpec annotations.
132
- */
133
- export function withLabelAnnotations<
134
- T extends {
135
- readonly id: PObjectId;
136
- readonly spec: PColumnSpec;
137
- },
138
- >(derivedLabels: undefined | Record<string, string>, columns: T[]): T[] {
139
- if (derivedLabels === undefined) return columns;
140
- return columns.map((col) => {
141
- const colLabel = derivedLabels[col.id];
142
- return {
143
- ...col,
144
- spec: {
145
- ...col.spec,
146
- ...(isNil(colLabel)
147
- ? {}
148
- : { annotations: { ...col.spec.annotations, [Annotation.Label]: colLabel } }),
149
- axesSpec: col.spec.axesSpec.map((axis) => {
150
- const label = derivedLabels[canonicalizeAxisId(axis)];
151
- return isNil(label)
152
- ? axis
153
- : { ...axis, annotations: { ...axis.annotations, [Annotation.Label]: label } };
154
- }),
155
- },
156
- } as T;
157
- });
158
- }
159
-
160
- export function withDataStatusAnnotations<
161
- T extends {
162
- readonly spec: PColumnSpec;
163
- readonly dataStatus: ColumnDataStatus;
164
- },
165
- >(columns: T[]): T[] {
166
- return columns.map((col) => {
167
- return {
168
- ...col,
169
- spec: {
170
- ...col.spec,
171
- annotations: {
172
- ...col.spec.annotations,
173
- [Annotation.DataStatus]: col.dataStatus,
174
- },
175
- },
176
- } as T;
177
- });
178
- }
179
-
180
- /**
181
- * Writes effective display properties (OrderPriority, Visibility) from precomputed rule maps
182
- * into column annotations. Returns new column objects — originals are not mutated.
183
- */
184
- export function withTableVisualAnnotations<
185
- T extends { readonly id: PObjectId; readonly spec: PColumnSpec },
186
- >(
187
- visibilityByColId: undefined | Map<PObjectId, ColumnVisibilityRule>,
188
- orderByColId: undefined | Map<PObjectId, ColumnOrderRule>,
189
- columns: T[],
190
- ): T[] {
191
- if (visibilityByColId === undefined && orderByColId === undefined) return columns;
192
- return columns.map((col) => {
193
- const annotations = { ...col.spec.annotations };
194
-
195
- const visibility = getEffectiveVisibility(col, visibilityByColId);
196
- if (!isNil(visibility)) annotations[Annotation.Table.Visibility] = visibility;
197
-
198
- const orderPriority = getOrderPriority(col, orderByColId);
199
- if (!isNil(orderPriority)) annotations[Annotation.Table.OrderPriority] = String(orderPriority);
200
-
201
- return {
202
- ...col,
203
- spec: {
204
- ...col.spec,
205
- annotations: annotations,
206
- },
207
- } as T;
208
- });
209
- }
210
-
211
- /**
212
- * Writes derived info annotations into column annotations.
213
- * Columns without an info entry are passed through unchanged.
115
+ * Mapping `ColumnFieldStatus` × actual byte-presence → `AnnotationDataStatus`:
116
+ * - `absent` → `"absent"`
117
+ * - `resolving` → `"computing"`
118
+ * - `present` + `hasColumnData()` → `"ready"`
119
+ * - `present` + no bytes yet → `"computing"`
120
+ *
121
+ * Intentionally scoped to visible columns — the probe is meaningful only for
122
+ * what the user will actually see.
214
123
  */
215
- export function withInfoAnnotations<
216
- T extends { readonly id: PObjectId; readonly spec: PColumnSpec },
217
- >(infoById: undefined | Record<string, string>, columns: T[]): T[] {
218
- if (isNil(infoById)) return columns;
219
- return columns.map((col) => {
220
- const info = infoById[col.id];
221
- if (isNil(info)) return col;
222
- return {
223
- ...col,
224
- spec: {
225
- ...col.spec,
226
- annotations: { ...col.spec.annotations, [Annotation.Table.Info]: info },
227
- },
228
- } as T;
229
- });
124
+ export function buildDataStatusMap(
125
+ columns: ColumnRecipe[],
126
+ opts: { ctx?: GlobalCfgRenderCtx } = {},
127
+ ): Record<ColumnUniversalId, AnnotationDataStatus> {
128
+ return columns.reduce(
129
+ (acc, c) => ((acc[c.id] = deriveDataStatus(c, opts)), acc),
130
+ {} as Record<ColumnUniversalId, AnnotationDataStatus>,
131
+ );
230
132
  }
231
133
 
232
- export function withHidenAxesAnnotations<T extends { readonly spec: PColumnSpec }>(
233
- columns: T[],
234
- ): T[] {
235
- return columns.map(
236
- (col) =>
237
- ({
238
- ...col,
239
- spec: {
240
- ...col.spec,
241
- axesSpec: col.spec.axesSpec.map((axis) => ({
242
- ...axis,
243
- annotations: { ...axis.annotations, [Annotation.Table.Visibility]: "hidden" },
244
- })),
245
- },
246
- }) as T,
247
- );
134
+ function deriveDataStatus(
135
+ column: ColumnRecipe,
136
+ opts: { ctx?: GlobalCfgRenderCtx },
137
+ ): AnnotationDataStatus {
138
+ const field = column.getDataStatus();
139
+ if (field === "absent") return "absent";
140
+ if (field === "resolving") return "computing";
141
+ return hasColumnData(column, opts) ? "ready" : "computing";
248
142
  }
249
143
 
250
144
  /** Column shape required by label derivation. */
251
145
  export type LabelableColumn = {
252
- readonly id: PObjectId;
146
+ readonly id: ColumnUniversalId;
253
147
  readonly spec: PColumnSpec;
254
- readonly linkerPath?: MatchVariant["path"];
148
+ readonly linkerPath?: ReadonlyArray<{ readonly linker: { readonly spec: PColumnSpec } }>;
255
149
  readonly qualifications?: MatchQualifications;
256
150
  };
257
151
 
@@ -263,9 +157,7 @@ export function deriveAllLabels(options: {
263
157
  const { columns, deriveLabelsOptions } = options;
264
158
  const entries = columns.map((c) => ({
265
159
  spec: c.spec,
266
- linkerPath: c.linkerPath?.map((step) => ({
267
- spec: step.linker.spec,
268
- })),
160
+ linkerPath: c.linkerPath?.map((step) => ({ spec: step.linker.spec })),
269
161
  qualifications: c.qualifications,
270
162
  }));
271
163
  const columnLabels = deriveDistinctLabels(entries, deriveLabelsOptions).reduce(
@@ -277,20 +169,20 @@ export function deriveAllLabels(options: {
277
169
 
278
170
  /** Column shape required by tooltip derivation. */
279
171
  export type TooltipableColumn = {
280
- readonly id: PObjectId | DiscoveredPColumnId;
172
+ readonly id: ColumnUniversalId;
281
173
  readonly spec: PColumnSpec;
282
174
  readonly originalId?: PObjectId;
283
- readonly linkerPath?: MatchVariant["path"];
175
+ readonly linkerPath?: ReadonlyArray<{ readonly linker: { readonly spec: PColumnSpec } }>;
284
176
  readonly qualifications?: MatchQualifications;
285
177
  };
286
178
 
287
179
  /** Derive origin tooltips for columns whose qualifications or linker path carry info. */
288
180
  export function deriveAllTooltips(options: {
289
181
  columns: TooltipableColumn[];
290
- }): Record<DiscoveredPColumnId, string> {
182
+ }): Record<ColumnUniversalId, string> {
291
183
  const { columns } = options;
292
184
 
293
- const variantCountByOriginal = columns.reduce<Map<PObjectId, number>>((acc, c) => {
185
+ const variantCountByOriginal = columns.reduce<Map<ColumnUniversalId, number>>((acc, c) => {
294
186
  return acc.set(getField(c, "originalId") ?? c.id, (acc.get(c.originalId ?? c.id) ?? 0) + 1);
295
187
  }, new Map());
296
188
 
@@ -311,7 +203,7 @@ export function deriveAllTooltips(options: {
311
203
 
312
204
  return { entries, variantSeen };
313
205
  },
314
- { entries: [] as TooltipEntry[], variantSeen: new Map<PObjectId, number>() },
206
+ { entries: [] as TooltipEntry[], variantSeen: new Map<ColumnUniversalId, number>() },
315
207
  );
316
208
 
317
209
  const tooltips = deriveDistinctTooltips(entries);
@@ -1,6 +1,6 @@
1
1
  import type { AxisSpec } from "@milaboratories/pl-model-common";
2
2
  import type { RenderCtxBase } from "../../render";
3
- import type { PlDataTableSheet } from "./typesV7";
3
+ import type { PlDataTableSheet } from "./typesV8";
4
4
 
5
5
  /** Create sheet entries for PlDataTable */
6
6
  export function createPlDataTableSheet<A, U>(
@@ -9,11 +9,14 @@ export type {
9
9
  PTableParamsV2,
10
10
  PlDataTableStateV2Normalized,
11
11
  PlDataTableModel,
12
+ PlDataTableColumnMeta,
13
+ PlDataTableAxisMeta,
14
+ PlDataTableColumnsMeta,
12
15
  PlDataTableFilterSpecLeaf,
13
16
  PlDataTableFilterMeta,
14
17
  PlDataTableFilters,
15
18
  PlDataTableFiltersWithMeta,
16
- } from "./typesV7";
19
+ } from "./typesV8";
17
20
 
18
21
  export type { PlDataTableStateV2 } from "./state-migration";
19
22
  export {
@@ -37,7 +40,6 @@ export type {
37
40
  ColumnsDisplayOptions,
38
41
  ColumnOrderRule,
39
42
  ColumnVisibilityRule,
40
- ColumnMatcher,
41
43
  ColumnsSelectorConfig,
42
44
  createPlDataTableOptionsV3,
43
45
  } from "./createPlDataTable/createPlDataTableV3";
@@ -1,41 +1,12 @@
1
1
  import type { AxisId, PColumn, PColumnSpec, PObjectId } from "@milaboratories/pl-model-common";
2
- import {
3
- getAxisId,
4
- isLabelColumn,
5
- matchAxisId,
6
- PColumnName,
7
- } from "@milaboratories/pl-model-common";
8
- import type { PColumnDataUniversal, RenderCtxBase } from "../../render";
9
- import { ColumnCollectionBuilder, collectCtxColumnSnapshotProviders } from "../../columns";
10
-
11
- /**
12
- * Get all label columns visible in the current render context
13
- * (result pool + block outputs + prerun).
14
- */
15
- export function getAllLabelColumns<A, U>(
16
- ctx: RenderCtxBase<A, U>,
17
- ): PColumn<PColumnDataUniversal>[] {
18
- const pframeSpec = ctx.getService("pframeSpec");
19
- const collection = new ColumnCollectionBuilder(pframeSpec)
20
- .addSources(collectCtxColumnSnapshotProviders(ctx))
21
- .build({ allowPartialColumnList: true });
22
- try {
23
- return collection
24
- .findColumns({ include: { name: PColumnName.Label, axes: [] } })
25
- .reduce<PColumn<PColumnDataUniversal>[]>((acc, hit) => {
26
- const data = hit.data?.get();
27
- return data === undefined ? acc : [...acc, { id: hit.id, spec: hit.spec, data }];
28
- }, []);
29
- } finally {
30
- collection.dispose();
31
- }
32
- }
2
+ import { getAxisId, isLabelColumn, matchAxisId } from "@milaboratories/pl-model-common";
3
+ import type { PColumnDataUniversal } from "../../render";
33
4
 
34
5
  /** Get label columns matching the provided columns from the result pool */
35
6
  export function getMatchingLabelColumns(
36
7
  columns: { spec: PColumnSpec }[],
37
- allLabelColumns: PColumn<PColumnDataUniversal>[],
38
- ): PColumn<PColumnDataUniversal>[] {
8
+ allLabelColumns: PColumn<undefined | PColumnDataUniversal>[],
9
+ ): PColumn<undefined | PColumnDataUniversal>[] {
39
10
  // split input columns into label and value columns
40
11
  const inputLabelColumns: typeof columns = [];
41
12
  const inputValueColumns: typeof columns = [];