@platforma-sdk/model 1.58.5 → 1.58.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +43 -0
- package/dist/_virtual/_rolldown/runtime.js +18 -0
- package/dist/annotations/converter.cjs +15 -20
- package/dist/annotations/converter.cjs.map +1 -1
- package/dist/annotations/converter.d.ts +6 -2
- package/dist/annotations/converter.js +14 -18
- package/dist/annotations/converter.js.map +1 -1
- package/dist/annotations/index.cjs +1 -0
- package/dist/annotations/index.d.ts +2 -3
- package/dist/annotations/index.js +1 -0
- package/dist/annotations/types.d.ts +21 -16
- package/dist/bconfig/index.cjs +2 -0
- package/dist/bconfig/index.d.ts +5 -6
- package/dist/bconfig/index.js +2 -0
- package/dist/bconfig/lambdas.d.ts +52 -52
- package/dist/bconfig/normalization.cjs +13 -18
- package/dist/bconfig/normalization.cjs.map +1 -1
- package/dist/bconfig/normalization.d.ts +10 -6
- package/dist/bconfig/normalization.js +12 -16
- package/dist/bconfig/normalization.js.map +1 -1
- package/dist/bconfig/types.cjs +4 -3
- package/dist/bconfig/types.cjs.map +1 -1
- package/dist/bconfig/types.d.ts +10 -5
- package/dist/bconfig/types.js +4 -2
- package/dist/bconfig/types.js.map +1 -1
- package/dist/bconfig/util.d.ts +7 -4
- package/dist/bconfig/v3.d.ts +10 -6
- package/dist/block_api_v1.d.ts +62 -58
- package/dist/block_api_v2.d.ts +51 -47
- package/dist/block_api_v3.d.ts +33 -29
- package/dist/block_migrations.cjs +481 -413
- package/dist/block_migrations.cjs.map +1 -1
- package/dist/block_migrations.d.ts +258 -204
- package/dist/block_migrations.js +482 -408
- package/dist/block_migrations.js.map +1 -1
- package/dist/block_model.cjs +312 -343
- package/dist/block_model.cjs.map +1 -1
- package/dist/block_model.d.ts +143 -147
- package/dist/block_model.js +312 -341
- package/dist/block_model.js.map +1 -1
- package/dist/block_model_legacy.cjs +231 -255
- package/dist/block_model_legacy.cjs.map +1 -1
- package/dist/block_model_legacy.d.ts +108 -106
- package/dist/block_model_legacy.js +231 -253
- package/dist/block_model_legacy.js.map +1 -1
- package/dist/block_state_patch.d.ts +10 -10
- package/dist/block_state_util.cjs +15 -19
- package/dist/block_state_util.cjs.map +1 -1
- package/dist/block_state_util.d.ts +14 -13
- package/dist/block_state_util.js +15 -18
- package/dist/block_state_util.js.map +1 -1
- package/dist/block_storage.cjs +233 -238
- package/dist/block_storage.cjs.map +1 -1
- package/dist/block_storage.d.ts +62 -78
- package/dist/block_storage.js +234 -237
- package/dist/block_storage.js.map +1 -1
- package/dist/block_storage_callbacks.cjs +156 -195
- package/dist/block_storage_callbacks.cjs.map +1 -1
- package/dist/block_storage_callbacks.js +156 -192
- package/dist/block_storage_callbacks.js.map +1 -1
- package/dist/block_storage_facade.cjs +29 -85
- package/dist/block_storage_facade.cjs.map +1 -1
- package/dist/block_storage_facade.d.ts +83 -126
- package/dist/block_storage_facade.js +29 -83
- package/dist/block_storage_facade.js.map +1 -1
- package/dist/components/PFrameForGraphs.cjs +26 -24
- package/dist/components/PFrameForGraphs.cjs.map +1 -1
- package/dist/components/PFrameForGraphs.d.ts +12 -7
- package/dist/components/PFrameForGraphs.js +25 -22
- package/dist/components/PFrameForGraphs.js.map +1 -1
- package/dist/components/PlAnnotations/filter.d.ts +62 -79
- package/dist/components/PlAnnotations/filters_ui.cjs +135 -171
- package/dist/components/PlAnnotations/filters_ui.cjs.map +1 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts +48 -46
- package/dist/components/PlAnnotations/filters_ui.js +135 -170
- package/dist/components/PlAnnotations/filters_ui.js.map +1 -1
- package/dist/components/PlAnnotations/index.d.ts +2 -3
- package/dist/components/PlDataTable/index.cjs +2 -0
- package/dist/components/PlDataTable/index.d.ts +3 -5
- package/dist/components/PlDataTable/index.js +2 -0
- package/dist/components/PlDataTable/labels.cjs +59 -81
- package/dist/components/PlDataTable/labels.cjs.map +1 -1
- package/dist/components/PlDataTable/labels.js +58 -79
- package/dist/components/PlDataTable/labels.js.map +1 -1
- package/dist/components/PlDataTable/state-migration.cjs +186 -144
- package/dist/components/PlDataTable/state-migration.cjs.map +1 -1
- package/dist/components/PlDataTable/state-migration.d.ts +85 -82
- package/dist/components/PlDataTable/state-migration.js +185 -142
- package/dist/components/PlDataTable/state-migration.js.map +1 -1
- package/dist/components/PlDataTable/table.cjs +172 -194
- package/dist/components/PlDataTable/table.cjs.map +1 -1
- package/dist/components/PlDataTable/table.d.ts +16 -12
- package/dist/components/PlDataTable/table.js +171 -192
- package/dist/components/PlDataTable/table.js.map +1 -1
- package/dist/components/PlDataTable/v4.d.ts +84 -119
- package/dist/components/PlDataTable/v5.d.ts +80 -103
- package/dist/components/PlMultiSequenceAlignment.cjs +27 -29
- package/dist/components/PlMultiSequenceAlignment.cjs.map +1 -1
- package/dist/components/PlMultiSequenceAlignment.d.ts +36 -27
- package/dist/components/PlMultiSequenceAlignment.js +26 -27
- package/dist/components/PlMultiSequenceAlignment.js.map +1 -1
- package/dist/components/PlSelectionModel.cjs +7 -6
- package/dist/components/PlSelectionModel.cjs.map +1 -1
- package/dist/components/PlSelectionModel.d.ts +10 -8
- package/dist/components/PlSelectionModel.js +7 -5
- package/dist/components/PlSelectionModel.js.map +1 -1
- package/dist/components/index.cjs +8 -0
- package/dist/components/index.d.ts +11 -6
- package/dist/components/index.js +8 -0
- package/dist/config/actions.cjs +138 -171
- package/dist/config/actions.cjs.map +1 -1
- package/dist/config/actions.d.ts +47 -47
- package/dist/config/actions.js +146 -178
- package/dist/config/actions.js.map +1 -1
- package/dist/config/actions_kinds.d.ts +114 -121
- package/dist/config/index.cjs +1 -0
- package/dist/config/index.d.ts +6 -7
- package/dist/config/index.js +1 -0
- package/dist/config/model.d.ts +131 -127
- package/dist/config/model_meta.d.ts +4 -1
- package/dist/config/type_engine.d.ts +22 -21
- package/dist/config/type_util.d.ts +12 -10
- package/dist/env_value.cjs +5 -6
- package/dist/env_value.cjs.map +1 -1
- package/dist/env_value.d.ts +4 -1
- package/dist/env_value.js +5 -5
- package/dist/env_value.js.map +1 -1
- package/dist/filters/converters/filterToQuery.cjs +273 -239
- package/dist/filters/converters/filterToQuery.cjs.map +1 -1
- package/dist/filters/converters/filterToQuery.d.ts +6 -2
- package/dist/filters/converters/filterToQuery.js +272 -237
- package/dist/filters/converters/filterToQuery.js.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.cjs +56 -85
- package/dist/filters/converters/filterUiToExpressionImpl.cjs.map +1 -1
- package/dist/filters/converters/filterUiToExpressionImpl.d.ts +8 -4
- package/dist/filters/converters/filterUiToExpressionImpl.js +55 -83
- package/dist/filters/converters/filterUiToExpressionImpl.js.map +1 -1
- package/dist/filters/converters/index.cjs +2 -0
- package/dist/filters/converters/index.d.ts +2 -3
- package/dist/filters/converters/index.js +2 -0
- package/dist/filters/distill.cjs +59 -60
- package/dist/filters/distill.cjs.map +1 -1
- package/dist/filters/distill.d.ts +6 -3
- package/dist/filters/distill.js +58 -58
- package/dist/filters/distill.js.map +1 -1
- package/dist/filters/index.cjs +4 -0
- package/dist/filters/index.d.ts +5 -4
- package/dist/filters/index.js +4 -0
- package/dist/filters/traverse.cjs +31 -40
- package/dist/filters/traverse.cjs.map +1 -1
- package/dist/filters/traverse.js +31 -39
- package/dist/filters/traverse.js.map +1 -1
- package/dist/filters/types.d.ts +10 -7
- package/dist/index.cjs +193 -187
- package/dist/index.d.ts +61 -28
- package/dist/index.js +49 -41
- package/dist/internal.cjs +48 -62
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.js +49 -60
- package/dist/internal.js.map +1 -1
- package/dist/package.cjs +12 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.js +6 -0
- package/dist/package.js.map +1 -0
- package/dist/pframe.cjs +32 -37
- package/dist/pframe.cjs.map +1 -1
- package/dist/pframe.d.ts +14 -10
- package/dist/pframe.js +32 -35
- package/dist/pframe.js.map +1 -1
- package/dist/pframe_utils/axes.cjs +81 -114
- package/dist/pframe_utils/axes.cjs.map +1 -1
- package/dist/pframe_utils/axes.d.ts +10 -13
- package/dist/pframe_utils/axes.js +80 -112
- package/dist/pframe_utils/axes.js.map +1 -1
- package/dist/pframe_utils/columns.cjs +61 -81
- package/dist/pframe_utils/columns.cjs.map +1 -1
- package/dist/pframe_utils/columns.d.ts +15 -6
- package/dist/pframe_utils/columns.js +60 -79
- package/dist/pframe_utils/columns.js.map +1 -1
- package/dist/pframe_utils/index.cjs +232 -253
- package/dist/pframe_utils/index.cjs.map +1 -1
- package/dist/pframe_utils/index.d.ts +39 -35
- package/dist/pframe_utils/index.js +231 -251
- package/dist/pframe_utils/index.js.map +1 -1
- package/dist/platforma.d.ts +48 -46
- package/dist/plugin_handle.cjs +6 -14
- package/dist/plugin_handle.cjs.map +1 -1
- package/dist/plugin_handle.d.ts +20 -25
- package/dist/plugin_handle.js +6 -13
- package/dist/plugin_handle.js.map +1 -1
- package/dist/plugin_model.cjs +364 -163
- package/dist/plugin_model.cjs.map +1 -1
- package/dist/plugin_model.d.ts +280 -129
- package/dist/plugin_model.js +362 -163
- package/dist/plugin_model.js.map +1 -1
- package/dist/raw_globals.cjs +10 -22
- package/dist/raw_globals.cjs.map +1 -1
- package/dist/raw_globals.d.ts +8 -5
- package/dist/raw_globals.js +10 -20
- package/dist/raw_globals.js.map +1 -1
- package/dist/ref_util.cjs +14 -13
- package/dist/ref_util.cjs.map +1 -1
- package/dist/ref_util.d.ts +18 -12
- package/dist/ref_util.js +14 -11
- package/dist/ref_util.js.map +1 -1
- package/dist/render/accessor.cjs +213 -226
- package/dist/render/accessor.cjs.map +1 -1
- package/dist/render/accessor.d.ts +115 -120
- package/dist/render/accessor.js +212 -224
- package/dist/render/accessor.js.map +1 -1
- package/dist/render/api.cjs +478 -580
- package/dist/render/api.cjs.map +1 -1
- package/dist/render/api.d.ts +207 -209
- package/dist/render/api.js +476 -578
- package/dist/render/api.js.map +1 -1
- package/dist/render/future.cjs +28 -32
- package/dist/render/future.cjs.map +1 -1
- package/dist/render/future.d.ts +15 -11
- package/dist/render/future.js +28 -30
- package/dist/render/future.js.map +1 -1
- package/dist/render/index.cjs +8 -0
- package/dist/render/index.d.ts +10 -8
- package/dist/render/index.js +8 -0
- package/dist/render/internal.cjs +33 -29
- package/dist/render/internal.cjs.map +1 -1
- package/dist/render/internal.d.ts +78 -72
- package/dist/render/internal.js +29 -26
- package/dist/render/internal.js.map +1 -1
- package/dist/render/traversal_ops.d.ts +42 -43
- package/dist/render/util/axis_filtering.cjs +63 -86
- package/dist/render/util/axis_filtering.cjs.map +1 -1
- package/dist/render/util/axis_filtering.d.ts +10 -7
- package/dist/render/util/axis_filtering.js +63 -85
- package/dist/render/util/axis_filtering.js.map +1 -1
- package/dist/render/util/column_collection.cjs +266 -321
- package/dist/render/util/column_collection.cjs.map +1 -1
- package/dist/render/util/column_collection.d.ts +47 -47
- package/dist/render/util/column_collection.js +264 -319
- package/dist/render/util/column_collection.js.map +1 -1
- package/dist/render/util/index.cjs +4 -0
- package/dist/render/util/index.d.ts +4 -5
- package/dist/render/util/index.js +4 -0
- package/dist/render/util/label.cjs +129 -163
- package/dist/render/util/label.cjs.map +1 -1
- package/dist/render/util/label.d.ts +45 -46
- package/dist/render/util/label.js +128 -161
- package/dist/render/util/label.js.map +1 -1
- package/dist/render/util/pcolumn_data.cjs +315 -375
- package/dist/render/util/pcolumn_data.cjs.map +1 -1
- package/dist/render/util/pcolumn_data.d.ts +33 -32
- package/dist/render/util/pcolumn_data.js +314 -373
- package/dist/render/util/pcolumn_data.js.map +1 -1
- package/dist/render/util/pframe_upgraders.cjs +37 -42
- package/dist/render/util/pframe_upgraders.cjs.map +1 -1
- package/dist/render/util/pframe_upgraders.js +37 -41
- package/dist/render/util/pframe_upgraders.js.map +1 -1
- package/dist/render/util/split_selectors.d.ts +13 -9
- package/dist/version.cjs +6 -8
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.ts +7 -4
- package/dist/version.js +5 -5
- package/dist/version.js.map +1 -1
- package/package.json +10 -4
- package/src/block_migrations.test.ts +184 -14
- package/src/block_migrations.ts +185 -30
- package/src/block_model.ts +111 -66
- package/src/block_storage.test.ts +147 -3
- package/src/block_storage.ts +43 -8
- package/src/block_storage_callbacks.ts +9 -4
- package/src/env_value.ts +0 -2
- package/src/index.ts +12 -11
- package/src/internal.ts +0 -1
- package/src/platforma.ts +4 -4
- package/src/plugin_handle.ts +1 -1
- package/src/plugin_model.test.ts +217 -21
- package/src/plugin_model.ts +450 -55
- package/src/raw_globals.ts +0 -1
- package/dist/annotations/converter.d.ts.map +0 -1
- package/dist/annotations/index.d.ts.map +0 -1
- package/dist/annotations/types.d.ts.map +0 -1
- package/dist/bconfig/index.d.ts.map +0 -1
- package/dist/bconfig/lambdas.d.ts.map +0 -1
- package/dist/bconfig/normalization.d.ts.map +0 -1
- package/dist/bconfig/types.d.ts.map +0 -1
- package/dist/bconfig/util.d.ts.map +0 -1
- package/dist/bconfig/v3.d.ts.map +0 -1
- package/dist/block_api_v1.d.ts.map +0 -1
- package/dist/block_api_v2.d.ts.map +0 -1
- package/dist/block_api_v3.d.ts.map +0 -1
- package/dist/block_migrations.d.ts.map +0 -1
- package/dist/block_model.d.ts.map +0 -1
- package/dist/block_model_legacy.d.ts.map +0 -1
- package/dist/block_state_patch.d.ts.map +0 -1
- package/dist/block_state_util.d.ts.map +0 -1
- package/dist/block_storage.d.ts.map +0 -1
- package/dist/block_storage_callbacks.d.ts +0 -115
- package/dist/block_storage_callbacks.d.ts.map +0 -1
- package/dist/block_storage_facade.d.ts.map +0 -1
- package/dist/components/PFrameForGraphs.d.ts.map +0 -1
- package/dist/components/PlAnnotations/filter.d.ts.map +0 -1
- package/dist/components/PlAnnotations/filters_ui.d.ts.map +0 -1
- package/dist/components/PlAnnotations/index.d.ts.map +0 -1
- package/dist/components/PlAnnotations/types.d.ts +0 -3
- package/dist/components/PlAnnotations/types.d.ts.map +0 -1
- package/dist/components/PlDataTable/index.d.ts.map +0 -1
- package/dist/components/PlDataTable/labels.d.ts +0 -7
- package/dist/components/PlDataTable/labels.d.ts.map +0 -1
- package/dist/components/PlDataTable/state-migration.d.ts.map +0 -1
- package/dist/components/PlDataTable/table.d.ts.map +0 -1
- package/dist/components/PlDataTable/v4.d.ts.map +0 -1
- package/dist/components/PlDataTable/v5.d.ts.map +0 -1
- package/dist/components/PlMultiSequenceAlignment.d.ts.map +0 -1
- package/dist/components/PlSelectionModel.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/config/actions.d.ts.map +0 -1
- package/dist/config/actions_kinds.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/model.d.ts.map +0 -1
- package/dist/config/model_meta.d.ts.map +0 -1
- package/dist/config/type_engine.d.ts.map +0 -1
- package/dist/config/type_util.d.ts.map +0 -1
- package/dist/env_value.d.ts.map +0 -1
- package/dist/filters/converters/filterToQuery.d.ts.map +0 -1
- package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +0 -1
- package/dist/filters/converters/index.d.ts.map +0 -1
- package/dist/filters/distill.d.ts.map +0 -1
- package/dist/filters/index.d.ts.map +0 -1
- package/dist/filters/traverse.d.ts +0 -27
- package/dist/filters/traverse.d.ts.map +0 -1
- package/dist/filters/types.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal.d.ts +0 -36
- package/dist/internal.d.ts.map +0 -1
- package/dist/package.json.cjs +0 -6
- package/dist/package.json.cjs.map +0 -1
- package/dist/package.json.js +0 -4
- package/dist/package.json.js.map +0 -1
- package/dist/pframe.d.ts.map +0 -1
- package/dist/pframe_utils/axes.d.ts.map +0 -1
- package/dist/pframe_utils/columns.d.ts.map +0 -1
- package/dist/pframe_utils/index.d.ts.map +0 -1
- package/dist/pframe_utils/querySpec.d.ts +0 -2
- package/dist/pframe_utils/querySpec.d.ts.map +0 -1
- package/dist/platforma.d.ts.map +0 -1
- package/dist/plugin_handle.d.ts.map +0 -1
- package/dist/plugin_model.d.ts.map +0 -1
- package/dist/raw_globals.d.ts.map +0 -1
- package/dist/ref_util.d.ts.map +0 -1
- package/dist/render/accessor.d.ts.map +0 -1
- package/dist/render/api.d.ts.map +0 -1
- package/dist/render/future.d.ts.map +0 -1
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/internal.d.ts.map +0 -1
- package/dist/render/traversal_ops.d.ts.map +0 -1
- package/dist/render/util/axis_filtering.d.ts.map +0 -1
- package/dist/render/util/column_collection.d.ts.map +0 -1
- package/dist/render/util/index.d.ts.map +0 -1
- package/dist/render/util/label.d.ts.map +0 -1
- package/dist/render/util/pcolumn_data.d.ts.map +0 -1
- package/dist/render/util/pframe_upgraders.d.ts +0 -3
- package/dist/render/util/pframe_upgraders.d.ts.map +0 -1
- package/dist/render/util/split_selectors.d.ts.map +0 -1
- package/dist/version.d.ts.map +0 -1
|
@@ -1,88 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require(
|
|
6
|
-
var column_collection = require('../render/util/column_collection.cjs');
|
|
7
|
-
require('../render/util/label.cjs');
|
|
1
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
2
|
+
const require_column_collection = require('../render/util/column_collection.cjs');
|
|
3
|
+
require('../render/index.cjs');
|
|
4
|
+
const require_axes = require('./axes.cjs');
|
|
5
|
+
let _milaboratories_pl_model_common = require("@milaboratories/pl-model-common");
|
|
8
6
|
|
|
7
|
+
//#region src/pframe_utils/columns.ts
|
|
9
8
|
function getAllRelatedColumns(ctx, predicate) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.map((axisSpec) => {
|
|
20
|
-
const axisId = plModelCommon.getAxisId(axisSpec);
|
|
21
|
-
return [plModelCommon.canonicalizeJson(axisId), axisSpec];
|
|
22
|
-
}));
|
|
23
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
24
|
-
const extendedColumns = axes.enrichCompatible(allAxes, allColumns);
|
|
25
|
-
return extendedColumns;
|
|
9
|
+
const columns = new require_column_collection.PColumnCollection();
|
|
10
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
11
|
+
const allColumns = columns.getColumns(predicate, {
|
|
12
|
+
dontWaitAllData: true,
|
|
13
|
+
overrideLabelAnnotation: false
|
|
14
|
+
}) ?? [];
|
|
15
|
+
return require_axes.enrichCompatible(new Map(allColumns.flatMap((column) => (0, _milaboratories_pl_model_common.getNormalizedAxesList)(column.spec.axesSpec)).map((axisSpec) => {
|
|
16
|
+
return [(0, _milaboratories_pl_model_common.canonicalizeJson)((0, _milaboratories_pl_model_common.getAxisId)(axisSpec)), axisSpec];
|
|
17
|
+
})), allColumns);
|
|
26
18
|
}
|
|
27
|
-
function getRelatedColumns(ctx, { columns: rootColumns, predicate
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const axisId = plModelCommon.getAxisId(axisSpec);
|
|
72
|
-
return allAxesArr.some((selectorAxisSpec) => plModelCommon.matchAxisId(plModelCommon.getAxisId(selectorAxisSpec), axisId));
|
|
73
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !plModelCommon.isLabelColumn(column.spec));
|
|
74
|
-
// label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool
|
|
75
|
-
const compatibleLabels = (columns.getColumns((spec) => predicate(spec) &&
|
|
76
|
-
spec.axesSpec.some((axisSpec) => {
|
|
77
|
-
const axisId = plModelCommon.getAxisId(axisSpec);
|
|
78
|
-
return allAxesArr.some((selectorAxisSpec) => plModelCommon.matchAxisId(plModelCommon.getAxisId(selectorAxisSpec), axisId));
|
|
79
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => plModelCommon.isLabelColumn(column.spec));
|
|
80
|
-
const compatible = [...compatibleWithoutLabels, ...compatibleLabels];
|
|
81
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
82
|
-
const extendedColumns = axes.enrichCompatible(blockAxes, compatible);
|
|
83
|
-
return extendedColumns;
|
|
19
|
+
function getRelatedColumns(ctx, { columns: rootColumns, predicate }) {
|
|
20
|
+
const columns = new require_column_collection.PColumnCollection();
|
|
21
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
22
|
+
columns.addColumns(rootColumns);
|
|
23
|
+
const blockAxes = /* @__PURE__ */ new Map();
|
|
24
|
+
const allAxes = /* @__PURE__ */ new Map();
|
|
25
|
+
for (const c of rootColumns) for (const spec of (0, _milaboratories_pl_model_common.getNormalizedAxesList)(c.spec.axesSpec)) {
|
|
26
|
+
const aid = (0, _milaboratories_pl_model_common.getAxisId)(spec);
|
|
27
|
+
blockAxes.set((0, _milaboratories_pl_model_common.canonicalizeJson)(aid), spec);
|
|
28
|
+
allAxes.set((0, _milaboratories_pl_model_common.canonicalizeJson)(aid), spec);
|
|
29
|
+
}
|
|
30
|
+
const availableWithLinkersAxes = require_axes.getAvailableWithLinkersAxes(columns.getColumns((spec) => predicate(spec) && (0, _milaboratories_pl_model_common.isLinkerColumn)(spec), { dontWaitAllData: true }) ?? [], blockAxes);
|
|
31
|
+
for (const item of availableWithLinkersAxes) {
|
|
32
|
+
blockAxes.set(...item);
|
|
33
|
+
allAxes.set(...item);
|
|
34
|
+
}
|
|
35
|
+
const blockAxesArr = Array.from(blockAxes.values());
|
|
36
|
+
let compatibleWithoutLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
37
|
+
const axisId = (0, _milaboratories_pl_model_common.getAxisId)(axisSpec);
|
|
38
|
+
return blockAxesArr.some((selectorAxisSpec) => (0, _milaboratories_pl_model_common.matchAxisId)((0, _milaboratories_pl_model_common.getAxisId)(selectorAxisSpec), axisId));
|
|
39
|
+
}), {
|
|
40
|
+
dontWaitAllData: true,
|
|
41
|
+
overrideLabelAnnotation: false
|
|
42
|
+
}) ?? []).filter((column) => !(0, _milaboratories_pl_model_common.isLabelColumn)(column.spec));
|
|
43
|
+
for (const c of compatibleWithoutLabels) for (const spec of (0, _milaboratories_pl_model_common.getNormalizedAxesList)(c.spec.axesSpec)) {
|
|
44
|
+
const aid = (0, _milaboratories_pl_model_common.getAxisId)(spec);
|
|
45
|
+
allAxes.set((0, _milaboratories_pl_model_common.canonicalizeJson)(aid), spec);
|
|
46
|
+
}
|
|
47
|
+
const allAxesArr = Array.from(allAxes.values());
|
|
48
|
+
compatibleWithoutLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.every((axisSpec) => {
|
|
49
|
+
const axisId = (0, _milaboratories_pl_model_common.getAxisId)(axisSpec);
|
|
50
|
+
return allAxesArr.some((selectorAxisSpec) => (0, _milaboratories_pl_model_common.matchAxisId)((0, _milaboratories_pl_model_common.getAxisId)(selectorAxisSpec), axisId));
|
|
51
|
+
}), {
|
|
52
|
+
dontWaitAllData: true,
|
|
53
|
+
overrideLabelAnnotation: false
|
|
54
|
+
}) ?? []).filter((column) => !(0, _milaboratories_pl_model_common.isLabelColumn)(column.spec));
|
|
55
|
+
const compatibleLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
56
|
+
const axisId = (0, _milaboratories_pl_model_common.getAxisId)(axisSpec);
|
|
57
|
+
return allAxesArr.some((selectorAxisSpec) => (0, _milaboratories_pl_model_common.matchAxisId)((0, _milaboratories_pl_model_common.getAxisId)(selectorAxisSpec), axisId));
|
|
58
|
+
}), {
|
|
59
|
+
dontWaitAllData: true,
|
|
60
|
+
overrideLabelAnnotation: false
|
|
61
|
+
}) ?? []).filter((column) => (0, _milaboratories_pl_model_common.isLabelColumn)(column.spec));
|
|
62
|
+
return require_axes.enrichCompatible(blockAxes, [...compatibleWithoutLabels, ...compatibleLabels]);
|
|
84
63
|
}
|
|
85
64
|
|
|
65
|
+
//#endregion
|
|
86
66
|
exports.getAllRelatedColumns = getAllRelatedColumns;
|
|
87
67
|
exports.getRelatedColumns = getRelatedColumns;
|
|
88
|
-
//# sourceMappingURL=columns.cjs.map
|
|
68
|
+
//# sourceMappingURL=columns.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.cjs","sources":["../../src/pframe_utils/columns.ts"],"sourcesContent":["import type { PColumn, PColumnSpec, PColumnLazy, PFrameDef } from \"@milaboratories/pl-model-common\";\nimport {\n getNormalizedAxesList,\n getAxisId,\n canonicalizeJson,\n isLinkerColumn,\n matchAxisId,\n isLabelColumn,\n} from \"@milaboratories/pl-model-common\";\nimport type { AxesVault } from \"./axes\";\nimport { enrichCompatible, getAvailableWithLinkersAxes } from \"./axes\";\nimport type { RenderCtxBase, PColumnDataUniversal } from \"../render\";\nimport { PColumnCollection } from \"../render\";\n\nexport function getAllRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n predicate: (spec: PColumnSpec) => boolean,\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block doesn't produce own columns then use all columns from result pool\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n const allColumns =\n columns.getColumns(predicate, {\n dontWaitAllData: true,\n overrideLabelAnnotation: false,\n }) ?? [];\n\n const allAxes: AxesVault = new Map(\n allColumns\n .flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))\n .map((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return [canonicalizeJson(axisId), axisSpec];\n }),\n );\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(allAxes, allColumns);\n\n return extendedColumns;\n}\n\nexport function getRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n {\n columns: rootColumns,\n predicate,\n }: {\n columns: PColumn<PColumnDataUniversal>[];\n predicate: (spec: PColumnSpec) => boolean;\n },\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block has its own columns then take from result pool only compatible with them\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n columns.addColumns(rootColumns);\n\n // all possible axes from block columns\n const blockAxes: AxesVault = new Map();\n // axes from block columns and compatible result pool columns\n const allAxes: AxesVault = new Map();\n for (const c of rootColumns) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n blockAxes.set(canonicalizeJson(aid), spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n // all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden\n const linkerColumns =\n columns.getColumns((spec) => predicate(spec) && isLinkerColumn(spec), {\n dontWaitAllData: true,\n }) ?? [];\n const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);\n\n // all possible axes from connected linkers\n for (const item of availableWithLinkersAxes) {\n blockAxes.set(...item);\n allAxes.set(...item);\n }\n\n const blockAxesArr = Array.from(blockAxes.values());\n // all compatible with block columns but without label columns\n let compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return blockAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // extend axes set for label columns request\n for (const c of compatibleWithoutLabels) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n const allAxesArr = Array.from(allAxes.values());\n // extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)\n compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.every((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool\n const compatibleLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => isLabelColumn(column.spec));\n\n const compatible = [...compatibleWithoutLabels, ...compatibleLabels];\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(blockAxes, compatible);\n\n return extendedColumns;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"columns.cjs","names":["PColumnCollection","enrichCompatible","getAvailableWithLinkersAxes"],"sources":["../../src/pframe_utils/columns.ts"],"sourcesContent":["import type { PColumn, PColumnSpec, PColumnLazy, PFrameDef } from \"@milaboratories/pl-model-common\";\nimport {\n getNormalizedAxesList,\n getAxisId,\n canonicalizeJson,\n isLinkerColumn,\n matchAxisId,\n isLabelColumn,\n} from \"@milaboratories/pl-model-common\";\nimport type { AxesVault } from \"./axes\";\nimport { enrichCompatible, getAvailableWithLinkersAxes } from \"./axes\";\nimport type { RenderCtxBase, PColumnDataUniversal } from \"../render\";\nimport { PColumnCollection } from \"../render\";\n\nexport function getAllRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n predicate: (spec: PColumnSpec) => boolean,\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block doesn't produce own columns then use all columns from result pool\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n const allColumns =\n columns.getColumns(predicate, {\n dontWaitAllData: true,\n overrideLabelAnnotation: false,\n }) ?? [];\n\n const allAxes: AxesVault = new Map(\n allColumns\n .flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))\n .map((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return [canonicalizeJson(axisId), axisSpec];\n }),\n );\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(allAxes, allColumns);\n\n return extendedColumns;\n}\n\nexport function getRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n {\n columns: rootColumns,\n predicate,\n }: {\n columns: PColumn<PColumnDataUniversal>[];\n predicate: (spec: PColumnSpec) => boolean;\n },\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block has its own columns then take from result pool only compatible with them\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n columns.addColumns(rootColumns);\n\n // all possible axes from block columns\n const blockAxes: AxesVault = new Map();\n // axes from block columns and compatible result pool columns\n const allAxes: AxesVault = new Map();\n for (const c of rootColumns) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n blockAxes.set(canonicalizeJson(aid), spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n // all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden\n const linkerColumns =\n columns.getColumns((spec) => predicate(spec) && isLinkerColumn(spec), {\n dontWaitAllData: true,\n }) ?? [];\n const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);\n\n // all possible axes from connected linkers\n for (const item of availableWithLinkersAxes) {\n blockAxes.set(...item);\n allAxes.set(...item);\n }\n\n const blockAxesArr = Array.from(blockAxes.values());\n // all compatible with block columns but without label columns\n let compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return blockAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // extend axes set for label columns request\n for (const c of compatibleWithoutLabels) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n const allAxesArr = Array.from(allAxes.values());\n // extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)\n compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.every((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool\n const compatibleLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => isLabelColumn(column.spec));\n\n const compatible = [...compatibleWithoutLabels, ...compatibleLabels];\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(blockAxes, compatible);\n\n return extendedColumns;\n}\n"],"mappings":";;;;;;;AAcA,SAAgB,qBACd,KACA,WAC0F;CAE1F,MAAM,UAAU,IAAIA,6CAAmB;AACvC,SAAQ,kBAAkB,IAAI,WAAW;CACzC,MAAM,aACJ,QAAQ,WAAW,WAAW;EAC5B,iBAAiB;EACjB,yBAAyB;EAC1B,CAAC,IAAI,EAAE;AAcV,QAFwBC,8BAVG,IAAI,IAC7B,WACG,SAAS,sEAAiC,OAAO,KAAK,SAAS,CAAC,CAChE,KAAK,aAAa;AAEjB,SAAO,sGADkB,SAAS,CACF,EAAE,SAAS;GAC3C,CACL,EAGiD,WAAW;;AAK/D,SAAgB,kBACd,KACA,EACE,SAAS,aACT,aAKwF;CAE1F,MAAM,UAAU,IAAID,6CAAmB;AACvC,SAAQ,kBAAkB,IAAI,WAAW;AACzC,SAAQ,WAAW,YAAY;CAG/B,MAAM,4BAAuB,IAAI,KAAK;CAEtC,MAAM,0BAAqB,IAAI,KAAK;AACpC,MAAK,MAAM,KAAK,YACd,MAAK,MAAM,mEAA8B,EAAE,KAAK,SAAS,EAAE;EACzD,MAAM,qDAAgB,KAAK;AAC3B,YAAU,0DAAqB,IAAI,EAAE,KAAK;AAC1C,UAAQ,0DAAqB,IAAI,EAAE,KAAK;;CAS5C,MAAM,2BAA2BE,yCAH/B,QAAQ,YAAY,SAAS,UAAU,KAAK,wDAAmB,KAAK,EAAE,EACpE,iBAAiB,MAClB,CAAC,IAAI,EAAE,EACkE,UAAU;AAGtF,MAAK,MAAM,QAAQ,0BAA0B;AAC3C,YAAU,IAAI,GAAG,KAAK;AACtB,UAAQ,IAAI,GAAG,KAAK;;CAGtB,MAAM,eAAe,MAAM,KAAK,UAAU,QAAQ,CAAC;CAEnD,IAAI,2BACF,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,MAAM,aAAa;EAC/B,MAAM,wDAAmB,SAAS;AAClC,SAAO,aAAa,MAAM,qHACF,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,WAAW,oDAAe,OAAO,KAAK,CAAC;AAGjD,MAAK,MAAM,KAAK,wBACd,MAAK,MAAM,mEAA8B,EAAE,KAAK,SAAS,EAAE;EACzD,MAAM,qDAAgB,KAAK;AAC3B,UAAQ,0DAAqB,IAAI,EAAE,KAAK;;CAI5C,MAAM,aAAa,MAAM,KAAK,QAAQ,QAAQ,CAAC;AAE/C,4BACE,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,OAAO,aAAa;EAChC,MAAM,wDAAmB,SAAS;AAClC,SAAO,WAAW,MAAM,qHACA,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,WAAW,oDAAe,OAAO,KAAK,CAAC;CAGjD,MAAM,oBACJ,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,MAAM,aAAa;EAC/B,MAAM,wDAAmB,SAAS;AAClC,SAAO,WAAW,MAAM,qHACA,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,8DAAyB,OAAO,KAAK,CAAC;AAOhD,QAFwBD,8BAAiB,WAHtB,CAAC,GAAG,yBAAyB,GAAG,iBAAiB,CAGL"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { PColumnDataUniversal } from "../render/internal.js";
|
|
2
|
+
import { RenderCtxBase } from "../render/api.js";
|
|
3
|
+
import "../render/index.js";
|
|
4
|
+
import { PColumn, PColumnLazy, PColumnSpec, PFrameDef } from "@milaboratories/pl-model-common";
|
|
5
|
+
|
|
6
|
+
//#region src/pframe_utils/columns.d.ts
|
|
7
|
+
declare function getAllRelatedColumns<A, U>(ctx: RenderCtxBase<A, U>, predicate: (spec: PColumnSpec) => boolean): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>>;
|
|
8
|
+
declare function getRelatedColumns<A, U>(ctx: RenderCtxBase<A, U>, {
|
|
9
|
+
columns: rootColumns,
|
|
10
|
+
predicate
|
|
11
|
+
}: {
|
|
12
|
+
columns: PColumn<PColumnDataUniversal>[];
|
|
13
|
+
predicate: (spec: PColumnSpec) => boolean;
|
|
7
14
|
}): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>>;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getAllRelatedColumns, getRelatedColumns };
|
|
8
17
|
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -1,85 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import '../render/util/label.js';
|
|
1
|
+
import { PColumnCollection } from "../render/util/column_collection.js";
|
|
2
|
+
import "../render/index.js";
|
|
3
|
+
import { enrichCompatible, getAvailableWithLinkersAxes } from "./axes.js";
|
|
4
|
+
import { canonicalizeJson, getAxisId, getNormalizedAxesList, isLabelColumn, isLinkerColumn, matchAxisId } from "@milaboratories/pl-model-common";
|
|
6
5
|
|
|
6
|
+
//#region src/pframe_utils/columns.ts
|
|
7
7
|
function getAllRelatedColumns(ctx, predicate) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
.map((axisSpec) => {
|
|
18
|
-
const axisId = getAxisId(axisSpec);
|
|
19
|
-
return [canonicalizeJson(axisId), axisSpec];
|
|
20
|
-
}));
|
|
21
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
22
|
-
const extendedColumns = enrichCompatible(allAxes, allColumns);
|
|
23
|
-
return extendedColumns;
|
|
8
|
+
const columns = new PColumnCollection();
|
|
9
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
10
|
+
const allColumns = columns.getColumns(predicate, {
|
|
11
|
+
dontWaitAllData: true,
|
|
12
|
+
overrideLabelAnnotation: false
|
|
13
|
+
}) ?? [];
|
|
14
|
+
return enrichCompatible(new Map(allColumns.flatMap((column) => getNormalizedAxesList(column.spec.axesSpec)).map((axisSpec) => {
|
|
15
|
+
return [canonicalizeJson(getAxisId(axisSpec)), axisSpec];
|
|
16
|
+
})), allColumns);
|
|
24
17
|
}
|
|
25
|
-
function getRelatedColumns(ctx, { columns: rootColumns, predicate
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const axisId = getAxisId(axisSpec);
|
|
70
|
-
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
71
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
72
|
-
// label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool
|
|
73
|
-
const compatibleLabels = (columns.getColumns((spec) => predicate(spec) &&
|
|
74
|
-
spec.axesSpec.some((axisSpec) => {
|
|
75
|
-
const axisId = getAxisId(axisSpec);
|
|
76
|
-
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
77
|
-
}), { dontWaitAllData: true, overrideLabelAnnotation: false }) ?? []).filter((column) => isLabelColumn(column.spec));
|
|
78
|
-
const compatible = [...compatibleWithoutLabels, ...compatibleLabels];
|
|
79
|
-
// additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match
|
|
80
|
-
const extendedColumns = enrichCompatible(blockAxes, compatible);
|
|
81
|
-
return extendedColumns;
|
|
18
|
+
function getRelatedColumns(ctx, { columns: rootColumns, predicate }) {
|
|
19
|
+
const columns = new PColumnCollection();
|
|
20
|
+
columns.addColumnProvider(ctx.resultPool);
|
|
21
|
+
columns.addColumns(rootColumns);
|
|
22
|
+
const blockAxes = /* @__PURE__ */ new Map();
|
|
23
|
+
const allAxes = /* @__PURE__ */ new Map();
|
|
24
|
+
for (const c of rootColumns) for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
25
|
+
const aid = getAxisId(spec);
|
|
26
|
+
blockAxes.set(canonicalizeJson(aid), spec);
|
|
27
|
+
allAxes.set(canonicalizeJson(aid), spec);
|
|
28
|
+
}
|
|
29
|
+
const availableWithLinkersAxes = getAvailableWithLinkersAxes(columns.getColumns((spec) => predicate(spec) && isLinkerColumn(spec), { dontWaitAllData: true }) ?? [], blockAxes);
|
|
30
|
+
for (const item of availableWithLinkersAxes) {
|
|
31
|
+
blockAxes.set(...item);
|
|
32
|
+
allAxes.set(...item);
|
|
33
|
+
}
|
|
34
|
+
const blockAxesArr = Array.from(blockAxes.values());
|
|
35
|
+
let compatibleWithoutLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
36
|
+
const axisId = getAxisId(axisSpec);
|
|
37
|
+
return blockAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
38
|
+
}), {
|
|
39
|
+
dontWaitAllData: true,
|
|
40
|
+
overrideLabelAnnotation: false
|
|
41
|
+
}) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
42
|
+
for (const c of compatibleWithoutLabels) for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {
|
|
43
|
+
const aid = getAxisId(spec);
|
|
44
|
+
allAxes.set(canonicalizeJson(aid), spec);
|
|
45
|
+
}
|
|
46
|
+
const allAxesArr = Array.from(allAxes.values());
|
|
47
|
+
compatibleWithoutLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.every((axisSpec) => {
|
|
48
|
+
const axisId = getAxisId(axisSpec);
|
|
49
|
+
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
50
|
+
}), {
|
|
51
|
+
dontWaitAllData: true,
|
|
52
|
+
overrideLabelAnnotation: false
|
|
53
|
+
}) ?? []).filter((column) => !isLabelColumn(column.spec));
|
|
54
|
+
const compatibleLabels = (columns.getColumns((spec) => predicate(spec) && spec.axesSpec.some((axisSpec) => {
|
|
55
|
+
const axisId = getAxisId(axisSpec);
|
|
56
|
+
return allAxesArr.some((selectorAxisSpec) => matchAxisId(getAxisId(selectorAxisSpec), axisId));
|
|
57
|
+
}), {
|
|
58
|
+
dontWaitAllData: true,
|
|
59
|
+
overrideLabelAnnotation: false
|
|
60
|
+
}) ?? []).filter((column) => isLabelColumn(column.spec));
|
|
61
|
+
return enrichCompatible(blockAxes, [...compatibleWithoutLabels, ...compatibleLabels]);
|
|
82
62
|
}
|
|
83
63
|
|
|
64
|
+
//#endregion
|
|
84
65
|
export { getAllRelatedColumns, getRelatedColumns };
|
|
85
|
-
//# sourceMappingURL=columns.js.map
|
|
66
|
+
//# sourceMappingURL=columns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sources":["../../src/pframe_utils/columns.ts"],"sourcesContent":["import type { PColumn, PColumnSpec, PColumnLazy, PFrameDef } from \"@milaboratories/pl-model-common\";\nimport {\n getNormalizedAxesList,\n getAxisId,\n canonicalizeJson,\n isLinkerColumn,\n matchAxisId,\n isLabelColumn,\n} from \"@milaboratories/pl-model-common\";\nimport type { AxesVault } from \"./axes\";\nimport { enrichCompatible, getAvailableWithLinkersAxes } from \"./axes\";\nimport type { RenderCtxBase, PColumnDataUniversal } from \"../render\";\nimport { PColumnCollection } from \"../render\";\n\nexport function getAllRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n predicate: (spec: PColumnSpec) => boolean,\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block doesn't produce own columns then use all columns from result pool\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n const allColumns =\n columns.getColumns(predicate, {\n dontWaitAllData: true,\n overrideLabelAnnotation: false,\n }) ?? [];\n\n const allAxes: AxesVault = new Map(\n allColumns\n .flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))\n .map((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return [canonicalizeJson(axisId), axisSpec];\n }),\n );\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(allAxes, allColumns);\n\n return extendedColumns;\n}\n\nexport function getRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n {\n columns: rootColumns,\n predicate,\n }: {\n columns: PColumn<PColumnDataUniversal>[];\n predicate: (spec: PColumnSpec) => boolean;\n },\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block has its own columns then take from result pool only compatible with them\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n columns.addColumns(rootColumns);\n\n // all possible axes from block columns\n const blockAxes: AxesVault = new Map();\n // axes from block columns and compatible result pool columns\n const allAxes: AxesVault = new Map();\n for (const c of rootColumns) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n blockAxes.set(canonicalizeJson(aid), spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n // all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden\n const linkerColumns =\n columns.getColumns((spec) => predicate(spec) && isLinkerColumn(spec), {\n dontWaitAllData: true,\n }) ?? [];\n const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);\n\n // all possible axes from connected linkers\n for (const item of availableWithLinkersAxes) {\n blockAxes.set(...item);\n allAxes.set(...item);\n }\n\n const blockAxesArr = Array.from(blockAxes.values());\n // all compatible with block columns but without label columns\n let compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return blockAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // extend axes set for label columns request\n for (const c of compatibleWithoutLabels) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n const allAxesArr = Array.from(allAxes.values());\n // extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)\n compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.every((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool\n const compatibleLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => isLabelColumn(column.spec));\n\n const compatible = [...compatibleWithoutLabels, ...compatibleLabels];\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(blockAxes, compatible);\n\n return extendedColumns;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"columns.js","names":[],"sources":["../../src/pframe_utils/columns.ts"],"sourcesContent":["import type { PColumn, PColumnSpec, PColumnLazy, PFrameDef } from \"@milaboratories/pl-model-common\";\nimport {\n getNormalizedAxesList,\n getAxisId,\n canonicalizeJson,\n isLinkerColumn,\n matchAxisId,\n isLabelColumn,\n} from \"@milaboratories/pl-model-common\";\nimport type { AxesVault } from \"./axes\";\nimport { enrichCompatible, getAvailableWithLinkersAxes } from \"./axes\";\nimport type { RenderCtxBase, PColumnDataUniversal } from \"../render\";\nimport { PColumnCollection } from \"../render\";\n\nexport function getAllRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n predicate: (spec: PColumnSpec) => boolean,\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block doesn't produce own columns then use all columns from result pool\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n const allColumns =\n columns.getColumns(predicate, {\n dontWaitAllData: true,\n overrideLabelAnnotation: false,\n }) ?? [];\n\n const allAxes: AxesVault = new Map(\n allColumns\n .flatMap((column) => getNormalizedAxesList(column.spec.axesSpec))\n .map((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return [canonicalizeJson(axisId), axisSpec];\n }),\n );\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(allAxes, allColumns);\n\n return extendedColumns;\n}\n\nexport function getRelatedColumns<A, U>(\n ctx: RenderCtxBase<A, U>,\n {\n columns: rootColumns,\n predicate,\n }: {\n columns: PColumn<PColumnDataUniversal>[];\n predicate: (spec: PColumnSpec) => boolean;\n },\n): PFrameDef<PColumn<PColumnDataUniversal> | PColumnLazy<undefined | PColumnDataUniversal>> {\n // if current block has its own columns then take from result pool only compatible with them\n const columns = new PColumnCollection();\n columns.addColumnProvider(ctx.resultPool);\n columns.addColumns(rootColumns);\n\n // all possible axes from block columns\n const blockAxes: AxesVault = new Map();\n // axes from block columns and compatible result pool columns\n const allAxes: AxesVault = new Map();\n for (const c of rootColumns) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n blockAxes.set(canonicalizeJson(aid), spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n // all linker columns always go to pFrame - even it's impossible to use some of them they all are hidden\n const linkerColumns =\n columns.getColumns((spec) => predicate(spec) && isLinkerColumn(spec), {\n dontWaitAllData: true,\n }) ?? [];\n const availableWithLinkersAxes = getAvailableWithLinkersAxes(linkerColumns, blockAxes);\n\n // all possible axes from connected linkers\n for (const item of availableWithLinkersAxes) {\n blockAxes.set(...item);\n allAxes.set(...item);\n }\n\n const blockAxesArr = Array.from(blockAxes.values());\n // all compatible with block columns but without label columns\n let compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return blockAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // extend axes set for label columns request\n for (const c of compatibleWithoutLabels) {\n for (const spec of getNormalizedAxesList(c.spec.axesSpec)) {\n const aid = getAxisId(spec);\n allAxes.set(canonicalizeJson(aid), spec);\n }\n }\n\n const allAxesArr = Array.from(allAxes.values());\n // extend allowed columns - add columns thad doesn't have axes from block, but have all axes in 'allAxes' list (that means all axes from linkers or from 'hanging' of other selected columns)\n compatibleWithoutLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.every((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => !isLabelColumn(column.spec));\n\n // label columns must be compatible with full set of axes - block axes and axes from compatible columns from result pool\n const compatibleLabels = (\n columns.getColumns(\n (spec) =>\n predicate(spec) &&\n spec.axesSpec.some((axisSpec) => {\n const axisId = getAxisId(axisSpec);\n return allAxesArr.some((selectorAxisSpec) =>\n matchAxisId(getAxisId(selectorAxisSpec), axisId),\n );\n }),\n { dontWaitAllData: true, overrideLabelAnnotation: false },\n ) ?? []\n ).filter((column) => isLabelColumn(column.spec));\n\n const compatible = [...compatibleWithoutLabels, ...compatibleLabels];\n\n // additional columns are duplicates with extra fields in domains for compatibility if there are ones with partial match\n const extendedColumns = enrichCompatible(blockAxes, compatible);\n\n return extendedColumns;\n}\n"],"mappings":";;;;;;AAcA,SAAgB,qBACd,KACA,WAC0F;CAE1F,MAAM,UAAU,IAAI,mBAAmB;AACvC,SAAQ,kBAAkB,IAAI,WAAW;CACzC,MAAM,aACJ,QAAQ,WAAW,WAAW;EAC5B,iBAAiB;EACjB,yBAAyB;EAC1B,CAAC,IAAI,EAAE;AAcV,QAFwB,iBAVG,IAAI,IAC7B,WACG,SAAS,WAAW,sBAAsB,OAAO,KAAK,SAAS,CAAC,CAChE,KAAK,aAAa;AAEjB,SAAO,CAAC,iBADO,UAAU,SAAS,CACF,EAAE,SAAS;GAC3C,CACL,EAGiD,WAAW;;AAK/D,SAAgB,kBACd,KACA,EACE,SAAS,aACT,aAKwF;CAE1F,MAAM,UAAU,IAAI,mBAAmB;AACvC,SAAQ,kBAAkB,IAAI,WAAW;AACzC,SAAQ,WAAW,YAAY;CAG/B,MAAM,4BAAuB,IAAI,KAAK;CAEtC,MAAM,0BAAqB,IAAI,KAAK;AACpC,MAAK,MAAM,KAAK,YACd,MAAK,MAAM,QAAQ,sBAAsB,EAAE,KAAK,SAAS,EAAE;EACzD,MAAM,MAAM,UAAU,KAAK;AAC3B,YAAU,IAAI,iBAAiB,IAAI,EAAE,KAAK;AAC1C,UAAQ,IAAI,iBAAiB,IAAI,EAAE,KAAK;;CAS5C,MAAM,2BAA2B,4BAH/B,QAAQ,YAAY,SAAS,UAAU,KAAK,IAAI,eAAe,KAAK,EAAE,EACpE,iBAAiB,MAClB,CAAC,IAAI,EAAE,EACkE,UAAU;AAGtF,MAAK,MAAM,QAAQ,0BAA0B;AAC3C,YAAU,IAAI,GAAG,KAAK;AACtB,UAAQ,IAAI,GAAG,KAAK;;CAGtB,MAAM,eAAe,MAAM,KAAK,UAAU,QAAQ,CAAC;CAEnD,IAAI,2BACF,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,MAAM,aAAa;EAC/B,MAAM,SAAS,UAAU,SAAS;AAClC,SAAO,aAAa,MAAM,qBACxB,YAAY,UAAU,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,WAAW,CAAC,cAAc,OAAO,KAAK,CAAC;AAGjD,MAAK,MAAM,KAAK,wBACd,MAAK,MAAM,QAAQ,sBAAsB,EAAE,KAAK,SAAS,EAAE;EACzD,MAAM,MAAM,UAAU,KAAK;AAC3B,UAAQ,IAAI,iBAAiB,IAAI,EAAE,KAAK;;CAI5C,MAAM,aAAa,MAAM,KAAK,QAAQ,QAAQ,CAAC;AAE/C,4BACE,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,OAAO,aAAa;EAChC,MAAM,SAAS,UAAU,SAAS;AAClC,SAAO,WAAW,MAAM,qBACtB,YAAY,UAAU,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,WAAW,CAAC,cAAc,OAAO,KAAK,CAAC;CAGjD,MAAM,oBACJ,QAAQ,YACL,SACC,UAAU,KAAK,IACf,KAAK,SAAS,MAAM,aAAa;EAC/B,MAAM,SAAS,UAAU,SAAS;AAClC,SAAO,WAAW,MAAM,qBACtB,YAAY,UAAU,iBAAiB,EAAE,OAAO,CACjD;GACD,EACJ;EAAE,iBAAiB;EAAM,yBAAyB;EAAO,CAC1D,IAAI,EAAE,EACP,QAAQ,WAAW,cAAc,OAAO,KAAK,CAAC;AAOhD,QAFwB,iBAAiB,WAHtB,CAAC,GAAG,yBAAyB,GAAG,iBAAiB,CAGL"}
|