@platforma-sdk/model 1.58.3 → 1.58.9

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 (366) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +43 -0
  2. package/dist/_virtual/_rolldown/runtime.js +18 -0
  3. package/dist/annotations/converter.cjs +15 -20
  4. package/dist/annotations/converter.cjs.map +1 -1
  5. package/dist/annotations/converter.d.ts +6 -2
  6. package/dist/annotations/converter.js +14 -18
  7. package/dist/annotations/converter.js.map +1 -1
  8. package/dist/annotations/index.cjs +1 -0
  9. package/dist/annotations/index.d.ts +2 -3
  10. package/dist/annotations/index.js +1 -0
  11. package/dist/annotations/types.d.ts +21 -16
  12. package/dist/bconfig/index.cjs +2 -0
  13. package/dist/bconfig/index.d.ts +5 -6
  14. package/dist/bconfig/index.js +2 -0
  15. package/dist/bconfig/lambdas.d.ts +52 -52
  16. package/dist/bconfig/normalization.cjs +13 -18
  17. package/dist/bconfig/normalization.cjs.map +1 -1
  18. package/dist/bconfig/normalization.d.ts +10 -6
  19. package/dist/bconfig/normalization.js +12 -16
  20. package/dist/bconfig/normalization.js.map +1 -1
  21. package/dist/bconfig/types.cjs +4 -3
  22. package/dist/bconfig/types.cjs.map +1 -1
  23. package/dist/bconfig/types.d.ts +10 -5
  24. package/dist/bconfig/types.js +4 -2
  25. package/dist/bconfig/types.js.map +1 -1
  26. package/dist/bconfig/util.d.ts +7 -4
  27. package/dist/bconfig/v3.d.ts +10 -6
  28. package/dist/block_api_v1.d.ts +62 -58
  29. package/dist/block_api_v2.d.ts +51 -47
  30. package/dist/block_api_v3.d.ts +33 -29
  31. package/dist/block_migrations.cjs +481 -413
  32. package/dist/block_migrations.cjs.map +1 -1
  33. package/dist/block_migrations.d.ts +258 -204
  34. package/dist/block_migrations.js +482 -408
  35. package/dist/block_migrations.js.map +1 -1
  36. package/dist/block_model.cjs +312 -343
  37. package/dist/block_model.cjs.map +1 -1
  38. package/dist/block_model.d.ts +143 -147
  39. package/dist/block_model.js +312 -341
  40. package/dist/block_model.js.map +1 -1
  41. package/dist/block_model_legacy.cjs +231 -255
  42. package/dist/block_model_legacy.cjs.map +1 -1
  43. package/dist/block_model_legacy.d.ts +108 -106
  44. package/dist/block_model_legacy.js +231 -253
  45. package/dist/block_model_legacy.js.map +1 -1
  46. package/dist/block_state_patch.d.ts +10 -10
  47. package/dist/block_state_util.cjs +15 -19
  48. package/dist/block_state_util.cjs.map +1 -1
  49. package/dist/block_state_util.d.ts +14 -13
  50. package/dist/block_state_util.js +15 -18
  51. package/dist/block_state_util.js.map +1 -1
  52. package/dist/block_storage.cjs +233 -238
  53. package/dist/block_storage.cjs.map +1 -1
  54. package/dist/block_storage.d.ts +62 -78
  55. package/dist/block_storage.js +234 -237
  56. package/dist/block_storage.js.map +1 -1
  57. package/dist/block_storage_callbacks.cjs +156 -195
  58. package/dist/block_storage_callbacks.cjs.map +1 -1
  59. package/dist/block_storage_callbacks.js +156 -192
  60. package/dist/block_storage_callbacks.js.map +1 -1
  61. package/dist/block_storage_facade.cjs +29 -85
  62. package/dist/block_storage_facade.cjs.map +1 -1
  63. package/dist/block_storage_facade.d.ts +83 -126
  64. package/dist/block_storage_facade.js +29 -83
  65. package/dist/block_storage_facade.js.map +1 -1
  66. package/dist/components/PFrameForGraphs.cjs +26 -24
  67. package/dist/components/PFrameForGraphs.cjs.map +1 -1
  68. package/dist/components/PFrameForGraphs.d.ts +12 -7
  69. package/dist/components/PFrameForGraphs.js +25 -22
  70. package/dist/components/PFrameForGraphs.js.map +1 -1
  71. package/dist/components/PlAnnotations/filter.d.ts +62 -79
  72. package/dist/components/PlAnnotations/filters_ui.cjs +135 -171
  73. package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
  74. package/dist/components/PlAnnotations/filters_ui.d.ts +48 -46
  75. package/dist/components/PlAnnotations/filters_ui.js +135 -170
  76. package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
  77. package/dist/components/PlAnnotations/index.d.ts +2 -3
  78. package/dist/components/PlDataTable/index.cjs +2 -0
  79. package/dist/components/PlDataTable/index.d.ts +3 -5
  80. package/dist/components/PlDataTable/index.js +2 -0
  81. package/dist/components/PlDataTable/labels.cjs +59 -81
  82. package/dist/components/PlDataTable/labels.cjs.map +1 -1
  83. package/dist/components/PlDataTable/labels.js +58 -79
  84. package/dist/components/PlDataTable/labels.js.map +1 -1
  85. package/dist/components/PlDataTable/state-migration.cjs +186 -144
  86. package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
  87. package/dist/components/PlDataTable/state-migration.d.ts +85 -82
  88. package/dist/components/PlDataTable/state-migration.js +185 -142
  89. package/dist/components/PlDataTable/state-migration.js.map +1 -1
  90. package/dist/components/PlDataTable/table.cjs +172 -194
  91. package/dist/components/PlDataTable/table.cjs.map +1 -1
  92. package/dist/components/PlDataTable/table.d.ts +16 -12
  93. package/dist/components/PlDataTable/table.js +171 -192
  94. package/dist/components/PlDataTable/table.js.map +1 -1
  95. package/dist/components/PlDataTable/v4.d.ts +84 -119
  96. package/dist/components/PlDataTable/v5.d.ts +80 -103
  97. package/dist/components/PlMultiSequenceAlignment.cjs +27 -29
  98. package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -1
  99. package/dist/components/PlMultiSequenceAlignment.d.ts +36 -27
  100. package/dist/components/PlMultiSequenceAlignment.js +26 -27
  101. package/dist/components/PlMultiSequenceAlignment.js.map +1 -1
  102. package/dist/components/PlSelectionModel.cjs +7 -6
  103. package/dist/components/PlSelectionModel.cjs.map +1 -1
  104. package/dist/components/PlSelectionModel.d.ts +10 -8
  105. package/dist/components/PlSelectionModel.js +7 -5
  106. package/dist/components/PlSelectionModel.js.map +1 -1
  107. package/dist/components/index.cjs +8 -0
  108. package/dist/components/index.d.ts +11 -6
  109. package/dist/components/index.js +8 -0
  110. package/dist/config/actions.cjs +138 -171
  111. package/dist/config/actions.cjs.map +1 -1
  112. package/dist/config/actions.d.ts +47 -47
  113. package/dist/config/actions.js +146 -178
  114. package/dist/config/actions.js.map +1 -1
  115. package/dist/config/actions_kinds.d.ts +114 -121
  116. package/dist/config/index.cjs +1 -0
  117. package/dist/config/index.d.ts +6 -7
  118. package/dist/config/index.js +1 -0
  119. package/dist/config/model.d.ts +131 -127
  120. package/dist/config/model_meta.d.ts +4 -1
  121. package/dist/config/type_engine.d.ts +22 -21
  122. package/dist/config/type_util.d.ts +12 -10
  123. package/dist/env_value.cjs +5 -6
  124. package/dist/env_value.cjs.map +1 -1
  125. package/dist/env_value.d.ts +4 -1
  126. package/dist/env_value.js +5 -5
  127. package/dist/env_value.js.map +1 -1
  128. package/dist/filters/converters/filterToQuery.cjs +273 -239
  129. package/dist/filters/converters/filterToQuery.cjs.map +1 -1
  130. package/dist/filters/converters/filterToQuery.d.ts +6 -2
  131. package/dist/filters/converters/filterToQuery.js +272 -237
  132. package/dist/filters/converters/filterToQuery.js.map +1 -1
  133. package/dist/filters/converters/filterUiToExpressionImpl.cjs +56 -85
  134. package/dist/filters/converters/filterUiToExpressionImpl.cjs.map +1 -1
  135. package/dist/filters/converters/filterUiToExpressionImpl.d.ts +8 -4
  136. package/dist/filters/converters/filterUiToExpressionImpl.js +55 -83
  137. package/dist/filters/converters/filterUiToExpressionImpl.js.map +1 -1
  138. package/dist/filters/converters/index.cjs +2 -0
  139. package/dist/filters/converters/index.d.ts +2 -3
  140. package/dist/filters/converters/index.js +2 -0
  141. package/dist/filters/distill.cjs +59 -50
  142. package/dist/filters/distill.cjs.map +1 -1
  143. package/dist/filters/distill.d.ts +6 -3
  144. package/dist/filters/distill.js +58 -48
  145. package/dist/filters/distill.js.map +1 -1
  146. package/dist/filters/index.cjs +4 -0
  147. package/dist/filters/index.d.ts +5 -4
  148. package/dist/filters/index.js +4 -0
  149. package/dist/filters/traverse.cjs +31 -40
  150. package/dist/filters/traverse.cjs.map +1 -1
  151. package/dist/filters/traverse.js +31 -39
  152. package/dist/filters/traverse.js.map +1 -1
  153. package/dist/filters/types.d.ts +10 -7
  154. package/dist/index.cjs +193 -187
  155. package/dist/index.d.ts +61 -28
  156. package/dist/index.js +49 -41
  157. package/dist/internal.cjs +48 -62
  158. package/dist/internal.cjs.map +1 -1
  159. package/dist/internal.js +49 -60
  160. package/dist/internal.js.map +1 -1
  161. package/dist/package.cjs +12 -0
  162. package/dist/package.cjs.map +1 -0
  163. package/dist/package.js +6 -0
  164. package/dist/package.js.map +1 -0
  165. package/dist/pframe.cjs +32 -37
  166. package/dist/pframe.cjs.map +1 -1
  167. package/dist/pframe.d.ts +14 -10
  168. package/dist/pframe.js +32 -35
  169. package/dist/pframe.js.map +1 -1
  170. package/dist/pframe_utils/axes.cjs +81 -114
  171. package/dist/pframe_utils/axes.cjs.map +1 -1
  172. package/dist/pframe_utils/axes.d.ts +10 -13
  173. package/dist/pframe_utils/axes.js +80 -112
  174. package/dist/pframe_utils/axes.js.map +1 -1
  175. package/dist/pframe_utils/columns.cjs +61 -81
  176. package/dist/pframe_utils/columns.cjs.map +1 -1
  177. package/dist/pframe_utils/columns.d.ts +15 -6
  178. package/dist/pframe_utils/columns.js +60 -79
  179. package/dist/pframe_utils/columns.js.map +1 -1
  180. package/dist/pframe_utils/index.cjs +232 -253
  181. package/dist/pframe_utils/index.cjs.map +1 -1
  182. package/dist/pframe_utils/index.d.ts +39 -35
  183. package/dist/pframe_utils/index.js +231 -251
  184. package/dist/pframe_utils/index.js.map +1 -1
  185. package/dist/platforma.d.ts +48 -46
  186. package/dist/plugin_handle.cjs +6 -14
  187. package/dist/plugin_handle.cjs.map +1 -1
  188. package/dist/plugin_handle.d.ts +20 -25
  189. package/dist/plugin_handle.js +6 -13
  190. package/dist/plugin_handle.js.map +1 -1
  191. package/dist/plugin_model.cjs +364 -163
  192. package/dist/plugin_model.cjs.map +1 -1
  193. package/dist/plugin_model.d.ts +280 -129
  194. package/dist/plugin_model.js +362 -163
  195. package/dist/plugin_model.js.map +1 -1
  196. package/dist/raw_globals.cjs +10 -22
  197. package/dist/raw_globals.cjs.map +1 -1
  198. package/dist/raw_globals.d.ts +8 -5
  199. package/dist/raw_globals.js +10 -20
  200. package/dist/raw_globals.js.map +1 -1
  201. package/dist/ref_util.cjs +14 -13
  202. package/dist/ref_util.cjs.map +1 -1
  203. package/dist/ref_util.d.ts +18 -12
  204. package/dist/ref_util.js +14 -11
  205. package/dist/ref_util.js.map +1 -1
  206. package/dist/render/accessor.cjs +213 -226
  207. package/dist/render/accessor.cjs.map +1 -1
  208. package/dist/render/accessor.d.ts +115 -120
  209. package/dist/render/accessor.js +212 -224
  210. package/dist/render/accessor.js.map +1 -1
  211. package/dist/render/api.cjs +478 -580
  212. package/dist/render/api.cjs.map +1 -1
  213. package/dist/render/api.d.ts +207 -209
  214. package/dist/render/api.js +476 -578
  215. package/dist/render/api.js.map +1 -1
  216. package/dist/render/future.cjs +28 -32
  217. package/dist/render/future.cjs.map +1 -1
  218. package/dist/render/future.d.ts +15 -11
  219. package/dist/render/future.js +28 -30
  220. package/dist/render/future.js.map +1 -1
  221. package/dist/render/index.cjs +8 -0
  222. package/dist/render/index.d.ts +10 -8
  223. package/dist/render/index.js +8 -0
  224. package/dist/render/internal.cjs +33 -29
  225. package/dist/render/internal.cjs.map +1 -1
  226. package/dist/render/internal.d.ts +78 -72
  227. package/dist/render/internal.js +29 -26
  228. package/dist/render/internal.js.map +1 -1
  229. package/dist/render/traversal_ops.d.ts +42 -43
  230. package/dist/render/util/axis_filtering.cjs +63 -86
  231. package/dist/render/util/axis_filtering.cjs.map +1 -1
  232. package/dist/render/util/axis_filtering.d.ts +10 -7
  233. package/dist/render/util/axis_filtering.js +63 -85
  234. package/dist/render/util/axis_filtering.js.map +1 -1
  235. package/dist/render/util/column_collection.cjs +266 -321
  236. package/dist/render/util/column_collection.cjs.map +1 -1
  237. package/dist/render/util/column_collection.d.ts +47 -47
  238. package/dist/render/util/column_collection.js +264 -319
  239. package/dist/render/util/column_collection.js.map +1 -1
  240. package/dist/render/util/index.cjs +4 -0
  241. package/dist/render/util/index.d.ts +4 -5
  242. package/dist/render/util/index.js +4 -0
  243. package/dist/render/util/label.cjs +129 -163
  244. package/dist/render/util/label.cjs.map +1 -1
  245. package/dist/render/util/label.d.ts +45 -46
  246. package/dist/render/util/label.js +128 -161
  247. package/dist/render/util/label.js.map +1 -1
  248. package/dist/render/util/pcolumn_data.cjs +315 -375
  249. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  250. package/dist/render/util/pcolumn_data.d.ts +33 -32
  251. package/dist/render/util/pcolumn_data.js +314 -373
  252. package/dist/render/util/pcolumn_data.js.map +1 -1
  253. package/dist/render/util/pframe_upgraders.cjs +37 -42
  254. package/dist/render/util/pframe_upgraders.cjs.map +1 -1
  255. package/dist/render/util/pframe_upgraders.js +37 -41
  256. package/dist/render/util/pframe_upgraders.js.map +1 -1
  257. package/dist/render/util/split_selectors.d.ts +13 -9
  258. package/dist/version.cjs +6 -8
  259. package/dist/version.cjs.map +1 -1
  260. package/dist/version.d.ts +7 -4
  261. package/dist/version.js +5 -5
  262. package/dist/version.js.map +1 -1
  263. package/package.json +9 -3
  264. package/src/block_migrations.test.ts +184 -14
  265. package/src/block_migrations.ts +185 -30
  266. package/src/block_model.ts +111 -66
  267. package/src/block_storage.test.ts +147 -3
  268. package/src/block_storage.ts +43 -8
  269. package/src/block_storage_callbacks.ts +9 -4
  270. package/src/env_value.ts +0 -2
  271. package/src/filters/distill.ts +17 -6
  272. package/src/index.ts +12 -11
  273. package/src/internal.ts +0 -1
  274. package/src/platforma.ts +4 -4
  275. package/src/plugin_handle.ts +1 -1
  276. package/src/plugin_model.test.ts +217 -21
  277. package/src/plugin_model.ts +450 -55
  278. package/src/raw_globals.ts +0 -1
  279. package/dist/annotations/converter.d.ts.map +0 -1
  280. package/dist/annotations/index.d.ts.map +0 -1
  281. package/dist/annotations/types.d.ts.map +0 -1
  282. package/dist/bconfig/index.d.ts.map +0 -1
  283. package/dist/bconfig/lambdas.d.ts.map +0 -1
  284. package/dist/bconfig/normalization.d.ts.map +0 -1
  285. package/dist/bconfig/types.d.ts.map +0 -1
  286. package/dist/bconfig/util.d.ts.map +0 -1
  287. package/dist/bconfig/v3.d.ts.map +0 -1
  288. package/dist/block_api_v1.d.ts.map +0 -1
  289. package/dist/block_api_v2.d.ts.map +0 -1
  290. package/dist/block_api_v3.d.ts.map +0 -1
  291. package/dist/block_migrations.d.ts.map +0 -1
  292. package/dist/block_model.d.ts.map +0 -1
  293. package/dist/block_model_legacy.d.ts.map +0 -1
  294. package/dist/block_state_patch.d.ts.map +0 -1
  295. package/dist/block_state_util.d.ts.map +0 -1
  296. package/dist/block_storage.d.ts.map +0 -1
  297. package/dist/block_storage_callbacks.d.ts +0 -115
  298. package/dist/block_storage_callbacks.d.ts.map +0 -1
  299. package/dist/block_storage_facade.d.ts.map +0 -1
  300. package/dist/components/PFrameForGraphs.d.ts.map +0 -1
  301. package/dist/components/PlAnnotations/filter.d.ts.map +0 -1
  302. package/dist/components/PlAnnotations/filters_ui.d.ts.map +0 -1
  303. package/dist/components/PlAnnotations/index.d.ts.map +0 -1
  304. package/dist/components/PlAnnotations/types.d.ts +0 -3
  305. package/dist/components/PlAnnotations/types.d.ts.map +0 -1
  306. package/dist/components/PlDataTable/index.d.ts.map +0 -1
  307. package/dist/components/PlDataTable/labels.d.ts +0 -7
  308. package/dist/components/PlDataTable/labels.d.ts.map +0 -1
  309. package/dist/components/PlDataTable/state-migration.d.ts.map +0 -1
  310. package/dist/components/PlDataTable/table.d.ts.map +0 -1
  311. package/dist/components/PlDataTable/v4.d.ts.map +0 -1
  312. package/dist/components/PlDataTable/v5.d.ts.map +0 -1
  313. package/dist/components/PlMultiSequenceAlignment.d.ts.map +0 -1
  314. package/dist/components/PlSelectionModel.d.ts.map +0 -1
  315. package/dist/components/index.d.ts.map +0 -1
  316. package/dist/config/actions.d.ts.map +0 -1
  317. package/dist/config/actions_kinds.d.ts.map +0 -1
  318. package/dist/config/index.d.ts.map +0 -1
  319. package/dist/config/model.d.ts.map +0 -1
  320. package/dist/config/model_meta.d.ts.map +0 -1
  321. package/dist/config/type_engine.d.ts.map +0 -1
  322. package/dist/config/type_util.d.ts.map +0 -1
  323. package/dist/env_value.d.ts.map +0 -1
  324. package/dist/filters/converters/filterToQuery.d.ts.map +0 -1
  325. package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +0 -1
  326. package/dist/filters/converters/index.d.ts.map +0 -1
  327. package/dist/filters/distill.d.ts.map +0 -1
  328. package/dist/filters/index.d.ts.map +0 -1
  329. package/dist/filters/traverse.d.ts +0 -27
  330. package/dist/filters/traverse.d.ts.map +0 -1
  331. package/dist/filters/types.d.ts.map +0 -1
  332. package/dist/index.cjs.map +0 -1
  333. package/dist/index.d.ts.map +0 -1
  334. package/dist/index.js.map +0 -1
  335. package/dist/internal.d.ts +0 -36
  336. package/dist/internal.d.ts.map +0 -1
  337. package/dist/package.json.cjs +0 -6
  338. package/dist/package.json.cjs.map +0 -1
  339. package/dist/package.json.js +0 -4
  340. package/dist/package.json.js.map +0 -1
  341. package/dist/pframe.d.ts.map +0 -1
  342. package/dist/pframe_utils/axes.d.ts.map +0 -1
  343. package/dist/pframe_utils/columns.d.ts.map +0 -1
  344. package/dist/pframe_utils/index.d.ts.map +0 -1
  345. package/dist/pframe_utils/querySpec.d.ts +0 -2
  346. package/dist/pframe_utils/querySpec.d.ts.map +0 -1
  347. package/dist/platforma.d.ts.map +0 -1
  348. package/dist/plugin_handle.d.ts.map +0 -1
  349. package/dist/plugin_model.d.ts.map +0 -1
  350. package/dist/raw_globals.d.ts.map +0 -1
  351. package/dist/ref_util.d.ts.map +0 -1
  352. package/dist/render/accessor.d.ts.map +0 -1
  353. package/dist/render/api.d.ts.map +0 -1
  354. package/dist/render/future.d.ts.map +0 -1
  355. package/dist/render/index.d.ts.map +0 -1
  356. package/dist/render/internal.d.ts.map +0 -1
  357. package/dist/render/traversal_ops.d.ts.map +0 -1
  358. package/dist/render/util/axis_filtering.d.ts.map +0 -1
  359. package/dist/render/util/column_collection.d.ts.map +0 -1
  360. package/dist/render/util/index.d.ts.map +0 -1
  361. package/dist/render/util/label.d.ts.map +0 -1
  362. package/dist/render/util/pcolumn_data.d.ts.map +0 -1
  363. package/dist/render/util/pframe_upgraders.d.ts +0 -3
  364. package/dist/render/util/pframe_upgraders.d.ts.map +0 -1
  365. package/dist/render/util/split_selectors.d.ts.map +0 -1
  366. package/dist/version.d.ts.map +0 -1
@@ -1,339 +1,284 @@
1
- 'use strict';
2
-
3
- var plModelCommon = require('@milaboratories/pl-model-common');
4
- var canonicalize = require('canonicalize');
5
- var axis_filtering = require('./axis_filtering.cjs');
6
- var label = require('./label.cjs');
7
- var pcolumn_data = require('./pcolumn_data.cjs');
1
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
+ const require_axis_filtering = require('./axis_filtering.cjs');
3
+ const require_label = require('./label.cjs');
4
+ const require_pcolumn_data = require('./pcolumn_data.cjs');
5
+ let _milaboratories_pl_model_common = require("@milaboratories/pl-model-common");
6
+ let canonicalize = require("canonicalize");
7
+ canonicalize = require_runtime.__toESM(canonicalize);
8
8
 
9
+ //#region src/render/util/column_collection.ts
9
10
  function isPColumnValues(value) {
10
- if (!Array.isArray(value))
11
- return false;
12
- if (value.length === 0)
13
- return true;
14
- const first = value[0];
15
- return typeof first === "object" && first !== null && "key" in first && "val" in first;
11
+ if (!Array.isArray(value)) return false;
12
+ if (value.length === 0) return true;
13
+ const first = value[0];
14
+ return typeof first === "object" && first !== null && "key" in first && "val" in first;
16
15
  }
17
16
  /**
18
- * A simple implementation of {@link ColumnProvider} backed by a pre-defined array of columns.
19
- */
20
- class ArrayColumnProvider {
21
- columns;
22
- constructor(columns) {
23
- this.columns = columns;
24
- }
25
- selectColumns(selectors) {
26
- const predicate = typeof selectors === "function" ? selectors : plModelCommon.selectorsToPredicate(selectors);
27
- // Filter based on spec, ignoring data type for now
28
- return this.columns.filter((column) => predicate(column.spec));
29
- }
30
- }
17
+ * A simple implementation of {@link ColumnProvider} backed by a pre-defined array of columns.
18
+ */
19
+ var ArrayColumnProvider = class {
20
+ constructor(columns) {
21
+ this.columns = columns;
22
+ }
23
+ selectColumns(selectors) {
24
+ const predicate = typeof selectors === "function" ? selectors : (0, _milaboratories_pl_model_common.selectorsToPredicate)(selectors);
25
+ return this.columns.filter((column) => predicate(column.spec));
26
+ }
27
+ };
31
28
  function splitFiltersToTrace(splitFilters) {
32
- if (!splitFilters)
33
- return undefined;
34
- return splitFilters.map((filter) => ({
35
- type: `split:${plModelCommon.canonicalizeAxisId(filter.axisId)}`,
36
- label: filter.label,
37
- importance: 1_000_000, // High importance for split filters in labels
38
- }));
29
+ if (!splitFilters) return void 0;
30
+ return splitFilters.map((filter) => ({
31
+ type: `split:${(0, _milaboratories_pl_model_common.canonicalizeAxisId)(filter.axisId)}`,
32
+ label: filter.label,
33
+ importance: 1e6
34
+ }));
39
35
  }
40
36
  function splitFiltersToAxisFilter(splitFilters) {
41
- if (!splitFilters)
42
- return undefined;
43
- return splitFilters.map((filter) => [filter.axisIdx, filter.value]);
37
+ if (!splitFilters) return void 0;
38
+ return splitFilters.map((filter) => [filter.axisIdx, filter.value]);
44
39
  }
45
40
  function fallbackIdDeriver(originalId, axisFilters) {
46
- if (!axisFilters || axisFilters.length === 0)
47
- return originalId;
48
- const filtersToCanonicalize = [...axisFilters].sort((a, b) => a[0] - b[0]);
49
- return canonicalize({ id: originalId, axisFilters: filtersToCanonicalize });
41
+ if (!axisFilters || axisFilters.length === 0) return originalId;
42
+ return (0, canonicalize.default)({
43
+ id: originalId,
44
+ axisFilters: [...axisFilters].sort((a, b) => a[0] - b[0])
45
+ });
50
46
  }
51
47
  /** Checks if a selector object uses any anchor properties */
52
48
  function hasAnchors(selector) {
53
- if (!selector || typeof selector !== "object")
54
- return false;
55
- const potentialAnchored = selector;
56
- const domainHasAnchors = potentialAnchored["domain"] &&
57
- typeof potentialAnchored["domain"] === "object" &&
58
- Object.values(potentialAnchored["domain"]).some((v) => typeof v === "object" && v !== null && "anchor" in v);
59
- const axesHaveAnchors = potentialAnchored["axes"] &&
60
- Array.isArray(potentialAnchored["axes"]) &&
61
- potentialAnchored["axes"].some((a) => typeof a === "object" && a !== null && "anchor" in a);
62
- return !!potentialAnchored["domainAnchor"] || domainHasAnchors || axesHaveAnchors;
49
+ if (!selector || typeof selector !== "object") return false;
50
+ const potentialAnchored = selector;
51
+ const domainHasAnchors = potentialAnchored["domain"] && typeof potentialAnchored["domain"] === "object" && Object.values(potentialAnchored["domain"]).some((v) => typeof v === "object" && v !== null && "anchor" in v);
52
+ const axesHaveAnchors = potentialAnchored["axes"] && Array.isArray(potentialAnchored["axes"]) && potentialAnchored["axes"].some((a) => typeof a === "object" && a !== null && "anchor" in a);
53
+ return !!potentialAnchored["domainAnchor"] || domainHasAnchors || axesHaveAnchors;
63
54
  }
64
55
  /**
65
- * Derives the indices of axes marked for splitting based on the selector.
66
- * Throws an error if splitting is requested alongside `partialAxesMatch`.
67
- */
56
+ * Derives the indices of axes marked for splitting based on the selector.
57
+ * Throws an error if splitting is requested alongside `partialAxesMatch`.
58
+ */
68
59
  function getSplitAxisIndices(selector) {
69
- if (typeof selector !== "object" || !("axes" in selector) || selector.axes === undefined) {
70
- return []; // No axes specified or not an object selector, no splitting
71
- }
72
- const splitIndices = selector.axes
73
- .map((axis, index) => typeof axis === "object" && "split" in axis && axis.split === true ? index : -1)
74
- .filter((index) => index !== -1);
75
- if (splitIndices.length > 0 && selector.partialAxesMatch !== undefined) {
76
- throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");
77
- }
78
- splitIndices.sort((a, b) => a - b);
79
- return splitIndices;
80
- }
81
- class PColumnCollection {
82
- defaultProviderStore = [];
83
- providers = [
84
- new ArrayColumnProvider(this.defaultProviderStore),
85
- ];
86
- axisLabelProviders = [];
87
- constructor() { }
88
- addColumnProvider(provider) {
89
- this.providers.push(provider);
90
- return this;
91
- }
92
- addAxisLabelProvider(provider) {
93
- this.axisLabelProviders.push(provider);
94
- return this;
95
- }
96
- addColumns(columns) {
97
- this.defaultProviderStore.push(...columns);
98
- return this;
99
- }
100
- addColumn(column) {
101
- this.defaultProviderStore.push(column);
102
- return this;
103
- }
104
- /** Fetches labels for a given axis from the registered providers */
105
- findLabels(axis) {
106
- for (const provider of this.axisLabelProviders) {
107
- const labels = provider.findLabels(axis);
108
- if (labels)
109
- return labels; // First provider wins
110
- }
111
- return undefined;
112
- }
113
- getUniversalEntries(predicateOrSelectors, opts) {
114
- const { anchorCtx, labelOps: rawLabelOps, dontWaitAllData = false, overrideLabelAnnotation = false, exclude, enrichByLinkers = false, } = opts ?? {};
115
- const labelOps = {
116
- ...(overrideLabelAnnotation && rawLabelOps?.includeNativeLabel !== false
117
- ? { includeNativeLabel: true }
118
- : {}),
119
- ...rawLabelOps,
120
- };
121
- let excludePredicate = () => false;
122
- if (exclude) {
123
- const excludePredicartes = (Array.isArray(exclude) ? exclude : [exclude]).map((selector) => {
124
- if (hasAnchors(selector)) {
125
- if (!anchorCtx)
126
- throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");
127
- return plModelCommon.selectorsToPredicate(plModelCommon.resolveAnchors(anchorCtx.anchors, selector, opts));
128
- }
129
- else
130
- return plModelCommon.selectorsToPredicate(selector);
131
- });
132
- excludePredicate = (spec) => excludePredicartes.some((predicate) => predicate(spec));
133
- }
134
- const selectorsArray = typeof predicateOrSelectors === "function"
135
- ? [predicateOrSelectors]
136
- : Array.isArray(predicateOrSelectors)
137
- ? predicateOrSelectors
138
- : [predicateOrSelectors];
139
- const intermediateResults = [];
140
- const selectedNativeIds = new Set();
141
- for (const rawSelector of selectorsArray) {
142
- const usesAnchors = hasAnchors(rawSelector);
143
- let currentSelector;
144
- if (usesAnchors) {
145
- if (!anchorCtx)
146
- throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");
147
- currentSelector = plModelCommon.resolveAnchors(anchorCtx.anchors, rawSelector, opts);
148
- }
149
- else
150
- currentSelector = rawSelector;
151
- const selectedIds = new Set();
152
- const selectedColumns = [];
153
- for (const provider of this.providers) {
154
- const providerColumns = provider.selectColumns(currentSelector);
155
- for (const col of providerColumns) {
156
- if (excludePredicate(col.spec))
157
- continue;
158
- if (selectedIds.has(col.id))
159
- throw new Error(`Duplicate column id ${col.id} in provider ${provider.constructor.name}`);
160
- const nativeId = plModelCommon.deriveNativeId(col.spec);
161
- if (selectedNativeIds.has(nativeId))
162
- continue;
163
- selectedIds.add(col.id);
164
- selectedNativeIds.add(nativeId);
165
- selectedColumns.push(col);
166
- }
167
- }
168
- if (selectedColumns.length === 0)
169
- continue;
170
- const splitAxisIdxs = getSplitAxisIndices(rawSelector);
171
- const needsSplitting = splitAxisIdxs.length > 0;
172
- for (const column of selectedColumns) {
173
- if (!plModelCommon.isPColumnSpec(column.spec))
174
- continue;
175
- const originalSpec = column.spec;
176
- if (needsSplitting) {
177
- if (isPColumnValues(column.data))
178
- throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${column.id}`);
179
- const dataEntries = pcolumn_data.convertOrParsePColumnData(column.data);
180
- if (!dataEntries) {
181
- if (dontWaitAllData)
182
- continue;
183
- return undefined;
184
- }
185
- if (!plModelCommon.isPartitionedDataInfoEntries(dataEntries))
186
- throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${dataEntries.type} for column ${column.id}`);
187
- const uniqueKeys = pcolumn_data.getUniquePartitionKeys(dataEntries);
188
- const maxSplitIdx = splitAxisIdxs[splitAxisIdxs.length - 1];
189
- if (maxSplitIdx >= dataEntries.partitionKeyLength)
190
- throw new Error(`Not enough partition keys (${dataEntries.partitionKeyLength}) for requested split axes (max index ${maxSplitIdx}) in column ${originalSpec.name}`);
191
- const axesLabels = splitAxisIdxs.map((idx) => this.findLabels(plModelCommon.getAxisId(originalSpec.axesSpec[idx])));
192
- const keyCombinations = [];
193
- const generateCombinations = (currentCombo, sAxisIdx) => {
194
- if (sAxisIdx >= splitAxisIdxs.length) {
195
- keyCombinations.push([...currentCombo]);
196
- if (keyCombinations.length > 10000)
197
- throw new Error("Too many key combinations, aborting.");
198
- return;
199
- }
200
- const axisIdx = splitAxisIdxs[sAxisIdx];
201
- if (axisIdx >= uniqueKeys.length)
202
- throw new Error(`Axis index ${axisIdx} out of bounds for unique keys array (length ${uniqueKeys.length}) during split key generation for column ${column.id}`);
203
- const axisValues = uniqueKeys[axisIdx];
204
- if (!axisValues || axisValues.length === 0) {
205
- keyCombinations.length = 0; // No combinations possible if one axis has no keys
206
- return;
207
- }
208
- for (const val of axisValues) {
209
- currentCombo.push(val);
210
- generateCombinations(currentCombo, sAxisIdx + 1);
211
- currentCombo.pop();
212
- }
213
- };
214
- generateCombinations([], 0);
215
- if (keyCombinations.length === 0)
216
- continue;
217
- const newAxesSpec = [...originalSpec.axesSpec];
218
- const splitAxisOriginalIdxs = splitAxisIdxs.map((idx) => idx); // Keep original indices for axisId lookup
219
- // Remove axes in reverse order to maintain correct indices during removal
220
- for (let i = splitAxisIdxs.length - 1; i >= 0; i--) {
221
- newAxesSpec.splice(splitAxisIdxs[i], 1);
222
- }
223
- const adjustedSpec = { ...originalSpec, axesSpec: newAxesSpec };
224
- for (const keyCombo of keyCombinations) {
225
- const splitFilters = keyCombo.map((value, sAxisIdx) => {
226
- const axisIdx = splitAxisOriginalIdxs[sAxisIdx]; // Use original index for lookup
227
- const axisId = plModelCommon.getAxisId(originalSpec.axesSpec[axisIdx]);
228
- const axisLabelMap = axesLabels[sAxisIdx];
229
- const label = axisLabelMap?.[value] ?? String(value);
230
- return { axisIdx, axisId, value: value, label };
231
- });
232
- intermediateResults.push({
233
- type: "split",
234
- originalColumn: column,
235
- spec: originalSpec,
236
- adjustedSpec,
237
- dataEntries,
238
- axisFilters: splitFilters,
239
- });
240
- }
241
- }
242
- else {
243
- intermediateResults.push({
244
- type: "direct",
245
- originalColumn: column,
246
- spec: originalSpec,
247
- adjustedSpec: originalSpec,
248
- });
249
- }
250
- }
251
- }
252
- if (intermediateResults.length === 0)
253
- return [];
254
- const labeledResults = label.deriveLabels(intermediateResults, (entry) => ({
255
- spec: entry.spec,
256
- suffixTrace: entry.type === "split" ? splitFiltersToTrace(entry.axisFilters) : undefined,
257
- }), labelOps);
258
- const result = [];
259
- for (const { value: entry, label } of labeledResults) {
260
- const { originalColumn, spec: originalSpec } = entry;
261
- const axisFilters = entry.type === "split" ? entry.axisFilters : undefined;
262
- const axisFiltersTuple = splitFiltersToAxisFilter(axisFilters);
263
- let finalId;
264
- if (anchorCtx)
265
- finalId = anchorCtx.deriveS(originalSpec, axisFiltersTuple);
266
- else
267
- finalId = fallbackIdDeriver(originalColumn.id, axisFiltersTuple);
268
- let finalSpec = { ...entry.adjustedSpec };
269
- if (overrideLabelAnnotation) {
270
- finalSpec = {
271
- ...finalSpec,
272
- annotations: {
273
- ...finalSpec.annotations,
274
- [plModelCommon.Annotation.Label]: label,
275
- },
276
- };
277
- }
278
- result.push({
279
- id: finalId,
280
- spec: finalSpec,
281
- data: () => entry.type === "split"
282
- ? plModelCommon.entriesToDataInfo(axis_filtering.filterDataInfoEntries(entry.dataEntries, axisFiltersTuple))
283
- : entry.originalColumn.data,
284
- label: label,
285
- });
286
- }
287
- const ids = new Set(result.map((entry) => entry.id));
288
- if (enrichByLinkers && anchorCtx) {
289
- const linkers = result.filter((entry) => plModelCommon.isLinkerColumn(entry.spec));
290
- if (linkers.length === 0) {
291
- return result;
292
- }
293
- const anchorAxes = Object.values(anchorCtx.anchors).flatMap((anchor) => anchor.axesSpec);
294
- const linkerMap = plModelCommon.LinkerMap.fromColumns(linkers.map(plModelCommon.getColumnIdAndSpec));
295
- // loose way of matching
296
- function matchAxisIdFn(linkerKeyId, sourceAxisId) {
297
- return plModelCommon.matchAxisId(linkerKeyId, sourceAxisId) || plModelCommon.matchAxisId(sourceAxisId, linkerKeyId);
298
- }
299
- // search all axes that can be reached by linkers from anchor axes; anchor axes are not in this list;
300
- const availableByLinkersAxes = linkerMap.getReachableByLinkersAxesFromAxes(anchorAxes, matchAxisIdFn);
301
- // search all columns that includes at least one of additional axes;
302
- const availableByLinkersColumns = this.getUniversalEntries((spec) => !plModelCommon.isLinkerColumn(spec) &&
303
- spec.axesSpec.some((columnAxisSpec) => {
304
- const columnAxisId = plModelCommon.getAxisId(columnAxisSpec);
305
- return availableByLinkersAxes.some((axis) => matchAxisIdFn(plModelCommon.getAxisId(axis), columnAxisId));
306
- }), { anchorCtx, labelOps, dontWaitAllData, overrideLabelAnnotation, exclude });
307
- if (availableByLinkersColumns) {
308
- result.push(...availableByLinkersColumns.filter((entry) => !ids.has(entry.id)));
309
- }
310
- }
311
- return result;
312
- }
313
- getColumns(predicateOrSelectors, opts) {
314
- const entries = this.getUniversalEntries(predicateOrSelectors, {
315
- overrideLabelAnnotation: true, // default for getColumns
316
- ...opts,
317
- });
318
- if (!entries)
319
- return undefined;
320
- const columns = [];
321
- for (const entry of entries) {
322
- const data = entry.data();
323
- if (!data) {
324
- if (opts?.dontWaitAllData)
325
- continue;
326
- return undefined;
327
- }
328
- columns.push({
329
- id: entry.id,
330
- spec: entry.spec,
331
- data,
332
- });
333
- }
334
- return columns;
335
- }
60
+ if (typeof selector !== "object" || !("axes" in selector) || selector.axes === void 0) return [];
61
+ const splitIndices = selector.axes.map((axis, index) => typeof axis === "object" && "split" in axis && axis.split === true ? index : -1).filter((index) => index !== -1);
62
+ if (splitIndices.length > 0 && selector.partialAxesMatch !== void 0) throw new Error("Axis splitting is not supported when `partialAxesMatch` is defined.");
63
+ splitIndices.sort((a, b) => a - b);
64
+ return splitIndices;
336
65
  }
66
+ var PColumnCollection = class {
67
+ defaultProviderStore = [];
68
+ providers = [new ArrayColumnProvider(this.defaultProviderStore)];
69
+ axisLabelProviders = [];
70
+ constructor() {}
71
+ addColumnProvider(provider) {
72
+ this.providers.push(provider);
73
+ return this;
74
+ }
75
+ addAxisLabelProvider(provider) {
76
+ this.axisLabelProviders.push(provider);
77
+ return this;
78
+ }
79
+ addColumns(columns) {
80
+ this.defaultProviderStore.push(...columns);
81
+ return this;
82
+ }
83
+ addColumn(column) {
84
+ this.defaultProviderStore.push(column);
85
+ return this;
86
+ }
87
+ /** Fetches labels for a given axis from the registered providers */
88
+ findLabels(axis) {
89
+ for (const provider of this.axisLabelProviders) {
90
+ const labels = provider.findLabels(axis);
91
+ if (labels) return labels;
92
+ }
93
+ }
94
+ getUniversalEntries(predicateOrSelectors, opts) {
95
+ const { anchorCtx, labelOps: rawLabelOps, dontWaitAllData = false, overrideLabelAnnotation = false, exclude, enrichByLinkers = false } = opts ?? {};
96
+ const labelOps = {
97
+ ...overrideLabelAnnotation && rawLabelOps?.includeNativeLabel !== false ? { includeNativeLabel: true } : {},
98
+ ...rawLabelOps
99
+ };
100
+ let excludePredicate = () => false;
101
+ if (exclude) {
102
+ const excludePredicartes = (Array.isArray(exclude) ? exclude : [exclude]).map((selector) => {
103
+ if (hasAnchors(selector)) {
104
+ if (!anchorCtx) throw new Error("Anchored selectors in exclude require an AnchoredIdDeriver to be provided in options.");
105
+ return (0, _milaboratories_pl_model_common.selectorsToPredicate)((0, _milaboratories_pl_model_common.resolveAnchors)(anchorCtx.anchors, selector, opts));
106
+ } else return (0, _milaboratories_pl_model_common.selectorsToPredicate)(selector);
107
+ });
108
+ excludePredicate = (spec) => excludePredicartes.some((predicate) => predicate(spec));
109
+ }
110
+ const selectorsArray = typeof predicateOrSelectors === "function" ? [predicateOrSelectors] : Array.isArray(predicateOrSelectors) ? predicateOrSelectors : [predicateOrSelectors];
111
+ const intermediateResults = [];
112
+ const selectedNativeIds = /* @__PURE__ */ new Set();
113
+ for (const rawSelector of selectorsArray) {
114
+ const usesAnchors = hasAnchors(rawSelector);
115
+ let currentSelector;
116
+ if (usesAnchors) {
117
+ if (!anchorCtx) throw new Error("Anchored selectors require an AnchoredIdDeriver to be provided in options.");
118
+ currentSelector = (0, _milaboratories_pl_model_common.resolveAnchors)(anchorCtx.anchors, rawSelector, opts);
119
+ } else currentSelector = rawSelector;
120
+ const selectedIds = /* @__PURE__ */ new Set();
121
+ const selectedColumns = [];
122
+ for (const provider of this.providers) {
123
+ const providerColumns = provider.selectColumns(currentSelector);
124
+ for (const col of providerColumns) {
125
+ if (excludePredicate(col.spec)) continue;
126
+ if (selectedIds.has(col.id)) throw new Error(`Duplicate column id ${col.id} in provider ${provider.constructor.name}`);
127
+ const nativeId = (0, _milaboratories_pl_model_common.deriveNativeId)(col.spec);
128
+ if (selectedNativeIds.has(nativeId)) continue;
129
+ selectedIds.add(col.id);
130
+ selectedNativeIds.add(nativeId);
131
+ selectedColumns.push(col);
132
+ }
133
+ }
134
+ if (selectedColumns.length === 0) continue;
135
+ const splitAxisIdxs = getSplitAxisIndices(rawSelector);
136
+ const needsSplitting = splitAxisIdxs.length > 0;
137
+ for (const column of selectedColumns) {
138
+ if (!(0, _milaboratories_pl_model_common.isPColumnSpec)(column.spec)) continue;
139
+ const originalSpec = column.spec;
140
+ if (needsSplitting) {
141
+ if (isPColumnValues(column.data)) throw new Error(`Splitting is not supported for PColumns with PColumnValues data format. Column id: ${column.id}`);
142
+ const dataEntries = require_pcolumn_data.convertOrParsePColumnData(column.data);
143
+ if (!dataEntries) {
144
+ if (dontWaitAllData) continue;
145
+ return;
146
+ }
147
+ if (!(0, _milaboratories_pl_model_common.isPartitionedDataInfoEntries)(dataEntries)) throw new Error(`Splitting requires Partitioned DataInfoEntries, but parsing resulted in ${dataEntries.type} for column ${column.id}`);
148
+ const uniqueKeys = require_pcolumn_data.getUniquePartitionKeys(dataEntries);
149
+ const maxSplitIdx = splitAxisIdxs[splitAxisIdxs.length - 1];
150
+ if (maxSplitIdx >= dataEntries.partitionKeyLength) throw new Error(`Not enough partition keys (${dataEntries.partitionKeyLength}) for requested split axes (max index ${maxSplitIdx}) in column ${originalSpec.name}`);
151
+ const axesLabels = splitAxisIdxs.map((idx) => this.findLabels((0, _milaboratories_pl_model_common.getAxisId)(originalSpec.axesSpec[idx])));
152
+ const keyCombinations = [];
153
+ const generateCombinations = (currentCombo, sAxisIdx) => {
154
+ if (sAxisIdx >= splitAxisIdxs.length) {
155
+ keyCombinations.push([...currentCombo]);
156
+ if (keyCombinations.length > 1e4) throw new Error("Too many key combinations, aborting.");
157
+ return;
158
+ }
159
+ const axisIdx = splitAxisIdxs[sAxisIdx];
160
+ if (axisIdx >= uniqueKeys.length) throw new Error(`Axis index ${axisIdx} out of bounds for unique keys array (length ${uniqueKeys.length}) during split key generation for column ${column.id}`);
161
+ const axisValues = uniqueKeys[axisIdx];
162
+ if (!axisValues || axisValues.length === 0) {
163
+ keyCombinations.length = 0;
164
+ return;
165
+ }
166
+ for (const val of axisValues) {
167
+ currentCombo.push(val);
168
+ generateCombinations(currentCombo, sAxisIdx + 1);
169
+ currentCombo.pop();
170
+ }
171
+ };
172
+ generateCombinations([], 0);
173
+ if (keyCombinations.length === 0) continue;
174
+ const newAxesSpec = [...originalSpec.axesSpec];
175
+ const splitAxisOriginalIdxs = splitAxisIdxs.map((idx) => idx);
176
+ for (let i = splitAxisIdxs.length - 1; i >= 0; i--) newAxesSpec.splice(splitAxisIdxs[i], 1);
177
+ const adjustedSpec = {
178
+ ...originalSpec,
179
+ axesSpec: newAxesSpec
180
+ };
181
+ for (const keyCombo of keyCombinations) {
182
+ const splitFilters = keyCombo.map((value, sAxisIdx) => {
183
+ const axisIdx = splitAxisOriginalIdxs[sAxisIdx];
184
+ return {
185
+ axisIdx,
186
+ axisId: (0, _milaboratories_pl_model_common.getAxisId)(originalSpec.axesSpec[axisIdx]),
187
+ value,
188
+ label: axesLabels[sAxisIdx]?.[value] ?? String(value)
189
+ };
190
+ });
191
+ intermediateResults.push({
192
+ type: "split",
193
+ originalColumn: column,
194
+ spec: originalSpec,
195
+ adjustedSpec,
196
+ dataEntries,
197
+ axisFilters: splitFilters
198
+ });
199
+ }
200
+ } else intermediateResults.push({
201
+ type: "direct",
202
+ originalColumn: column,
203
+ spec: originalSpec,
204
+ adjustedSpec: originalSpec
205
+ });
206
+ }
207
+ }
208
+ if (intermediateResults.length === 0) return [];
209
+ const labeledResults = require_label.deriveLabels(intermediateResults, (entry) => ({
210
+ spec: entry.spec,
211
+ suffixTrace: entry.type === "split" ? splitFiltersToTrace(entry.axisFilters) : void 0
212
+ }), labelOps);
213
+ const result = [];
214
+ for (const { value: entry, label } of labeledResults) {
215
+ const { originalColumn, spec: originalSpec } = entry;
216
+ const axisFiltersTuple = splitFiltersToAxisFilter(entry.type === "split" ? entry.axisFilters : void 0);
217
+ let finalId;
218
+ if (anchorCtx) finalId = anchorCtx.deriveS(originalSpec, axisFiltersTuple);
219
+ else finalId = fallbackIdDeriver(originalColumn.id, axisFiltersTuple);
220
+ let finalSpec = { ...entry.adjustedSpec };
221
+ if (overrideLabelAnnotation) finalSpec = {
222
+ ...finalSpec,
223
+ annotations: {
224
+ ...finalSpec.annotations,
225
+ [_milaboratories_pl_model_common.Annotation.Label]: label
226
+ }
227
+ };
228
+ result.push({
229
+ id: finalId,
230
+ spec: finalSpec,
231
+ data: () => entry.type === "split" ? (0, _milaboratories_pl_model_common.entriesToDataInfo)(require_axis_filtering.filterDataInfoEntries(entry.dataEntries, axisFiltersTuple)) : entry.originalColumn.data,
232
+ label
233
+ });
234
+ }
235
+ const ids = new Set(result.map((entry) => entry.id));
236
+ if (enrichByLinkers && anchorCtx) {
237
+ const linkers = result.filter((entry) => (0, _milaboratories_pl_model_common.isLinkerColumn)(entry.spec));
238
+ if (linkers.length === 0) return result;
239
+ const anchorAxes = Object.values(anchorCtx.anchors).flatMap((anchor) => anchor.axesSpec);
240
+ const linkerMap = _milaboratories_pl_model_common.LinkerMap.fromColumns(linkers.map(_milaboratories_pl_model_common.getColumnIdAndSpec));
241
+ function matchAxisIdFn(linkerKeyId, sourceAxisId) {
242
+ return (0, _milaboratories_pl_model_common.matchAxisId)(linkerKeyId, sourceAxisId) || (0, _milaboratories_pl_model_common.matchAxisId)(sourceAxisId, linkerKeyId);
243
+ }
244
+ const availableByLinkersAxes = linkerMap.getReachableByLinkersAxesFromAxes(anchorAxes, matchAxisIdFn);
245
+ const availableByLinkersColumns = this.getUniversalEntries((spec) => !(0, _milaboratories_pl_model_common.isLinkerColumn)(spec) && spec.axesSpec.some((columnAxisSpec) => {
246
+ const columnAxisId = (0, _milaboratories_pl_model_common.getAxisId)(columnAxisSpec);
247
+ return availableByLinkersAxes.some((axis) => matchAxisIdFn((0, _milaboratories_pl_model_common.getAxisId)(axis), columnAxisId));
248
+ }), {
249
+ anchorCtx,
250
+ labelOps,
251
+ dontWaitAllData,
252
+ overrideLabelAnnotation,
253
+ exclude
254
+ });
255
+ if (availableByLinkersColumns) result.push(...availableByLinkersColumns.filter((entry) => !ids.has(entry.id)));
256
+ }
257
+ return result;
258
+ }
259
+ getColumns(predicateOrSelectors, opts) {
260
+ const entries = this.getUniversalEntries(predicateOrSelectors, {
261
+ overrideLabelAnnotation: true,
262
+ ...opts
263
+ });
264
+ if (!entries) return void 0;
265
+ const columns = [];
266
+ for (const entry of entries) {
267
+ const data = entry.data();
268
+ if (!data) {
269
+ if (opts?.dontWaitAllData) continue;
270
+ return;
271
+ }
272
+ columns.push({
273
+ id: entry.id,
274
+ spec: entry.spec,
275
+ data
276
+ });
277
+ }
278
+ return columns;
279
+ }
280
+ };
337
281
 
282
+ //#endregion
338
283
  exports.PColumnCollection = PColumnCollection;
339
- //# sourceMappingURL=column_collection.cjs.map
284
+ //# sourceMappingURL=column_collection.cjs.map