@platforma-sdk/model 1.58.5 → 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.
- package/dist/_virtual/_rolldown/runtime.cjs +43 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/annotations/converter.cjs +15 -20
- package/dist/annotations/converter.cjs.map +1 -1
- package/dist/annotations/converter.d.ts +6 -2
- package/dist/annotations/converter.js +14 -18
- package/dist/annotations/converter.js.map +1 -1
- package/dist/annotations/index.cjs +1 -0
- package/dist/annotations/index.d.ts +2 -3
- package/dist/annotations/index.js +1 -0
- package/dist/annotations/types.d.ts +21 -16
- package/dist/bconfig/index.cjs +2 -0
- package/dist/bconfig/index.d.ts +5 -6
- package/dist/bconfig/index.js +2 -0
- package/dist/bconfig/lambdas.d.ts +52 -52
- package/dist/bconfig/normalization.cjs +13 -18
- package/dist/bconfig/normalization.cjs.map +1 -1
- package/dist/bconfig/normalization.d.ts +10 -6
- package/dist/bconfig/normalization.js +12 -16
- package/dist/bconfig/normalization.js.map +1 -1
- package/dist/bconfig/types.cjs +4 -3
- package/dist/bconfig/types.cjs.map +1 -1
- package/dist/bconfig/types.d.ts +10 -5
- package/dist/bconfig/types.js +4 -2
- package/dist/bconfig/types.js.map +1 -1
- package/dist/bconfig/util.d.ts +7 -4
- package/dist/bconfig/v3.d.ts +10 -6
- package/dist/block_api_v1.d.ts +62 -58
- package/dist/block_api_v2.d.ts +51 -47
- package/dist/block_api_v3.d.ts +33 -29
- package/dist/block_migrations.cjs +481 -413
- package/dist/block_migrations.cjs.map +1 -1
- package/dist/block_migrations.d.ts +258 -204
- package/dist/block_migrations.js +482 -408
- package/dist/block_migrations.js.map +1 -1
- package/dist/block_model.cjs +312 -343
- package/dist/block_model.cjs.map +1 -1
- package/dist/block_model.d.ts +143 -147
- package/dist/block_model.js +312 -341
- package/dist/block_model.js.map +1 -1
- package/dist/block_model_legacy.cjs +231 -255
- package/dist/block_model_legacy.cjs.map +1 -1
- package/dist/block_model_legacy.d.ts +108 -106
- package/dist/block_model_legacy.js +231 -253
- package/dist/block_model_legacy.js.map +1 -1
- package/dist/block_state_patch.d.ts +10 -10
- package/dist/block_state_util.cjs +15 -19
- package/dist/block_state_util.cjs.map +1 -1
- package/dist/block_state_util.d.ts +14 -13
- package/dist/block_state_util.js +15 -18
- package/dist/block_state_util.js.map +1 -1
- package/dist/block_storage.cjs +233 -238
- package/dist/block_storage.cjs.map +1 -1
- package/dist/block_storage.d.ts +62 -78
- package/dist/block_storage.js +234 -237
- package/dist/block_storage.js.map +1 -1
- package/dist/block_storage_callbacks.cjs +156 -195
- package/dist/block_storage_callbacks.cjs.map +1 -1
- package/dist/block_storage_callbacks.js +156 -192
- package/dist/block_storage_callbacks.js.map +1 -1
- package/dist/block_storage_facade.cjs +29 -85
- package/dist/block_storage_facade.cjs.map +1 -1
- package/dist/block_storage_facade.d.ts +83 -126
- package/dist/block_storage_facade.js +29 -83
- package/dist/block_storage_facade.js.map +1 -1
- package/dist/components/PFrameForGraphs.cjs +26 -24
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +12 -7
- package/dist/components/PFrameForGraphs.js +25 -22
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/components/PlAnnotations/filter.d.ts +62 -79
- package/dist/components/PlAnnotations/filters_ui.cjs +135 -171
- package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts +48 -46
- package/dist/components/PlAnnotations/filters_ui.js +135 -170
- package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
- package/dist/components/PlAnnotations/index.d.ts +2 -3
- package/dist/components/PlDataTable/index.cjs +2 -0
- package/dist/components/PlDataTable/index.d.ts +3 -5
- package/dist/components/PlDataTable/index.js +2 -0
- package/dist/components/PlDataTable/labels.cjs +59 -81
- package/dist/components/PlDataTable/labels.cjs.map +1 -1
- package/dist/components/PlDataTable/labels.js +58 -79
- package/dist/components/PlDataTable/labels.js.map +1 -1
- package/dist/components/PlDataTable/state-migration.cjs +186 -144
- package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
- package/dist/components/PlDataTable/state-migration.d.ts +85 -82
- package/dist/components/PlDataTable/state-migration.js +185 -142
- package/dist/components/PlDataTable/state-migration.js.map +1 -1
- package/dist/components/PlDataTable/table.cjs +172 -194
- package/dist/components/PlDataTable/table.cjs.map +1 -1
- package/dist/components/PlDataTable/table.d.ts +16 -12
- package/dist/components/PlDataTable/table.js +171 -192
- package/dist/components/PlDataTable/table.js.map +1 -1
- package/dist/components/PlDataTable/v4.d.ts +84 -119
- package/dist/components/PlDataTable/v5.d.ts +80 -103
- package/dist/components/PlMultiSequenceAlignment.cjs +27 -29
- package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -1
- package/dist/components/PlMultiSequenceAlignment.d.ts +36 -27
- package/dist/components/PlMultiSequenceAlignment.js +26 -27
- package/dist/components/PlMultiSequenceAlignment.js.map +1 -1
- package/dist/components/PlSelectionModel.cjs +7 -6
- package/dist/components/PlSelectionModel.cjs.map +1 -1
- package/dist/components/PlSelectionModel.d.ts +10 -8
- package/dist/components/PlSelectionModel.js +7 -5
- package/dist/components/PlSelectionModel.js.map +1 -1
- package/dist/components/index.cjs +8 -0
- package/dist/components/index.d.ts +11 -6
- package/dist/components/index.js +8 -0
- package/dist/config/actions.cjs +138 -171
- package/dist/config/actions.cjs.map +1 -1
- package/dist/config/actions.d.ts +47 -47
- package/dist/config/actions.js +146 -178
- package/dist/config/actions.js.map +1 -1
- package/dist/config/actions_kinds.d.ts +114 -121
- package/dist/config/index.cjs +1 -0
- package/dist/config/index.d.ts +6 -7
- package/dist/config/index.js +1 -0
- package/dist/config/model.d.ts +131 -127
- package/dist/config/model_meta.d.ts +4 -1
- package/dist/config/type_engine.d.ts +22 -21
- package/dist/config/type_util.d.ts +12 -10
- package/dist/env_value.cjs +5 -6
- package/dist/env_value.cjs.map +1 -1
- package/dist/env_value.d.ts +4 -1
- package/dist/env_value.js +5 -5
- package/dist/env_value.js.map +1 -1
- package/dist/filters/converters/filterToQuery.cjs +273 -239
- package/dist/filters/converters/filterToQuery.cjs.map +1 -1
- package/dist/filters/converters/filterToQuery.d.ts +6 -2
- package/dist/filters/converters/filterToQuery.js +272 -237
- package/dist/filters/converters/filterToQuery.js.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.cjs +56 -85
- package/dist/filters/converters/filterUiToExpressionImpl.cjs.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.d.ts +8 -4
- package/dist/filters/converters/filterUiToExpressionImpl.js +55 -83
- package/dist/filters/converters/filterUiToExpressionImpl.js.map +1 -1
- package/dist/filters/converters/index.cjs +2 -0
- package/dist/filters/converters/index.d.ts +2 -3
- package/dist/filters/converters/index.js +2 -0
- package/dist/filters/distill.cjs +59 -60
- package/dist/filters/distill.cjs.map +1 -1
- package/dist/filters/distill.d.ts +6 -3
- package/dist/filters/distill.js +58 -58
- package/dist/filters/distill.js.map +1 -1
- package/dist/filters/index.cjs +4 -0
- package/dist/filters/index.d.ts +5 -4
- package/dist/filters/index.js +4 -0
- package/dist/filters/traverse.cjs +31 -40
- package/dist/filters/traverse.cjs.map +1 -1
- package/dist/filters/traverse.js +31 -39
- package/dist/filters/traverse.js.map +1 -1
- package/dist/filters/types.d.ts +10 -7
- package/dist/index.cjs +193 -187
- package/dist/index.d.ts +61 -28
- package/dist/index.js +49 -41
- package/dist/internal.cjs +48 -62
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.js +49 -60
- package/dist/internal.js.map +1 -1
- package/dist/package.cjs +12 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.js +6 -0
- package/dist/package.js.map +1 -0
- package/dist/pframe.cjs +32 -37
- package/dist/pframe.cjs.map +1 -1
- package/dist/pframe.d.ts +14 -10
- package/dist/pframe.js +32 -35
- package/dist/pframe.js.map +1 -1
- package/dist/pframe_utils/axes.cjs +81 -114
- package/dist/pframe_utils/axes.cjs.map +1 -1
- package/dist/pframe_utils/axes.d.ts +10 -13
- package/dist/pframe_utils/axes.js +80 -112
- package/dist/pframe_utils/axes.js.map +1 -1
- package/dist/pframe_utils/columns.cjs +61 -81
- package/dist/pframe_utils/columns.cjs.map +1 -1
- package/dist/pframe_utils/columns.d.ts +15 -6
- package/dist/pframe_utils/columns.js +60 -79
- package/dist/pframe_utils/columns.js.map +1 -1
- package/dist/pframe_utils/index.cjs +232 -253
- package/dist/pframe_utils/index.cjs.map +1 -1
- package/dist/pframe_utils/index.d.ts +39 -35
- package/dist/pframe_utils/index.js +231 -251
- package/dist/pframe_utils/index.js.map +1 -1
- package/dist/platforma.d.ts +48 -46
- package/dist/plugin_handle.cjs +6 -14
- package/dist/plugin_handle.cjs.map +1 -1
- package/dist/plugin_handle.d.ts +20 -25
- package/dist/plugin_handle.js +6 -13
- package/dist/plugin_handle.js.map +1 -1
- package/dist/plugin_model.cjs +364 -163
- package/dist/plugin_model.cjs.map +1 -1
- package/dist/plugin_model.d.ts +280 -129
- package/dist/plugin_model.js +362 -163
- package/dist/plugin_model.js.map +1 -1
- package/dist/raw_globals.cjs +10 -22
- package/dist/raw_globals.cjs.map +1 -1
- package/dist/raw_globals.d.ts +8 -5
- package/dist/raw_globals.js +10 -20
- package/dist/raw_globals.js.map +1 -1
- package/dist/ref_util.cjs +14 -13
- package/dist/ref_util.cjs.map +1 -1
- package/dist/ref_util.d.ts +18 -12
- package/dist/ref_util.js +14 -11
- package/dist/ref_util.js.map +1 -1
- package/dist/render/accessor.cjs +213 -226
- package/dist/render/accessor.cjs.map +1 -1
- package/dist/render/accessor.d.ts +115 -120
- package/dist/render/accessor.js +212 -224
- package/dist/render/accessor.js.map +1 -1
- package/dist/render/api.cjs +478 -580
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +207 -209
- package/dist/render/api.js +476 -578
- package/dist/render/api.js.map +1 -1
- package/dist/render/future.cjs +28 -32
- package/dist/render/future.cjs.map +1 -1
- package/dist/render/future.d.ts +15 -11
- package/dist/render/future.js +28 -30
- package/dist/render/future.js.map +1 -1
- package/dist/render/index.cjs +8 -0
- package/dist/render/index.d.ts +10 -8
- package/dist/render/index.js +8 -0
- package/dist/render/internal.cjs +33 -29
- package/dist/render/internal.cjs.map +1 -1
- package/dist/render/internal.d.ts +78 -72
- package/dist/render/internal.js +29 -26
- package/dist/render/internal.js.map +1 -1
- package/dist/render/traversal_ops.d.ts +42 -43
- package/dist/render/util/axis_filtering.cjs +63 -86
- package/dist/render/util/axis_filtering.cjs.map +1 -1
- package/dist/render/util/axis_filtering.d.ts +10 -7
- package/dist/render/util/axis_filtering.js +63 -85
- package/dist/render/util/axis_filtering.js.map +1 -1
- package/dist/render/util/column_collection.cjs +266 -321
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +47 -47
- package/dist/render/util/column_collection.js +264 -319
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/index.cjs +4 -0
- package/dist/render/util/index.d.ts +4 -5
- package/dist/render/util/index.js +4 -0
- package/dist/render/util/label.cjs +129 -163
- package/dist/render/util/label.cjs.map +1 -1
- package/dist/render/util/label.d.ts +45 -46
- package/dist/render/util/label.js +128 -161
- package/dist/render/util/label.js.map +1 -1
- package/dist/render/util/pcolumn_data.cjs +315 -375
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +33 -32
- package/dist/render/util/pcolumn_data.js +314 -373
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/dist/render/util/pframe_upgraders.cjs +37 -42
- package/dist/render/util/pframe_upgraders.cjs.map +1 -1
- package/dist/render/util/pframe_upgraders.js +37 -41
- package/dist/render/util/pframe_upgraders.js.map +1 -1
- package/dist/render/util/split_selectors.d.ts +13 -9
- package/dist/version.cjs +6 -8
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.ts +7 -4
- package/dist/version.js +5 -5
- package/dist/version.js.map +1 -1
- package/package.json +10 -4
- package/src/block_migrations.test.ts +184 -14
- package/src/block_migrations.ts +185 -30
- package/src/block_model.ts +111 -66
- package/src/block_storage.test.ts +147 -3
- package/src/block_storage.ts +43 -8
- package/src/block_storage_callbacks.ts +9 -4
- package/src/env_value.ts +0 -2
- package/src/index.ts +12 -11
- package/src/internal.ts +0 -1
- package/src/platforma.ts +4 -4
- package/src/plugin_handle.ts +1 -1
- package/src/plugin_model.test.ts +217 -21
- package/src/plugin_model.ts +450 -55
- package/src/raw_globals.ts +0 -1
- package/dist/annotations/converter.d.ts.map +0 -1
- package/dist/annotations/index.d.ts.map +0 -1
- package/dist/annotations/types.d.ts.map +0 -1
- package/dist/bconfig/index.d.ts.map +0 -1
- package/dist/bconfig/lambdas.d.ts.map +0 -1
- package/dist/bconfig/normalization.d.ts.map +0 -1
- package/dist/bconfig/types.d.ts.map +0 -1
- package/dist/bconfig/util.d.ts.map +0 -1
- package/dist/bconfig/v3.d.ts.map +0 -1
- package/dist/block_api_v1.d.ts.map +0 -1
- package/dist/block_api_v2.d.ts.map +0 -1
- package/dist/block_api_v3.d.ts.map +0 -1
- package/dist/block_migrations.d.ts.map +0 -1
- package/dist/block_model.d.ts.map +0 -1
- package/dist/block_model_legacy.d.ts.map +0 -1
- package/dist/block_state_patch.d.ts.map +0 -1
- package/dist/block_state_util.d.ts.map +0 -1
- package/dist/block_storage.d.ts.map +0 -1
- package/dist/block_storage_callbacks.d.ts +0 -115
- package/dist/block_storage_callbacks.d.ts.map +0 -1
- package/dist/block_storage_facade.d.ts.map +0 -1
- package/dist/components/PFrameForGraphs.d.ts.map +0 -1
- package/dist/components/PlAnnotations/filter.d.ts.map +0 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts.map +0 -1
- package/dist/components/PlAnnotations/index.d.ts.map +0 -1
- package/dist/components/PlAnnotations/types.d.ts +0 -3
- package/dist/components/PlAnnotations/types.d.ts.map +0 -1
- package/dist/components/PlDataTable/index.d.ts.map +0 -1
- package/dist/components/PlDataTable/labels.d.ts +0 -7
- package/dist/components/PlDataTable/labels.d.ts.map +0 -1
- package/dist/components/PlDataTable/state-migration.d.ts.map +0 -1
- package/dist/components/PlDataTable/table.d.ts.map +0 -1
- package/dist/components/PlDataTable/v4.d.ts.map +0 -1
- package/dist/components/PlDataTable/v5.d.ts.map +0 -1
- package/dist/components/PlMultiSequenceAlignment.d.ts.map +0 -1
- package/dist/components/PlSelectionModel.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/config/actions.d.ts.map +0 -1
- package/dist/config/actions_kinds.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/model.d.ts.map +0 -1
- package/dist/config/model_meta.d.ts.map +0 -1
- package/dist/config/type_engine.d.ts.map +0 -1
- package/dist/config/type_util.d.ts.map +0 -1
- package/dist/env_value.d.ts.map +0 -1
- package/dist/filters/converters/filterToQuery.d.ts.map +0 -1
- package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +0 -1
- package/dist/filters/converters/index.d.ts.map +0 -1
- package/dist/filters/distill.d.ts.map +0 -1
- package/dist/filters/index.d.ts.map +0 -1
- package/dist/filters/traverse.d.ts +0 -27
- package/dist/filters/traverse.d.ts.map +0 -1
- package/dist/filters/types.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal.d.ts +0 -36
- package/dist/internal.d.ts.map +0 -1
- package/dist/package.json.cjs +0 -6
- package/dist/package.json.cjs.map +0 -1
- package/dist/package.json.js +0 -4
- package/dist/package.json.js.map +0 -1
- package/dist/pframe.d.ts.map +0 -1
- package/dist/pframe_utils/axes.d.ts.map +0 -1
- package/dist/pframe_utils/columns.d.ts.map +0 -1
- package/dist/pframe_utils/index.d.ts.map +0 -1
- package/dist/pframe_utils/querySpec.d.ts +0 -2
- package/dist/pframe_utils/querySpec.d.ts.map +0 -1
- package/dist/platforma.d.ts.map +0 -1
- package/dist/plugin_handle.d.ts.map +0 -1
- package/dist/plugin_model.d.ts.map +0 -1
- package/dist/raw_globals.d.ts.map +0 -1
- package/dist/ref_util.d.ts.map +0 -1
- package/dist/render/accessor.d.ts.map +0 -1
- package/dist/render/api.d.ts.map +0 -1
- package/dist/render/future.d.ts.map +0 -1
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/internal.d.ts.map +0 -1
- package/dist/render/traversal_ops.d.ts.map +0 -1
- package/dist/render/util/axis_filtering.d.ts.map +0 -1
- package/dist/render/util/column_collection.d.ts.map +0 -1
- package/dist/render/util/index.d.ts.map +0 -1
- package/dist/render/util/label.d.ts.map +0 -1
- package/dist/render/util/pcolumn_data.d.ts.map +0 -1
- package/dist/render/util/pframe_upgraders.d.ts +0 -3
- package/dist/render/util/pframe_upgraders.d.ts.map +0 -1
- package/dist/render/util/split_selectors.d.ts.map +0 -1
- package/dist/version.d.ts.map +0 -1
package/dist/block_model.cjs
CHANGED
|
@@ -1,350 +1,319 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require('
|
|
6
|
-
require('./
|
|
7
|
-
require('
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class BlockModelV3 {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|