@platforma-sdk/model 1.79.27 → 1.80.2
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/block_model.d.ts +2 -0
- package/dist/block_model.d.ts.map +1 -1
- package/dist/columns/column.cjs +28 -0
- package/dist/columns/column.cjs.map +1 -0
- package/dist/columns/column.d.ts +30 -0
- package/dist/columns/column.d.ts.map +1 -0
- package/dist/columns/column.js +27 -0
- package/dist/columns/column.js.map +1 -0
- package/dist/columns/column_lazy.cjs +248 -0
- package/dist/columns/column_lazy.cjs.map +1 -0
- package/dist/columns/column_lazy.d.ts +137 -0
- package/dist/columns/column_lazy.d.ts.map +1 -0
- package/dist/columns/column_lazy.js +245 -0
- package/dist/columns/column_lazy.js.map +1 -0
- package/dist/columns/column_providers/index.cjs +62 -0
- package/dist/columns/column_providers/index.cjs.map +1 -0
- package/dist/columns/column_providers/index.d.ts +30 -0
- package/dist/columns/column_providers/index.d.ts.map +1 -0
- package/dist/columns/column_providers/index.js +53 -0
- package/dist/columns/column_providers/index.js.map +1 -0
- package/dist/columns/column_providers/providers.cjs +123 -0
- package/dist/columns/column_providers/providers.cjs.map +1 -0
- package/dist/columns/column_providers/providers.d.ts +75 -0
- package/dist/columns/column_providers/providers.d.ts.map +1 -0
- package/dist/columns/column_providers/providers.js +118 -0
- package/dist/columns/column_providers/providers.js.map +1 -0
- package/dist/columns/column_providers/types.d.ts +23 -0
- package/dist/columns/column_providers/types.d.ts.map +1 -0
- package/dist/columns/column_recipes/column_discovered_recipe.cjs +180 -0
- package/dist/columns/column_recipes/column_discovered_recipe.cjs.map +1 -0
- package/dist/columns/column_recipes/column_discovered_recipe.d.ts +120 -0
- package/dist/columns/column_recipes/column_discovered_recipe.d.ts.map +1 -0
- package/dist/columns/column_recipes/column_discovered_recipe.js +180 -0
- package/dist/columns/column_recipes/column_discovered_recipe.js.map +1 -0
- package/dist/columns/column_recipes/column_filtered_recipe.cjs +133 -0
- package/dist/columns/column_recipes/column_filtered_recipe.cjs.map +1 -0
- package/dist/columns/column_recipes/column_filtered_recipe.d.ts +75 -0
- package/dist/columns/column_recipes/column_filtered_recipe.d.ts.map +1 -0
- package/dist/columns/column_recipes/column_filtered_recipe.js +133 -0
- package/dist/columns/column_recipes/column_filtered_recipe.js.map +1 -0
- package/dist/columns/column_recipes/column_overrided_recipe.cjs +101 -0
- package/dist/columns/column_recipes/column_overrided_recipe.cjs.map +1 -0
- package/dist/columns/column_recipes/column_overrided_recipe.d.ts +73 -0
- package/dist/columns/column_recipes/column_overrided_recipe.d.ts.map +1 -0
- package/dist/columns/column_recipes/column_overrided_recipe.js +101 -0
- package/dist/columns/column_recipes/column_overrided_recipe.js.map +1 -0
- package/dist/columns/column_recipes/index.cjs +72 -0
- package/dist/columns/column_recipes/index.cjs.map +1 -0
- package/dist/columns/column_recipes/index.d.ts +52 -0
- package/dist/columns/column_recipes/index.d.ts.map +1 -0
- package/dist/columns/column_recipes/index.js +68 -0
- package/dist/columns/column_recipes/index.js.map +1 -0
- package/dist/columns/column_recipes/leaf_rebrand.cjs +22 -0
- package/dist/columns/column_recipes/leaf_rebrand.cjs.map +1 -0
- package/dist/columns/column_recipes/leaf_rebrand.js +22 -0
- package/dist/columns/column_recipes/leaf_rebrand.js.map +1 -0
- package/dist/columns/column_recipes/types.d.ts +101 -0
- package/dist/columns/column_recipes/types.d.ts.map +1 -0
- package/dist/columns/columns_collection.cjs +124 -0
- package/dist/columns/columns_collection.cjs.map +1 -0
- package/dist/columns/columns_collection.d.ts +64 -0
- package/dist/columns/columns_collection.d.ts.map +1 -0
- package/dist/columns/columns_collection.js +122 -0
- package/dist/columns/columns_collection.js.map +1 -0
- package/dist/columns/derive_axis_values_labels.cjs +76 -0
- package/dist/columns/derive_axis_values_labels.cjs.map +1 -0
- package/dist/columns/derive_axis_values_labels.d.ts +30 -0
- package/dist/columns/derive_axis_values_labels.d.ts.map +1 -0
- package/dist/columns/derive_axis_values_labels.js +76 -0
- package/dist/columns/derive_axis_values_labels.js.map +1 -0
- package/dist/columns/expand_by_partition.cjs +53 -56
- package/dist/columns/expand_by_partition.cjs.map +1 -1
- package/dist/columns/expand_by_partition.d.ts +22 -18
- package/dist/columns/expand_by_partition.d.ts.map +1 -1
- package/dist/columns/expand_by_partition.js +55 -58
- package/dist/columns/expand_by_partition.js.map +1 -1
- package/dist/columns/index.cjs +44 -18
- package/dist/columns/index.d.ts +15 -7
- package/dist/columns/index.js +12 -6
- package/dist/columns/utils.cjs +186 -0
- package/dist/columns/utils.cjs.map +1 -0
- package/dist/columns/utils.d.ts +96 -0
- package/dist/columns/utils.d.ts.map +1 -0
- package/dist/columns/utils.js +179 -0
- package/dist/columns/utils.js.map +1 -0
- package/dist/components/PFrameForGraphs.cjs +1 -0
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +1 -1
- package/dist/components/PFrameForGraphs.d.ts.map +1 -1
- package/dist/components/PFrameForGraphs.js +1 -0
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/components/PlDataTable/columnResolver.cjs +28 -0
- package/dist/components/PlDataTable/columnResolver.cjs.map +1 -0
- package/dist/components/PlDataTable/columnResolver.js +28 -0
- package/dist/components/PlDataTable/columnResolver.js.map +1 -0
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs +4 -2
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js +4 -2
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs +20 -25
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js +20 -25
- package/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs +58 -26
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js +60 -28
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV2.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs +224 -194
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts +13 -16
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js +228 -198
- package/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs +40 -98
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts +17 -8
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js +40 -98
- package/dist/components/PlDataTable/createPlDataTable/discoverColumns.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/index.cjs +1 -1
- 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.js +2 -2
- package/dist/components/PlDataTable/createPlDataTable/index.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs +51 -169
- package/dist/components/PlDataTable/createPlDataTable/utils.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.d.ts.map +1 -1
- package/dist/components/PlDataTable/createPlDataTable/utils.js +52 -166
- package/dist/components/PlDataTable/createPlDataTable/utils.js.map +1 -1
- package/dist/components/PlDataTable/createPlDataTableSheet.cjs.map +1 -1
- package/dist/components/PlDataTable/createPlDataTableSheet.d.ts +1 -1
- package/dist/components/PlDataTable/createPlDataTableSheet.js.map +1 -1
- package/dist/components/PlDataTable/index.cjs +1 -1
- package/dist/components/PlDataTable/index.d.ts +4 -4
- package/dist/components/PlDataTable/index.js +2 -2
- package/dist/components/PlDataTable/labels.cjs +0 -1
- package/dist/components/PlDataTable/labels.cjs.map +1 -1
- package/dist/components/PlDataTable/labels.js +0 -1
- package/dist/components/PlDataTable/labels.js.map +1 -1
- package/dist/components/PlDataTable/state-migration.cjs +107 -10
- package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
- package/dist/components/PlDataTable/state-migration.d.ts +5 -4
- package/dist/components/PlDataTable/state-migration.d.ts.map +1 -1
- package/dist/components/PlDataTable/state-migration.js +107 -10
- package/dist/components/PlDataTable/state-migration.js.map +1 -1
- package/dist/components/PlDataTable/typesV7.d.ts +1 -36
- package/dist/components/PlDataTable/typesV7.d.ts.map +1 -1
- package/dist/components/PlDataTable/typesV8.d.ts +123 -0
- package/dist/components/PlDataTable/typesV8.d.ts.map +1 -0
- package/dist/components/PlDatasetSelector/build_dataset_options.cjs +27 -34
- package/dist/components/PlDatasetSelector/build_dataset_options.cjs.map +1 -1
- package/dist/components/PlDatasetSelector/build_dataset_options.d.ts.map +1 -1
- package/dist/components/PlDatasetSelector/build_dataset_options.js +27 -34
- package/dist/components/PlDatasetSelector/build_dataset_options.js.map +1 -1
- package/dist/components/PlDatasetSelector/enrichment_discovery.cjs +28 -33
- package/dist/components/PlDatasetSelector/enrichment_discovery.cjs.map +1 -1
- package/dist/components/PlDatasetSelector/enrichment_discovery.js +29 -34
- package/dist/components/PlDatasetSelector/enrichment_discovery.js.map +1 -1
- package/dist/components/PlDatasetSelector/filter_discovery.cjs +27 -17
- package/dist/components/PlDatasetSelector/filter_discovery.cjs.map +1 -1
- package/dist/components/PlDatasetSelector/filter_discovery.d.ts +24 -10
- package/dist/components/PlDatasetSelector/filter_discovery.d.ts.map +1 -1
- package/dist/components/PlDatasetSelector/filter_discovery.js +28 -18
- package/dist/components/PlDatasetSelector/filter_discovery.js.map +1 -1
- package/dist/components/PlDatasetSelector/index.d.ts +2 -2
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +5 -5
- package/dist/components/index.js +2 -2
- package/dist/filters/converters/filterToQuery.cjs +5 -6
- package/dist/filters/converters/filterToQuery.cjs.map +1 -1
- package/dist/filters/converters/filterToQuery.d.ts +12 -3
- package/dist/filters/converters/filterToQuery.d.ts.map +1 -1
- package/dist/filters/converters/filterToQuery.js +5 -6
- package/dist/filters/converters/filterToQuery.js.map +1 -1
- package/dist/filters/converters/index.d.ts +2 -2
- package/dist/filters/index.d.ts +2 -2
- package/dist/index.cjs +64 -35
- package/dist/index.d.ts +23 -15
- package/dist/index.js +15 -9
- package/dist/labels/derive_distinct_labels.cjs.map +1 -1
- package/dist/labels/derive_distinct_labels.d.ts +1 -2
- package/dist/labels/derive_distinct_labels.d.ts.map +1 -1
- package/dist/labels/derive_distinct_labels.js.map +1 -1
- package/dist/labels/derive_distinct_tooltips.cjs +1 -1
- package/dist/labels/derive_distinct_tooltips.cjs.map +1 -1
- package/dist/labels/derive_distinct_tooltips.d.ts +6 -3
- package/dist/labels/derive_distinct_tooltips.d.ts.map +1 -1
- package/dist/labels/derive_distinct_tooltips.js +1 -1
- package/dist/labels/derive_distinct_tooltips.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.js +1 -1
- package/dist/pframe_utils/axes.cjs.map +1 -1
- package/dist/pframe_utils/axes.d.ts +2 -2
- package/dist/pframe_utils/axes.d.ts.map +1 -1
- package/dist/pframe_utils/axes.js.map +1 -1
- package/dist/pframe_utils/columns.cjs +6 -10
- package/dist/pframe_utils/columns.cjs.map +1 -1
- package/dist/pframe_utils/columns.d.ts +4 -4
- package/dist/pframe_utils/columns.d.ts.map +1 -1
- package/dist/pframe_utils/columns.js +7 -11
- package/dist/pframe_utils/columns.js.map +1 -1
- package/dist/pframe_utils/index.cjs.map +1 -1
- package/dist/pframe_utils/index.d.ts +1 -1
- package/dist/pframe_utils/index.d.ts.map +1 -1
- package/dist/pframe_utils/index.js.map +1 -1
- package/dist/render/accessor.cjs +15 -16
- package/dist/render/accessor.cjs.map +1 -1
- package/dist/render/accessor.d.ts +7 -10
- package/dist/render/accessor.d.ts.map +1 -1
- package/dist/render/accessor.js +15 -16
- package/dist/render/accessor.js.map +1 -1
- package/dist/render/api.cjs +34 -36
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +30 -20
- package/dist/render/api.d.ts.map +1 -1
- package/dist/render/api.js +35 -38
- package/dist/render/api.js.map +1 -1
- package/dist/render/index.cjs +4 -0
- package/dist/render/index.d.ts +4 -4
- package/dist/render/index.js +3 -2
- package/dist/render/internal.cjs +3 -2
- package/dist/render/internal.cjs.map +1 -1
- package/dist/render/internal.d.ts +17 -9
- package/dist/render/internal.d.ts.map +1 -1
- package/dist/render/internal.js +3 -2
- package/dist/render/internal.js.map +1 -1
- package/dist/render/util/axis_filtering.cjs.map +1 -1
- package/dist/render/util/axis_filtering.js.map +1 -1
- package/dist/render/util/column_collection.cjs +6 -4
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +9 -9
- package/dist/render/util/column_collection.d.ts.map +1 -1
- package/dist/render/util/column_collection.js +6 -4
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/index.d.ts +2 -2
- package/dist/render/util/pcolumn_data.cjs +1 -1
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +3 -3
- package/dist/render/util/pcolumn_data.d.ts.map +1 -1
- package/dist/render/util/pcolumn_data.js +1 -1
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/dist/services/block_services.cjs +2 -1
- package/dist/services/block_services.cjs.map +1 -1
- package/dist/services/block_services.d.ts +1 -0
- package/dist/services/block_services.d.ts.map +1 -1
- package/dist/services/block_services.js +2 -1
- package/dist/services/block_services.js.map +1 -1
- package/dist/services/get_services.cjs +2 -2
- package/dist/services/get_services.cjs.map +1 -1
- package/dist/services/get_services.d.ts +4 -1
- package/dist/services/get_services.d.ts.map +1 -1
- package/dist/services/get_services.js +2 -2
- package/dist/services/get_services.js.map +1 -1
- package/package.json +10 -8
- package/src/columns/__test_helpers__/collection_driver.ts +197 -0
- package/src/columns/__test_helpers__/stub_registry.ts +134 -0
- package/src/columns/column.ts +46 -0
- package/src/columns/column_lazy.test.ts +201 -0
- package/src/columns/column_lazy.ts +311 -0
- package/src/columns/column_providers/index.ts +78 -0
- package/src/columns/column_providers/providers.ts +193 -0
- package/src/columns/column_providers/types.ts +24 -0
- package/src/columns/column_recipes/column_discovered_recipe.ts +231 -0
- package/src/columns/column_recipes/column_filtered_recipe.ts +184 -0
- package/src/columns/column_recipes/column_overrided_recipe.ts +146 -0
- package/src/columns/column_recipes/column_recipes.test.ts +681 -0
- package/src/columns/column_recipes/index.ts +127 -0
- package/src/columns/column_recipes/leaf_rebrand.ts +28 -0
- package/src/columns/column_recipes/types.ts +113 -0
- package/src/columns/columns_collection.test.ts +164 -0
- package/src/columns/columns_collection.ts +170 -0
- package/src/columns/derive_axis_values_labels.ts +98 -0
- package/src/columns/expand_by_partition.test.ts +146 -110
- package/src/columns/expand_by_partition.ts +72 -84
- package/src/columns/index.ts +7 -5
- package/src/columns/utils.test.ts +249 -0
- package/src/columns/utils.ts +226 -0
- package/src/components/PFrameForGraphs.ts +3 -1
- package/src/components/PlAnnotations/filters_ui.test.ts +46 -47
- package/src/components/PlDataTable/columnResolver.test.ts +122 -0
- package/src/components/PlDataTable/columnResolver.ts +57 -0
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV2.ts +9 -9
- package/src/components/PlDataTable/createPlDataTable/createPTableDefV3.ts +31 -63
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV2.ts +85 -58
- package/src/components/PlDataTable/createPlDataTable/createPlDataTableV3.ts +316 -354
- package/src/components/PlDataTable/createPlDataTable/discoverColumns.ts +48 -144
- package/src/components/PlDataTable/createPlDataTable/index.ts +2 -2
- package/src/components/PlDataTable/createPlDataTable/utils.test.ts +60 -69
- package/src/components/PlDataTable/createPlDataTable/utils.ts +65 -173
- package/src/components/PlDataTable/createPlDataTableSheet.ts +1 -1
- package/src/components/PlDataTable/index.ts +4 -2
- package/src/components/PlDataTable/labels.ts +4 -33
- package/src/components/PlDataTable/state-migration.ts +151 -22
- package/src/components/PlDataTable/typesV8.ts +188 -0
- package/src/components/PlDatasetSelector/build_dataset_options.ts +35 -60
- package/src/components/PlDatasetSelector/enrichment_discovery.ts +65 -61
- package/src/components/PlDatasetSelector/filter_discovery.test.ts +110 -72
- package/src/components/PlDatasetSelector/filter_discovery.ts +51 -31
- package/src/filters/converters/filterToQuery.test.ts +15 -8
- package/src/filters/converters/filterToQuery.ts +22 -9
- package/src/filters/converters/filterUiToExpressionImpl.test.ts +35 -36
- package/src/labels/derive_distinct_labels.ts +1 -1
- package/src/labels/derive_distinct_tooltips.test.ts +7 -4
- package/src/labels/derive_distinct_tooltips.ts +3 -3
- package/src/pframe_utils/axes.ts +2 -2
- package/src/pframe_utils/columns.ts +14 -23
- package/src/pframe_utils/index.ts +1 -1
- package/src/render/accessor.ts +35 -38
- package/src/render/api.ts +45 -61
- package/src/render/index.ts +2 -1
- package/src/render/internal.ts +43 -10
- package/src/render/util/axis_filtering.ts +0 -1
- package/src/render/util/column_collection.ts +17 -17
- package/src/render/util/pcolumn_data.ts +5 -9
- package/src/services/block_services.ts +1 -0
- package/src/services/get_services.ts +5 -2
- package/dist/columns/column_collection_builder.cjs +0 -241
- package/dist/columns/column_collection_builder.cjs.map +0 -1
- package/dist/columns/column_collection_builder.d.ts +0 -119
- package/dist/columns/column_collection_builder.d.ts.map +0 -1
- package/dist/columns/column_collection_builder.js +0 -241
- package/dist/columns/column_collection_builder.js.map +0 -1
- package/dist/columns/column_selector.cjs +0 -49
- package/dist/columns/column_selector.cjs.map +0 -1
- package/dist/columns/column_selector.d.ts +0 -33
- package/dist/columns/column_selector.d.ts.map +0 -1
- package/dist/columns/column_selector.js +0 -47
- package/dist/columns/column_selector.js.map +0 -1
- package/dist/columns/column_snapshot.cjs +0 -19
- package/dist/columns/column_snapshot.cjs.map +0 -1
- package/dist/columns/column_snapshot.d.ts +0 -39
- package/dist/columns/column_snapshot.d.ts.map +0 -1
- package/dist/columns/column_snapshot.js +0 -18
- package/dist/columns/column_snapshot.js.map +0 -1
- package/dist/columns/column_snapshot_provider.cjs +0 -137
- package/dist/columns/column_snapshot_provider.cjs.map +0 -1
- package/dist/columns/column_snapshot_provider.d.ts +0 -74
- package/dist/columns/column_snapshot_provider.d.ts.map +0 -1
- package/dist/columns/column_snapshot_provider.js +0 -133
- package/dist/columns/column_snapshot_provider.js.map +0 -1
- package/dist/columns/ctx_column_sources.cjs +0 -80
- package/dist/columns/ctx_column_sources.cjs.map +0 -1
- package/dist/columns/ctx_column_sources.d.ts +0 -30
- package/dist/columns/ctx_column_sources.d.ts.map +0 -1
- package/dist/columns/ctx_column_sources.js +0 -79
- package/dist/columns/ctx_column_sources.js.map +0 -1
- package/src/columns/column_collection_builder.test.ts +0 -484
- package/src/columns/column_collection_builder.ts +0 -485
- package/src/columns/column_selector.test.ts +0 -90
- package/src/columns/column_selector.ts +0 -100
- package/src/columns/column_snapshot.ts +0 -58
- package/src/columns/column_snapshot_provider.ts +0 -194
- package/src/columns/ctx_column_sources.ts +0 -99
|
@@ -13,12 +13,13 @@ function upgradePlDataTableStateV2(state) {
|
|
|
13
13
|
...entry,
|
|
14
14
|
filtersState: []
|
|
15
15
|
})),
|
|
16
|
-
pTableParams:
|
|
16
|
+
pTableParams: createDefaultPTableParamsV7()
|
|
17
17
|
};
|
|
18
18
|
if (state.version === 3) state = createPlDataTableStateV2();
|
|
19
19
|
if (state.version === 4) state = migrateV4toV6(state);
|
|
20
20
|
if (state.version === 5) state = migrateV5toV6(state);
|
|
21
21
|
if (state.version === 6) state = migrateV6toV7(state);
|
|
22
|
+
if (state.version === 7) state = migrateV7toV8(state);
|
|
22
23
|
return state;
|
|
23
24
|
}
|
|
24
25
|
/** Migrate v5 to v6: unwrap `{source, labeled}` colIds in gridState. */
|
|
@@ -29,7 +30,7 @@ function migrateV5toV6(state) {
|
|
|
29
30
|
...entry,
|
|
30
31
|
gridState: unwrapV5GridState(entry.gridState)
|
|
31
32
|
})),
|
|
32
|
-
pTableParams:
|
|
33
|
+
pTableParams: createDefaultPTableParamsV7()
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
/** Convert v5 wrapped colId JSON to bare PTableColumnSpec JSON, taking `.source`.
|
|
@@ -86,10 +87,7 @@ function migrateV4toV6(state) {
|
|
|
86
87
|
const nextId = () => ++idCounter;
|
|
87
88
|
const migratedCache = state.stateCache.map((entry) => {
|
|
88
89
|
const leaves = [];
|
|
89
|
-
for (const f of entry.filtersState) if (f.filter !== null && !f.filter.disabled)
|
|
90
|
-
const column = canonicalizeJson(f.id);
|
|
91
|
-
leaves.push(migrateTableFilter(column, f.filter.value, nextId));
|
|
92
|
-
}
|
|
90
|
+
for (const f of entry.filtersState) if (f.filter !== null && !f.filter.disabled) leaves.push(migrateTableFilter(canonicalizeJson(f.id), f.filter.value, nextId));
|
|
93
91
|
const filtersState = leaves.length > 0 ? {
|
|
94
92
|
id: nextId(),
|
|
95
93
|
type: "and",
|
|
@@ -117,10 +115,11 @@ function migrateV4toV6(state) {
|
|
|
117
115
|
filters: distillFilterSpec(currentCache.filtersState),
|
|
118
116
|
defaultFilters: null,
|
|
119
117
|
sorting: state.pTableParams.sorting
|
|
120
|
-
} :
|
|
118
|
+
} : createDefaultPTableParamsV7()
|
|
121
119
|
};
|
|
122
120
|
}
|
|
123
|
-
/** Migrate a single per-column PlTableFilter to a
|
|
121
|
+
/** Migrate a single per-column PlTableFilter to a v7-form tree node (legacy
|
|
122
|
+
* string column ids). v7 → v8 later converts these to object form. */
|
|
124
123
|
function migrateTableFilter(column, filter, nextId) {
|
|
125
124
|
const id = nextId();
|
|
126
125
|
switch (filter.type) {
|
|
@@ -246,7 +245,9 @@ function migrateTableFilter(column, filter, nextId) {
|
|
|
246
245
|
};
|
|
247
246
|
}
|
|
248
247
|
}
|
|
249
|
-
|
|
248
|
+
/** Default pTableParams in the v7 shape (sorting: []). Used by intermediate
|
|
249
|
+
* migration steps that produce v6/v7 state before the v7 → v8 conversion. */
|
|
250
|
+
function createDefaultPTableParamsV7() {
|
|
250
251
|
return {
|
|
251
252
|
sourceId: null,
|
|
252
253
|
hiddenColIds: null,
|
|
@@ -255,13 +256,109 @@ function createDefaultPTableParams() {
|
|
|
255
256
|
sorting: []
|
|
256
257
|
};
|
|
257
258
|
}
|
|
259
|
+
function createDefaultPTableParams() {
|
|
260
|
+
return {
|
|
261
|
+
sourceId: null,
|
|
262
|
+
hiddenColIds: null,
|
|
263
|
+
filters: null,
|
|
264
|
+
defaultFilters: null,
|
|
265
|
+
sorting: null
|
|
266
|
+
};
|
|
267
|
+
}
|
|
258
268
|
function createPlDataTableStateV2() {
|
|
259
269
|
return {
|
|
260
|
-
version:
|
|
270
|
+
version: 8,
|
|
261
271
|
stateCache: [],
|
|
262
272
|
pTableParams: createDefaultPTableParams()
|
|
263
273
|
};
|
|
264
274
|
}
|
|
275
|
+
function migrateV7toV8(state) {
|
|
276
|
+
const newCache = state.stateCache.map((entry) => ({
|
|
277
|
+
sourceId: entry.sourceId,
|
|
278
|
+
gridState: entry.gridState,
|
|
279
|
+
sheetsState: entry.sheetsState,
|
|
280
|
+
filtersState: convertFiltersWithMeta(entry.filtersState),
|
|
281
|
+
defaultFiltersState: convertFiltersWithMeta(entry.defaultFiltersState),
|
|
282
|
+
searchString: entry.searchString
|
|
283
|
+
}));
|
|
284
|
+
const params = state.pTableParams;
|
|
285
|
+
let pTableParams;
|
|
286
|
+
if (params.sourceId === null) pTableParams = createDefaultPTableParams();
|
|
287
|
+
else pTableParams = {
|
|
288
|
+
sourceId: params.sourceId,
|
|
289
|
+
hiddenColIds: params.hiddenColIds,
|
|
290
|
+
sorting: params.sorting.length === 0 ? null : params.sorting,
|
|
291
|
+
filters: convertFiltersPlain(params.filters),
|
|
292
|
+
defaultFilters: convertFiltersPlain(params.defaultFilters)
|
|
293
|
+
};
|
|
294
|
+
return {
|
|
295
|
+
version: 8,
|
|
296
|
+
stateCache: newCache,
|
|
297
|
+
pTableParams
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
function convertFiltersWithMeta(node) {
|
|
301
|
+
if (node === null) return null;
|
|
302
|
+
const result = pruneFilterNode(node);
|
|
303
|
+
if (result === void 0) return null;
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
function convertFiltersPlain(node) {
|
|
307
|
+
if (node === null) return null;
|
|
308
|
+
const result = pruneFilterNode(node);
|
|
309
|
+
if (result === void 0) return null;
|
|
310
|
+
return result;
|
|
311
|
+
}
|
|
312
|
+
/** Recursively converts and prunes a legacy v7 filter tree. Preserves meta
|
|
313
|
+
* fields (id/isExpanded/source/isSuppressed) on non-leaf nodes. Returns
|
|
314
|
+
* `undefined` when the subtree is empty after pruning. */
|
|
315
|
+
function pruneFilterNode(node) {
|
|
316
|
+
if (!node || typeof node !== "object") return void 0;
|
|
317
|
+
const n = node;
|
|
318
|
+
if (n.type === "and" || n.type === "or") {
|
|
319
|
+
const kept = (n.filters ?? []).map((f) => pruneFilterNode(f)).filter((f) => f !== void 0);
|
|
320
|
+
if (kept.length === 0) return void 0;
|
|
321
|
+
return {
|
|
322
|
+
...n,
|
|
323
|
+
type: n.type,
|
|
324
|
+
filters: kept
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
if (n.type === "not") {
|
|
328
|
+
const inner = pruneFilterNode(n.filter);
|
|
329
|
+
if (inner === void 0) return void 0;
|
|
330
|
+
return {
|
|
331
|
+
...n,
|
|
332
|
+
type: "not",
|
|
333
|
+
filter: inner
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
return convertLegacyLeaf(n);
|
|
337
|
+
}
|
|
338
|
+
function convertLegacyLeaf(leaf) {
|
|
339
|
+
if (leaf.type === void 0) return leaf;
|
|
340
|
+
const result = { ...leaf };
|
|
341
|
+
if ("column" in result) {
|
|
342
|
+
const c = parseLegacyLeafColumn(result.column);
|
|
343
|
+
if (c === void 0) return void 0;
|
|
344
|
+
result.column = c;
|
|
345
|
+
}
|
|
346
|
+
if ("rhs" in result) {
|
|
347
|
+
const c = parseLegacyLeafColumn(result.rhs);
|
|
348
|
+
if (c === void 0) return void 0;
|
|
349
|
+
result.rhs = c;
|
|
350
|
+
}
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
function parseLegacyLeafColumn(s) {
|
|
354
|
+
if (typeof s !== "string") return void 0;
|
|
355
|
+
const parsed = parseJsonSafely(s);
|
|
356
|
+
if (!parsed || typeof parsed !== "object") return void 0;
|
|
357
|
+
if (!("type" in parsed) || !("id" in parsed)) return void 0;
|
|
358
|
+
const t = parsed.type;
|
|
359
|
+
if (t !== "axis" && t !== "column") return void 0;
|
|
360
|
+
return parsed;
|
|
361
|
+
}
|
|
265
362
|
//#endregion
|
|
266
363
|
export { createDefaultPTableParams, createPlDataTableStateV2, upgradePlDataTableStateV2 };
|
|
267
364
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-migration.js","names":[],"sources":["../../../src/components/PlDataTable/state-migration.ts"],"sourcesContent":["import type {\n AxisId,\n CanonicalizedJson,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableSorting,\n} from \"@milaboratories/pl-model-common\";\nimport {\n canonicalizeJson,\n getPTableColumnId,\n parseJsonSafely,\n} from \"@milaboratories/pl-model-common\";\nimport { distillFilterSpec } from \"../../filters\";\nimport type { PlDataTableFilterState, PlTableFilter } from \"./typesV4\";\nimport type {\n PlDataTableFiltersWithMeta,\n PlDataTableGridStateCore,\n PlDataTableSheetState,\n PlDataTableStateV2CacheEntry,\n PlDataTableStateV2Normalized,\n PlTableColumnIdJson,\n PTableParamsV2,\n} from \"./typesV7\";\nimport type {\n PlDataTableGridStateV6,\n PlDataTableStateV2V6,\n PlDataTableStateV2V6CacheEntry,\n PlDataTableV6ColIdJson,\n} from \"./typesV6\";\nimport type {\n PlDataTableGridStateV5,\n PlDataTableV5ColIdJson,\n PlDataTableV5ColIdWrapper,\n} from \"./typesV5\";\nimport { isNil } from \"es-toolkit\";\n\n/**\n * PlDataTableV2 persisted state\n */\nexport type PlDataTableStateV2 =\n // Old versions of the state\n | {\n // no version\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sourceId?: string;\n sheets?: Record<CanonicalizedJson<AxisId>, string | number>;\n };\n pTableParams?: {\n sorting?: PTableSorting[];\n filters?: PTableRecordFilter[];\n };\n }\n | {\n version: 2;\n stateCache: {\n sourceId: string;\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n };\n sheetsState: PlDataTableSheetState[];\n }[];\n pTableParams: {\n hiddenColIds: PObjectId[] | null;\n filters: PTableRecordFilter[];\n sorting: PTableSorting[];\n };\n }\n | {\n version: 3;\n stateCache: {\n sourceId: string;\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n };\n sheetsState: PlDataTableSheetState[];\n filtersState: PlDataTableFilterState[];\n }[];\n pTableParams: PTableParamsV2;\n }\n | {\n version: 4;\n stateCache: {\n sourceId: string;\n gridState: PlDataTableGridStateV6;\n sheetsState: PlDataTableSheetState[];\n filtersState: PlDataTableFilterState[];\n }[];\n /** Old format; only fields used in migration are typed */\n pTableParams: {\n sourceId: string | null;\n hiddenColIds: PObjectId[] | null;\n sorting: PTableSorting[];\n };\n }\n // v5 stored colIds as `{source, labeled}` wrappers; only the gridState shape differs.\n | {\n version: 5;\n stateCache: {\n sourceId: string;\n gridState: PlDataTableGridStateV5;\n sheetsState: PlDataTableSheetState[];\n filtersState: null | PlDataTableFiltersWithMeta;\n defaultFiltersState: null | PlDataTableFiltersWithMeta;\n searchString?: string;\n }[];\n pTableParams: PTableParamsV2;\n }\n // v6 stored colIds as canonicalized full `PTableColumnSpec` (including\n // annotations + `pl7.app/trace`). v7 strips down to `PTableColumnId`.\n | PlDataTableStateV2V6\n // Normalized state\n | PlDataTableStateV2Normalized;\n\n/** Upgrade PlDataTableStateV2 to the latest version */\nexport function upgradePlDataTableStateV2(\n state: PlDataTableStateV2 | undefined,\n): PlDataTableStateV2Normalized {\n // Block just added, had no state, model started earlier than the UI\n if (!state) {\n return createPlDataTableStateV2();\n }\n // v1 -> v2\n if (!(\"version\" in state)) {\n // Non upgradeable as sourceId calculation algorithm has changed, resetting state to default\n state = createPlDataTableStateV2();\n }\n // v2 -> v3\n if (state.version === 2) {\n state = {\n version: 3,\n stateCache: state.stateCache.map((entry) => ({\n ...entry,\n filtersState: [],\n })),\n pTableParams: createDefaultPTableParams(),\n };\n }\n // v3 -> v4\n if (state.version === 3) {\n // Non upgradeable as column ids calculation algorithm has changed, resetting state to default\n state = createPlDataTableStateV2();\n }\n // v4 -> v6: migrate per-column filters to tree-based format (skips v5).\n // v4 gridState already used bare PTableColumnSpec colIds, so we jump\n // straight to v6 without going through the v5 wrapper format.\n if (state.version === 4) {\n state = migrateV4toV6(state);\n }\n // v5 -> v6: unwrap `{source, labeled}` colIds in gridState back to bare PTableColumnSpec.\n if (state.version === 5) {\n state = migrateV5toV6(state);\n }\n // v6 -> v7: shrink colIds from full PTableColumnSpec to PTableColumnId.\n if (state.version === 6) {\n state = migrateV6toV7(state);\n }\n return state;\n}\n\n/** Migrate v5 to v6: unwrap `{source, labeled}` colIds in gridState. */\nfunction migrateV5toV6(state: Extract<PlDataTableStateV2, { version: 5 }>): PlDataTableStateV2V6 {\n // pTableParams reset: v5 stored DiscoveredPColumnId-based hiddenColIds with\n // empty-array fields (e.g. `{column, path: [], columnQualifications: [], ...}`).\n // v6 distills empty fields, so the same logical column serialises differently\n // and lookups would silently miss every previously-hidden discovered column.\n // gridState colIds are derived from PTableColumnSpec and unaffected.\n return {\n version: 6,\n stateCache: state.stateCache.map((entry) => ({\n ...entry,\n gridState: unwrapV5GridState(entry.gridState),\n })),\n pTableParams: createDefaultPTableParams(),\n };\n}\n\n/** Convert v5 wrapped colId JSON to bare PTableColumnSpec JSON, taking `.source`.\n * gridState colIds may include the row-number sentinel (a JSON-stringified\n * literal, not a wrapped spec) — those pass through unchanged. */\nfunction unwrapV5ColId(json: string): string {\n const parsed: unknown = parseJsonSafely(json as CanonicalizedJson<unknown>);\n return !isNil(parsed) && typeof parsed === \"object\" && \"source\" in parsed\n ? canonicalizeJson((parsed as PlDataTableV5ColIdWrapper).source)\n : json;\n}\n\nfunction unwrapV5GridState(gridState: PlDataTableGridStateV5): PlDataTableGridStateV6 {\n const unwrapAs = (json: PlDataTableV5ColIdJson) => unwrapV5ColId(json) as PlDataTableV6ColIdJson;\n return {\n columnOrder: gridState.columnOrder\n ? { orderedColIds: gridState.columnOrder.orderedColIds.map(unwrapAs) }\n : undefined,\n sort: gridState.sort\n ? {\n sortModel: gridState.sort.sortModel.map((s) => ({\n colId: unwrapAs(s.colId),\n sort: s.sort,\n })),\n }\n : undefined,\n columnVisibility: gridState.columnVisibility\n ? { hiddenColIds: gridState.columnVisibility.hiddenColIds.map(unwrapAs) }\n : undefined,\n };\n}\n\n/** Migrate v6 to v7: rewrite each colId from a full PTableColumnSpec to its\n * compact PTableColumnId (drops annotations/spec body, ~16× smaller per column). */\nfunction migrateV6toV7(state: PlDataTableStateV2V6): PlDataTableStateV2Normalized {\n return {\n version: 7,\n stateCache: state.stateCache.map(\n (entry): PlDataTableStateV2CacheEntry => ({\n ...entry,\n gridState: shrinkV6GridState(entry.gridState),\n }),\n ),\n pTableParams: state.pTableParams,\n };\n}\n\n/** Convert a v6 fat colId (canonicalized PTableColumnSpec) to a v7 compact colId\n * (canonicalized PTableColumnId). The row-number sentinel is a string literal,\n * not a spec — pass it through unchanged. */\nfunction shrinkV6ColId(json: PlDataTableV6ColIdJson): PlTableColumnIdJson {\n const parsed: unknown = parseJsonSafely(json);\n if (!isNil(parsed) && typeof parsed === \"object\" && \"type\" in parsed && \"id\" in parsed) {\n return canonicalizeJson(getPTableColumnId(parsed as PTableColumnSpec));\n }\n return json as unknown as PlTableColumnIdJson;\n}\n\nfunction shrinkV6GridState(gridState: PlDataTableGridStateV6): PlDataTableGridStateCore {\n return {\n columnOrder: gridState.columnOrder\n ? { orderedColIds: gridState.columnOrder.orderedColIds.map(shrinkV6ColId) }\n : undefined,\n sort: gridState.sort\n ? {\n sortModel: gridState.sort.sortModel.map((s) => ({\n colId: shrinkV6ColId(s.colId),\n sort: s.sort,\n })),\n }\n : undefined,\n columnVisibility: gridState.columnVisibility\n ? { hiddenColIds: gridState.columnVisibility.hiddenColIds.map(shrinkV6ColId) }\n : undefined,\n };\n}\n\n/** Migrate v4 state to v6: convert per-column filters to tree-based format (skips v5). */\nfunction migrateV4toV6(state: Extract<PlDataTableStateV2, { version: 4 }>): PlDataTableStateV2V6 {\n let idCounter = 0;\n const nextId = () => ++idCounter;\n\n const migratedCache: PlDataTableStateV2V6CacheEntry[] = state.stateCache.map((entry) => {\n const leaves: PlDataTableFiltersWithMeta[\"filters\"] = [];\n for (const f of entry.filtersState) {\n if (f.filter !== null && !f.filter.disabled) {\n const column = canonicalizeJson(f.id);\n leaves.push(migrateTableFilter(column, f.filter.value, nextId));\n }\n }\n const filtersState: PlDataTableFiltersWithMeta | null =\n leaves.length > 0 ? { id: nextId(), type: \"and\", filters: leaves } : null;\n\n return {\n sourceId: entry.sourceId,\n gridState: entry.gridState,\n sheetsState: entry.sheetsState,\n filtersState,\n defaultFiltersState: null,\n };\n });\n\n const oldSourceId = state.pTableParams.sourceId;\n const currentCache = oldSourceId\n ? migratedCache.find((e) => e.sourceId === oldSourceId)\n : undefined;\n\n return {\n version: 6,\n stateCache: migratedCache,\n pTableParams:\n currentCache && oldSourceId\n ? {\n sourceId: oldSourceId,\n hiddenColIds:\n state.pTableParams.hiddenColIds?.map((id) => ({ type: \"column\" as const, id })) ??\n null,\n filters: distillFilterSpec(currentCache.filtersState),\n defaultFilters: null,\n sorting: state.pTableParams.sorting,\n }\n : createDefaultPTableParams(),\n };\n}\n\n/** Migrate a single per-column PlTableFilter to a tree-based FilterSpec node */\nfunction migrateTableFilter(\n column: CanonicalizedJson<PTableColumnId>,\n filter: PlTableFilter,\n nextId: () => number,\n): PlDataTableFiltersWithMeta[\"filters\"][number] {\n const id = nextId();\n switch (filter.type) {\n case \"isNA\":\n return { id, type: \"isNA\", column };\n case \"isNotNA\":\n return { id, type: \"isNotNA\", column };\n case \"number_equals\":\n return { id, type: \"equal\", column, x: filter.reference };\n case \"number_notEquals\":\n return { id, type: \"notEqual\", column, x: filter.reference };\n case \"number_greaterThan\":\n return { id, type: \"greaterThan\", column, x: filter.reference };\n case \"number_greaterThanOrEqualTo\":\n return { id, type: \"greaterThanOrEqual\", column, x: filter.reference };\n case \"number_lessThan\":\n return { id, type: \"lessThan\", column, x: filter.reference };\n case \"number_lessThanOrEqualTo\":\n return { id, type: \"lessThanOrEqual\", column, x: filter.reference };\n case \"number_between\":\n return {\n id,\n type: \"and\",\n filters: [\n filter.includeLowerBound\n ? { id: nextId(), type: \"greaterThanOrEqual\" as const, column, x: filter.lowerBound }\n : { id: nextId(), type: \"greaterThan\" as const, column, x: filter.lowerBound },\n filter.includeUpperBound\n ? { id: nextId(), type: \"lessThanOrEqual\" as const, column, x: filter.upperBound }\n : { id: nextId(), type: \"lessThan\" as const, column, x: filter.upperBound },\n ],\n };\n case \"string_equals\":\n return { id, type: \"patternEquals\", column, value: filter.reference };\n case \"string_notEquals\":\n return { id, type: \"patternNotEquals\", column, value: filter.reference };\n case \"string_contains\":\n return { id, type: \"patternContainSubsequence\", column, value: filter.reference };\n case \"string_doesNotContain\":\n return { id, type: \"patternNotContainSubsequence\", column, value: filter.reference };\n case \"string_matches\":\n return { id, type: \"patternMatchesRegularExpression\", column, value: filter.reference };\n case \"string_doesNotMatch\":\n return {\n id,\n type: \"not\",\n filter: {\n id: nextId(),\n type: \"patternMatchesRegularExpression\",\n column,\n value: filter.reference,\n },\n };\n case \"string_containsFuzzyMatch\":\n return {\n id,\n type: \"patternFuzzyContainSubsequence\",\n column,\n value: filter.reference,\n maxEdits: filter.maxEdits,\n substitutionsOnly: filter.substitutionsOnly,\n ...(filter.wildcard !== undefined ? { wildcard: filter.wildcard } : {}),\n };\n }\n}\n\nexport function createDefaultPTableParams(): PTableParamsV2 {\n return {\n sourceId: null,\n hiddenColIds: null,\n filters: null,\n defaultFilters: null,\n sorting: [],\n };\n}\n\nexport function createPlDataTableStateV2(): PlDataTableStateV2Normalized {\n return {\n version: 7,\n stateCache: [],\n pTableParams: createDefaultPTableParams(),\n };\n}\n"],"mappings":";;;;;;AAsJA,SAAgB,0BACd,OAC8B;CAE9B,IAAI,CAAC,OACH,OAAO,yBAAyB;CAGlC,IAAI,EAAE,aAAa,QAEjB,QAAQ,yBAAyB;CAGnC,IAAI,MAAM,YAAY,GACpB,QAAQ;EACN,SAAS;EACT,YAAY,MAAM,WAAW,KAAK,WAAW;GAC3C,GAAG;GACH,cAAc,CAAC;EACjB,EAAE;EACF,cAAc,0BAA0B;CAC1C;CAGF,IAAI,MAAM,YAAY,GAEpB,QAAQ,yBAAyB;CAKnC,IAAI,MAAM,YAAY,GACpB,QAAQ,cAAc,KAAK;CAG7B,IAAI,MAAM,YAAY,GACpB,QAAQ,cAAc,KAAK;CAG7B,IAAI,MAAM,YAAY,GACpB,QAAQ,cAAc,KAAK;CAE7B,OAAO;AACT;;AAGA,SAAS,cAAc,OAA0E;CAM/F,OAAO;EACL,SAAS;EACT,YAAY,MAAM,WAAW,KAAK,WAAW;GAC3C,GAAG;GACH,WAAW,kBAAkB,MAAM,SAAS;EAC9C,EAAE;EACF,cAAc,0BAA0B;CAC1C;AACF;;;;AAKA,SAAS,cAAc,MAAsB;CAC3C,MAAM,SAAkB,gBAAgB,IAAkC;CAC1E,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,WAAW,YAAY,YAAY,SAC/D,iBAAkB,OAAqC,MAAM,IAC7D;AACN;AAEA,SAAS,kBAAkB,WAA2D;CACpF,MAAM,YAAY,SAAiC,cAAc,IAAI;CACrE,OAAO;EACL,aAAa,UAAU,cACnB,EAAE,eAAe,UAAU,YAAY,cAAc,IAAI,QAAQ,EAAE,IACnE,KAAA;EACJ,MAAM,UAAU,OACZ,EACE,WAAW,UAAU,KAAK,UAAU,KAAK,OAAO;GAC9C,OAAO,SAAS,EAAE,KAAK;GACvB,MAAM,EAAE;EACV,EAAE,EACJ,IACA,KAAA;EACJ,kBAAkB,UAAU,mBACxB,EAAE,cAAc,UAAU,iBAAiB,aAAa,IAAI,QAAQ,EAAE,IACtE,KAAA;CACN;AACF;;;AAIA,SAAS,cAAc,OAA2D;CAChF,OAAO;EACL,SAAS;EACT,YAAY,MAAM,WAAW,KAC1B,WAAyC;GACxC,GAAG;GACH,WAAW,kBAAkB,MAAM,SAAS;EAC9C,EACF;EACA,cAAc,MAAM;CACtB;AACF;;;;AAKA,SAAS,cAAc,MAAmD;CACxE,MAAM,SAAkB,gBAAgB,IAAI;CAC5C,IAAI,CAAC,MAAM,MAAM,KAAK,OAAO,WAAW,YAAY,UAAU,UAAU,QAAQ,QAC9E,OAAO,iBAAiB,kBAAkB,MAA0B,CAAC;CAEvE,OAAO;AACT;AAEA,SAAS,kBAAkB,WAA6D;CACtF,OAAO;EACL,aAAa,UAAU,cACnB,EAAE,eAAe,UAAU,YAAY,cAAc,IAAI,aAAa,EAAE,IACxE,KAAA;EACJ,MAAM,UAAU,OACZ,EACE,WAAW,UAAU,KAAK,UAAU,KAAK,OAAO;GAC9C,OAAO,cAAc,EAAE,KAAK;GAC5B,MAAM,EAAE;EACV,EAAE,EACJ,IACA,KAAA;EACJ,kBAAkB,UAAU,mBACxB,EAAE,cAAc,UAAU,iBAAiB,aAAa,IAAI,aAAa,EAAE,IAC3E,KAAA;CACN;AACF;;AAGA,SAAS,cAAc,OAA0E;CAC/F,IAAI,YAAY;CAChB,MAAM,eAAe,EAAE;CAEvB,MAAM,gBAAkD,MAAM,WAAW,KAAK,UAAU;EACtF,MAAM,SAAgD,CAAC;EACvD,KAAK,MAAM,KAAK,MAAM,cACpB,IAAI,EAAE,WAAW,QAAQ,CAAC,EAAE,OAAO,UAAU;GAC3C,MAAM,SAAS,iBAAiB,EAAE,EAAE;GACpC,OAAO,KAAK,mBAAmB,QAAQ,EAAE,OAAO,OAAO,MAAM,CAAC;EAChE;EAEF,MAAM,eACJ,OAAO,SAAS,IAAI;GAAE,IAAI,OAAO;GAAG,MAAM;GAAO,SAAS;EAAO,IAAI;EAEvE,OAAO;GACL,UAAU,MAAM;GAChB,WAAW,MAAM;GACjB,aAAa,MAAM;GACnB;GACA,qBAAqB;EACvB;CACF,CAAC;CAED,MAAM,cAAc,MAAM,aAAa;CACvC,MAAM,eAAe,cACjB,cAAc,MAAM,MAAM,EAAE,aAAa,WAAW,IACpD,KAAA;CAEJ,OAAO;EACL,SAAS;EACT,YAAY;EACZ,cACE,gBAAgB,cACZ;GACE,UAAU;GACV,cACE,MAAM,aAAa,cAAc,KAAK,QAAQ;IAAE,MAAM;IAAmB;GAAG,EAAE,KAC9E;GACF,SAAS,kBAAkB,aAAa,YAAY;GACpD,gBAAgB;GAChB,SAAS,MAAM,aAAa;EAC9B,IACA,0BAA0B;CAClC;AACF;;AAGA,SAAS,mBACP,QACA,QACA,QAC+C;CAC/C,MAAM,KAAK,OAAO;CAClB,QAAQ,OAAO,MAAf;EACE,KAAK,QACH,OAAO;GAAE;GAAI,MAAM;GAAQ;EAAO;EACpC,KAAK,WACH,OAAO;GAAE;GAAI,MAAM;GAAW;EAAO;EACvC,KAAK,iBACH,OAAO;GAAE;GAAI,MAAM;GAAS;GAAQ,GAAG,OAAO;EAAU;EAC1D,KAAK,oBACH,OAAO;GAAE;GAAI,MAAM;GAAY;GAAQ,GAAG,OAAO;EAAU;EAC7D,KAAK,sBACH,OAAO;GAAE;GAAI,MAAM;GAAe;GAAQ,GAAG,OAAO;EAAU;EAChE,KAAK,+BACH,OAAO;GAAE;GAAI,MAAM;GAAsB;GAAQ,GAAG,OAAO;EAAU;EACvE,KAAK,mBACH,OAAO;GAAE;GAAI,MAAM;GAAY;GAAQ,GAAG,OAAO;EAAU;EAC7D,KAAK,4BACH,OAAO;GAAE;GAAI,MAAM;GAAmB;GAAQ,GAAG,OAAO;EAAU;EACpE,KAAK,kBACH,OAAO;GACL;GACA,MAAM;GACN,SAAS,CACP,OAAO,oBACH;IAAE,IAAI,OAAO;IAAG,MAAM;IAA+B;IAAQ,GAAG,OAAO;GAAW,IAClF;IAAE,IAAI,OAAO;IAAG,MAAM;IAAwB;IAAQ,GAAG,OAAO;GAAW,GAC/E,OAAO,oBACH;IAAE,IAAI,OAAO;IAAG,MAAM;IAA4B;IAAQ,GAAG,OAAO;GAAW,IAC/E;IAAE,IAAI,OAAO;IAAG,MAAM;IAAqB;IAAQ,GAAG,OAAO;GAAW,CAC9E;EACF;EACF,KAAK,iBACH,OAAO;GAAE;GAAI,MAAM;GAAiB;GAAQ,OAAO,OAAO;EAAU;EACtE,KAAK,oBACH,OAAO;GAAE;GAAI,MAAM;GAAoB;GAAQ,OAAO,OAAO;EAAU;EACzE,KAAK,mBACH,OAAO;GAAE;GAAI,MAAM;GAA6B;GAAQ,OAAO,OAAO;EAAU;EAClF,KAAK,yBACH,OAAO;GAAE;GAAI,MAAM;GAAgC;GAAQ,OAAO,OAAO;EAAU;EACrF,KAAK,kBACH,OAAO;GAAE;GAAI,MAAM;GAAmC;GAAQ,OAAO,OAAO;EAAU;EACxF,KAAK,uBACH,OAAO;GACL;GACA,MAAM;GACN,QAAQ;IACN,IAAI,OAAO;IACX,MAAM;IACN;IACA,OAAO,OAAO;GAChB;EACF;EACF,KAAK,6BACH,OAAO;GACL;GACA,MAAM;GACN;GACA,OAAO,OAAO;GACd,UAAU,OAAO;GACjB,mBAAmB,OAAO;GAC1B,GAAI,OAAO,aAAa,KAAA,IAAY,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;EACvE;CACJ;AACF;AAEA,SAAgB,4BAA4C;CAC1D,OAAO;EACL,UAAU;EACV,cAAc;EACd,SAAS;EACT,gBAAgB;EAChB,SAAS,CAAC;CACZ;AACF;AAEA,SAAgB,2BAAyD;CACvE,OAAO;EACL,SAAS;EACT,YAAY,CAAC;EACb,cAAc,0BAA0B;CAC1C;AACF"}
|
|
1
|
+
{"version":3,"file":"state-migration.js","names":[],"sources":["../../../src/components/PlDataTable/state-migration.ts"],"sourcesContent":["import type {\n AxisId,\n CanonicalizedJson,\n PObjectId,\n PTableColumnId,\n PTableColumnSpec,\n PTableRecordFilter,\n PTableSorting,\n} from \"@milaboratories/pl-model-common\";\nimport {\n canonicalizeJson,\n getPTableColumnId,\n parseJsonSafely,\n} from \"@milaboratories/pl-model-common\";\nimport { distillFilterSpec } from \"../../filters\";\nimport type { PlDataTableFilterState, PlTableFilter } from \"./typesV4\";\nimport type {\n PlDataTableFilters,\n PlDataTableFiltersWithMeta,\n PlDataTableSheetState,\n PlDataTableStateV2CacheEntry,\n PlDataTableStateV2Normalized,\n PTableParamsV2,\n} from \"./typesV8\";\nimport type {\n PlDataTableFilters as PlDataTableFiltersV7,\n PlDataTableFiltersWithMeta as PlDataTableFiltersWithMetaV7,\n PlDataTableGridStateCore as PlDataTableGridStateCoreV7,\n PlDataTableStateV2CacheEntry as PlDataTableStateV2V7CacheEntry,\n PlDataTableStateV2Normalized as PlDataTableStateV2V7,\n PlTableColumnIdJson,\n PTableParamsV2 as PTableParamsV2V7,\n} from \"./typesV7\";\nimport type {\n PlDataTableGridStateV6,\n PlDataTableStateV2V6,\n PlDataTableStateV2V6CacheEntry,\n PlDataTableV6ColIdJson,\n} from \"./typesV6\";\nimport type {\n PlDataTableGridStateV5,\n PlDataTableV5ColIdJson,\n PlDataTableV5ColIdWrapper,\n} from \"./typesV5\";\nimport { isNil } from \"es-toolkit\";\n\n/**\n * PlDataTableV2 persisted state\n */\nexport type PlDataTableStateV2 =\n // Old versions of the state\n | {\n // no version\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sourceId?: string;\n sheets?: Record<CanonicalizedJson<AxisId>, string | number>;\n };\n pTableParams?: {\n sorting?: PTableSorting[];\n filters?: PTableRecordFilter[];\n };\n }\n | {\n version: 2;\n stateCache: {\n sourceId: string;\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n };\n sheetsState: PlDataTableSheetState[];\n }[];\n pTableParams: {\n hiddenColIds: PObjectId[] | null;\n filters: PTableRecordFilter[];\n sorting: PTableSorting[];\n };\n }\n | {\n version: 3;\n stateCache: {\n sourceId: string;\n gridState: {\n columnOrder?: {\n orderedColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n sort?: {\n sortModel: {\n colId: CanonicalizedJson<PTableColumnSpec>;\n sort: \"asc\" | \"desc\";\n }[];\n };\n columnVisibility?: {\n hiddenColIds: CanonicalizedJson<PTableColumnSpec>[];\n };\n };\n sheetsState: PlDataTableSheetState[];\n filtersState: PlDataTableFilterState[];\n }[];\n pTableParams: PTableParamsV2V7;\n }\n | {\n version: 4;\n stateCache: {\n sourceId: string;\n gridState: PlDataTableGridStateV6;\n sheetsState: PlDataTableSheetState[];\n filtersState: PlDataTableFilterState[];\n }[];\n /** Old format; only fields used in migration are typed */\n pTableParams: {\n sourceId: string | null;\n hiddenColIds: PObjectId[] | null;\n sorting: PTableSorting[];\n };\n }\n // v5 stored colIds as `{source, labeled}` wrappers; only the gridState shape differs.\n | {\n version: 5;\n stateCache: {\n sourceId: string;\n gridState: PlDataTableGridStateV5;\n sheetsState: PlDataTableSheetState[];\n filtersState: null | PlDataTableFiltersWithMetaV7;\n defaultFiltersState: null | PlDataTableFiltersWithMetaV7;\n searchString?: string;\n }[];\n pTableParams: PTableParamsV2V7;\n }\n // v6 stored colIds as canonicalized full `PTableColumnSpec` (including\n // annotations + `pl7.app/trace`). v7 strips down to `PTableColumnId`.\n | PlDataTableStateV2V6\n // v7 still had filter leaves serialised as `CanonicalizedJson<PTableColumnId>`\n // strings and `sorting: []` for the \"untouched\" case.\n | PlDataTableStateV2V7\n // Normalized state\n | PlDataTableStateV2Normalized;\n\n/** Upgrade PlDataTableStateV2 to the latest version */\nexport function upgradePlDataTableStateV2(\n state: PlDataTableStateV2 | undefined,\n): PlDataTableStateV2Normalized {\n // Block just added, had no state, model started earlier than the UI\n if (!state) {\n return createPlDataTableStateV2();\n }\n // v1 -> v2\n if (!(\"version\" in state)) {\n // Non upgradeable as sourceId calculation algorithm has changed, resetting state to default\n state = createPlDataTableStateV2();\n }\n // v2 -> v3\n if (state.version === 2) {\n state = {\n version: 3,\n stateCache: state.stateCache.map((entry) => ({\n ...entry,\n filtersState: [],\n })),\n pTableParams: createDefaultPTableParamsV7(),\n };\n }\n // v3 -> v4\n if (state.version === 3) {\n // Non upgradeable as column ids calculation algorithm has changed, resetting state to default\n state = createPlDataTableStateV2();\n }\n // v4 -> v6: migrate per-column filters to tree-based format (skips v5).\n // v4 gridState already used bare PTableColumnSpec colIds, so we jump\n // straight to v6 without going through the v5 wrapper format.\n if (state.version === 4) {\n state = migrateV4toV6(state);\n }\n // v5 -> v6: unwrap `{source, labeled}` colIds in gridState.\n if (state.version === 5) {\n state = migrateV5toV6(state);\n }\n // v6 -> v7: shrink colIds from full PTableColumnSpec to PTableColumnId.\n if (state.version === 6) {\n state = migrateV6toV7(state);\n }\n // v7 -> v8: parse CanonicalizedJson<PTableColumnId> filter leaves into object\n // form; translate `sorting: []` into `sorting: null`.\n if (state.version === 7) {\n state = migrateV7toV8(state);\n }\n return state;\n}\n\n/** Migrate v5 to v6: unwrap `{source, labeled}` colIds in gridState. */\nfunction migrateV5toV6(state: Extract<PlDataTableStateV2, { version: 5 }>): PlDataTableStateV2V6 {\n // pTableParams reset: v5 stored ColumnDiscoveredId-based hiddenColIds with\n // empty-array fields (e.g. `{column, path: [], columnQualifications: [], ...}`).\n // v6 distills empty fields, so the same logical column serialises differently\n // and lookups would silently miss every previously-hidden discovered column.\n // gridState colIds are derived from PTableColumnSpec and unaffected.\n return {\n version: 6,\n stateCache: state.stateCache.map((entry) => ({\n ...entry,\n gridState: unwrapV5GridState(entry.gridState),\n })),\n pTableParams: createDefaultPTableParamsV7(),\n };\n}\n\n/** Convert v5 wrapped colId JSON to bare PTableColumnSpec JSON, taking `.source`.\n * gridState colIds may include the row-number sentinel (a JSON-stringified\n * literal, not a wrapped spec) — those pass through unchanged. */\nfunction unwrapV5ColId(json: string): string {\n const parsed: unknown = parseJsonSafely(json as CanonicalizedJson<unknown>);\n return !isNil(parsed) && typeof parsed === \"object\" && \"source\" in parsed\n ? canonicalizeJson((parsed as PlDataTableV5ColIdWrapper).source)\n : json;\n}\n\nfunction unwrapV5GridState(gridState: PlDataTableGridStateV5): PlDataTableGridStateV6 {\n const unwrapAs = (json: PlDataTableV5ColIdJson) => unwrapV5ColId(json) as PlDataTableV6ColIdJson;\n return {\n columnOrder: gridState.columnOrder\n ? { orderedColIds: gridState.columnOrder.orderedColIds.map(unwrapAs) }\n : undefined,\n sort: gridState.sort\n ? {\n sortModel: gridState.sort.sortModel.map((s) => ({\n colId: unwrapAs(s.colId),\n sort: s.sort,\n })),\n }\n : undefined,\n columnVisibility: gridState.columnVisibility\n ? { hiddenColIds: gridState.columnVisibility.hiddenColIds.map(unwrapAs) }\n : undefined,\n };\n}\n\n/** Migrate v6 to v7: rewrite each colId from a full PTableColumnSpec to its\n * compact PTableColumnId (drops annotations/spec body, ~16× smaller per column). */\nfunction migrateV6toV7(state: PlDataTableStateV2V6): PlDataTableStateV2V7 {\n return {\n version: 7,\n stateCache: state.stateCache.map(\n (entry): PlDataTableStateV2V7CacheEntry => ({\n ...entry,\n gridState: shrinkV6GridState(entry.gridState),\n }),\n ),\n pTableParams: state.pTableParams,\n };\n}\n\n/** Convert a v6 fat colId (canonicalized PTableColumnSpec) to a v7 compact colId\n * (canonicalized PTableColumnId). The row-number sentinel is a string literal,\n * not a spec — pass it through unchanged. */\nfunction shrinkV6ColId(json: PlDataTableV6ColIdJson): PlTableColumnIdJson {\n const parsed: unknown = parseJsonSafely(json);\n if (!isNil(parsed) && typeof parsed === \"object\" && \"type\" in parsed && \"id\" in parsed) {\n return canonicalizeJson(getPTableColumnId(parsed as PTableColumnSpec));\n }\n return json as unknown as PlTableColumnIdJson;\n}\n\nfunction shrinkV6GridState(gridState: PlDataTableGridStateV6): PlDataTableGridStateCoreV7 {\n return {\n columnOrder: gridState.columnOrder\n ? { orderedColIds: gridState.columnOrder.orderedColIds.map(shrinkV6ColId) }\n : undefined,\n sort: gridState.sort\n ? {\n sortModel: gridState.sort.sortModel.map((s) => ({\n colId: shrinkV6ColId(s.colId),\n sort: s.sort,\n })),\n }\n : undefined,\n columnVisibility: gridState.columnVisibility\n ? { hiddenColIds: gridState.columnVisibility.hiddenColIds.map(shrinkV6ColId) }\n : undefined,\n };\n}\n\n/** Migrate v4 state to v6: convert per-column filters to tree-based format (skips v5). */\nfunction migrateV4toV6(state: Extract<PlDataTableStateV2, { version: 4 }>): PlDataTableStateV2V6 {\n let idCounter = 0;\n const nextId = () => ++idCounter;\n\n const migratedCache: PlDataTableStateV2V6CacheEntry[] = state.stateCache.map((entry) => {\n const leaves: PlDataTableFiltersWithMetaV7[\"filters\"] = [];\n for (const f of entry.filtersState) {\n if (f.filter !== null && !f.filter.disabled) {\n leaves.push(migrateTableFilter(canonicalizeJson(f.id), f.filter.value, nextId));\n }\n }\n const filtersState: PlDataTableFiltersWithMetaV7 | null =\n leaves.length > 0 ? { id: nextId(), type: \"and\", filters: leaves } : null;\n\n return {\n sourceId: entry.sourceId,\n gridState: entry.gridState,\n sheetsState: entry.sheetsState,\n filtersState,\n defaultFiltersState: null,\n };\n });\n\n const oldSourceId = state.pTableParams.sourceId;\n const currentCache = oldSourceId\n ? migratedCache.find((e) => e.sourceId === oldSourceId)\n : undefined;\n\n return {\n version: 6,\n stateCache: migratedCache,\n pTableParams:\n currentCache && oldSourceId\n ? {\n sourceId: oldSourceId,\n hiddenColIds:\n state.pTableParams.hiddenColIds?.map((id) => ({ type: \"column\" as const, id })) ??\n null,\n filters: distillFilterSpec(currentCache.filtersState),\n defaultFilters: null,\n sorting: state.pTableParams.sorting,\n }\n : createDefaultPTableParamsV7(),\n };\n}\n\n/** Migrate a single per-column PlTableFilter to a v7-form tree node (legacy\n * string column ids). v7 → v8 later converts these to object form. */\nfunction migrateTableFilter(\n column: CanonicalizedJson<PTableColumnId>,\n filter: PlTableFilter,\n nextId: () => number,\n): PlDataTableFiltersWithMetaV7[\"filters\"][number] {\n const id = nextId();\n switch (filter.type) {\n case \"isNA\":\n return { id, type: \"isNA\", column };\n case \"isNotNA\":\n return { id, type: \"isNotNA\", column };\n case \"number_equals\":\n return { id, type: \"equal\", column, x: filter.reference };\n case \"number_notEquals\":\n return { id, type: \"notEqual\", column, x: filter.reference };\n case \"number_greaterThan\":\n return { id, type: \"greaterThan\", column, x: filter.reference };\n case \"number_greaterThanOrEqualTo\":\n return { id, type: \"greaterThanOrEqual\", column, x: filter.reference };\n case \"number_lessThan\":\n return { id, type: \"lessThan\", column, x: filter.reference };\n case \"number_lessThanOrEqualTo\":\n return { id, type: \"lessThanOrEqual\", column, x: filter.reference };\n case \"number_between\":\n return {\n id,\n type: \"and\",\n filters: [\n filter.includeLowerBound\n ? { id: nextId(), type: \"greaterThanOrEqual\" as const, column, x: filter.lowerBound }\n : { id: nextId(), type: \"greaterThan\" as const, column, x: filter.lowerBound },\n filter.includeUpperBound\n ? { id: nextId(), type: \"lessThanOrEqual\" as const, column, x: filter.upperBound }\n : { id: nextId(), type: \"lessThan\" as const, column, x: filter.upperBound },\n ],\n };\n case \"string_equals\":\n return { id, type: \"patternEquals\", column, value: filter.reference };\n case \"string_notEquals\":\n return { id, type: \"patternNotEquals\", column, value: filter.reference };\n case \"string_contains\":\n return { id, type: \"patternContainSubsequence\", column, value: filter.reference };\n case \"string_doesNotContain\":\n return { id, type: \"patternNotContainSubsequence\", column, value: filter.reference };\n case \"string_matches\":\n return { id, type: \"patternMatchesRegularExpression\", column, value: filter.reference };\n case \"string_doesNotMatch\":\n return {\n id,\n type: \"not\",\n filter: {\n id: nextId(),\n type: \"patternMatchesRegularExpression\",\n column,\n value: filter.reference,\n },\n };\n case \"string_containsFuzzyMatch\":\n return {\n id,\n type: \"patternFuzzyContainSubsequence\",\n column,\n value: filter.reference,\n maxEdits: filter.maxEdits,\n substitutionsOnly: filter.substitutionsOnly,\n ...(filter.wildcard !== undefined ? { wildcard: filter.wildcard } : {}),\n };\n }\n}\n\n/** Default pTableParams in the v7 shape (sorting: []). Used by intermediate\n * migration steps that produce v6/v7 state before the v7 → v8 conversion. */\nfunction createDefaultPTableParamsV7(): PTableParamsV2V7 {\n return {\n sourceId: null,\n hiddenColIds: null,\n filters: null,\n defaultFilters: null,\n sorting: [],\n };\n}\n\nexport function createDefaultPTableParams(): PTableParamsV2 {\n return {\n sourceId: null,\n hiddenColIds: null,\n filters: null,\n defaultFilters: null,\n sorting: null,\n };\n}\n\nexport function createPlDataTableStateV2(): PlDataTableStateV2Normalized {\n return {\n version: 8,\n stateCache: [],\n pTableParams: createDefaultPTableParams(),\n };\n}\n\n// --- v7 -> v8 migration ----------------------------------------------------\n// Parses CanonicalizedJson<PTableColumnId> filter leaves into the new object\n// form. Malformed leaves are dropped; groups that become empty after pruning\n// are dropped; cache entries whose tree fully prunes get filtersState: null.\n// Also translates `sorting: []` (legacy \"untouched\") into `sorting: null`.\n\nfunction migrateV7toV8(state: PlDataTableStateV2V7): PlDataTableStateV2Normalized {\n const newCache: PlDataTableStateV2CacheEntry[] = state.stateCache.map((entry) => ({\n sourceId: entry.sourceId,\n gridState: entry.gridState,\n sheetsState: entry.sheetsState,\n filtersState: convertFiltersWithMeta(entry.filtersState),\n defaultFiltersState: convertFiltersWithMeta(entry.defaultFiltersState),\n searchString: entry.searchString,\n }));\n\n const params = state.pTableParams;\n let pTableParams: PTableParamsV2;\n if (params.sourceId === null) {\n pTableParams = createDefaultPTableParams();\n } else {\n pTableParams = {\n sourceId: params.sourceId,\n hiddenColIds: params.hiddenColIds,\n // Empty array in legacy state means \"not touched\" — translate to null so the\n // model falls back to default sorting; non-empty stays as user's explicit value.\n sorting: params.sorting.length === 0 ? null : params.sorting,\n filters: convertFiltersPlain(params.filters),\n defaultFilters: convertFiltersPlain(params.defaultFilters),\n };\n }\n\n return { version: 8, stateCache: newCache, pTableParams };\n}\n\nfunction convertFiltersWithMeta(\n node: null | PlDataTableFiltersWithMetaV7,\n): null | PlDataTableFiltersWithMeta {\n if (node === null) return null;\n const result = pruneFilterNode(node as unknown);\n if (result === undefined) return null;\n return result as PlDataTableFiltersWithMeta;\n}\n\nfunction convertFiltersPlain(node: null | PlDataTableFiltersV7): null | PlDataTableFilters {\n if (node === null) return null;\n const result = pruneFilterNode(node as unknown);\n if (result === undefined) return null;\n return result as PlDataTableFilters;\n}\n\n/** Recursively converts and prunes a legacy v7 filter tree. Preserves meta\n * fields (id/isExpanded/source/isSuppressed) on non-leaf nodes. Returns\n * `undefined` when the subtree is empty after pruning. */\nfunction pruneFilterNode(node: unknown): unknown | undefined {\n if (!node || typeof node !== \"object\") return undefined;\n const n = node as { type?: unknown };\n if (n.type === \"and\" || n.type === \"or\") {\n const filters = (n as { filters?: unknown[] }).filters ?? [];\n const kept = filters.map((f) => pruneFilterNode(f)).filter((f): f is object => f !== undefined);\n if (kept.length === 0) return undefined;\n return { ...(n as object), type: n.type, filters: kept };\n }\n if (n.type === \"not\") {\n const inner = pruneFilterNode((n as { filter?: unknown }).filter);\n if (inner === undefined) return undefined;\n return { ...(n as object), type: \"not\", filter: inner };\n }\n return convertLegacyLeaf(n);\n}\n\nfunction convertLegacyLeaf(leaf: {\n type?: unknown;\n column?: unknown;\n rhs?: unknown;\n}): unknown | undefined {\n if (leaf.type === undefined) return leaf;\n const result: Record<string, unknown> = { ...leaf };\n if (\"column\" in result) {\n const c = parseLegacyLeafColumn(result.column);\n if (c === undefined) return undefined;\n result.column = c;\n }\n if (\"rhs\" in result) {\n const c = parseLegacyLeafColumn(result.rhs);\n if (c === undefined) return undefined;\n result.rhs = c;\n }\n return result;\n}\n\nfunction parseLegacyLeafColumn(s: unknown): PTableColumnId | undefined {\n if (typeof s !== \"string\") return undefined;\n const parsed = parseJsonSafely(s as CanonicalizedJson<PTableColumnId>);\n if (!parsed || typeof parsed !== \"object\") return undefined;\n if (!(\"type\" in parsed) || !(\"id\" in parsed)) return undefined;\n const t = (parsed as { type: unknown }).type;\n if (t !== \"axis\" && t !== \"column\") return undefined;\n return parsed as PTableColumnId;\n}\n"],"mappings":"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"}
|
|
@@ -18,11 +18,6 @@ type PlDataTableGridStateCore = {
|
|
|
18
18
|
/** All colIds which were hidden */hiddenColIds: PlTableColumnIdJson[];
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
type PlDataTableSheet = {
|
|
22
|
-
/** spec of the axis to use */axis: AxisSpec; /** options to show in the filter dropdown */
|
|
23
|
-
options: ListOptionBase<string | number>[]; /** default (selected) value */
|
|
24
|
-
defaultValue?: string | number;
|
|
25
|
-
};
|
|
26
21
|
type PlDataTableSheetState = {
|
|
27
22
|
/** id of the axis */axisId: AxisId; /** selected value */
|
|
28
23
|
value: string | number;
|
|
@@ -63,36 +58,6 @@ type PlDataTableStateV2Normalized = {
|
|
|
63
58
|
stateCache: PlDataTableStateV2CacheEntry[]; /** PTable params derived from the cache state for the current sourceId */
|
|
64
59
|
pTableParams: PTableParamsV2;
|
|
65
60
|
};
|
|
66
|
-
/** PlAgDataTable model */
|
|
67
|
-
type PlDataTableModel = {
|
|
68
|
-
/** DataSource identifier for state management */sourceId: null | string; /** p-table including all columns, used to show the full specification of the table */
|
|
69
|
-
fullTableHandle?: PTableHandle; /** p-frame handle */
|
|
70
|
-
fullPframeHandle?: PFrameHandle; /** p-table including only visible columns, used to get the data */
|
|
71
|
-
visibleTableHandle?: PTableHandle; /** Default filters from model options, surfaced for UI display */
|
|
72
|
-
defaultFilters?: Nil | PlDataTableFilters;
|
|
73
|
-
};
|
|
74
|
-
type CreatePlDataTableOps = {
|
|
75
|
-
/** Filters for columns and non-partitioned axes */filters?: PlDataTableFilters; /** Sorting to columns hidden from user */
|
|
76
|
-
sorting?: PTableSorting[];
|
|
77
|
-
/**
|
|
78
|
-
* Selects columns for which will be inner-joined to the table.
|
|
79
|
-
*
|
|
80
|
-
* Default behaviour: all columns are considered to be core
|
|
81
|
-
*/
|
|
82
|
-
coreColumnPredicate?: (spec: PColumnIdAndSpec) => boolean;
|
|
83
|
-
/**
|
|
84
|
-
* Determines how core columns should be joined together:
|
|
85
|
-
* inner - so user will only see records present in all core columns
|
|
86
|
-
* full - so user will only see records present in any of the core columns
|
|
87
|
-
*
|
|
88
|
-
* All non-core columns will be left joined to the table produced by the core
|
|
89
|
-
* columns, in other words records form the pool of non-core columns will only
|
|
90
|
-
* make their way into the final table if core table contains corresponding key.
|
|
91
|
-
*
|
|
92
|
-
* Default: 'full'
|
|
93
|
-
*/
|
|
94
|
-
coreJoinType?: "inner" | "full";
|
|
95
|
-
};
|
|
96
61
|
//#endregion
|
|
97
|
-
export {
|
|
62
|
+
export { PTableParamsV2, PlDataTableFilterMeta, PlDataTableFilterSpecLeaf, PlDataTableFilters, PlDataTableFiltersWithMeta, PlDataTableGridStateCore, PlDataTableSheetState, PlDataTableStateV2CacheEntry, PlDataTableStateV2Normalized, PlTableColumnIdJson };
|
|
98
63
|
//# sourceMappingURL=typesV7.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typesV7.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV7.ts"],"mappings":";;;;;KAeY,mBAAA,GAAsB,iBAAiB,CAAC,cAAA;AAAA,KAExC,wBAAA;iCAEV,WAAA;IAJ6B,0BAM3B,aAAA,EAAe,mBAAA;EAAA,GAN+C;EAShE,IAAA;IAPkC,6CAShC,SAAA;MALe,sCAOb,KAAA,EAAO,mBAAA,EAQK;MANZ,IAAA;IAAA;EAAA,GATF;EAaF,gBAAA;IAVA,mCAYE,YAAA,EAAc,mBAAA;EAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"typesV7.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV7.ts"],"mappings":";;;;;KAeY,mBAAA,GAAsB,iBAAiB,CAAC,cAAA;AAAA,KAExC,wBAAA;iCAEV,WAAA;IAJ6B,0BAM3B,aAAA,EAAe,mBAAA;EAAA,GAN+C;EAShE,IAAA;IAPkC,6CAShC,SAAA;MALe,sCAOb,KAAA,EAAO,mBAAA,EAQK;MANZ,IAAA;IAAA;EAAA,GATF;EAaF,gBAAA;IAVA,mCAYE,YAAA,EAAc,mBAAA;EAAA;AAAA;AAAA,KAaN,qBAAA;EAEI,qBAAd,MAAA,EAAQ,MAAM,EAAN;EAER,KAAA;AAAA;AAAK;AAAA,KAIK,qBAAA;EACV,EAAA;EACA,MAAA;EACA,UAAA;EACA,YAAA;AAAA;AAAA,KAEU,yBAAA,GAA4B,gBAAA,CAAe,iBAAA,CAAkB,cAAA;AAAA,KAC7D,kBAAA,GAAqB,cAAc,CAAC,yBAAA;AAAA,KACpC,0BAAA,GAA6B,cAAA,CACvC,yBAAA,EACA,qBAAA;AAAA,KAGU,4BAAA;EAPA,iDASV,QAAA;EAEA,SAAA,EAAW,wBAAA,EAX0C;EAarD,WAAA,EAAa,qBAAA,IAbuC;EAepD,YAAA,SAAqB,0BAAA,EAfiB;EAiBtC,mBAAA,SAA4B,0BAAA,EAjB2C;EAmBvE,YAAA;AAAA;AAAA,KAGU,cAAA;EAEN,QAAA;EACA,YAAA;EACA,OAAA;EACA,OAAA;EACA,cAAA;AAAA;EAGA,QAAA;EACA,YAAA,SAAqB,cAAA;EACrB,OAAA,EAAS,aAAA;EACT,OAAA,SAAgB,kBAAA;EAChB,cAAA,SAAuB,kBAAA;AAAA;AAAA,KAGjB,4BAAA;EAnCV,2BAqCA,OAAA,KApCqB;EAsCrB,UAAA,EAAY,4BAAA,IAnCF;EAqCV,YAAA,EAAc,cAAc;AAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { FilterSpecLeaf as FilterSpecLeaf$1 } from "../../filters/types.js";
|
|
2
|
+
import { AnnotationDataStatus, AxisId, AxisSpec, CanonicalizedJson, ColumnUniversalId, ListOptionBase, PColumnIdAndSpec, PFrameHandle, PTableColumnId, PTableHandle, PTableSorting, RootFilterSpec } from "@milaboratories/pl-model-common";
|
|
3
|
+
import { Nil } from "@milaboratories/helpers";
|
|
4
|
+
|
|
5
|
+
//#region src/components/PlDataTable/typesV8.d.ts
|
|
6
|
+
type PlTableColumnIdJson = CanonicalizedJson<PTableColumnId>;
|
|
7
|
+
type PlDataTableGridStateCore = {
|
|
8
|
+
/** Includes column ordering */columnOrder?: {
|
|
9
|
+
/** All colIds in order */orderedColIds: PlTableColumnIdJson[];
|
|
10
|
+
}; /** Includes current sort columns and direction */
|
|
11
|
+
sort?: {
|
|
12
|
+
/** Sorted columns and directions in order */sortModel: {
|
|
13
|
+
/** Column Id to apply the sort to. */colId: PlTableColumnIdJson; /** Sort direction */
|
|
14
|
+
sort: "asc" | "desc";
|
|
15
|
+
}[];
|
|
16
|
+
}; /** Includes column visibility */
|
|
17
|
+
columnVisibility?: {
|
|
18
|
+
/** All colIds which were hidden */hiddenColIds: PlTableColumnIdJson[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
type PlDataTableSheet = {
|
|
22
|
+
/** spec of the axis to use */axis: AxisSpec; /** options to show in the filter dropdown */
|
|
23
|
+
options: ListOptionBase<string | number>[]; /** default (selected) value */
|
|
24
|
+
defaultValue?: string | number;
|
|
25
|
+
};
|
|
26
|
+
type PlDataTableSheetState = {
|
|
27
|
+
/** id of the axis */axisId: AxisId; /** selected value */
|
|
28
|
+
value: string | number;
|
|
29
|
+
};
|
|
30
|
+
/** Tree-based filter state compatible with PlAdvancedFilter's RootFilter */
|
|
31
|
+
type PlDataTableFilterMeta = {
|
|
32
|
+
id: number;
|
|
33
|
+
source?: "table-filter" | "table-search";
|
|
34
|
+
isExpanded?: boolean;
|
|
35
|
+
isSuppressed?: boolean;
|
|
36
|
+
};
|
|
37
|
+
type PlDataTableFilterSpecLeaf = FilterSpecLeaf$1<PTableColumnId>;
|
|
38
|
+
type PlDataTableFilters = RootFilterSpec<PlDataTableFilterSpecLeaf>;
|
|
39
|
+
type PlDataTableFiltersWithMeta = RootFilterSpec<PlDataTableFilterSpecLeaf, PlDataTableFilterMeta>;
|
|
40
|
+
type PlDataTableStateV2CacheEntry = {
|
|
41
|
+
/** DataSource identifier for state management */sourceId: string; /** Internal ag-grid state */
|
|
42
|
+
gridState: PlDataTableGridStateCore; /** Sheets state */
|
|
43
|
+
sheetsState: PlDataTableSheetState[]; /** User filters state (tree-based, compatible with PlAdvancedFilter) */
|
|
44
|
+
filtersState: null | PlDataTableFiltersWithMeta; /** Default filters state from model (snapshot of defaults) */
|
|
45
|
+
defaultFiltersState: null | PlDataTableFiltersWithMeta; /** Fast search string */
|
|
46
|
+
searchString?: string;
|
|
47
|
+
};
|
|
48
|
+
type PTableParamsV2 = {
|
|
49
|
+
sourceId: null;
|
|
50
|
+
hiddenColIds: null;
|
|
51
|
+
sorting: null;
|
|
52
|
+
filters: null;
|
|
53
|
+
defaultFilters: null;
|
|
54
|
+
} | {
|
|
55
|
+
sourceId: string;
|
|
56
|
+
hiddenColIds: null | PTableColumnId[];
|
|
57
|
+
sorting: null | PTableSorting[];
|
|
58
|
+
filters: null | PlDataTableFilters;
|
|
59
|
+
defaultFilters: null | PlDataTableFilters;
|
|
60
|
+
};
|
|
61
|
+
type PlDataTableStateV2Normalized = {
|
|
62
|
+
/** Version for upgrades */version: 8; /** Internal states, LRU cache for 5 sourceId-s */
|
|
63
|
+
stateCache: PlDataTableStateV2CacheEntry[]; /** PTable params derived from the cache state for the current sourceId */
|
|
64
|
+
pTableParams: PTableParamsV2;
|
|
65
|
+
};
|
|
66
|
+
/** PlAgDataTable model */
|
|
67
|
+
type PlDataTableModel = {
|
|
68
|
+
/** DataSource identifier for state management */sourceId: null | string; /** p-table including all columns, used to show the full specification of the table */
|
|
69
|
+
fullTableHandle?: PTableHandle; /** p-frame handle */
|
|
70
|
+
fullPframeHandle?: PFrameHandle; /** p-table including only visible columns, used to get the data */
|
|
71
|
+
visibleTableHandle?: PTableHandle; /** Default filters from model options, surfaced for UI display */
|
|
72
|
+
defaultFilters?: Nil | PlDataTableFilters;
|
|
73
|
+
/**
|
|
74
|
+
* Sidecar rendering metadata kept out of the column specs: baking
|
|
75
|
+
* label/visibility/order/status into a spec via overrides changes the
|
|
76
|
+
* recipe's `ColumnUniversalId`, so the same physical column reached two ways
|
|
77
|
+
* (e.g. as a primary column and as a discovered axis label) would diverge
|
|
78
|
+
* into two ids and render twice. The UI overlays this onto the
|
|
79
|
+
* engine-emitted specs at render time.
|
|
80
|
+
*/
|
|
81
|
+
columnsMeta?: PlDataTableColumnsMeta;
|
|
82
|
+
};
|
|
83
|
+
/** Display metadata for one column, applied by the UI over the emitted spec. */
|
|
84
|
+
type PlDataTableColumnMeta = {
|
|
85
|
+
/** Disambiguated label (overrides the spec's intrinsic `pl7.app/label`). */label?: string; /** Effective visibility from rules + intrinsic annotations. */
|
|
86
|
+
visibility?: "default" | "optional" | "hidden"; /** Effective order priority (higher = further left). */
|
|
87
|
+
order?: number; /** Per-column data status (set for visible columns only). */
|
|
88
|
+
status?: AnnotationDataStatus;
|
|
89
|
+
};
|
|
90
|
+
/** Display metadata for one axis, applied by the UI over the emitted spec. */
|
|
91
|
+
type PlDataTableAxisMeta = {
|
|
92
|
+
/** Whether the UI must hide this axis (axes introduced only by secondary columns). */hidden: boolean;
|
|
93
|
+
};
|
|
94
|
+
/** Sidecar display metadata for a table, keyed by emitted column/axis identity. */
|
|
95
|
+
type PlDataTableColumnsMeta = {
|
|
96
|
+
/** Per-column metadata keyed by the emitted `ColumnUniversalId`. */columns: Record<ColumnUniversalId, PlDataTableColumnMeta>; /** Per-axis metadata keyed by the canonicalized `AxisId`. */
|
|
97
|
+
axes: Record<CanonicalizedJson<AxisId>, PlDataTableAxisMeta>;
|
|
98
|
+
};
|
|
99
|
+
type CreatePlDataTableOps = {
|
|
100
|
+
/** Filters for columns and non-partitioned axes */filters?: PlDataTableFilters; /** Sorting to columns hidden from user */
|
|
101
|
+
sorting?: PTableSorting[];
|
|
102
|
+
/**
|
|
103
|
+
* Selects columns for which will be inner-joined to the table.
|
|
104
|
+
*
|
|
105
|
+
* Default behaviour: all columns are considered to be core
|
|
106
|
+
*/
|
|
107
|
+
coreColumnPredicate?: (spec: PColumnIdAndSpec) => boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Determines how core columns should be joined together:
|
|
110
|
+
* inner - so user will only see records present in all core columns
|
|
111
|
+
* full - so user will only see records present in any of the core columns
|
|
112
|
+
*
|
|
113
|
+
* All non-core columns will be left joined to the table produced by the core
|
|
114
|
+
* columns, in other words records form the pool of non-core columns will only
|
|
115
|
+
* make their way into the final table if core table contains corresponding key.
|
|
116
|
+
*
|
|
117
|
+
* Default: 'full'
|
|
118
|
+
*/
|
|
119
|
+
coreJoinType?: "inner" | "full";
|
|
120
|
+
};
|
|
121
|
+
//#endregion
|
|
122
|
+
export { CreatePlDataTableOps, PTableParamsV2, PlDataTableAxisMeta, PlDataTableColumnMeta, PlDataTableColumnsMeta, PlDataTableFilterMeta, PlDataTableFilterSpecLeaf, PlDataTableFilters, PlDataTableFiltersWithMeta, PlDataTableGridStateCore, PlDataTableModel, PlDataTableSheet, PlDataTableSheetState, PlDataTableStateV2CacheEntry, PlDataTableStateV2Normalized, PlTableColumnIdJson };
|
|
123
|
+
//# sourceMappingURL=typesV8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typesV8.d.ts","names":[],"sources":["../../../src/components/PlDataTable/typesV8.ts"],"mappings":";;;;;KAiBY,mBAAA,GAAsB,iBAAiB,CAAC,cAAA;AAAA,KAExC,wBAAA;iCAEV,WAAA;IAJ6B,0BAM3B,aAAA,EAAe,mBAAA;EAAA,GAN+C;EAShE,IAAA;IAPkC,6CAShC,SAAA;MALe,sCAOb,KAAA,EAAO,mBAAA,EAQK;MANZ,IAAA;IAAA;EAAA,GATF;EAaF,gBAAA;IAVA,mCAYE,YAAA,EAAc,mBAAA;EAAA;AAAA;AAAA,KAIN,gBAAA;EANV,8BAQA,IAAA,EAAM,QAAA,EANU;EAQhB,OAAA,EAAS,cAAc,qBARY;EAUnC,YAAA;AAAA;AAAA,KAGU,qBAAA;EALa,qBAOvB,MAAA,EAAQ,MAAM,EATR;EAWN,KAAA;AAAA;;KAIU,qBAAA;EACV,EAAA;EACA,MAAA;EACA,UAAA;EACA,YAAA;AAAA;AAAA,KAEU,yBAAA,GAA4B,gBAAc,CAAC,cAAA;AAAA,KAC3C,kBAAA,GAAqB,cAAc,CAAC,yBAAA;AAAA,KACpC,0BAAA,GAA6B,cAAA,CACvC,yBAAA,EACA,qBAAA;AAAA,KAGU,4BAAA;EAjBL,iDAmBL,QAAA,UAf+B;EAiB/B,SAAA,EAAW,wBAAA,EAjBoB;EAmB/B,WAAA,EAAa,qBAAA,IAjBb;EAmBA,YAAA,SAAqB,0BAAA,EAjBrB;EAmBA,mBAAA,SAA4B,0BAAA,EAnBhB;EAqBZ,YAAA;AAAA;AAAA,KAGU,cAAA;EAEN,QAAA;EACA,YAAA;EACA,OAAA;EACA,OAAA;EACA,cAAA;AAAA;EAGA,QAAA;EACA,YAAA,SAAqB,cAAA;EACrB,OAAA,SAAgB,aAAA;EAChB,OAAA,SAAgB,kBAAA;EAChB,cAAA,SAAuB,kBAAA;AAAA;AAAA,KAGjB,4BAAA;EApC2C,2BAsCrD,OAAA,KAtCuC;EAwCvC,UAAA,EAAY,4BAAA,IAtCZ;EAwCA,YAAA,EAAc,cAAc;AAAA;AArC9B;AAAA,KAyCY,gBAAA;mDAEV,QAAA,iBArCa;EAuCb,eAAA,GAAkB,YAAA,EAnCU;EAqC5B,gBAAA,GAAmB,YAAA,EArCmC;EAuCtD,kBAAA,GAAqB,YAAA,EA7CrB;EA+CA,cAAA,GAAiB,GAAA,GAAM,kBAAA;EA7CvB;;;;;;;;EAsDA,WAAA,GAAc,sBAAA;AAAA;;KAIJ,qBAAA;EAvCe,4EAyCzB,KAAA,WAvCoB;EAyCpB,UAAA,sCAxC6C;EA0C7C,KAAA,WArDI;EAuDJ,MAAA,GAAS,oBAAoB;AAAA;;KAInB,mBAAA;EApDN,sFAsDJ,MAAM;AAAA;;KAII,sBAAA;EAvDN,oEAyDJ,OAAA,EAAS,MAAA,CAAO,iBAAA,EAAmB,qBAAA,GAxD/B;EA0DJ,IAAA,EAAM,MAAA,CAAO,iBAAA,CAAkB,MAAA,GAAS,mBAAA;AAAA;AAAA,KAG9B,oBAAA;EA1DA,mDA4DV,OAAA,GAAU,kBAAA;EAGV,OAAA,GAAU,aAAA;EA7DV;;;;;EAoEA,mBAAA,IAAuB,IAAA,EAAM,gBAAA;EAhED;AAI9B;;;;;;;;;;EAyEE,YAAA;AAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const require_providers = require("../../columns/column_providers/providers.cjs");
|
|
2
|
+
const require_index = require("../../columns/column_providers/index.cjs");
|
|
3
|
+
require("../../columns/index.cjs");
|
|
3
4
|
const require_filter_discovery = require("./filter_discovery.cjs");
|
|
4
5
|
const require_enrichment_discovery = require("./enrichment_discovery.cjs");
|
|
5
6
|
let _milaboratories_pl_model_common = require("@milaboratories/pl-model-common");
|
|
@@ -20,44 +21,36 @@ function buildDatasetOptions(ctx, opts) {
|
|
|
20
21
|
const options = ctx.resultPool.getOptions(primaryPredicate, { refsWithEnrichments: true });
|
|
21
22
|
if (options.length === 0) return [];
|
|
22
23
|
const refMap = require_filter_discovery.buildRefMap(ctx.resultPool.getSpecs().entries);
|
|
23
|
-
const pframeSpec = ctx.getService("pframeSpec");
|
|
24
24
|
const withEnrichments = opts?.withEnrichments ?? false;
|
|
25
|
-
const filterSource =
|
|
26
|
-
const enrichmentSources = withEnrichments ?
|
|
25
|
+
const filterSource = require_providers.ColumnsProvider(ctx.ctx.getUpstreamBlockCtx());
|
|
26
|
+
const enrichmentSources = withEnrichments ? require_index.getCtxProviders(ctx) : void 0;
|
|
27
27
|
return options.map((primary) => {
|
|
28
28
|
const datasetSpec = ctx.resultPool.getPColumnSpecByRef(primary.ref);
|
|
29
29
|
if (!datasetSpec) return { primary };
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
const filterMatches = require_filter_discovery.findFilterColumns({
|
|
31
|
+
sources: [filterSource],
|
|
32
|
+
anchorSpec: datasetSpec
|
|
33
|
+
}).filter((m) => filterPredicate(m.getSpec()));
|
|
34
|
+
const filters = filterMatches.length === 0 ? void 0 : require_filter_discovery.filterMatchesToOptions(filterMatches, {
|
|
35
|
+
refsByObjectId: refMap,
|
|
36
|
+
datasetSpec,
|
|
37
|
+
labelOptions: opts?.labelOptions
|
|
38
|
+
});
|
|
39
|
+
let enrichments;
|
|
40
|
+
if (enrichmentSources && withEnrichments) {
|
|
41
|
+
const enrichmentVariants = require_enrichment_discovery.findEnrichmentColumns({
|
|
42
|
+
sources: enrichmentSources,
|
|
43
|
+
anchorSpec: datasetSpec,
|
|
44
|
+
maxHops: opts?.enrichmentMaxHops,
|
|
45
|
+
...typeof withEnrichments === "function" ? { predicate: withEnrichments } : { include: withEnrichments }
|
|
36
46
|
});
|
|
37
|
-
|
|
38
|
-
const filterMatches = require_filter_discovery.findFilterColumns(filterCollection).filter((m) => filterPredicate(m.column.spec));
|
|
39
|
-
const filters = filterMatches.length === 0 ? void 0 : require_filter_discovery.filterMatchesToOptions(filterMatches, {
|
|
40
|
-
refsByObjectId: refMap,
|
|
41
|
-
datasetSpec,
|
|
42
|
-
labelOptions: opts?.labelOptions
|
|
43
|
-
});
|
|
44
|
-
let enrichments;
|
|
45
|
-
if (enrichmentCollection && withEnrichments) {
|
|
46
|
-
const enrichmentVariants = require_enrichment_discovery.findEnrichmentColumns(enrichmentCollection, {
|
|
47
|
-
maxHops: opts?.enrichmentMaxHops,
|
|
48
|
-
...typeof withEnrichments === "function" ? { predicate: withEnrichments } : { include: withEnrichments }
|
|
49
|
-
});
|
|
50
|
-
if (enrichmentVariants.length > 0) enrichments = require_enrichment_discovery.enrichmentVariantsToRefs(enrichmentVariants, opts?.labelOptions);
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
primary,
|
|
54
|
-
...filters !== void 0 && filters.length > 0 ? { filters } : {},
|
|
55
|
-
...enrichments !== void 0 && enrichments.length > 0 ? { enrichments } : {}
|
|
56
|
-
};
|
|
57
|
-
} finally {
|
|
58
|
-
filterCollection?.dispose();
|
|
59
|
-
enrichmentCollection?.dispose();
|
|
47
|
+
if (enrichmentVariants.length > 0) enrichments = require_enrichment_discovery.enrichmentVariantsToRefs(enrichmentVariants, opts?.labelOptions);
|
|
60
48
|
}
|
|
49
|
+
return {
|
|
50
|
+
primary,
|
|
51
|
+
...filters !== void 0 && filters.length > 0 ? { filters } : {},
|
|
52
|
+
...enrichments !== void 0 && enrichments.length > 0 ? { enrichments } : {}
|
|
53
|
+
};
|
|
61
54
|
});
|
|
62
55
|
}
|
|
63
56
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_dataset_options.cjs","names":["buildRefMap","
|
|
1
|
+
{"version":3,"file":"build_dataset_options.cjs","names":["buildRefMap","ColumnsProvider","getCtxProviders","findFilterColumns","filterMatchesToOptions","findEnrichmentColumns","enrichmentVariantsToRefs"],"sources":["../../../src/components/PlDatasetSelector/build_dataset_options.ts"],"sourcesContent":["import type { MultiColumnSelector, Option, PObjectSpec } from \"@milaboratories/pl-model-common\";\nimport { multiColumnSelectorsToPredicate } from \"@milaboratories/pl-model-common\";\nimport type { DeriveLabelsOptions } from \"../../labels/derive_distinct_labels\";\nimport type { RenderCtxBase } from \"../../render\";\nimport type { DatasetOption } from \"./dataset_selection\";\nimport { buildRefMap, filterMatchesToOptions, findFilterColumns } from \"./filter_discovery\";\nimport { enrichmentVariantsToRefs, findEnrichmentColumns } from \"./enrichment_discovery\";\nimport { ColumnsProvider, getCtxProviders } from \"../../columns\";\n\ntype SpecPredicateOption =\n | MultiColumnSelector\n | MultiColumnSelector[]\n | ((spec: PObjectSpec) => boolean);\n\nfunction toPredicate(opt: SpecPredicateOption | undefined): (spec: PObjectSpec) => boolean {\n if (opt === undefined) return () => true;\n return typeof opt === \"function\" ? opt : multiColumnSelectorsToPredicate(opt);\n}\n\nexport type BuildDatasetOptions = {\n /** Which result pool columns qualify as datasets. Defaults to all. */\n primary?: SpecPredicateOption;\n /**\n * Restricts which result pool columns are considered as filters. Intersected\n * with the built-in `pl7.app/isSubset: \"true\"` constraint. Defaults to\n * accept-all.\n */\n filter?: SpecPredicateOption;\n /**\n * Formatting options forwarded to label derivation for both filter and\n * enrichment rows. `formatters.native` on the filter path is overridden\n * — see `FilterMatchOptions.labelOptions`.\n */\n labelOptions?: DeriveLabelsOptions;\n /**\n * Enables enrichment discovery and filters hits attached to\n * `DatasetOption.enrichments`. Use `() => true` to accept all; omit to disable.\n */\n withEnrichments?: SpecPredicateOption;\n /** Maximum linker hops considered. Only used when `withEnrichments` is set. */\n enrichmentMaxHops?: number;\n};\n\n/**\n * Usage:\n * ```ts\n * .output(\"datasetOptions\", (ctx) => buildDatasetOptions(ctx))\n * ```\n */\nexport function buildDatasetOptions(\n ctx: RenderCtxBase,\n opts?: BuildDatasetOptions,\n): DatasetOption[] | undefined {\n const primaryPredicate = toPredicate(opts?.primary);\n const filterPredicate = toPredicate(opts?.filter);\n\n const options = ctx.resultPool.getOptions(primaryPredicate, { refsWithEnrichments: true });\n if (options.length === 0) return [];\n\n const refMap = buildRefMap(ctx.resultPool.getSpecs().entries);\n\n const withEnrichments = opts?.withEnrichments ?? false;\n const filterSource = ColumnsProvider(ctx.ctx.getUpstreamBlockCtx());\n // Hoist providers once: getCtxProviders walks the full output tree, so\n // calling it per dataset option would be O(N × tree).\n const enrichmentSources = withEnrichments ? getCtxProviders(ctx) : undefined;\n\n return options.map((primary: Option): DatasetOption => {\n const datasetSpec = ctx.resultPool.getPColumnSpecByRef(primary.ref);\n if (!datasetSpec) return { primary };\n\n const filterMatches = findFilterColumns({\n sources: [filterSource],\n anchorSpec: datasetSpec,\n }).filter((m) => filterPredicate(m.getSpec()!));\n\n const filters =\n filterMatches.length === 0\n ? undefined\n : filterMatchesToOptions(filterMatches, {\n refsByObjectId: refMap,\n datasetSpec,\n labelOptions: opts?.labelOptions,\n });\n\n let enrichments;\n if (enrichmentSources && withEnrichments) {\n const enrichmentVariants = findEnrichmentColumns({\n sources: enrichmentSources,\n anchorSpec: datasetSpec,\n maxHops: opts?.enrichmentMaxHops,\n ...(typeof withEnrichments === \"function\"\n ? { predicate: withEnrichments }\n : { include: withEnrichments }),\n });\n if (enrichmentVariants.length > 0) {\n enrichments = enrichmentVariantsToRefs(enrichmentVariants, opts?.labelOptions);\n }\n }\n\n return {\n primary,\n ...(filters !== undefined && filters.length > 0 ? { filters } : {}),\n ...(enrichments !== undefined && enrichments.length > 0 ? { enrichments } : {}),\n };\n });\n}\n"],"mappings":";;;;;;;AAcA,SAAS,YAAY,KAAsE;CACzF,IAAI,QAAQ,KAAA,GAAW,aAAa;CACpC,OAAO,OAAO,QAAQ,aAAa,OAAA,GAAA,gCAAA,gCAAA,CAAsC,GAAG;AAC9E;;;;;;;AAgCA,SAAgB,oBACd,KACA,MAC6B;CAC7B,MAAM,mBAAmB,YAAY,MAAM,OAAO;CAClD,MAAM,kBAAkB,YAAY,MAAM,MAAM;CAEhD,MAAM,UAAU,IAAI,WAAW,WAAW,kBAAkB,EAAE,qBAAqB,KAAK,CAAC;CACzF,IAAI,QAAQ,WAAW,GAAG,OAAO,CAAC;CAElC,MAAM,SAASA,yBAAAA,YAAY,IAAI,WAAW,SAAS,CAAC,CAAC,OAAO;CAE5D,MAAM,kBAAkB,MAAM,mBAAmB;CACjD,MAAM,eAAeC,kBAAAA,gBAAgB,IAAI,IAAI,oBAAoB,CAAC;CAGlE,MAAM,oBAAoB,kBAAkBC,cAAAA,gBAAgB,GAAG,IAAI,KAAA;CAEnE,OAAO,QAAQ,KAAK,YAAmC;EACrD,MAAM,cAAc,IAAI,WAAW,oBAAoB,QAAQ,GAAG;EAClE,IAAI,CAAC,aAAa,OAAO,EAAE,QAAQ;EAEnC,MAAM,gBAAgBC,yBAAAA,kBAAkB;GACtC,SAAS,CAAC,YAAY;GACtB,YAAY;EACd,CAAC,CAAC,CAAC,QAAQ,MAAM,gBAAgB,EAAE,QAAQ,CAAE,CAAC;EAE9C,MAAM,UACJ,cAAc,WAAW,IACrB,KAAA,IACAC,yBAAAA,uBAAuB,eAAe;GACpC,gBAAgB;GAChB;GACA,cAAc,MAAM;EACtB,CAAC;EAEP,IAAI;EACJ,IAAI,qBAAqB,iBAAiB;GACxC,MAAM,qBAAqBC,6BAAAA,sBAAsB;IAC/C,SAAS;IACT,YAAY;IACZ,SAAS,MAAM;IACf,GAAI,OAAO,oBAAoB,aAC3B,EAAE,WAAW,gBAAgB,IAC7B,EAAE,SAAS,gBAAgB;GACjC,CAAC;GACD,IAAI,mBAAmB,SAAS,GAC9B,cAAcC,6BAAAA,yBAAyB,oBAAoB,MAAM,YAAY;EAEjF;EAEA,OAAO;GACL;GACA,GAAI,YAAY,KAAA,KAAa,QAAQ,SAAS,IAAI,EAAE,QAAQ,IAAI,CAAC;GACjE,GAAI,gBAAgB,KAAA,KAAa,YAAY,SAAS,IAAI,EAAE,YAAY,IAAI,CAAC;EAC/E;CACF,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_dataset_options.d.ts","names":[],"sources":["../../../src/components/PlDatasetSelector/build_dataset_options.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"build_dataset_options.d.ts","names":[],"sources":["../../../src/components/PlDatasetSelector/build_dataset_options.ts"],"mappings":";;;;;;KASK,mBAAA,GACD,mBAAA,GACA,mBAAA,OACE,IAAA,EAAM,WAAA;AAAA,KAOA,mBAAA;wEAEV,OAAA,GAAU,mBAAA;EAZY;;;;;EAkBtB,MAAA,GAAS,mBAAA;EAfY;;;;;EAqBrB,YAAA,GAAe,mBAAA;EArBM;AAOvB;;;EAmBE,eAAA,GAAkB,mBAAA,EAXT;EAaT,iBAAA;AAAA;;;;;;;iBASc,mBAAA,CACd,GAAA,EAAK,aAAA,EACL,IAAA,GAAO,mBAAA,GACN,aAAA"}
|