@platforma-sdk/model 1.63.1 → 1.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +12 -22
- package/dist/_virtual/_rolldown/runtime.js +6 -11
- package/dist/annotations/converter.cjs +4 -5
- package/dist/annotations/converter.cjs.map +1 -1
- package/dist/annotations/converter.d.ts.map +1 -0
- package/dist/annotations/converter.js +1 -2
- package/dist/annotations/converter.js.map +1 -1
- package/dist/annotations/index.cjs +1 -1
- package/dist/annotations/index.js +1 -1
- package/dist/annotations/types.d.ts +0 -1
- package/dist/annotations/types.d.ts.map +1 -0
- package/dist/bconfig/index.cjs +2 -2
- package/dist/bconfig/index.js +2 -2
- package/dist/bconfig/lambdas.d.ts +0 -1
- package/dist/bconfig/lambdas.d.ts.map +1 -0
- package/dist/bconfig/normalization.cjs +4 -5
- package/dist/bconfig/normalization.cjs.map +1 -1
- package/dist/bconfig/normalization.d.ts.map +1 -0
- package/dist/bconfig/normalization.js +1 -2
- package/dist/bconfig/normalization.js.map +1 -1
- package/dist/bconfig/types.cjs +1 -2
- package/dist/bconfig/types.cjs.map +1 -1
- package/dist/bconfig/types.d.ts +0 -1
- package/dist/bconfig/types.d.ts.map +1 -0
- package/dist/bconfig/types.js +1 -1
- package/dist/bconfig/util.d.ts.map +1 -0
- package/dist/bconfig/v3.d.ts.map +1 -0
- package/dist/block_api_v1.d.ts.map +1 -0
- package/dist/block_api_v2.d.ts.map +1 -0
- package/dist/block_api_v3.d.ts.map +1 -0
- package/dist/block_migrations.cjs +2 -3
- package/dist/block_migrations.cjs.map +1 -1
- package/dist/block_migrations.d.ts.map +1 -0
- package/dist/block_migrations.js +1 -2
- package/dist/block_migrations.js.map +1 -1
- package/dist/block_model.cjs +16 -17
- package/dist/block_model.cjs.map +1 -1
- package/dist/block_model.d.ts +0 -2
- package/dist/block_model.d.ts.map +1 -0
- package/dist/block_model.js +4 -5
- package/dist/block_model.js.map +1 -1
- package/dist/block_model_legacy.cjs +10 -11
- package/dist/block_model_legacy.cjs.map +1 -1
- package/dist/block_model_legacy.d.ts +0 -3
- package/dist/block_model_legacy.d.ts.map +1 -0
- package/dist/block_model_legacy.js +1 -2
- package/dist/block_model_legacy.js.map +1 -1
- package/dist/block_state_patch.d.ts.map +1 -0
- package/dist/block_state_util.cjs +1 -2
- package/dist/block_state_util.cjs.map +1 -1
- package/dist/block_state_util.d.ts.map +1 -0
- package/dist/block_state_util.js +1 -1
- package/dist/block_state_util.js.map +1 -1
- package/dist/block_storage.cjs +5 -12
- package/dist/block_storage.cjs.map +1 -1
- package/dist/block_storage.d.ts.map +1 -0
- package/dist/block_storage.js +5 -11
- package/dist/block_storage.js.map +1 -1
- package/dist/block_storage_callbacks.cjs +4 -5
- package/dist/block_storage_callbacks.cjs.map +1 -1
- package/dist/block_storage_callbacks.js +3 -4
- package/dist/block_storage_callbacks.js.map +1 -1
- package/dist/block_storage_facade.cjs +2 -3
- package/dist/block_storage_facade.cjs.map +1 -1
- package/dist/block_storage_facade.d.ts +0 -1
- package/dist/block_storage_facade.d.ts.map +1 -0
- package/dist/block_storage_facade.js +1 -2
- package/dist/block_storage_facade.js.map +1 -1
- package/dist/columns/column_collection_builder.cjs +111 -99
- package/dist/columns/column_collection_builder.cjs.map +1 -1
- package/dist/columns/column_collection_builder.d.ts +13 -12
- package/dist/columns/column_collection_builder.d.ts.map +1 -0
- package/dist/columns/column_collection_builder.js +108 -96
- package/dist/columns/column_collection_builder.js.map +1 -1
- package/dist/columns/column_selector.cjs +9 -82
- package/dist/columns/column_selector.cjs.map +1 -1
- package/dist/columns/column_selector.d.ts +6 -14
- package/dist/columns/column_selector.d.ts.map +1 -0
- package/dist/columns/column_selector.js +7 -78
- package/dist/columns/column_selector.js.map +1 -1
- package/dist/columns/column_snapshot.cjs +4 -5
- package/dist/columns/column_snapshot.cjs.map +1 -1
- package/dist/columns/column_snapshot.d.ts +3 -3
- package/dist/columns/column_snapshot.d.ts.map +1 -0
- package/dist/columns/column_snapshot.js +4 -4
- package/dist/columns/column_snapshot.js.map +1 -1
- package/dist/columns/column_snapshot_provider.cjs +2 -3
- package/dist/columns/column_snapshot_provider.cjs.map +1 -1
- package/dist/columns/column_snapshot_provider.d.ts +8 -8
- package/dist/columns/column_snapshot_provider.d.ts.map +1 -0
- package/dist/columns/column_snapshot_provider.js +2 -2
- package/dist/columns/column_snapshot_provider.js.map +1 -1
- package/dist/columns/ctx_column_sources.cjs +3 -4
- package/dist/columns/ctx_column_sources.cjs.map +1 -1
- package/dist/columns/ctx_column_sources.d.ts +2 -2
- package/dist/columns/ctx_column_sources.d.ts.map +1 -0
- package/dist/columns/ctx_column_sources.js +1 -2
- package/dist/columns/ctx_column_sources.js.map +1 -1
- package/dist/columns/expand_by_partition.cjs +106 -0
- package/dist/columns/expand_by_partition.cjs.map +1 -0
- package/dist/columns/expand_by_partition.d.ts +33 -0
- package/dist/columns/expand_by_partition.d.ts.map +1 -0
- package/dist/columns/expand_by_partition.js +105 -0
- package/dist/columns/expand_by_partition.js.map +1 -0
- package/dist/columns/index.cjs +6 -5
- package/dist/columns/index.d.ts +4 -3
- package/dist/columns/index.js +6 -5
- package/dist/components/PFrameForGraphs.cjs +4 -5
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +0 -1
- package/dist/components/PFrameForGraphs.d.ts.map +1 -0
- package/dist/components/PFrameForGraphs.js +2 -3
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/components/PlAnnotations/filter.d.ts.map +1 -0
- package/dist/components/PlAnnotations/filters_ui.cjs +1 -2
- package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts +0 -2
- package/dist/components/PlAnnotations/filters_ui.d.ts.map +1 -0
- package/dist/components/PlAnnotations/filters_ui.js +1 -1
- package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +26 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +25 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs +68 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js +67 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +28 -18
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts +4 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +22 -12
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +262 -181
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts +37 -23
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +261 -177
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +64 -0
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts +17 -0
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +63 -0
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/index.cjs +4 -4
- package/dist/components/PlDataTable/createPlDataTable/index.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/index.d.ts +2 -2
- package/dist/components/PlDataTable/createPlDataTable/index.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/index.js +3 -3
- package/dist/components/PlDataTable/createPlDataTable/index.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs +109 -0
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts +19 -0
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/utils.js +102 -0
- package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -0
- package/dist/components/PlDataTable/createPlDataTableSheet.cjs +1 -2
- package/dist/components/PlDataTable/createPlDataTableSheet.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTableSheet.d.ts +0 -1
- package/dist/components/PlDataTable/createPlDataTableSheet.d.ts.map +1 -0
- package/dist/components/PlDataTable/createPlDataTableSheet.js +1 -1
- package/dist/components/PlDataTable/index.cjs +7 -5
- package/dist/components/PlDataTable/index.d.ts +4 -2
- package/dist/components/PlDataTable/index.js +7 -5
- package/dist/components/PlDataTable/labels.cjs +27 -14
- package/dist/components/PlDataTable/labels.cjs.map +1 -1
- package/dist/components/PlDataTable/labels.js +26 -13
- package/dist/components/PlDataTable/labels.js.map +1 -1
- package/dist/components/PlDataTable/state-migration.cjs +8 -6
- package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
- package/dist/components/PlDataTable/state-migration.d.ts.map +1 -0
- package/dist/components/PlDataTable/state-migration.js +5 -3
- package/dist/components/PlDataTable/state-migration.js.map +1 -1
- package/dist/components/PlDataTable/typesV4.d.ts.map +1 -0
- package/dist/components/PlDataTable/typesV5.d.ts +5 -5
- package/dist/components/PlDataTable/typesV5.d.ts.map +1 -0
- package/dist/components/PlMultiSequenceAlignment.cjs +2 -3
- package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -1
- package/dist/components/PlMultiSequenceAlignment.d.ts.map +1 -0
- package/dist/components/PlMultiSequenceAlignment.js +1 -2
- package/dist/components/PlMultiSequenceAlignment.js.map +1 -1
- package/dist/components/PlSelectionModel.cjs +1 -2
- package/dist/components/PlSelectionModel.cjs.map +1 -1
- package/dist/components/PlSelectionModel.d.ts.map +1 -0
- package/dist/components/PlSelectionModel.js +1 -1
- package/dist/components/index.cjs +13 -11
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +12 -10
- package/dist/config/actions.cjs +1 -2
- package/dist/config/actions.cjs.map +1 -1
- package/dist/config/actions.d.ts.map +1 -0
- package/dist/config/actions.js +1 -1
- package/dist/config/actions_kinds.d.ts.map +1 -0
- package/dist/config/index.cjs +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/model.d.ts.map +1 -0
- package/dist/config/model_meta.d.ts.map +1 -0
- package/dist/config/type_engine.d.ts.map +1 -0
- package/dist/config/type_util.d.ts.map +1 -0
- package/dist/env_value.cjs +1 -2
- package/dist/env_value.cjs.map +1 -1
- package/dist/env_value.d.ts.map +1 -0
- package/dist/env_value.js +1 -1
- package/dist/env_value.js.map +1 -1
- package/dist/filters/converters/filterToQuery.cjs +3 -4
- package/dist/filters/converters/filterToQuery.cjs.map +1 -1
- package/dist/filters/converters/filterToQuery.d.ts.map +1 -0
- package/dist/filters/converters/filterToQuery.js +1 -2
- package/dist/filters/converters/filterToQuery.js.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.cjs +3 -4
- package/dist/filters/converters/filterUiToExpressionImpl.cjs.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +1 -0
- package/dist/filters/converters/filterUiToExpressionImpl.js +1 -2
- package/dist/filters/converters/filterUiToExpressionImpl.js.map +1 -1
- package/dist/filters/converters/index.cjs +2 -2
- package/dist/filters/converters/index.js +2 -2
- package/dist/filters/distill.cjs +3 -4
- package/dist/filters/distill.cjs.map +1 -1
- package/dist/filters/distill.d.ts.map +1 -0
- package/dist/filters/distill.js +1 -2
- package/dist/filters/distill.js.map +1 -1
- package/dist/filters/index.cjs +4 -4
- package/dist/filters/index.d.ts +0 -1
- package/dist/filters/index.js +3 -3
- package/dist/filters/traverse.cjs +1 -2
- package/dist/filters/traverse.cjs.map +1 -1
- package/dist/filters/traverse.js +1 -1
- package/dist/filters/traverse.js.map +1 -1
- package/dist/filters/types.d.ts.map +1 -0
- package/dist/index.cjs +89 -83
- package/dist/index.d.ts +8 -15
- package/dist/index.js +8 -9
- package/dist/internal.cjs +1 -2
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/labels/derive_distinct_labels.cjs +41 -30
- package/dist/labels/derive_distinct_labels.cjs.map +1 -1
- package/dist/labels/derive_distinct_labels.d.ts +15 -15
- package/dist/labels/derive_distinct_labels.d.ts.map +1 -0
- package/dist/labels/derive_distinct_labels.js +40 -29
- package/dist/labels/derive_distinct_labels.js.map +1 -1
- package/dist/labels/index.cjs +1 -2
- package/dist/labels/index.d.ts +1 -2
- package/dist/labels/index.js +1 -2
- package/dist/package.cjs +7 -8
- package/dist/package.js +2 -2
- package/dist/pframe.cjs +2 -3
- package/dist/pframe.cjs.map +1 -1
- package/dist/pframe.d.ts.map +1 -0
- package/dist/pframe.js +1 -2
- package/dist/pframe.js.map +1 -1
- package/dist/pframe_utils/axes.cjs +2 -3
- package/dist/pframe_utils/axes.cjs.map +1 -1
- package/dist/pframe_utils/axes.d.ts +0 -1
- package/dist/pframe_utils/axes.d.ts.map +1 -0
- package/dist/pframe_utils/axes.js +1 -2
- package/dist/pframe_utils/axes.js.map +1 -1
- package/dist/pframe_utils/columns.cjs +5 -6
- package/dist/pframe_utils/columns.cjs.map +1 -1
- package/dist/pframe_utils/columns.d.ts +0 -1
- package/dist/pframe_utils/columns.d.ts.map +1 -0
- package/dist/pframe_utils/columns.js +1 -2
- package/dist/pframe_utils/columns.js.map +1 -1
- package/dist/pframe_utils/index.cjs +3 -4
- package/dist/pframe_utils/index.cjs.map +1 -1
- package/dist/pframe_utils/index.d.ts.map +1 -0
- package/dist/pframe_utils/index.js +2 -3
- package/dist/pframe_utils/index.js.map +1 -1
- package/dist/platforma.d.ts.map +1 -0
- package/dist/plugin_handle.cjs +1 -2
- package/dist/plugin_handle.cjs.map +1 -1
- package/dist/plugin_handle.d.ts.map +1 -0
- package/dist/plugin_handle.js +1 -1
- package/dist/plugin_model.cjs +3 -4
- package/dist/plugin_model.cjs.map +1 -1
- package/dist/plugin_model.d.ts +0 -1
- package/dist/plugin_model.d.ts.map +1 -0
- package/dist/plugin_model.js +1 -2
- package/dist/plugin_model.js.map +1 -1
- package/dist/raw_globals.cjs +3 -4
- package/dist/raw_globals.cjs.map +1 -1
- package/dist/raw_globals.d.ts.map +1 -0
- package/dist/raw_globals.js +1 -2
- package/dist/raw_globals.js.map +1 -1
- package/dist/ref_util.cjs +3 -4
- package/dist/ref_util.cjs.map +1 -1
- package/dist/ref_util.d.ts +0 -2
- package/dist/ref_util.d.ts.map +1 -0
- package/dist/ref_util.js +1 -2
- package/dist/ref_util.js.map +1 -1
- package/dist/render/accessor.cjs +4 -5
- package/dist/render/accessor.cjs.map +1 -1
- package/dist/render/accessor.d.ts.map +1 -0
- package/dist/render/accessor.js +1 -2
- package/dist/render/accessor.js.map +1 -1
- package/dist/render/api.cjs +20 -14
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +2 -3
- package/dist/render/api.d.ts.map +1 -0
- package/dist/render/api.js +11 -5
- package/dist/render/api.js.map +1 -1
- package/dist/render/future.cjs +2 -3
- package/dist/render/future.cjs.map +1 -1
- package/dist/render/future.d.ts.map +1 -0
- package/dist/render/future.js +1 -2
- package/dist/render/future.js.map +1 -1
- package/dist/render/index.cjs +8 -8
- package/dist/render/index.d.ts +1 -2
- package/dist/render/index.js +7 -7
- package/dist/render/internal.cjs +7 -9
- package/dist/render/internal.cjs.map +1 -1
- package/dist/render/internal.d.ts.map +1 -0
- package/dist/render/internal.js +1 -2
- package/dist/render/internal.js.map +1 -1
- package/dist/render/traversal_ops.d.ts.map +1 -0
- package/dist/render/util/axis_filtering.cjs +1 -2
- package/dist/render/util/axis_filtering.cjs.map +1 -1
- package/dist/render/util/axis_filtering.d.ts.map +1 -0
- package/dist/render/util/axis_filtering.js +1 -1
- package/dist/render/util/column_collection.cjs +8 -9
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +0 -1
- package/dist/render/util/column_collection.d.ts.map +1 -0
- package/dist/render/util/column_collection.js +4 -5
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/index.cjs +4 -4
- package/dist/render/util/index.js +4 -4
- package/dist/render/util/label.cjs +4 -5
- package/dist/render/util/label.cjs.map +1 -1
- package/dist/render/util/label.d.ts.map +1 -0
- package/dist/render/util/label.js +3 -4
- package/dist/render/util/label.js.map +1 -1
- package/dist/render/util/pcolumn_data.cjs +9 -10
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +2 -2
- package/dist/render/util/pcolumn_data.d.ts.map +1 -0
- package/dist/render/util/pcolumn_data.js +7 -8
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/dist/render/util/pframe_upgraders.cjs +1 -2
- package/dist/render/util/pframe_upgraders.cjs.map +1 -1
- package/dist/render/util/pframe_upgraders.js +1 -1
- package/dist/render/util/split_selectors.d.ts.map +1 -0
- package/dist/services/block_services.cjs +2 -3
- package/dist/services/block_services.cjs.map +1 -1
- package/dist/services/block_services.d.ts +2 -2
- package/dist/services/block_services.d.ts.map +1 -0
- package/dist/services/block_services.js +1 -2
- package/dist/services/block_services.js.map +1 -1
- package/dist/services/index.cjs +2 -2
- package/dist/services/index.js +2 -2
- package/dist/services/service_bridge.cjs +1 -2
- package/dist/services/service_bridge.cjs.map +1 -1
- package/dist/services/service_bridge.d.ts.map +1 -0
- package/dist/services/service_bridge.js +1 -1
- package/dist/services/service_resolve.d.ts.map +1 -0
- package/dist/version.cjs +2 -4
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +1 -2
- package/dist/version.js.map +1 -1
- package/package.json +13 -13
- package/src/columns/column_collection_builder.test.ts +40 -27
- package/src/columns/column_collection_builder.ts +176 -131
- package/src/columns/column_selector.test.ts +17 -399
- package/src/columns/column_selector.ts +14 -127
- package/src/columns/column_snapshot.ts +5 -5
- package/src/columns/column_snapshot_provider.ts +11 -10
- package/src/columns/ctx_column_sources.ts +2 -2
- package/src/columns/expand_by_partition.test.ts +4 -4
- package/src/columns/expand_by_partition.ts +4 -3
- package/src/columns/index.ts +1 -0
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +42 -0
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV3.ts +89 -0
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +39 -11
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +502 -313
- package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +122 -0
- package/src/components/PlDataTable/createPlDataTable/index.ts +4 -2
- package/src/components/PlDataTable/createPlDataTable/utils.test.ts +257 -0
- package/src/components/PlDataTable/createPlDataTable/utils.ts +160 -0
- package/src/components/PlDataTable/index.ts +13 -2
- package/src/components/PlDataTable/labels.ts +29 -18
- package/src/components/PlDataTable/state-migration.ts +3 -1
- package/src/components/PlDataTable/typesV5.ts +4 -4
- package/src/labels/derive_distinct_labels.test.ts +143 -45
- package/src/labels/derive_distinct_labels.ts +102 -49
- package/src/labels/index.ts +0 -1
- package/src/render/api.ts +15 -5
- package/src/render/util/column_collection.ts +4 -3
- package/src/render/util/label.ts +2 -2
- package/src/render/util/pcolumn_data.ts +5 -3
- package/dist/labels/write_labels_to_specs.cjs +0 -15
- package/dist/labels/write_labels_to_specs.cjs.map +0 -1
- package/dist/labels/write_labels_to_specs.d.ts +0 -9
- package/dist/labels/write_labels_to_specs.js +0 -14
- package/dist/labels/write_labels_to_specs.js.map +0 -1
- package/src/labels/write_labels_to_specs.ts +0 -12
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as _milaboratories_pl_model_common0 from "@milaboratories/pl-model-common";
|
|
1
|
+
import * as _$_milaboratories_pl_model_common0 from "@milaboratories/pl-model-common";
|
|
2
2
|
|
|
3
3
|
//#region src/services/block_services.d.ts
|
|
4
4
|
/**
|
|
@@ -12,7 +12,7 @@ declare const BLOCK_SERVICE_FLAGS: {
|
|
|
12
12
|
readonly requiresPFrameSpec: true;
|
|
13
13
|
};
|
|
14
14
|
type BlockServiceFlags = typeof BLOCK_SERVICE_FLAGS;
|
|
15
|
-
declare const blockServiceNames: _milaboratories_pl_model_common0.ServiceName[];
|
|
15
|
+
declare const blockServiceNames: _$_milaboratories_pl_model_common0.ServiceName[];
|
|
16
16
|
//#endregion
|
|
17
17
|
export { BLOCK_SERVICE_FLAGS, BlockServiceFlags, blockServiceNames };
|
|
18
18
|
//# sourceMappingURL=block_services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block_services.d.ts","names":[],"sources":["../../src/services/block_services.ts"],"mappings":";;;;;;AAUA;;;;cAAa,mBAAA;EAAA,SAEoC,kBAAA;AAAA;AAAA,KAErC,iBAAA,UAA2B,mBAAA;AAAA,cAE1B,iBAAA,EAAgE,kCAAA,CAA/C,WAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { resolveRequiredServices } from "@milaboratories/pl-model-common";
|
|
2
|
-
|
|
3
2
|
//#region src/services/block_services.ts
|
|
4
3
|
/**
|
|
5
4
|
* Services required by all V3 blocks by default.
|
|
@@ -10,7 +9,7 @@ import { resolveRequiredServices } from "@milaboratories/pl-model-common";
|
|
|
10
9
|
*/
|
|
11
10
|
const BLOCK_SERVICE_FLAGS = { requiresPFrameSpec: true };
|
|
12
11
|
const blockServiceNames = resolveRequiredServices(BLOCK_SERVICE_FLAGS);
|
|
13
|
-
|
|
14
12
|
//#endregion
|
|
15
13
|
export { BLOCK_SERVICE_FLAGS, blockServiceNames };
|
|
14
|
+
|
|
16
15
|
//# sourceMappingURL=block_services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_services.js","names":[],"sources":["../../src/services/block_services.ts"],"sourcesContent":["import type { ServiceRequireFlags } from \"@milaboratories/pl-model-common\";\nimport { resolveRequiredServices } from \"@milaboratories/pl-model-common\";\n\n/**\n * Services required by all V3 blocks by default.\n * Edit this when a new service should be available to all blocks.\n *\n * Standalone module to avoid circular dependencies between block_model.ts\n * and service type resolution.\n */\nexport const BLOCK_SERVICE_FLAGS = {\n requiresPFrameSpec: true,\n} as const satisfies Partial<ServiceRequireFlags>;\n\nexport type BlockServiceFlags = typeof BLOCK_SERVICE_FLAGS;\n\nexport const blockServiceNames = resolveRequiredServices(BLOCK_SERVICE_FLAGS);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"block_services.js","names":[],"sources":["../../src/services/block_services.ts"],"sourcesContent":["import type { ServiceRequireFlags } from \"@milaboratories/pl-model-common\";\nimport { resolveRequiredServices } from \"@milaboratories/pl-model-common\";\n\n/**\n * Services required by all V3 blocks by default.\n * Edit this when a new service should be available to all blocks.\n *\n * Standalone module to avoid circular dependencies between block_model.ts\n * and service type resolution.\n */\nexport const BLOCK_SERVICE_FLAGS = {\n requiresPFrameSpec: true,\n} as const satisfies Partial<ServiceRequireFlags>;\n\nexport type BlockServiceFlags = typeof BLOCK_SERVICE_FLAGS;\n\nexport const blockServiceNames = resolveRequiredServices(BLOCK_SERVICE_FLAGS);\n"],"mappings":";;;;;;;;;AAUA,MAAa,sBAAsB,EACjC,oBAAoB,MACrB;AAID,MAAa,oBAAoB,wBAAwB,oBAAoB"}
|
package/dist/services/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
require("./block_services.cjs");
|
|
2
|
+
require("./service_bridge.cjs");
|
package/dist/services/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import "./block_services.js";
|
|
2
|
+
import "./service_bridge.js";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/services/service_bridge.ts
|
|
3
2
|
/**
|
|
4
3
|
* Builds a lazy services object from ServiceDispatch and UiServiceRegistry.
|
|
@@ -28,8 +27,8 @@ function buildServices(dispatch, registry) {
|
|
|
28
27
|
function createNodeServiceProxy(dispatch) {
|
|
29
28
|
return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, async (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
|
|
30
29
|
}
|
|
31
|
-
|
|
32
30
|
//#endregion
|
|
33
31
|
exports.buildServices = buildServices;
|
|
34
32
|
exports.createNodeServiceProxy = createNodeServiceProxy;
|
|
33
|
+
|
|
35
34
|
//# sourceMappingURL=service_bridge.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service_bridge.cjs","names":[],"sources":["../../src/services/service_bridge.ts"],"sourcesContent":["/**\n * Runtime service bridge — builds lazy service objects from dispatch + registry.\n * Used by the UI layer to provide typed service access.\n */\n\nimport type {\n ServiceTypesLike,\n InferServiceUi,\n ServiceName,\n ServiceDispatch,\n UiServices as AllUiServices,\n} from \"@milaboratories/pl-model-common\";\nimport { UiServiceRegistry } from \"@milaboratories/pl-model-common\";\n\n// Makes a remote node service appear local.\n// Given a service ID, returns an object implementing the service's UI interface.\n// Provided by the desktop app (e.g. backed by Electron IPC).\nexport type NodeServiceProxy = <S extends ServiceTypesLike>(\n serviceId: ServiceName<S>,\n) => InferServiceUi<S>;\n\n/**\n * Builds a lazy services object from ServiceDispatch and UiServiceRegistry.\n * Each service is instantiated on first access. Errors are cached to prevent\n * repeated factory calls on failure.\n */\nexport function buildServices<S extends Partial<AllUiServices> = Partial<AllUiServices>>(\n dispatch: ServiceDispatch,\n registry: UiServiceRegistry,\n): S {\n return Object.create(\n null,\n Object.fromEntries(\n dispatch.getServiceNames().map((id) => {\n let fetched = false;\n let cached: unknown;\n return [\n id,\n {\n enumerable: true,\n get() {\n if (!fetched) {\n fetched = true;\n cached = registry.get(id);\n }\n return cached;\n },\n },\n ];\n }),\n ),\n );\n}\n\n/**\n * Builds a NodeServiceProxy from a ServiceDispatch.\n * Each service method call is forwarded to dispatch.callServiceMethod.\n */\nexport function createNodeServiceProxy(dispatch: ServiceDispatch): NodeServiceProxy {\n return ((serviceId: ServiceName) =>\n Object.freeze(\n Object.fromEntries(\n dispatch\n .getServiceMethods(serviceId)\n .map((method) => [\n method,\n async (...args: unknown[]) => dispatch.callServiceMethod(serviceId, method, ...args),\n ]),\n ),\n )) as NodeServiceProxy;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"service_bridge.cjs","names":[],"sources":["../../src/services/service_bridge.ts"],"sourcesContent":["/**\n * Runtime service bridge — builds lazy service objects from dispatch + registry.\n * Used by the UI layer to provide typed service access.\n */\n\nimport type {\n ServiceTypesLike,\n InferServiceUi,\n ServiceName,\n ServiceDispatch,\n UiServices as AllUiServices,\n} from \"@milaboratories/pl-model-common\";\nimport { UiServiceRegistry } from \"@milaboratories/pl-model-common\";\n\n// Makes a remote node service appear local.\n// Given a service ID, returns an object implementing the service's UI interface.\n// Provided by the desktop app (e.g. backed by Electron IPC).\nexport type NodeServiceProxy = <S extends ServiceTypesLike>(\n serviceId: ServiceName<S>,\n) => InferServiceUi<S>;\n\n/**\n * Builds a lazy services object from ServiceDispatch and UiServiceRegistry.\n * Each service is instantiated on first access. Errors are cached to prevent\n * repeated factory calls on failure.\n */\nexport function buildServices<S extends Partial<AllUiServices> = Partial<AllUiServices>>(\n dispatch: ServiceDispatch,\n registry: UiServiceRegistry,\n): S {\n return Object.create(\n null,\n Object.fromEntries(\n dispatch.getServiceNames().map((id) => {\n let fetched = false;\n let cached: unknown;\n return [\n id,\n {\n enumerable: true,\n get() {\n if (!fetched) {\n fetched = true;\n cached = registry.get(id);\n }\n return cached;\n },\n },\n ];\n }),\n ),\n );\n}\n\n/**\n * Builds a NodeServiceProxy from a ServiceDispatch.\n * Each service method call is forwarded to dispatch.callServiceMethod.\n */\nexport function createNodeServiceProxy(dispatch: ServiceDispatch): NodeServiceProxy {\n return ((serviceId: ServiceName) =>\n Object.freeze(\n Object.fromEntries(\n dispatch\n .getServiceMethods(serviceId)\n .map((method) => [\n method,\n async (...args: unknown[]) => dispatch.callServiceMethod(serviceId, method, ...args),\n ]),\n ),\n )) as NodeServiceProxy;\n}\n"],"mappings":";;;;;;AA0BA,SAAgB,cACd,UACA,UACG;AACH,QAAO,OAAO,OACZ,MACA,OAAO,YACL,SAAS,iBAAiB,CAAC,KAAK,OAAO;EACrC,IAAI,UAAU;EACd,IAAI;AACJ,SAAO,CACL,IACA;GACE,YAAY;GACZ,MAAM;AACJ,QAAI,CAAC,SAAS;AACZ,eAAU;AACV,cAAS,SAAS,IAAI,GAAG;;AAE3B,WAAO;;GAEV,CACF;GACD,CACH,CACF;;;;;;AAOH,SAAgB,uBAAuB,UAA6C;AAClF,UAAS,cACP,OAAO,OACL,OAAO,YACL,SACG,kBAAkB,UAAU,CAC5B,KAAK,WAAW,CACf,QACA,OAAO,GAAG,SAAoB,SAAS,kBAAkB,WAAW,QAAQ,GAAG,KAAK,CACrF,CAAC,CACL,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service_bridge.d.ts","names":[],"sources":["../../src/services/service_bridge.ts"],"mappings":";;;KAiBY,gBAAA,cAA8B,gBAAA,EACxC,SAAA,EAAW,WAAA,CAAY,CAAA,MACpB,cAAA,CAAe,CAAA;;;;;;iBAOJ,aAAA,WAAwB,OAAA,CAAQ,UAAA,IAAiB,OAAA,CAAQ,UAAA,EAAA,CACvE,QAAA,EAAU,eAAA,EACV,QAAA,EAAU,iBAAA,GACT,CAAA;;;;;iBA6Ba,sBAAA,CAAuB,QAAA,EAAU,eAAA,GAAkB,gBAAA"}
|
|
@@ -27,7 +27,7 @@ function buildServices(dispatch, registry) {
|
|
|
27
27
|
function createNodeServiceProxy(dispatch) {
|
|
28
28
|
return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, async (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
|
|
29
29
|
}
|
|
30
|
-
|
|
31
30
|
//#endregion
|
|
32
31
|
export { buildServices, createNodeServiceProxy };
|
|
32
|
+
|
|
33
33
|
//# sourceMappingURL=service_bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service_resolve.d.ts","names":[],"sources":["../../src/services/service_resolve.ts"],"mappings":";;;;KAeK,UAAA,wBAAkC,IAAA,gCACnC,CAAA,eAAgB,mBAAA,GACd,mBAAA,CAAoB,CAAA;AAAA,KAKrB,oBAAA,wBACS,KAAA,yBAA8B,KAAA,CAAM,CAAA,iBAAkB,UAAA,CAAW,CAAA,2BACvE,KAAA;AAAA,KAII,oBAAA,UAA8B,IAAA,CACxC,eAAA,EACA,oBAAA,CAAqB,KAAA,UAAe,eAAA;AAAA,KAG1B,iBAAA,UAA2B,IAAA,CACrC,YAAA,EACA,oBAAA,CAAqB,KAAA,UAAe,YAAA;AAAA,KAI1B,yBAAA,GAA4B,oBAAA,CAAqB,iBAAA;AAAA,KACjD,sBAAA,GAAyB,iBAAA,CAAkB,iBAAA"}
|
package/dist/version.cjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
const require_package = require('./package.cjs');
|
|
2
|
-
|
|
3
1
|
//#region src/version.ts
|
|
4
|
-
const PlatformaSDKVersion =
|
|
2
|
+
const PlatformaSDKVersion = require("./package.cjs").version;
|
|
5
3
|
const CurrentSdkInfo = { sdkVersion: PlatformaSDKVersion };
|
|
6
|
-
|
|
7
4
|
//#endregion
|
|
8
5
|
exports.CurrentSdkInfo = CurrentSdkInfo;
|
|
9
6
|
exports.PlatformaSDKVersion = PlatformaSDKVersion;
|
|
7
|
+
|
|
10
8
|
//# sourceMappingURL=version.cjs.map
|
package/dist/version.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.cjs","names":["version"],"sources":["../src/version.ts"],"sourcesContent":["import { version } from \"../package.json\";\nexport const PlatformaSDKVersion = version;\n\nexport type SdkInfo = {\n readonly sdkVersion: string;\n};\n\nexport const CurrentSdkInfo: SdkInfo = {\n sdkVersion: PlatformaSDKVersion,\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.cjs","names":["version"],"sources":["../src/version.ts"],"sourcesContent":["import { version } from \"../package.json\";\nexport const PlatformaSDKVersion = version;\n\nexport type SdkInfo = {\n readonly sdkVersion: string;\n};\n\nexport const CurrentSdkInfo: SdkInfo = {\n sdkVersion: PlatformaSDKVersion,\n};\n"],"mappings":";AACA,MAAa,+CAAsBA;AAMnC,MAAa,iBAA0B,EACrC,YAAY,qBACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","names":[],"sources":["../src/version.ts"],"mappings":";cACa,mBAAA;AAAA,KAED,OAAA;EAAA,SACD,UAAA;AAAA;AAAA,cAGE,cAAA,EAAgB,OAAA"}
|
package/dist/version.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { version } from "./package.js";
|
|
2
|
-
|
|
3
2
|
//#region src/version.ts
|
|
4
3
|
const PlatformaSDKVersion = version;
|
|
5
4
|
const CurrentSdkInfo = { sdkVersion: PlatformaSDKVersion };
|
|
6
|
-
|
|
7
5
|
//#endregion
|
|
8
6
|
export { CurrentSdkInfo, PlatformaSDKVersion };
|
|
7
|
+
|
|
9
8
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":[],"sources":["../src/version.ts"],"sourcesContent":["import { version } from \"../package.json\";\nexport const PlatformaSDKVersion = version;\n\nexport type SdkInfo = {\n readonly sdkVersion: string;\n};\n\nexport const CurrentSdkInfo: SdkInfo = {\n sdkVersion: PlatformaSDKVersion,\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.js","names":[],"sources":["../src/version.ts"],"sourcesContent":["import { version } from \"../package.json\";\nexport const PlatformaSDKVersion = version;\n\nexport type SdkInfo = {\n readonly sdkVersion: string;\n};\n\nexport const CurrentSdkInfo: SdkInfo = {\n sdkVersion: PlatformaSDKVersion,\n};\n"],"mappings":";;AACA,MAAa,sBAAsB;AAMnC,MAAa,iBAA0B,EACrC,YAAY,qBACb"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/model",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.64.0",
|
|
4
4
|
"description": "Platforma.bio SDK / Block Model",
|
|
5
5
|
"files": [
|
|
6
6
|
"./dist/**/*",
|
|
@@ -29,23 +29,23 @@
|
|
|
29
29
|
"es-toolkit": "^1.39.10",
|
|
30
30
|
"fast-json-patch": "^3.1.1",
|
|
31
31
|
"utility-types": "^3.11.0",
|
|
32
|
-
"zod": "~3.
|
|
32
|
+
"zod": "~3.25.76",
|
|
33
|
+
"@milaboratories/pl-model-middle-layer": "1.16.4",
|
|
34
|
+
"@milaboratories/pl-model-common": "1.31.2",
|
|
35
|
+
"@milaboratories/ptabler-expression-js": "1.2.6",
|
|
33
36
|
"@milaboratories/helpers": "1.14.1",
|
|
34
|
-
"@milaboratories/pl-error-like": "1.12.9"
|
|
35
|
-
"@milaboratories/pl-model-common": "1.31.1",
|
|
36
|
-
"@milaboratories/pl-model-middle-layer": "1.16.3",
|
|
37
|
-
"@milaboratories/ptabler-expression-js": "1.2.5"
|
|
37
|
+
"@milaboratories/pl-error-like": "1.12.9"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@vitest/coverage-istanbul": "^4.
|
|
40
|
+
"@vitest/coverage-istanbul": "^4.1.3",
|
|
41
41
|
"fast-json-patch": "^3.1.1",
|
|
42
42
|
"typescript": "~5.9.3",
|
|
43
|
-
"vitest": "^4.
|
|
44
|
-
"@milaboratories/
|
|
45
|
-
"@milaboratories/
|
|
46
|
-
"@milaboratories/
|
|
47
|
-
"@milaboratories/ts-configs": "1.2.
|
|
48
|
-
"@milaboratories/
|
|
43
|
+
"vitest": "^4.1.3",
|
|
44
|
+
"@milaboratories/build-configs": "2.0.0",
|
|
45
|
+
"@milaboratories/pf-driver": "1.3.5",
|
|
46
|
+
"@milaboratories/pf-spec-driver": "1.2.5",
|
|
47
|
+
"@milaboratories/ts-configs": "1.2.3",
|
|
48
|
+
"@milaboratories/ts-builder": "1.3.1"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "ts-builder build --target node",
|
|
@@ -108,17 +108,17 @@ describe("ColumnCollectionBuilder", () => {
|
|
|
108
108
|
|
|
109
109
|
const collection = builder.build({ allowPartialColumnList: true });
|
|
110
110
|
expect(collection).toBeDefined();
|
|
111
|
-
expect(collection.columnListComplete).toBe(false);
|
|
112
111
|
expect(collection.findColumns()).toHaveLength(1);
|
|
113
112
|
});
|
|
114
113
|
|
|
115
|
-
test("allowPartialColumnList with complete providers
|
|
114
|
+
test("allowPartialColumnList with complete providers returns collection", () => {
|
|
116
115
|
const snap = createSnapshot("id1", createSpec("col1"));
|
|
117
116
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
118
117
|
builder.addSource(createProvider([snap], true));
|
|
119
118
|
|
|
120
119
|
const collection = builder.build({ allowPartialColumnList: true });
|
|
121
|
-
expect(collection
|
|
120
|
+
expect(collection).toBeDefined();
|
|
121
|
+
expect(collection.findColumns()).toHaveLength(1);
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
124
|
|
|
@@ -290,25 +290,30 @@ describe("multiple providers", () => {
|
|
|
290
290
|
expect(builder.build()).toBeUndefined();
|
|
291
291
|
});
|
|
292
292
|
|
|
293
|
-
test("allowPartialColumnList
|
|
293
|
+
test("allowPartialColumnList returns collection when any provider incomplete", () => {
|
|
294
294
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
295
295
|
builder.addSource(createProvider([createSnapshot("id1", createSpec("col1"))], true));
|
|
296
296
|
builder.addSource(createProvider([createSnapshot("id2", createSpec("col2"))], false));
|
|
297
297
|
|
|
298
298
|
const collection = builder.build({ allowPartialColumnList: true });
|
|
299
|
-
expect(collection
|
|
299
|
+
expect(collection).toBeDefined();
|
|
300
|
+
expect(collection.findColumns()).toHaveLength(2);
|
|
300
301
|
});
|
|
301
302
|
});
|
|
302
303
|
|
|
303
304
|
describe("AnchoredColumnCollection", () => {
|
|
305
|
+
// The anchor spec must also exist as a source column — the new implementation
|
|
306
|
+
// resolves PColumnSpec anchors by matching native ID in the collected columns.
|
|
304
307
|
const anchorSpec = createSpec("anchor-col", {
|
|
305
308
|
axesSpec: [sampleAxis("sample"), sampleAxis("gene")],
|
|
306
309
|
});
|
|
310
|
+
const anchorSnap = createSnapshot("anchor-snap-id", anchorSpec);
|
|
307
311
|
|
|
308
312
|
test("build with PColumnSpec anchor returns anchored collection", () => {
|
|
309
313
|
const s1 = createSnapshot("id1", createSpec("col1", { axesSpec: [sampleAxis("sample")] }));
|
|
310
314
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
311
|
-
|
|
315
|
+
// anchorSnap must be in sources so resolveAnchorMap can find it by native ID
|
|
316
|
+
builder.addSource([s1, anchorSnap]);
|
|
312
317
|
|
|
313
318
|
const collection = builder.build({ anchors: { main: anchorSpec } });
|
|
314
319
|
expect(collection).toBeDefined();
|
|
@@ -333,18 +338,11 @@ describe("AnchoredColumnCollection", () => {
|
|
|
333
338
|
);
|
|
334
339
|
});
|
|
335
340
|
|
|
336
|
-
test("build with PlRef anchor throws", () => {
|
|
337
|
-
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
338
|
-
const plRef = { __isRef: true as const, blockId: "b1", name: "out" };
|
|
339
|
-
|
|
340
|
-
expect(() => builder.build({ anchors: { main: plRef } })).toThrow(/PlRef/);
|
|
341
|
-
});
|
|
342
|
-
|
|
343
341
|
test("getColumn returns snapshot by SUniversalPColumnId", () => {
|
|
344
342
|
const spec = createSpec("col1", { axesSpec: [sampleAxis("sample")] });
|
|
345
343
|
const snap = createSnapshot("id1", spec);
|
|
346
344
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
347
|
-
builder.addSource([snap]);
|
|
345
|
+
builder.addSource([snap, anchorSnap]);
|
|
348
346
|
|
|
349
347
|
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
350
348
|
|
|
@@ -360,50 +358,65 @@ describe("AnchoredColumnCollection", () => {
|
|
|
360
358
|
test("getColumn returns undefined for unknown id", () => {
|
|
361
359
|
const snap = createSnapshot("id1", createSpec("col1", { axesSpec: [sampleAxis("sample")] }));
|
|
362
360
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
363
|
-
builder.addSource([snap]);
|
|
361
|
+
builder.addSource([snap, anchorSnap]);
|
|
364
362
|
|
|
365
363
|
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
366
364
|
expect(collection.getColumn("not-a-real-id" as SUniversalPColumnId)).toBeUndefined();
|
|
367
365
|
});
|
|
368
366
|
|
|
367
|
+
test("getAnchors returns resolved anchor map", () => {
|
|
368
|
+
const spec = createSpec("col1", { axesSpec: [sampleAxis("sample")] });
|
|
369
|
+
const snap = createSnapshot("id1", spec);
|
|
370
|
+
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
371
|
+
builder.addSource([snap, anchorSnap]);
|
|
372
|
+
|
|
373
|
+
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
374
|
+
const anchors = collection.getAnchors();
|
|
375
|
+
expect(anchors.size).toBe(1);
|
|
376
|
+
expect(anchors.get("main")).toBeDefined();
|
|
377
|
+
expect(anchors.get("main")!.spec.name).toBe("anchor-col");
|
|
378
|
+
});
|
|
379
|
+
|
|
369
380
|
test("findColumns returns ColumnMatch with originalId and variants", () => {
|
|
370
381
|
const spec = createSpec("col1", { axesSpec: [sampleAxis("sample")] });
|
|
371
382
|
const snap = createSnapshot("id1", spec);
|
|
372
383
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
373
|
-
|
|
384
|
+
// anchorSnap itself also appears in findColumns results (axes ⊆ anchor axes)
|
|
385
|
+
builder.addSource([snap, anchorSnap]);
|
|
374
386
|
|
|
375
387
|
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
376
388
|
const matches = collection.findColumns();
|
|
377
389
|
|
|
378
|
-
|
|
379
|
-
expect(matches
|
|
380
|
-
|
|
381
|
-
expect(
|
|
390
|
+
// col1 + anchor-col are both discovered
|
|
391
|
+
expect(matches.length).toBeGreaterThanOrEqual(1);
|
|
392
|
+
const col1Match = matches.find((m) => m.column.spec.name === "col1")!;
|
|
393
|
+
expect(col1Match).toBeDefined();
|
|
394
|
+
expect(col1Match.originalId).toBe("id1");
|
|
395
|
+
expect(col1Match.variants).toBeDefined();
|
|
382
396
|
});
|
|
383
397
|
|
|
384
398
|
test("findColumns exclude filters out matching columns", () => {
|
|
385
399
|
const snap1 = createSnapshot("id1", createSpec("col1", { axesSpec: [sampleAxis("sample")] }));
|
|
386
400
|
const snap2 = createSnapshot("id2", createSpec("col2", { axesSpec: [sampleAxis("sample")] }));
|
|
387
401
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
388
|
-
builder.addSource([snap1, snap2]);
|
|
402
|
+
builder.addSource([snap1, snap2, anchorSnap]);
|
|
389
403
|
|
|
390
404
|
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
391
405
|
const results = collection.findColumns({ exclude: { name: "col1" } });
|
|
392
|
-
expect(results).
|
|
393
|
-
expect(results
|
|
406
|
+
expect(results.every((r) => r.column.spec.name !== "col1")).toBe(true);
|
|
407
|
+
expect(results.some((r) => r.column.spec.name === "col2")).toBe(true);
|
|
394
408
|
});
|
|
395
409
|
|
|
396
|
-
test("allowPartialColumnList with anchors
|
|
410
|
+
test("allowPartialColumnList with anchors returns collection when incomplete", () => {
|
|
397
411
|
const snap = createSnapshot("id1", createSpec("col1", { axesSpec: [sampleAxis("sample")] }));
|
|
398
412
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
399
|
-
builder.addSource(createProvider([snap], false));
|
|
413
|
+
builder.addSource(createProvider([snap, anchorSnap], false));
|
|
400
414
|
|
|
401
415
|
const collection = builder.build({
|
|
402
416
|
anchors: { main: anchorSpec },
|
|
403
417
|
allowPartialColumnList: true,
|
|
404
418
|
});
|
|
405
419
|
expect(collection).toBeDefined();
|
|
406
|
-
expect(collection.columnListComplete).toBe(false);
|
|
407
420
|
});
|
|
408
421
|
|
|
409
422
|
test("build returns undefined with anchors when incomplete and no allowPartial", () => {
|
|
@@ -420,7 +433,7 @@ describe("AnchoredColumnCollection", () => {
|
|
|
420
433
|
const snap = createSnapshot("id1", spec, "computing");
|
|
421
434
|
|
|
422
435
|
const builder = new ColumnCollectionBuilder(createSpecFrameCtx());
|
|
423
|
-
builder.addSource([snap]);
|
|
436
|
+
builder.addSource([snap, anchorSnap]);
|
|
424
437
|
|
|
425
438
|
const collection = builder.build({ anchors: { main: anchorSpec } })!;
|
|
426
439
|
|