All files / src/pages/flowsheet-page/flowsheet/Canvas renderTrackingStyles.ts

41.17% Statements 7/17
37.5% Branches 3/8
0% Functions 0/2
33.33% Lines 5/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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      76x                                 8015x 8015x                                           3157x                               2151x        
import { SimulationObjectRead } from "@/api/apiStore.gen";
import { isStream } from "../../../../lib/isStream";
 
export const TRACKED_STREAM_DIMMED_OPACITY = 0.25;
 
type TrackableConnection = {
  stream: number;
  unitOp: number;
};
 
type TrackableRecycleConnection = {
  tearObject: number;
  simulationObject: number;
};
 
export function collectTrackedConnectedUnitOpIds(
  trackedStreamIds: Set<number> | undefined,
  connectionGraphics: TrackableConnection[] | undefined,
  recycleConnections: TrackableRecycleConnection[] | undefined,
) {
  const connectedUnitOpIds = new Set<number>();
  if (!trackedStreamIds?.size) return connectedUnitOpIds;
 
  connectionGraphics?.forEach((connection) => {
    if (trackedStreamIds.has(connection.stream)) {
      connectedUnitOpIds.add(connection.unitOp);
    }
  });
 
  recycleConnections?.forEach((connection) => {
    if (trackedStreamIds.has(connection.tearObject)) {
      connectedUnitOpIds.add(connection.simulationObject);
    }
  });
 
  return connectedUnitOpIds;
}
 
export function trackedNodeOpacity(
  simulationObject: SimulationObjectRead,
  trackedStreamIds: Set<number> | undefined,
  trackedConnectedUnitOpIds: Set<number>,
) {
  if (!trackedStreamIds?.size) return undefined;
  const isTrackedStream = trackedStreamIds.has(simulationObject.id);
  const isConnectedUnitOp = trackedConnectedUnitOpIds.has(simulationObject.id);
 
  if (isStream(simulationObject)) {
    return isTrackedStream ? undefined : TRACKED_STREAM_DIMMED_OPACITY;
  }
 
  return isConnectedUnitOp ? undefined : TRACKED_STREAM_DIMMED_OPACITY;
}
 
export function trackedEdgeOpacity(
  streamId: number,
  trackedStreamIds: Set<number> | undefined,
) {
  if (!trackedStreamIds?.size || trackedStreamIds.has(streamId)) {
    return undefined;
  }
  return TRACKED_STREAM_DIMMED_OPACITY;
}