@platforma-open/milaboratories.sequence-properties.model 1.2.4 → 1.3.1

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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/work/sequence-properties/sequence-properties/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.sequence-properties.model@1.2.4 build /home/runner/work/sequence-properties/sequence-properties/model
3
+ > @platforma-open/milaboratories.sequence-properties.model@1.3.1 build /home/runner/work/sequence-properties/sequence-properties/model
4
4
  > ts-builder build --target block-model && block-tools build-model
5
5
 
6
6
  Building block-model project...
@@ -8,21 +8,25 @@ Building block-model project...
8
8
  [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugin `rolldown-plugin-dts:generate`. See https://rolldown.rs/options/checks#plugintimings for more details.
9
9
 
10
10
  [log] <DIR>/dataModel.d.ts.map asset │ size: 0.14 kB
11
- [log] <DIR>/types.d.ts.map asset │ size: 0.39 kB
12
- [log] <DIR>/dataModel.js.map asset │ size: 1.54 kB
11
+ [log] <DIR>/types.d.ts.map asset │ size: 0.49 kB
12
+ [log] <DIR>/label.js.map asset │ size: 0.98 kB
13
13
  [log] <DIR>/index.d.ts.map asset │ size: 2.00 kB
14
- [log] <DIR>/index.js.map asset │ size: 7.83 kB
14
+ [log] <DIR>/dataModel.js.map asset │ size: 2.57 kB
15
+ [log] <DIR>/index.js.map asset │ size: 7.95 kB
15
16
  [log] <DIR>/dataModel.d.ts chunk │ size: 0.29 kB
16
- [log] <DIR>/dataModel.js chunk │ size: 0.84 kB
17
- [log] <DIR>/types.d.ts chunk │ size: 0.89 kB
18
- [log] <DIR>/index.js chunk │ size: 2.95 kB
17
+ [log] <DIR>/label.js chunk │ size: 0.37 kB
18
+ [log] <DIR>/dataModel.js chunk │ size: 1.11 kB
19
+ [log] <DIR>/types.d.ts chunk │ size: 1.12 kB
20
+ [log] <DIR>/index.js chunk │ size: 3.05 kB
19
21
  [log] <DIR>/index.d.ts chunk │ size: 58.05 kB
20
- [log] <DIR>/dataModel.cjs.map asset │ size: 1.58 kB
21
- [log] <DIR>/index.cjs.map asset │ size: 7.92 kB
22
- [log] <DIR>/dataModel.cjs chunk │ size: 0.88 kB
23
- [log] <DIR>/index.cjs chunk │ size: 3.15 kB
24
- [log] <DIR>/bundle.js.map asset │ size: 656.95 kB
25
- [log] <DIR>/bundle.js chunk │ size: 323.63 kB
22
+ [log] <DIR>/label.cjs.map asset │ size: 0.98 kB
23
+ [log] <DIR>/dataModel.cjs.map asset │ size: 2.61 kB
24
+ [log] <DIR>/index.cjs.map asset │ size: 8.09 kB
25
+ [log] <DIR>/label.cjs chunk │ size: 0.41 kB
26
+ [log] <DIR>/dataModel.cjs chunk │ size: 1.14 kB
27
+ [log] <DIR>/index.cjs chunk │ size: 3.26 kB
28
+ [log] <DIR>/bundle.js.map asset │ size: 659.01 kB
29
+ [log] <DIR>/bundle.js chunk │ size: 324.24 kB
26
30
  [log]
27
- [success] rolldown v1.0.0-rc.16 Finished in 3.75 s
31
+ [success] rolldown v1.0.0-rc.16 Finished in 3.62 s
28
32
  Build completed successfully
@@ -1,21 +1,21 @@
1
1
   WARN  Issue while reading "/home/runner/work/sequence-properties/sequence-properties/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-open/milaboratories.sequence-properties.model@1.2.4 check /home/runner/work/sequence-properties/sequence-properties/model
3
+ > @platforma-open/milaboratories.sequence-properties.model@1.3.1 check /home/runner/work/sequence-properties/sequence-properties/model
4
4
  > ts-builder check --target block-model
5
5
 
6
6
  ↳ tsc --noEmit --project ./tsconfig.json --customConditions ,
7
7
  Linting project...
8
8
  ↳ oxlint --config /home/runner/work/sequence-properties/sequence-properties/model/.oxlintrc.json --deny-warnings
9
9
  Found 0 warnings and 0 errors.
10
- Finished in 10ms on 3 files with 90 rules using 4 threads.
10
+ Finished in 11ms on 7 files with 90 rules using 4 threads.
11
11
  Linting completed successfully
12
12
  Checking formatting...
13
13
  ↳ oxfmt --check --config /home/runner/work/sequence-properties/sequence-properties/model/.oxfmtrc.json
14
- (node:2807) ExperimentalWarning: glob is an experimental feature and might change at any time
14
+ (node:2799) ExperimentalWarning: glob is an experimental feature and might change at any time
15
15
  (Use `node --trace-warnings ...` to show where the warning was created)
16
16
  Checking formatting...
17
17
 
18
18
  All matched files use the correct format.
19
- Finished in 313ms on 7 files using 4 threads.
19
+ Finished in 258ms on 11 files using 4 threads.
20
20
  Format check completed successfully
21
21
  All checks passed!
@@ -0,0 +1,15 @@
1
+
2
+ > @platforma-open/milaboratories.sequence-properties.model@1.3.1 test /home/runner/work/sequence-properties/sequence-properties/model
3
+ > vitest --run --passWithNoTests
4
+
5
+
6
+  RUN  v4.1.4 /home/runner/work/sequence-properties/sequence-properties/model
7
+
8
+ ✓ src/label.test.ts (6 tests) 6ms
9
+ ✓ src/dataModel.test.ts (4 tests) 4ms
10
+
11
+  Test Files  2 passed (2)
12
+  Tests  10 passed (10)
13
+  Start at  15:13:06
14
+  Duration  428ms (transform 61ms, setup 0ms, import 330ms, tests 10ms, environment 0ms)
15
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @platforma-open/MiLaboratories.sequence-properties.model
2
2
 
3
+ ## 1.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 082b684: Info-message alerts on the Main tab now have a close button. Dismissals
8
+ follow the firing: hidden while the message is in the workflow output,
9
+ surface fresh if the workflow stops emitting it and later re-emits.
10
+ State lives in a module-scope UI ref — persists across in-block
11
+ navigation, resets on project close, block reload, or app restart.
12
+
13
+ ## 1.3.0
14
+
15
+ ### Minor Changes
16
+
17
+ - aa281ac: Per-instance trace label, broader plot pickers, locked-in test coverage.
18
+
19
+ - **Trace label is per-instance.** The workflow's `pl7.app/trace.label` resolves to `customBlockLabel || defaultBlockLabel || "Sequence Properties"` (centralised in `model/src/label.ts`). Two sequence-properties blocks on the same dataset show distinguishable entries in Lead Selection and other downstream pickers once the user customises the `PlBlockPage` subtitle. Same pattern as clonotype-clustering and titeseq-analysis PR #13.
20
+ - **Scatter and Histogram metadata pickers accept own-block columns.** Filter, Grouping/Color, Highlight, Size, Tab, Tooltip, Label, and Additional-curves now treat every column in the property pframe as a candidate — own scalars and upstream metadata alike. Users can color the Property Relationships scatter by Aromaticity while plotting Charge vs Hydrophobicity. X/Y axis defaults unchanged.
21
+ - **Migration backfill.** A new `Ver_2026_05_18` step fills the new label fields onto projects tagged at the deployed `Ver_2026_05_05`, preserving any interim-deployed value via `?? ""`. Without the split, already-V2 projects would skip the migration and the workflow would receive `args.customBlockLabel === undefined`.
22
+ - **Test coverage.** Model vitest locks the resolution chain (6 cases) and the migration backfill (4 cases). A subprocess-based Python byte-compare test guards Python output determinism. `build.yaml` enables `test: true` so block-level tests exercise on every PR.
23
+
3
24
  ## 1.2.4
4
25
 
5
26
  ### Patch Changes
package/dist/bundle.js CHANGED
@@ -9348,16 +9348,33 @@
9348
9348
  currentTab: null,
9349
9349
  layersSettings: { bins: { fillColor: "#99e099" } }
9350
9350
  };
9351
- const blockDataModel = new DataModelBuilder().from("Ver_2026_04_28").migrate("Ver_2026_05_05", (v1) => ({
9351
+ const migrateV1toV2 = (v1) => ({
9352
9352
  ...v1,
9353
9353
  graphStateScatter: { ...DEFAULT_SCATTER_STATE },
9354
9354
  graphStateHistogram: { ...DEFAULT_HISTOGRAM_STATE }
9355
- })).init(() => ({
9355
+ });
9356
+ const migrateV2toV2_1 = (v2) => ({
9357
+ ...v2,
9358
+ defaultBlockLabel: v2.defaultBlockLabel ?? "",
9359
+ customBlockLabel: v2.customBlockLabel ?? ""
9360
+ });
9361
+ const blockDataModel = new DataModelBuilder().from("Ver_2026_04_28").migrate("Ver_2026_05_05", migrateV1toV2).migrate("Ver_2026_05_18", migrateV2toV2_1).init(() => ({
9356
9362
  tableState: createPlDataTableStateV2(),
9363
+ defaultBlockLabel: "",
9364
+ customBlockLabel: "",
9357
9365
  graphStateScatter: { ...DEFAULT_SCATTER_STATE },
9358
9366
  graphStateHistogram: { ...DEFAULT_HISTOGRAM_STATE }
9359
9367
  }));
9360
9368
  //#endregion
9369
+ //#region src/label.ts
9370
+ const STATIC_FALLBACK = "Sequence Properties";
9371
+ function resolveSubtitle(data) {
9372
+ return data.customBlockLabel || data.defaultBlockLabel;
9373
+ }
9374
+ function resolveTraceLabel(data) {
9375
+ return data.customBlockLabel || data.defaultBlockLabel || STATIC_FALLBACK;
9376
+ }
9377
+ //#endregion
9361
9378
  //#region src/index.ts
9362
9379
  const inputAnchorSpecs = [
9363
9380
  {
@@ -9379,7 +9396,10 @@
9379
9396
  ];
9380
9397
  const platforma$1 = BlockModelV3.create(blockDataModel).args((data) => {
9381
9398
  if (data.inputAnchor === void 0) throw new Error("Select an input dataset");
9382
- return { inputAnchor: data.inputAnchor };
9399
+ return {
9400
+ inputAnchor: data.inputAnchor,
9401
+ traceLabel: resolveTraceLabel(data)
9402
+ };
9383
9403
  }).output("inputOptions", (ctx) => ctx.resultPool.getOptions(inputAnchorSpecs)).output("inputSpec", (ctx) => ctx.data.inputAnchor ? ctx.resultPool.getPColumnSpecByRef(ctx.data.inputAnchor) : void 0).output("info", (ctx) => ctx.outputs?.resolve("info")?.getDataAsJson()).output("isRunning", (ctx) => ctx.outputs?.getIsReadyOrError() === false).output("processingLog", (ctx) => ctx.outputs?.resolve("processingLog")?.getLogHandle()).outputWithStatus("propertiesTable", (ctx) => {
9384
9404
  if (ctx.data.inputAnchor === void 0) return void 0;
9385
9405
  const ownCols = ctx.outputs?.resolve("propertiesPf")?.getPColumns();
@@ -9405,7 +9425,7 @@
9405
9425
  columnId: c.id,
9406
9426
  spec: c.spec
9407
9427
  }));
9408
- }).title(() => "Sequence Properties").subtitle((ctx) => ctx.data.defaultBlockLabel ?? "").sections(() => [
9428
+ }).title(() => "Sequence Properties").subtitle((ctx) => resolveSubtitle(ctx.data)).sections(() => [
9409
9429
  {
9410
9430
  type: "link",
9411
9431
  href: "/",