From 6d4883506c3e0bc55aedbe97e676202772ba790e Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 30 Oct 2025 08:47:48 -0700 Subject: [PATCH 1/7] Bump @labkey/api --- packages/components/package-lock.json | 8 ++++---- packages/components/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index ec27445887..ff820261f6 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.43.0", + "@labkey/api": "1.43.1-fb-lineage-53449.0", "@testing-library/dom": "~10.4.0", "@testing-library/jest-dom": "~6.6.3", "@testing-library/react": "~16.3.0", @@ -3492,9 +3492,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.43.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.43.0.tgz", - "integrity": "sha512-4hOQz+pM/QaCey6ooJEmEbElnR9+TDEzWG+8caFfeIX1iAg1335NXW3+/Xzs6a+L9ysRKds8bNgFPu2sxjPzfg==", + "version": "1.43.1-fb-lineage-53449.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.43.1-fb-lineage-53449.0.tgz", + "integrity": "sha512-+XxtdM9muhAf2IuAhg4TGQnEOSkYiZGLfDhaEhaUJ1X6fSmcSuy1Czd+xGK1ufmkvTsCKQaUjq7D8i4MpOZtAg==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { diff --git a/packages/components/package.json b/packages/components/package.json index e3775e88e5..474dbe1d26 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/LabKey/labkey-ui-components#readme", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.43.0", + "@labkey/api": "1.43.1-fb-lineage-53449.0", "@testing-library/dom": "~10.4.0", "@testing-library/jest-dom": "~6.6.3", "@testing-library/react": "~16.3.0", From 1bbe07490dbe8f418cd0ae2d25227ef36f869eff Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Thu, 30 Oct 2025 09:06:22 -0700 Subject: [PATCH 2/7] Issue 53449: use lineage node containerPath --- packages/components/src/internal/components/lineage/models.ts | 2 ++ .../src/internal/components/lineage/node/LineageDetail.tsx | 2 +- .../src/internal/components/lineage/node/LineageNodeDetail.tsx | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/components/src/internal/components/lineage/models.ts b/packages/components/src/internal/components/lineage/models.ts index 4ef0cd00cd..1b03ec0791 100644 --- a/packages/components/src/internal/components/lineage/models.ts +++ b/packages/components/src/internal/components/lineage/models.ts @@ -170,6 +170,7 @@ export class LineageRunStep implements LineageRunStepConfig { readonly activityDate: string; readonly activitySequence: number; readonly container: string; + readonly containerPath: string; readonly created: string; readonly createdBy: string; readonly dataInputs: LineageIO[]; @@ -202,6 +203,7 @@ export class LineageIO implements LineageItemWithMetadata { [immerable] = true; readonly container: string; + readonly containerPath: string; readonly created: string; readonly createdBy: string; readonly expType: string; diff --git a/packages/components/src/internal/components/lineage/node/LineageDetail.tsx b/packages/components/src/internal/components/lineage/node/LineageDetail.tsx index d6e6e9cadd..d9b5f188ca 100644 --- a/packages/components/src/internal/components/lineage/node/LineageDetail.tsx +++ b/packages/components/src/internal/components/lineage/node/LineageDetail.tsx @@ -49,7 +49,7 @@ export const LineageDetail: FC = memo(({ item }) => { () => ({ model: { baseFilters: item.pkFilters.map(pkFilter => Filter.create(pkFilter.fieldKey, pkFilter.value)), - containerPath: item.container, + containerPath: item.containerPath, // Issue 45028: Display details view columns in lineage schemaQuery: new SchemaQuery(item.schemaName, item.queryName, ViewInfo.DETAIL_NAME), // Must specify '*' columns be requested to resolve "properties" columns diff --git a/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx b/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx index c665fb9231..d85e1e4d08 100644 --- a/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx +++ b/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx @@ -75,7 +75,7 @@ export class LineageNodeDetail extends PureComponent Date: Thu, 30 Oct 2025 09:06:36 -0700 Subject: [PATCH 3/7] 6.67.2-fb-lineage-53449.0 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index ff820261f6..350a322e16 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.67.1", + "version": "6.67.2-fb-lineage-53449.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.67.1", + "version": "6.67.2-fb-lineage-53449.0", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index 474dbe1d26..826f94bf57 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.67.1", + "version": "6.67.2-fb-lineage-53449.0", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [ From 7cf9b45827522cd2d0f433c09d3cdecd998d0107 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Fri, 31 Oct 2025 12:08:29 -0700 Subject: [PATCH 4/7] Prepare release notes --- packages/components/releaseNotes/components.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/components/releaseNotes/components.md b/packages/components/releaseNotes/components.md index 20395bd421..4cc70dfcaa 100644 --- a/packages/components/releaseNotes/components.md +++ b/packages/components/releaseNotes/components.md @@ -1,6 +1,11 @@ # @labkey/components Components, models, actions, and utility functions for LabKey applications and pages +### version 6.67.2 +*Released* 31 October 2025 +- Issue 53449: resolve lineage items from container path + - Refer to `item.containerPath` instead of `item.container` in lineage details + ### version 6.67.1 *Released* 29 October 2025 - Issue 53563: Domain designer lookups don't show newly added entity types after initial load/view From 9da7c4b067eaf476067ddf5da03205a60323aa35 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Fri, 31 Oct 2025 12:10:03 -0700 Subject: [PATCH 5/7] lint --- .../src/internal/components/lineage/models.ts | 42 +++++++++---------- .../components/lineage/node/LineageDetail.tsx | 30 ++++++------- .../lineage/node/LineageNodeDetail.tsx | 8 ++-- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/packages/components/src/internal/components/lineage/models.ts b/packages/components/src/internal/components/lineage/models.ts index 1b03ec0791..43cb850b4f 100644 --- a/packages/components/src/internal/components/lineage/models.ts +++ b/packages/components/src/internal/components/lineage/models.ts @@ -3,7 +3,7 @@ * any form or by any electronic or mechanical means without written permission from LabKey Corporation. */ import { immerable, produce } from 'immer'; -import { List, Map, Record as ImmutableRecord } from 'immutable'; +import { Record as ImmutableRecord, List, Map } from 'immutable'; import { DataSet } from 'vis-data'; import { Edge, IdType, Node } from 'vis-network'; @@ -159,9 +159,9 @@ export interface LineageIOWithMetadata extends LineageIOConfig { objectOutputs?: LineageItemWithMetadata[]; } -export interface LineageItemWithIOMetadata extends LineageItemWithMetadata, LineageIOWithMetadata {} +export interface LineageItemWithIOMetadata extends LineageIOWithMetadata, LineageItemWithMetadata {} -export interface LineageRunStepConfig extends Experiment.LineageRunStepBase, LineageItemWithIOMetadata {} +export interface LineageRunStepConfig extends LineageItemWithIOMetadata, Experiment.LineageRunStepBase {} export class LineageRunStep implements LineageRunStepConfig { [immerable] = true; @@ -248,15 +248,15 @@ export class LineageIO implements LineageItemWithMetadata { } interface LineageNodeConfig - extends Omit, - LineageItemWithIOMetadata { - children: List | LineageLink[] | ILineageLink[]; + extends LineageItemWithIOMetadata, + Omit { + children: ILineageLink[] | LineageLink[] | List; // computed properties distance: number; listURL: string; meta: LineageNodeMetadata; - parents: List | LineageLink[] | ILineageLink[]; + parents: ILineageLink[] | LineageLink[] | List; steps: List; } @@ -396,11 +396,11 @@ export class LineageResult extends ImmutableRecord({ }); } - filterIn(field: string, value: undefined | string | string[]): LineageResult { + filterIn(field: string, value: string | string[] | undefined): LineageResult { return LineageResult._filter(this, field, value, true); } - filterOut(field: string, value: undefined | string | string[]): LineageResult { + filterOut(field: string, value: string | string[] | undefined): LineageResult { return LineageResult._filter(this, field, value, false); } @@ -414,7 +414,7 @@ export class LineageResult extends ImmutableRecord({ private static _filter( result: LineageResult, field: string, - value: undefined | string | string[], + value: string | string[] | undefined, filterIn: boolean ): LineageResult { if (field === undefined) throw new Error('field must not be undefined'); @@ -461,7 +461,7 @@ export class LineageResult extends ImmutableRecord({ private static _matches( node: LineageNode, field: string, - value: undefined | string | string[], + value: string | string[] | undefined, filterIn: boolean ): boolean { if (filterIn) { @@ -512,7 +512,7 @@ export class LineageResult extends ImmutableRecord({ value: any, filterIn: boolean, walked: Record - ): Array<{ lsid: string; role: string }> { + ): { lsid: string; role: string }[] { let heritage = []; const lsid = edge.lsid; const toNode = nodes.get(lsid); @@ -633,7 +633,7 @@ export class Lineage { export class LineageGridModel { [immerable] = true; - readonly columns: List = LINEAGE_GRID_COLUMNS; + readonly columns: List = LINEAGE_GRID_COLUMNS; readonly data: List = List(); readonly distance: number = DEFAULT_LINEAGE_DISTANCE; readonly isError: boolean = false; @@ -692,7 +692,7 @@ interface VisGraphClusterNode { nodesInCluster: VisGraphNodeType[]; } -export type VisGraphNodeType = VisGraphNode | VisGraphCombinedNode | VisGraphClusterNode; +export type VisGraphNodeType = VisGraphClusterNode | VisGraphCombinedNode | VisGraphNode; export function isBasicNode(item: VisGraphNodeType): item is VisGraphNode { return item && item.kind === 'node'; @@ -711,7 +711,7 @@ export class VisGraphOptions { readonly edges: DataSet; readonly initialSelection: string[]; - readonly nodes: DataSet; + readonly nodes: DataSet; readonly options: Record; constructor(config?: Partial) { @@ -732,7 +732,7 @@ function makeEdgeId(fromId: IdType, toId: IdType): string { type EdgesRecord = Record; type LineageNodesRecord = Record; type NodesInCombinedNode = Record; -type VisNodesRecord = Record; +type VisNodesRecord = Record; /** * Create an edge between fromId -> toId when dir === Child. @@ -988,7 +988,7 @@ export interface LineageNodeCollection { queryName: string; } -export function isAliquotNode(node: LineageNodeCollection | LineageNode): boolean { +export function isAliquotNode(node: LineageNode | LineageNodeCollection): boolean { return node.materialLineageType === 'Aliquot'; } @@ -1151,7 +1151,7 @@ function groupingBoundary( grouping: LineageGroupingOptions, depth: number, dir: LINEAGE_DIRECTIONS, - depthSets: Array> + depthSets: Record[] ): boolean { if (grouping) { // Nearest only examines the first parent and child generations (depth = 1) from seed @@ -1208,7 +1208,7 @@ function level(depth: number, dir: LINEAGE_DIRECTIONS, combined: boolean): numbe * level, however, after further walking the graph it could be that this node needs to be moved to a different level * given a parent/child at a higher/lower depth. See Issue 51425. */ -function reprocessLevel(visNode: VisGraphNode | VisGraphCombinedNode, dir: LINEAGE_DIRECTIONS, depth: number): void { +function reprocessLevel(visNode: VisGraphCombinedNode | VisGraphNode, dir: LINEAGE_DIRECTIONS, depth: number): void { if (!visNode) return; const currentLevel = visNode.level; @@ -1263,7 +1263,7 @@ function processNodes( nodesInCombinedNode: NodesInCombinedNode, depth = 0, processed: Record = {}, - depthSets: Array> = [] + depthSets: Record[] = [] ): void { if (processed[lsid] === true) { // We have already seen this node, however, this now might be at a greater depth so reprocess the level @@ -1469,7 +1469,7 @@ export function generate(result: LineageResult, options?: LineageOptions): VisGr const { edges, nodes } = generateNodesAndEdges(result, options); return new VisGraphOptions({ - nodes: new DataSet(Object.values(nodes)), + nodes: new DataSet(Object.values(nodes)), edges: new DataSet(Object.values(edges)), // vis.js options described in detail here: https://visjs.github.io/vis-network/docs/network/ diff --git a/packages/components/src/internal/components/lineage/node/LineageDetail.tsx b/packages/components/src/internal/components/lineage/node/LineageDetail.tsx index d9b5f188ca..6b9b7d7ae6 100644 --- a/packages/components/src/internal/components/lineage/node/LineageDetail.tsx +++ b/packages/components/src/internal/components/lineage/node/LineageDetail.tsx @@ -18,7 +18,7 @@ export interface LineageDetailProps { item: Experiment.LineageItemBase; } -const LineageDetailImpl: FC = memo(props => { +const LineageDetailImpl: FC = memo(props => { const { queryModels } = props; if (queryModels.model.isLoading) return ; if (queryModels.model.hasLoadErrors) return {queryModels.model.loadErrors[0]}; @@ -33,10 +33,10 @@ const LineageDetailImpl: FC = memo(pro return ( ); }); @@ -60,7 +60,7 @@ export const LineageDetail: FC = memo(({ item }) => { ); // providing "key" to allow for reload on lsid change - return ; + return ; }); LineageDetail.displayName = 'LineageDetail'; @@ -73,17 +73,19 @@ export const CustomPropertiesRenderer: FC = memo(({ data }) => { return ( - {data?.map(row => { - const fieldKey = row.get('fieldKey'); - const name = fieldKey.substring(fieldKey.indexOf('#') + 1); + {data + ?.map(row => { + const fieldKey = row.get('fieldKey'); + const name = fieldKey.substring(fieldKey.indexOf('#') + 1); - return ( - - - - - ); - }).toArray()} + return ( + + + + + ); + }) + .toArray()}
{name}{row.get('value')}
{name}{row.get('value')}
); diff --git a/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx b/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx index d85e1e4d08..ff9e1708f3 100644 --- a/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx +++ b/packages/components/src/internal/components/lineage/node/LineageNodeDetail.tsx @@ -10,9 +10,9 @@ import { LineageSummary } from '../LineageSummary'; import { createLineageNodeCollections, isAliquotNode, - LineageNodeCollectionByType, LineageIOWithMetadata, LineageNode, + LineageNodeCollectionByType, } from '../models'; import { LineageOptions } from '../types'; @@ -148,10 +148,10 @@ export class ClusterNodeDetail extends PureComponent { ); return ( ); })} @@ -192,7 +192,7 @@ const RunStepNodeDetail: FC = memo(props => { {hasProvenanceModule && ( - + )} From f875512796d154d48d6f57717668797c20ab3099 Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Fri, 31 Oct 2025 12:12:25 -0700 Subject: [PATCH 6/7] Bump @labkey/api --- packages/components/package-lock.json | 8 ++++---- packages/components/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 350a322e16..0ebc8717c5 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -10,7 +10,7 @@ "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.43.1-fb-lineage-53449.0", + "@labkey/api": "1.43.1", "@testing-library/dom": "~10.4.0", "@testing-library/jest-dom": "~6.6.3", "@testing-library/react": "~16.3.0", @@ -3492,9 +3492,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.43.1-fb-lineage-53449.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.43.1-fb-lineage-53449.0.tgz", - "integrity": "sha512-+XxtdM9muhAf2IuAhg4TGQnEOSkYiZGLfDhaEhaUJ1X6fSmcSuy1Czd+xGK1ufmkvTsCKQaUjq7D8i4MpOZtAg==", + "version": "1.43.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.43.1.tgz", + "integrity": "sha512-PkbI+OlnljpSLO7PkwfRRw/AH76pRRZbF8929ygxVZsrBXVFDSR+lSsSbJREiuMWkBTVcAOycwftwZB/O4QGHw==", "license": "Apache-2.0" }, "node_modules/@labkey/build": { diff --git a/packages/components/package.json b/packages/components/package.json index 826f94bf57..bb64ea7922 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -50,7 +50,7 @@ "homepage": "https://github.com/LabKey/labkey-ui-components#readme", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.43.1-fb-lineage-53449.0", + "@labkey/api": "1.43.1", "@testing-library/dom": "~10.4.0", "@testing-library/jest-dom": "~6.6.3", "@testing-library/react": "~16.3.0", From 2b14dd3d4f995c26d286d1ee0cf209b6e7a02b4c Mon Sep 17 00:00:00 2001 From: labkey-nicka Date: Fri, 31 Oct 2025 12:12:48 -0700 Subject: [PATCH 7/7] v6.67.2 --- packages/components/package-lock.json | 4 ++-- packages/components/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/components/package-lock.json b/packages/components/package-lock.json index 0ebc8717c5..303de0d6a7 100644 --- a/packages/components/package-lock.json +++ b/packages/components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@labkey/components", - "version": "6.67.2-fb-lineage-53449.0", + "version": "6.67.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@labkey/components", - "version": "6.67.2-fb-lineage-53449.0", + "version": "6.67.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { "@hello-pangea/dnd": "18.0.1", diff --git a/packages/components/package.json b/packages/components/package.json index bb64ea7922..07bf8bf80c 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@labkey/components", - "version": "6.67.2-fb-lineage-53449.0", + "version": "6.67.2", "description": "Components, models, actions, and utility functions for LabKey applications and pages", "sideEffects": false, "files": [