@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,350 +1,319 @@
1
- 'use strict';
2
-
3
- var internal = require('./internal.cjs');
4
- var api = require('./render/api.cjs');
5
- require('@milaboratories/pl-model-common');
6
- require('./render/util/label.cjs');
7
- require('canonicalize');
8
- var plugin_handle = require('./plugin_handle.cjs');
9
- var version = require('./version.cjs');
10
- var block_storage_callbacks = require('./block_storage_callbacks.cjs');
11
- var normalization = require('./bconfig/normalization.cjs');
12
- var types = require('./bconfig/types.cjs');
13
- var block_storage_facade = require('./block_storage_facade.cjs');
1
+ const require_plugin_handle = require('./plugin_handle.cjs');
2
+ const require_internal = require('./internal.cjs');
3
+ const require_block_storage_facade = require('./block_storage_facade.cjs');
4
+ const require_api = require('./render/api.cjs');
5
+ require('./render/index.cjs');
6
+ const require_version = require('./version.cjs');
7
+ const require_types = require('./bconfig/types.cjs');
8
+ const require_normalization = require('./bconfig/normalization.cjs');
9
+ require('./bconfig/index.cjs');
10
+ const require_plugin_model = require('./plugin_model.cjs');
11
+ const require_block_storage_callbacks = require('./block_storage_callbacks.cjs');
14
12
 
13
+ //#region src/block_model.ts
15
14
  /**
16
- * Merges two feature flag objects with type-aware logic:
17
- * - `supports*` (boolean): OR — `true` if either side is `true`
18
- * - `requires*` (numeric): MAX — take the higher version requirement
19
- */
15
+ * Merges two feature flag objects with type-aware logic:
16
+ * - `supports*` (boolean): OR — `true` if either side is `true`
17
+ * - `requires*` (numeric): MAX — take the higher version requirement
18
+ */
20
19
  function mergeFeatureFlags(base, override) {
21
- const result = { ...base };
22
- for (const [key, value] of Object.entries(override)) {
23
- if (value === undefined)
24
- continue;
25
- const existing = result[key];
26
- if (typeof value === "boolean") {
27
- result[key] = (typeof existing === "boolean" && existing) || value;
28
- }
29
- else if (typeof value === "number") {
30
- result[key] = Math.max(typeof existing === "number" ? existing : 0, value);
31
- }
32
- }
33
- return result;
20
+ const result = { ...base };
21
+ for (const [key, value] of Object.entries(override)) {
22
+ if (value === void 0) continue;
23
+ const existing = result[key];
24
+ if (typeof value === "boolean") result[key] = typeof existing === "boolean" && existing || value;
25
+ else if (typeof value === "number") result[key] = Math.max(typeof existing === "number" ? existing : 0, value);
26
+ }
27
+ return result;
34
28
  }
35
29
  /** Main entry point that each block should use in it's "config" module. Don't forget
36
- * to call {@link done()} at the end of configuration. Value returned by this builder must be
37
- * exported as constant with name "platforma" from the "config" module.
38
- * API version is 3 (for UI) and 2 (for model) */
39
- class BlockModelV3 {
40
- config;
41
- constructor(config) {
42
- this.config = config;
43
- }
44
- static INITIAL_BLOCK_FEATURE_FLAGS = {
45
- supportsLazyState: true,
46
- requiresUIAPIVersion: 3,
47
- requiresModelAPIVersion: block_storage_facade.BLOCK_STORAGE_FACADE_VERSION,
48
- requiresCreatePTable: 2,
49
- };
50
- /**
51
- * Creates a new BlockModelV3 builder with the specified data model.
52
- *
53
- * @example
54
- * const dataModel = new DataModelBuilder()
55
- * .from<BlockData>("v1")
56
- * .init(() => ({ numbers: [], labels: [] }));
57
- *
58
- * BlockModelV3.create(dataModel)
59
- * .args((data) => ({ numbers: data.numbers }))
60
- * .sections(() => [{ type: 'link', href: '/', label: 'Main' }])
61
- * .done();
62
- *
63
- * @param dataModel The data model that defines initial data and migrations
64
- */
65
- static create(dataModel) {
66
- return new BlockModelV3({
67
- renderingMode: "Heavy",
68
- dataModel,
69
- outputs: {},
70
- sections: internal.createAndRegisterRenderLambda({ handle: "sections", lambda: () => [] }, true),
71
- title: undefined,
72
- subtitle: undefined,
73
- tags: undefined,
74
- enrichmentTargets: undefined,
75
- featureFlags: { ...BlockModelV3.INITIAL_BLOCK_FEATURE_FLAGS },
76
- argsFunction: undefined,
77
- prerunArgsFunction: undefined,
78
- plugins: {},
79
- });
80
- }
81
- output(key, cfgOrRf, flags = {}) {
82
- return new BlockModelV3({
83
- ...this.config,
84
- outputs: {
85
- ...this.config.outputs,
86
- [key]: internal.createAndRegisterRenderLambda({
87
- handle: `block-output#${key}`,
88
- lambda: () => cfgOrRf(new api.BlockRenderCtx()),
89
- ...flags,
90
- }),
91
- },
92
- });
93
- }
94
- /** Shortcut for {@link output} with retentive flag set to true. */
95
- retentiveOutput(key, rf) {
96
- return this.output(key, rf, { retentive: true });
97
- }
98
- /** Shortcut for {@link output} with withStatus flag set to true. */
99
- outputWithStatus(key, rf) {
100
- return this.output(key, rf, { withStatus: true });
101
- }
102
- /**
103
- * Sets a function to derive block args from data.
104
- * This is called during setData to compute the args that will be used for block execution.
105
- *
106
- * @example
107
- * .args<BlockArgs>((data) => ({ numbers: data.numbers }))
108
- *
109
- * @example
110
- * .args<BlockArgs>((data) => {
111
- * if (data.numbers.length === 0) throw new Error('Numbers required'); // block not ready
112
- * return { numbers: data.numbers };
113
- * })
114
- */
115
- args(lambda) {
116
- return new BlockModelV3({
117
- ...this.config,
118
- argsFunction: lambda,
119
- });
120
- }
121
- /**
122
- * Sets a function to derive pre-run args from data (optional).
123
- * This is called during setData to compute the args that will be used for staging/pre-run phase.
124
- *
125
- * If not defined, defaults to using the args() function result.
126
- * If defined, uses its return value for the staging / prerun phase.
127
- *
128
- * The staging / prerun phase runs only if currentPrerunArgs differs from the executed
129
- * version of prerunArgs (same comparison logic as currentArgs vs prodArgs).
130
- *
131
- * @example
132
- * .prerunArgs((data) => ({ numbers: data.numbers }))
133
- *
134
- * @example
135
- * .prerunArgs((data) => {
136
- * // Return undefined to skip staging for this block
137
- * if (!data.isReady) return undefined;
138
- * return { numbers: data.numbers };
139
- * })
140
- */
141
- prerunArgs(fn) {
142
- return new BlockModelV3({
143
- ...this.config,
144
- prerunArgsFunction: fn,
145
- });
146
- }
147
- /** Sets the lambda to generate list of sections in the left block overviews panel. */
148
- sections(rf) {
149
- return new BlockModelV3({
150
- ...this.config,
151
- // Replace the default sections callback with the user-provided one
152
- sections: internal.createAndRegisterRenderLambda({ handle: "sections", lambda: () => rf(new api.BlockRenderCtx()) }, true),
153
- });
154
- }
155
- /** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
156
- title(rf) {
157
- return new BlockModelV3({
158
- ...this.config,
159
- title: internal.createAndRegisterRenderLambda({
160
- handle: "title",
161
- lambda: () => rf(new api.BlockRenderCtx()),
162
- }),
163
- });
164
- }
165
- subtitle(rf) {
166
- return new BlockModelV3({
167
- ...this.config,
168
- subtitle: internal.createAndRegisterRenderLambda({
169
- handle: "subtitle",
170
- lambda: () => rf(new api.BlockRenderCtx()),
171
- }),
172
- });
173
- }
174
- tags(rf) {
175
- return new BlockModelV3({
176
- ...this.config,
177
- tags: internal.createAndRegisterRenderLambda({
178
- handle: "tags",
179
- lambda: () => rf(new api.BlockRenderCtx()),
180
- }),
181
- });
182
- }
183
- /** Sets or overrides feature flags for the block. */
184
- withFeatureFlags(flags) {
185
- return new BlockModelV3({
186
- ...this.config,
187
- featureFlags: { ...this.config.featureFlags, ...flags },
188
- });
189
- }
190
- /**
191
- * Defines how to derive list of upstream references this block is meant to enrich with its exports from block args.
192
- * Influences dependency graph construction.
193
- */
194
- enriches(lambda) {
195
- return new BlockModelV3({
196
- ...this.config,
197
- enrichmentTargets: internal.createAndRegisterRenderLambda({
198
- handle: "enrichmentTargets",
199
- lambda: lambda,
200
- }),
201
- });
202
- }
203
- /**
204
- * Registers a plugin instance with the block.
205
- *
206
- * Plugins are UI components with their own model logic and persistent state.
207
- * Each plugin must have a unique pluginId within the block.
208
- *
209
- * @param pluginId - Unique identifier for this plugin instance within the block
210
- * @param plugin - Configured PluginModel instance (created via factory.create(config))
211
- * @param params - Per-property lambdas deriving plugin params from block RenderCtx
212
- *
213
- * @example
214
- * .plugin('mainTable', dataTablePlugin.create({ defaultOps: {...} }), {
215
- * columns: (ctx) => ctx.outputs?.resolve("data")?.getPColumns(),
216
- * sourceId: (ctx) => ctx.data.selectedSource,
217
- * })
218
- */
219
- plugin(pluginId, plugin, params) {
220
- // Validate pluginId uniqueness
221
- if (pluginId in this.config.plugins) {
222
- throw new Error(`Plugin '${pluginId}' already registered`);
223
- }
224
- const instance = {
225
- model: plugin,
226
- inputs: (params ?? {}),
227
- };
228
- return new BlockModelV3({
229
- ...this.config,
230
- plugins: {
231
- ...this.config.plugins,
232
- [pluginId]: instance,
233
- },
234
- featureFlags: mergeFeatureFlags(this.config.featureFlags, plugin.featureFlags ?? {}),
235
- });
236
- }
237
- /** Renders all provided block settings into a pre-configured platforma API
238
- * instance, that can be used in frontend to interact with block data, and
239
- * other features provided by the platforma to the block. */
240
- done() {
241
- return this.withFeatureFlags({
242
- ...this.config.featureFlags,
243
- })._done();
244
- }
245
- _done() {
246
- if (this.config.argsFunction === undefined)
247
- throw new Error("Args rendering function not set.");
248
- const apiVersion = 3;
249
- // Build plugin registry
250
- const { plugins } = this.config;
251
- const pluginRegistry = {};
252
- const pluginHandles = Object.keys(plugins);
253
- for (const handle of pluginHandles) {
254
- pluginRegistry[handle] = plugins[handle].model.name;
255
- }
256
- const { dataModel, argsFunction, prerunArgsFunction } = this.config;
257
- function getPlugin(handle) {
258
- const plugin = plugins[handle];
259
- if (!plugin)
260
- throw new Error(`Plugin model not found for '${handle}'`);
261
- return plugin;
262
- }
263
- // Register ALL facade callbacks here, with dependencies captured via closures
264
- block_storage_facade.registerFacadeCallbacks({
265
- [block_storage_facade.BlockStorageFacadeCallbacks.StorageApplyUpdate]: block_storage_callbacks.applyStorageUpdate,
266
- [block_storage_facade.BlockStorageFacadeCallbacks.StorageDebugView]: block_storage_callbacks.getStorageDebugView,
267
- [block_storage_facade.BlockStorageFacadeCallbacks.StorageMigrate]: (currentStorageJson) => block_storage_callbacks.migrateStorage(currentStorageJson, {
268
- migrateBlockData: (v) => dataModel.migrate(v),
269
- getPluginRegistry: () => pluginRegistry,
270
- migratePluginData: (handle, v) => getPlugin(handle).model.dataModel.migrate(v),
271
- createPluginData: (handle) => getPlugin(handle).model.dataModel.getDefaultData(),
272
- }),
273
- [block_storage_facade.BlockStorageFacadeCallbacks.StorageInitial]: () => block_storage_callbacks.createInitialStorage({
274
- getDefaultBlockData: () => dataModel.getDefaultData(),
275
- getPluginRegistry: () => pluginRegistry,
276
- createPluginData: (handle) => getPlugin(handle).model.dataModel.getDefaultData(),
277
- }),
278
- [block_storage_facade.BlockStorageFacadeCallbacks.ArgsDerive]: (storageJson) => block_storage_callbacks.deriveArgsFromStorage(storageJson, argsFunction),
279
- [block_storage_facade.BlockStorageFacadeCallbacks.PrerunArgsDerive]: (storageJson) => block_storage_callbacks.derivePrerunArgsFromStorage(storageJson, argsFunction, prerunArgsFunction),
280
- });
281
- // Register plugin input and output lambdas
282
- const pluginOutputs = {};
283
- for (const handle of pluginHandles) {
284
- const { model, inputs } = plugins[handle];
285
- // Wrap plugin param lambdas: close over BlockRenderCtx creation
286
- const wrappedInputs = {};
287
- for (const [paramKey, paramFn] of Object.entries(inputs)) {
288
- wrappedInputs[paramKey] = () => paramFn(new api.BlockRenderCtx());
289
- }
290
- // Register plugin outputs (in config pack, evaluated by middle layer)
291
- const outputs = model.outputs;
292
- for (const [outputKey, outputFn] of Object.entries(outputs)) {
293
- const key = plugin_handle.pluginOutputKey(handle, outputKey);
294
- pluginOutputs[key] = internal.createAndRegisterRenderLambda({
295
- handle: key,
296
- lambda: () => outputFn(new api.PluginRenderCtx(handle, wrappedInputs)),
297
- });
298
- }
299
- }
300
- const allOutputs = { ...this.config.outputs, ...pluginOutputs };
301
- const blockConfig = {
302
- v4: {
303
- configVersion: 4,
304
- modelAPIVersion: block_storage_facade.BLOCK_STORAGE_FACADE_VERSION,
305
- sdkVersion: version.PlatformaSDKVersion,
306
- renderingMode: this.config.renderingMode,
307
- sections: this.config.sections,
308
- title: this.config.title,
309
- subtitle: this.config.subtitle,
310
- tags: this.config.tags,
311
- outputs: allOutputs,
312
- enrichmentTargets: this.config.enrichmentTargets,
313
- featureFlags: this.config.featureFlags,
314
- blockLifecycleCallbacks: { ...block_storage_facade.BlockStorageFacadeHandles },
315
- },
316
- // fields below are added to allow previous desktop versions read generated configs
317
- sdkVersion: version.PlatformaSDKVersion,
318
- renderingMode: this.config.renderingMode,
319
- sections: this.config.sections,
320
- outputs: Object.fromEntries(Object.entries(this.config.outputs).map(([key, value]) => [
321
- key,
322
- normalization.downgradeCfgOrLambda(value),
323
- ])),
324
- };
325
- globalThis.platformaApiVersion = apiVersion;
326
- if (!internal.isInUI())
327
- // we are in the configuration rendering routine, not in actual UI
328
- return { config: blockConfig };
329
- // normal operation inside the UI
330
- else
331
- return {
332
- ...internal.getPlatformaInstance({
333
- sdkVersion: version.PlatformaSDKVersion,
334
- apiVersion,
335
- }),
336
- blockModelInfo: {
337
- outputs: Object.fromEntries(Object.entries(allOutputs).map(([key, value]) => [
338
- key,
339
- {
340
- withStatus: Boolean(types.isConfigLambda(value) && value.withStatus),
341
- },
342
- ])),
343
- pluginIds: pluginHandles,
344
- },
345
- };
346
- }
347
- }
30
+ * to call {@link done()} at the end of configuration. Value returned by this builder must be
31
+ * exported as constant with name "platforma" from the "config" module.
32
+ * API version is 3 (for UI) and 2 (for model) */
33
+ var BlockModelV3 = class BlockModelV3 {
34
+ constructor(config) {
35
+ this.config = config;
36
+ }
37
+ static INITIAL_BLOCK_FEATURE_FLAGS = {
38
+ supportsLazyState: true,
39
+ requiresUIAPIVersion: 3,
40
+ requiresModelAPIVersion: require_block_storage_facade.BLOCK_STORAGE_FACADE_VERSION,
41
+ requiresCreatePTable: 2
42
+ };
43
+ /**
44
+ * Creates a new BlockModelV3 builder with the specified data model.
45
+ *
46
+ * @example
47
+ * const dataModel = new DataModelBuilder()
48
+ * .from<BlockData>("v1")
49
+ * .init(() => ({ numbers: [], labels: [] }));
50
+ *
51
+ * BlockModelV3.create(dataModel)
52
+ * .args((data) => ({ numbers: data.numbers }))
53
+ * .sections(() => [{ type: 'link', href: '/', label: 'Main' }])
54
+ * .done();
55
+ *
56
+ * @param dataModel The data model that defines initial data and migrations
57
+ */
58
+ static create(dataModel) {
59
+ return new BlockModelV3({
60
+ renderingMode: "Heavy",
61
+ dataModel,
62
+ outputs: {},
63
+ sections: require_internal.createAndRegisterRenderLambda({
64
+ handle: "sections",
65
+ lambda: () => []
66
+ }, true),
67
+ title: void 0,
68
+ subtitle: void 0,
69
+ tags: void 0,
70
+ enrichmentTargets: void 0,
71
+ featureFlags: { ...BlockModelV3.INITIAL_BLOCK_FEATURE_FLAGS },
72
+ argsFunction: void 0,
73
+ prerunArgsFunction: void 0,
74
+ plugins: {}
75
+ });
76
+ }
77
+ output(key, cfgOrRf, flags = {}) {
78
+ return new BlockModelV3({
79
+ ...this.config,
80
+ outputs: {
81
+ ...this.config.outputs,
82
+ [key]: require_internal.createAndRegisterRenderLambda({
83
+ handle: `block-output#${key}`,
84
+ lambda: () => cfgOrRf(new require_api.BlockRenderCtx()),
85
+ ...flags
86
+ })
87
+ }
88
+ });
89
+ }
90
+ /** Shortcut for {@link output} with retentive flag set to true. */
91
+ retentiveOutput(key, rf) {
92
+ return this.output(key, rf, { retentive: true });
93
+ }
94
+ /** Shortcut for {@link output} with withStatus flag set to true. */
95
+ outputWithStatus(key, rf) {
96
+ return this.output(key, rf, { withStatus: true });
97
+ }
98
+ /**
99
+ * Sets a function to derive block args from data.
100
+ * This is called during setData to compute the args that will be used for block execution.
101
+ *
102
+ * @example
103
+ * .args<BlockArgs>((data) => ({ numbers: data.numbers }))
104
+ *
105
+ * @example
106
+ * .args<BlockArgs>((data) => {
107
+ * if (data.numbers.length === 0) throw new Error('Numbers required'); // block not ready
108
+ * return { numbers: data.numbers };
109
+ * })
110
+ */
111
+ args(lambda) {
112
+ return new BlockModelV3({
113
+ ...this.config,
114
+ argsFunction: lambda
115
+ });
116
+ }
117
+ /**
118
+ * Sets a function to derive pre-run args from data (optional).
119
+ * This is called during setData to compute the args that will be used for staging/pre-run phase.
120
+ *
121
+ * If not defined, defaults to using the args() function result.
122
+ * If defined, uses its return value for the staging / prerun phase.
123
+ *
124
+ * The staging / prerun phase runs only if currentPrerunArgs differs from the executed
125
+ * version of prerunArgs (same comparison logic as currentArgs vs prodArgs).
126
+ *
127
+ * @example
128
+ * .prerunArgs((data) => ({ numbers: data.numbers }))
129
+ *
130
+ * @example
131
+ * .prerunArgs((data) => {
132
+ * // Return undefined to skip staging for this block
133
+ * if (!data.isReady) return undefined;
134
+ * return { numbers: data.numbers };
135
+ * })
136
+ */
137
+ prerunArgs(fn) {
138
+ return new BlockModelV3({
139
+ ...this.config,
140
+ prerunArgsFunction: fn
141
+ });
142
+ }
143
+ /** Sets the lambda to generate list of sections in the left block overviews panel. */
144
+ sections(rf) {
145
+ return new BlockModelV3({
146
+ ...this.config,
147
+ sections: require_internal.createAndRegisterRenderLambda({
148
+ handle: "sections",
149
+ lambda: () => rf(new require_api.BlockRenderCtx())
150
+ }, true)
151
+ });
152
+ }
153
+ /** Sets a rendering function to derive block title, shown for the block in the left blocks-overview panel. */
154
+ title(rf) {
155
+ return new BlockModelV3({
156
+ ...this.config,
157
+ title: require_internal.createAndRegisterRenderLambda({
158
+ handle: "title",
159
+ lambda: () => rf(new require_api.BlockRenderCtx())
160
+ })
161
+ });
162
+ }
163
+ subtitle(rf) {
164
+ return new BlockModelV3({
165
+ ...this.config,
166
+ subtitle: require_internal.createAndRegisterRenderLambda({
167
+ handle: "subtitle",
168
+ lambda: () => rf(new require_api.BlockRenderCtx())
169
+ })
170
+ });
171
+ }
172
+ tags(rf) {
173
+ return new BlockModelV3({
174
+ ...this.config,
175
+ tags: require_internal.createAndRegisterRenderLambda({
176
+ handle: "tags",
177
+ lambda: () => rf(new require_api.BlockRenderCtx())
178
+ })
179
+ });
180
+ }
181
+ /** Sets or overrides feature flags for the block. */
182
+ withFeatureFlags(flags) {
183
+ return new BlockModelV3({
184
+ ...this.config,
185
+ featureFlags: {
186
+ ...this.config.featureFlags,
187
+ ...flags
188
+ }
189
+ });
190
+ }
191
+ /**
192
+ * Defines how to derive list of upstream references this block is meant to enrich with its exports from block args.
193
+ * Influences dependency graph construction.
194
+ */
195
+ enriches(lambda) {
196
+ return new BlockModelV3({
197
+ ...this.config,
198
+ enrichmentTargets: require_internal.createAndRegisterRenderLambda({
199
+ handle: "enrichmentTargets",
200
+ lambda
201
+ })
202
+ });
203
+ }
204
+ plugin(instance, params) {
205
+ const pluginId = instance.id;
206
+ const plugin = instance[require_plugin_model.CREATE_PLUGIN_MODEL]();
207
+ const resolvedParams = params ?? {};
208
+ if (pluginId in this.config.plugins) throw new Error(`Plugin '${pluginId}' already registered`);
209
+ const registered = {
210
+ model: plugin,
211
+ inputs: resolvedParams
212
+ };
213
+ return new BlockModelV3({
214
+ ...this.config,
215
+ plugins: {
216
+ ...this.config.plugins,
217
+ [pluginId]: registered
218
+ },
219
+ featureFlags: mergeFeatureFlags(this.config.featureFlags, plugin.featureFlags ?? {})
220
+ });
221
+ }
222
+ /** Renders all provided block settings into a pre-configured platforma API
223
+ * instance, that can be used in frontend to interact with block data, and
224
+ * other features provided by the platforma to the block.
225
+ *
226
+ * Type-level check: if there are unconsumed transfers (from `.transfer()` calls
227
+ * in the migration chain), this method requires an impossible `never` argument,
228
+ * producing a compile error. Register all transferred plugins via `.plugin(instance)`
229
+ * before calling `.done()`.
230
+ */
231
+ done(..._) {
232
+ if (this.config.argsFunction === void 0) throw new Error("Args rendering function not set.");
233
+ const apiVersion = 3;
234
+ const { plugins } = this.config;
235
+ const pluginRegistry = {};
236
+ const pluginHandles = Object.keys(plugins);
237
+ for (const handle of pluginHandles) pluginRegistry[handle] = plugins[handle].model.name;
238
+ const { dataModel, argsFunction, prerunArgsFunction } = this.config;
239
+ function getPlugin(handle) {
240
+ const plugin = plugins[handle];
241
+ if (!plugin) throw new Error(`Plugin model not found for '${handle}'`);
242
+ return plugin;
243
+ }
244
+ require_block_storage_facade.registerFacadeCallbacks({
245
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.StorageApplyUpdate]: require_block_storage_callbacks.applyStorageUpdate,
246
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.StorageDebugView]: require_block_storage_callbacks.getStorageDebugView,
247
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.StorageMigrate]: (currentStorageJson) => require_block_storage_callbacks.migrateStorage(currentStorageJson, {
248
+ migrateBlockData: (v) => dataModel.migrate(v),
249
+ getPluginRegistry: () => pluginRegistry,
250
+ migratePluginData: (handle, v) => getPlugin(handle).model.dataModel.migrate(v),
251
+ createPluginData: (handle, transfer) => {
252
+ if (transfer) return transfer;
253
+ return getPlugin(handle).model.getDefaultData();
254
+ }
255
+ }),
256
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.StorageInitial]: () => require_block_storage_callbacks.createInitialStorage({
257
+ getDefaultBlockData: () => dataModel.getDefaultData(),
258
+ getPluginRegistry: () => pluginRegistry,
259
+ createPluginData: (handle) => getPlugin(handle).model.getDefaultData()
260
+ }),
261
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.ArgsDerive]: (storageJson) => require_block_storage_callbacks.deriveArgsFromStorage(storageJson, argsFunction),
262
+ [require_block_storage_facade.BlockStorageFacadeCallbacks.PrerunArgsDerive]: (storageJson) => require_block_storage_callbacks.derivePrerunArgsFromStorage(storageJson, argsFunction, prerunArgsFunction)
263
+ });
264
+ const pluginOutputs = {};
265
+ for (const handle of pluginHandles) {
266
+ const { model, inputs } = plugins[handle];
267
+ const wrappedInputs = {};
268
+ for (const [paramKey, paramFn] of Object.entries(inputs)) wrappedInputs[paramKey] = () => paramFn(new require_api.BlockRenderCtx());
269
+ const outputs = model.outputs;
270
+ for (const [outputKey, outputFn] of Object.entries(outputs)) {
271
+ const key = require_plugin_handle.pluginOutputKey(handle, outputKey);
272
+ pluginOutputs[key] = require_internal.createAndRegisterRenderLambda({
273
+ handle: key,
274
+ lambda: () => outputFn(new require_api.PluginRenderCtx(handle, wrappedInputs))
275
+ });
276
+ }
277
+ }
278
+ const allOutputs = {
279
+ ...this.config.outputs,
280
+ ...pluginOutputs
281
+ };
282
+ const blockConfig = {
283
+ v4: {
284
+ configVersion: 4,
285
+ modelAPIVersion: require_block_storage_facade.BLOCK_STORAGE_FACADE_VERSION,
286
+ sdkVersion: require_version.PlatformaSDKVersion,
287
+ renderingMode: this.config.renderingMode,
288
+ sections: this.config.sections,
289
+ title: this.config.title,
290
+ subtitle: this.config.subtitle,
291
+ tags: this.config.tags,
292
+ outputs: allOutputs,
293
+ enrichmentTargets: this.config.enrichmentTargets,
294
+ featureFlags: this.config.featureFlags,
295
+ blockLifecycleCallbacks: { ...require_block_storage_facade.BlockStorageFacadeHandles }
296
+ },
297
+ sdkVersion: require_version.PlatformaSDKVersion,
298
+ renderingMode: this.config.renderingMode,
299
+ sections: this.config.sections,
300
+ outputs: Object.fromEntries(Object.entries(this.config.outputs).map(([key, value]) => [key, require_normalization.downgradeCfgOrLambda(value)]))
301
+ };
302
+ globalThis.platformaApiVersion = apiVersion;
303
+ if (!require_internal.isInUI()) return { config: blockConfig };
304
+ else return {
305
+ ...require_internal.getPlatformaInstance({
306
+ sdkVersion: require_version.PlatformaSDKVersion,
307
+ apiVersion
308
+ }),
309
+ blockModelInfo: {
310
+ outputs: Object.fromEntries(Object.entries(allOutputs).map(([key, value]) => [key, { withStatus: Boolean(require_types.isConfigLambda(value) && value.withStatus) }])),
311
+ pluginIds: pluginHandles
312
+ }
313
+ };
314
+ }
315
+ };
348
316
 
317
+ //#endregion
349
318
  exports.BlockModelV3 = BlockModelV3;
350
- //# sourceMappingURL=block_model.cjs.map
319
+ //# sourceMappingURL=block_model.cjs.map