@platforma-open/milaboratories.sort-seq-analysis.block 1.0.4 → 1.0.6

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/index.js CHANGED
@@ -14,6 +14,8 @@ const PColumnName$1 = {
14
14
  MutationCount: "pl7.app/repertoire/mutationCount",
15
15
  /** The variant axis's label column — shown as "Variant Id". */
16
16
  VariantLabel: "pl7.app/label",
17
+ /** The **sample** axis's label column. Same name as `VariantLabel`; the axis picks one. */
18
+ SampleLabel: "pl7.app/label",
17
19
  /** The per-variant mutation list, shown as "Mutations". */
18
20
  Mutations: "pl7.app/repertoire/mutations"
19
21
  };
@@ -81,16 +83,28 @@ const metadataSelector = {
81
83
  }],
82
84
  name: PColumnName$1.Metadata
83
85
  };
86
+ /**
87
+ * The sample axis's label column. `pl7.app/isLabel` is required alongside the name, which the
88
+ * variant label column shares.
89
+ */
90
+ const sampleLabelSelector = {
91
+ axes: [{
92
+ anchor: "main",
93
+ idx: 0
94
+ }],
95
+ name: PColumnName$1.SampleLabel,
96
+ annotations: { "pl7.app/isLabel": "true" }
97
+ };
84
98
  PColumnName$1.MutationCount;
85
99
  //#endregion
86
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/plugin_handle.js
100
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/plugin_handle.js
87
101
  const PLUGIN_OUTPUT_PREFIX = "plugin-output#";
88
102
  /** Construct the output key for a plugin output in the block outputs map. */
89
103
  function pluginOutputKey(handle, outputKey) {
90
104
  return `${PLUGIN_OUTPUT_PREFIX}${handle}#${outputKey}`;
91
105
  }
92
106
  //#endregion
93
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_storage.js
107
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage.js
94
108
  /**
95
109
  * Discriminator key for BlockStorage format detection.
96
110
  * This unique hash-based key identifies data as BlockStorage vs legacy formats.
@@ -6408,7 +6422,7 @@ function relocateBlockIds(params, blockIds) {
6408
6422
  return walk(params);
6409
6423
  }
6410
6424
  //#endregion
6411
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_migrations.js
6425
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_migrations.js
6412
6426
  /** Create a DataVersioned wrapper with correct shape */
6413
6427
  function makeVersionedData(version, data) {
6414
6428
  return {
@@ -6986,7 +7000,7 @@ var DataModel = class DataModel {
6986
7000
  }
6987
7001
  };
6988
7002
  //#endregion
6989
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/internal.js
7003
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/internal.js
6990
7004
  /** Utility code helping to identify whether the code is running in actual UI environment */
6991
7005
  function isInUI() {
6992
7006
  return typeof globalThis.getPlatforma !== "undefined" || typeof globalThis.platforma !== "undefined";
@@ -7056,7 +7070,7 @@ function registerFutureAwait(handle, onResolve) {
7056
7070
  futureResolves.get(handle).push(onResolve);
7057
7071
  }
7058
7072
  //#endregion
7059
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
7073
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
7060
7074
  /**
7061
7075
  * All facade callback names as constants.
7062
7076
  * These are the source of truth - the interface is derived from these.
@@ -7094,7 +7108,7 @@ function registerFacadeCallbacks(callbacks) {
7094
7108
  for (const key of Object.values(BlockStorageFacadeCallbacks)) tryRegisterCallback(key, callbacks[key]);
7095
7109
  }
7096
7110
  //#endregion
7097
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/block_services.js
7111
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/block_services.js
7098
7112
  /**
7099
7113
  * Services required by all V3 blocks by default.
7100
7114
  * Edit this when a new service should be available to all blocks.
@@ -7110,7 +7124,7 @@ const BLOCK_SERVICE_FLAGS = {
7110
7124
  };
7111
7125
  resolveRequiredServices(BLOCK_SERVICE_FLAGS);
7112
7126
  //#endregion
7113
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/future.js
7127
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/future.js
7114
7128
  var FutureRef = class FutureRef {
7115
7129
  handle;
7116
7130
  postProcess;
@@ -7138,7 +7152,7 @@ var FutureRef = class FutureRef {
7138
7152
  }
7139
7153
  };
7140
7154
  //#endregion
7141
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/accessor.js
7155
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/accessor.js
7142
7156
  function ifDef(value, cb) {
7143
7157
  return value === void 0 ? void 0 : cb(value);
7144
7158
  }
@@ -7388,11 +7402,11 @@ var TreeNodeAccessor = class TreeNodeAccessor {
7388
7402
  }
7389
7403
  };
7390
7404
  //#endregion
7391
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/internal.js
7405
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/internal.js
7392
7406
  const MainAccessorName = "main";
7393
7407
  const StagingAccessorName = "staging";
7394
7408
  //#endregion
7395
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7409
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7396
7410
  function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7397
7411
  const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
7398
7412
  const { type } = dataInfoEntries;
@@ -7456,7 +7470,7 @@ function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7456
7470
  }
7457
7471
  }
7458
7472
  //#endregion
7459
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7473
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7460
7474
  /**
7461
7475
  * Structural postfix derivation for linked columns (phase 2 of `deriveDistinctLabels`).
7462
7476
  *
@@ -7639,7 +7653,7 @@ function derivePostfixes(entries, format = defaultLinkerFormatter) {
7639
7653
  });
7640
7654
  }
7641
7655
  //#endregion
7642
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7656
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7643
7657
  const DISTANCE_PENALTY = .001;
7644
7658
  const LABEL_TYPE = "__LABEL__";
7645
7659
  const LABEL_TYPE_FULL = "__LABEL__@1";
@@ -7927,7 +7941,7 @@ function repairBareByPresence(labels, minimized, records, stats, forcedSet, forc
7927
7941
  return patched;
7928
7942
  }
7929
7943
  //#endregion
7930
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/label.js
7944
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/label.js
7931
7945
  /** @deprecated Use deriveDistinctLabels */
7932
7946
  function deriveLabels(values, getSpec, options = {}) {
7933
7947
  return deriveDistinctLabels(values.map(getSpec), options).map((label, i) => ({
@@ -7936,7 +7950,7 @@ function deriveLabels(values, getSpec, options = {}) {
7936
7950
  }));
7937
7951
  }
7938
7952
  //#endregion
7939
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7953
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7940
7954
  const RT_RESOURCE_MAP = "PColumnData/ResourceMap";
7941
7955
  const RT_RESOURCE_MAP_PARTITIONED = "PColumnData/Partitioned/ResourceMap";
7942
7956
  const RT_JSON_PARTITIONED = "PColumnData/JsonPartitioned";
@@ -8230,7 +8244,7 @@ function allPColumnsReady(columns) {
8230
8244
  return columns.every(isPColumnReady);
8231
8245
  }
8232
8246
  //#endregion
8233
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8247
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8234
8248
  function isPColumnValues(value) {
8235
8249
  if (!Array.isArray(value)) return false;
8236
8250
  if (value.length === 0) return true;
@@ -8508,7 +8522,7 @@ var PColumnCollection = class {
8508
8522
  }
8509
8523
  };
8510
8524
  //#endregion
8511
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8525
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8512
8526
  /**
8513
8527
  * Builds a ServiceProxy from a ServiceDispatch.
8514
8528
  * Each service method call is forwarded to dispatch.callServiceMethod.
@@ -8517,7 +8531,7 @@ function createServiceProxy(dispatch) {
8517
8531
  return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
8518
8532
  }
8519
8533
  //#endregion
8520
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/services/get_services.js
8534
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/services/get_services.js
8521
8535
  const cachedServices = /* @__PURE__ */ new WeakMap();
8522
8536
  function getService(name, deps) {
8523
8537
  const ctx = deps?.ctx ?? getCfgRenderCtx();
@@ -8531,7 +8545,7 @@ function getService(name, deps) {
8531
8545
  })();
8532
8546
  }
8533
8547
  //#endregion
8534
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8548
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8535
8549
  function patchInSetFilters(filters) {
8536
8550
  const inSetToOrEqual = (predicate) => {
8537
8551
  if (predicate.operator !== "InSet") return predicate;
@@ -8569,7 +8583,7 @@ function patchInSetFilters(filters) {
8569
8583
  return filters.map((filter) => mapFilter(filter, inSetToOrEqual));
8570
8584
  }
8571
8585
  //#endregion
8572
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/render/api.js
8586
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/render/api.js
8573
8587
  /**
8574
8588
  * Helper function to match domain objects
8575
8589
  * @param query Optional domain to match against
@@ -9018,27 +9032,27 @@ var PluginRenderCtx = class extends RenderCtxBase {
9018
9032
  }
9019
9033
  };
9020
9034
  //#endregion
9021
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/plugin_model.js
9035
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/plugin_model.js
9022
9036
  /** Internal plugin↔block handshake. `Symbol.for` (not `Symbol`) so it stays
9023
9037
  * identical across multiple `@platforma-sdk/model` copies in one process. */
9024
9038
  const CREATE_PLUGIN_MODEL = Symbol.for("@platforma-sdk/model:createPluginModel");
9025
9039
  //#endregion
9026
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/version.js
9027
- const PlatformaSDKVersion = "1.83.0";
9040
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/version.js
9041
+ const PlatformaSDKVersion = "1.83.9";
9028
9042
  //#endregion
9029
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/bconfig/types.js
9043
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/bconfig/types.js
9030
9044
  function isConfigLambda(cfgOrFh) {
9031
9045
  return cfgOrFh.__renderLambda === true;
9032
9046
  }
9033
9047
  //#endregion
9034
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
9048
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
9035
9049
  function downgradeCfgOrLambda(data) {
9036
9050
  if (data === void 0) return void 0;
9037
9051
  if (isConfigLambda(data)) return data.handle;
9038
9052
  return data;
9039
9053
  }
9040
9054
  //#endregion
9041
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
9055
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
9042
9056
  /**
9043
9057
  * BlockStorage Callback Implementations - wired to facade callbacks in BlockModelV3.done().
9044
9058
  *
@@ -9392,7 +9406,7 @@ function deriveTemplateParamsFromStorage(storageJson, deriveTemplateParams) {
9392
9406
  }
9393
9407
  }
9394
9408
  //#endregion
9395
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/block_model.js
9409
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/block_model.js
9396
9410
  /**
9397
9411
  * Merges two feature flag objects with type-aware logic:
9398
9412
  * - `supports*` (boolean): OR — `true` if either side is `true`
@@ -9758,7 +9772,7 @@ var BlockModelV3 = class BlockModelV3 {
9758
9772
  }
9759
9773
  };
9760
9774
  //#endregion
9761
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9775
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/pframe_utils/axes.js
9762
9776
  /** Create id for column copy with added keys in axes domains */
9763
9777
  const colId = (id, domains, contextDomains) => {
9764
9778
  let wid = id.toString();
@@ -9864,7 +9878,7 @@ function getAdditionalColumnsForColumn(blockAxes, column) {
9864
9878
  })];
9865
9879
  }
9866
9880
  //#endregion
9867
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9881
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9868
9882
  /**
9869
9883
  * Replace every column leaf whose id equals `fromId` with `toId`, leaving
9870
9884
  * other column refs (linkers, sub-anchors) intact. Wrapper recipes
@@ -10532,7 +10546,7 @@ var U = class d {
10532
10546
  }
10533
10547
  };
10534
10548
  //#endregion
10535
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10549
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10536
10550
  /**
10537
10551
  * Unified memoised factory dispatching to the right provider flavour by the
10538
10552
  * source shape:
@@ -10621,7 +10635,7 @@ function hashRawPool(rawPool) {
10621
10635
  return rawPool.map((b) => `${b.blockId}\x1f${b.prodCtx ?? ""}\x1f${b.stagingCtx ?? ""}\x1f${b.prodIncomplete ? 1 : 0}\x1f${b.stagingIncomplete ? 1 : 0}`).join("");
10622
10636
  }
10623
10637
  //#endregion
10624
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10638
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10625
10639
  /**
10626
10640
  * Build the default set of ColumnsProviders for the ambient render ctx:
10627
10641
  * - `AccessorColumnsProvider` over `outputs` (if present)
@@ -10656,7 +10670,7 @@ function isColumnProvider(source) {
10656
10670
  return typeof p.getColumns === "function" && typeof p.isFinal === "function";
10657
10671
  }
10658
10672
  //#endregion
10659
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10673
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10660
10674
  /**
10661
10675
  * Thrown by leaf-recipe factories when the requested column is provably
10662
10676
  * absent in the active render ctx — i.e. every relevant accessor reports
@@ -10896,7 +10910,7 @@ function memoizeByEntry(fn) {
10896
10910
  };
10897
10911
  }
10898
10912
  //#endregion
10899
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
10913
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
10900
10914
  /**
10901
10915
  * Recipe wrapper that overlays {@link SpecOverrides} on top of any other
10902
10916
  * recipe. The id is `ColumnOverriddenKey { source: inner.id, specOverrides }`.
@@ -11034,7 +11048,7 @@ var DataColumnOverriddenRecipe = class extends ColumnOverriddenRecipe {
11034
11048
  }
11035
11049
  };
11036
11050
  //#endregion
11037
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11051
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11038
11052
  /**
11039
11053
  * Recipe wrapper that fixes the values of selected axes of an inner recipe
11040
11054
  * (axis slicing). The id is `FilteredPColumnId { source: inner.id,
@@ -11160,7 +11174,7 @@ function toAxisSelector(axis) {
11160
11174
  return selector;
11161
11175
  }
11162
11176
  //#endregion
11163
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11177
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11164
11178
  /**
11165
11179
  * Build a `ColumnRecipe` from a stringified id. Dispatches to the matching
11166
11180
  * concrete recipe variant based on the id's encoding and recurses on
@@ -11211,7 +11225,7 @@ function ColumnRecipeGetStatus(id, opts = {}) {
11211
11225
  }
11212
11226
  const ColumnRecipe = Object.assign(ColumnRecipeBuild, { getStatus: ColumnRecipeGetStatus });
11213
11227
  //#endregion
11214
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11228
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11215
11229
  /**
11216
11230
  * Recipe for columns identified by a {@link ColumnDiscoveredKey}: a base
11217
11231
  * column + a `path` of linkers + qualifications.
@@ -11382,7 +11396,7 @@ function referencedUniIdsOf(key) {
11382
11396
  return /* @__PURE__ */ new Set([key.column, ...(key.path ?? []).map((item) => item.column)]);
11383
11397
  }
11384
11398
  //#endregion
11385
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/column.js
11399
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/column.js
11386
11400
  /**
11387
11401
  * Unified entry point — routes between the two top-level dispatchers:
11388
11402
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
@@ -11396,7 +11410,7 @@ function Column(source, opts) {
11396
11410
  return DataColumn(source, opts);
11397
11411
  }
11398
11412
  //#endregion
11399
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11413
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11400
11414
  /**
11401
11415
  * Build a {@link ColumnsCollection} from sandbox-side source descriptors.
11402
11416
  * Resolves the `columnsCollection` driver (either from `deps.driver` or via
@@ -11505,7 +11519,7 @@ function defaultCtxSources(ctx) {
11505
11519
  return [...currentBlockSources(ctx), { kind: "result_pool" }];
11506
11520
  }
11507
11521
  //#endregion
11508
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/columns/utils.js
11522
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/columns/utils.js
11509
11523
  /**
11510
11524
  * PObjectIds of every non-hit column referenced by `recipe.getQuery()`,
11511
11525
  * deduped in traversal order. The hit column is
@@ -11636,7 +11650,7 @@ function hasSingleDataColumn(recipe) {
11636
11650
  return recipe.getReferencedIds().length === 1;
11637
11651
  }
11638
11652
  //#endregion
11639
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
11653
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/pframe_utils/columns.js
11640
11654
  function getAllRelatedColumns(ctx, predicate) {
11641
11655
  const columns = new PColumnCollection();
11642
11656
  columns.addColumnProvider(ctx.resultPool);
@@ -11712,7 +11726,7 @@ function discoverIntegrableColumnIds(ctx, rootColumns) {
11712
11726
  }
11713
11727
  }
11714
11728
  //#endregion
11715
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
11729
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PFrameForGraphs.js
11716
11730
  function isHiddenFromGraphColumn(column) {
11717
11731
  return !!readAnnotationJson(column, Annotation.HideDataFromGraphs);
11718
11732
  }
@@ -11741,7 +11755,7 @@ function createPFrameForGraphs(ctx, blockColumns) {
11741
11755
  }));
11742
11756
  }
11743
11757
  //#endregion
11744
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11758
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11745
11759
  /**
11746
11760
  * Recursively traverses a FilterSpec tree bottom-up, applying visitor callbacks.
11747
11761
  *
@@ -11780,7 +11794,7 @@ function collectFilterSpecColumns(filter) {
11780
11794
  });
11781
11795
  }
11782
11796
  //#endregion
11783
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11797
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11784
11798
  /** Converts a QueryColumnId object into a SpecQueryExpression reference. */
11785
11799
  function resolveColumnRef(col) {
11786
11800
  return col.type === "axis" ? {
@@ -12167,7 +12181,7 @@ function isEmpty(value) {
12167
12181
  return true;
12168
12182
  }
12169
12183
  //#endregion
12170
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/filters/distill.js
12184
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/filters/distill.js
12171
12185
  /**
12172
12186
  * Strips non-FilterSpec metadata (whitelist approach) and removes
12173
12187
  * unfilled leaves (type is undefined or any required field is undefined).
@@ -12272,7 +12286,7 @@ const REQUIRED_KEYS_BY_TYPE = {
12272
12286
  greaterThanColumnOrEqual: ["column", "rhs"]
12273
12287
  };
12274
12288
  //#endregion
12275
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12289
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12276
12290
  /** Upgrade PlDataTableStateV2 to the latest version */
12277
12291
  function upgradePlDataTableStateV2(state) {
12278
12292
  if (!state) return createPlDataTableStateV2();
@@ -12630,7 +12644,7 @@ function parseLegacyLeafColumn(s) {
12630
12644
  return parsed;
12631
12645
  }
12632
12646
  //#endregion
12633
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12647
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12634
12648
  /** Adapt a {@link ColumnRecipe} to the plain {@link RuleColumn} shape. */
12635
12649
  function toRuleColumn(col) {
12636
12650
  return {
@@ -12728,7 +12742,7 @@ function deriveAllLabels(options) {
12728
12742
  })), deriveLabelsOptions).reduce((acc, label, index) => (acc[columns[index].id] = label, acc), {});
12729
12743
  }
12730
12744
  //#endregion
12731
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12745
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12732
12746
  /**
12733
12747
  * Assemble a ptable def directly from recipes. Each secondary recipe is its own
12734
12748
  * outer-joined subtree: `getQuery()` encodes its linker chain, and its
@@ -12792,8 +12806,8 @@ function columnToJoinEntry(col, qualifications) {
12792
12806
  };
12793
12807
  }
12794
12808
  //#endregion
12795
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12796
- function createColumnResolver(columns, deps) {
12809
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12810
+ function createColumnResolver(columns) {
12797
12811
  const axisIds = [];
12798
12812
  for (const c of columns) for (const ax of c.getSpec().axesSpec) axisIds.push(getAxisId(ax));
12799
12813
  const byFullId = /* @__PURE__ */ new Map();
@@ -12801,9 +12815,7 @@ function createColumnResolver(columns, deps) {
12801
12815
  for (const c of columns) {
12802
12816
  byFullId.set(c.id, c);
12803
12817
  const pid = extractPObjectId(c.id);
12804
- const existing = byPObjectId.get(pid);
12805
- if (existing === void 0) byPObjectId.set(pid, c);
12806
- else if (existing.id !== c.id) deps?.warn?.(`Ambiguous PObjectId ${pid}: recipe ids ${existing.id} and ${c.id} both match — keeping first.`);
12818
+ if (!byPObjectId.has(pid)) byPObjectId.set(pid, c);
12807
12819
  }
12808
12820
  return (ref) => {
12809
12821
  if (ref.type === "axis") return axisIds.some((a) => matchAxisId(ref.id, a)) ? ref : void 0;
@@ -12816,7 +12828,7 @@ function createColumnResolver(columns, deps) {
12816
12828
  };
12817
12829
  }
12818
12830
  //#endregion
12819
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12831
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12820
12832
  /**
12821
12833
  * Discover columns from sources/anchors and split them into primary
12822
12834
  * (direct anchor hits — zero-hop, query is a bare column) and secondary
@@ -12862,7 +12874,7 @@ function discoverLabelColumns(ctx, primary) {
12862
12874
  }).getColumns();
12863
12875
  }
12864
12876
  //#endregion
12865
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.0/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
12877
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.83.9/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
12866
12878
  function createPlDataTableV3(ctx, options) {
12867
12879
  const state = upgradePlDataTableStateV2(options.tableState);
12868
12880
  const primaryJoinType = options.primaryJoinType ?? "full";
@@ -12890,7 +12902,7 @@ function createPlDataTableV3(ctx, options) {
12890
12902
  ...primary,
12891
12903
  ...direct,
12892
12904
  ...linked.flatMap((lc) => [...collectLinkerColumns(lc), lc])
12893
- ], { warn: ctx.logWarn.bind(ctx) });
12905
+ ]);
12894
12906
  const remapedDefaultFilters = remapFilterColumnIds(options.filters, resolver);
12895
12907
  const filters = filterFilters(concatFilters(state.pTableParams.filters, state.pTableParams.defaultFilters ?? remapedDefaultFilters), resolver);
12896
12908
  const sorting = filterSorting(resolveSorting(state.pTableParams.sorting, remapSortingColumnIds(options.sorting, resolver)), resolver);
@@ -13425,10 +13437,9 @@ const blockDataModel = new DataModelBuilder({ kind }).from("Ver_2026_08_07").ini
13425
13437
  * Every configuration rule, checked here and **nowhere else**. These six are decidable from the
13426
13438
  * arguments and snapshotted column values alone, so they are refused before the run starts.
13427
13439
  *
13428
- * The two data-value rules — sort fractions, one sample per condition-and-gate group — belong
13429
- * to the computation and are deliberately not approximated here: a duplicated rule is one that
13430
- * will disagree, and it fails by drifting looser, so the settings pass and the run fails anyway
13431
- * with a different message.
13440
+ * The one data-value rule — sort fractions — belongs to the computation and is deliberately not
13441
+ * approximated here: a duplicated rule is one that will disagree, and it fails by drifting
13442
+ * looser, so the settings pass and the run fails anyway with a different message.
13432
13443
  */
13433
13444
  function settingsIssues(data) {
13434
13445
  const issues = [];
@@ -13519,6 +13530,16 @@ const platforma$1 = BlockModelV3.create({
13519
13530
  const columns = ctx.resultPool.getAnchoredPColumns({ main: anchor }, [metadataSelector]);
13520
13531
  if (!columns || columns.length === 0) return void 0;
13521
13532
  return ctx.createPFrame(columns);
13533
+ }).output("sampleLabelPframe", (ctx) => {
13534
+ const anchor = ctx.data.abundanceRef;
13535
+ if (!anchor) return void 0;
13536
+ const columns = ctx.resultPool.getAnchoredPColumns({ main: anchor }, [sampleLabelSelector]);
13537
+ if (!columns || columns.length === 0) return void 0;
13538
+ return ctx.createPFrame(columns);
13539
+ }).output("sampleLabelColumnId", (ctx) => {
13540
+ const anchor = ctx.data.abundanceRef;
13541
+ if (!anchor) return void 0;
13542
+ return ctx.resultPool.getAnchoredPColumns({ main: anchor }, [sampleLabelSelector])?.[0]?.id;
13522
13543
  }).outputWithStatus("resultsTable", (ctx) => {
13523
13544
  const own = ctx.outputs?.resolve("scoresPf")?.getPColumns();
13524
13545
  if (!own) return void 0;