// 신호 시각화. 화면 색과 신호 색, 정착 프레임 속성을 정합니다. 전선과 핀은 원천 노드의 신호로 칠합니다.
// 입력은 신호값, 프레임, 시뮬 결과와 원천 노드 아이디이고 출력은 색 문자열과 data-frame 속성 조각입니다.
// 같은 신호면 늘 같은 색과 같은 속성이 나옵니다. 페이지는 data-frame 순서로 신호를 층층이 드러냅니다.
// 도형을 그리지 않습니다.
// Signal visualization: the palette, signal colors and the settle-frame attribute.

import core.sim

export let 먹 = "#15181C"
export let 벨럼 = "#F6F7F4"
export let 흑연 = "#9AA1A8"
export let 시그널 = "#0FA3C7"
export let 고장색 = "#C0392B"
export let 라벨색 = "#6b7178"

export function 신호색(켜짐: bool) -> string {
  if 켜짐 { 시그널 } else { 흑연 }
}

export function 프레임속성(프레임: int) -> string {
  " data-frame=\"{프레임}\""
}

export function 원천색(시뮬: sim.시뮬결과, 원천노드: string) -> string {
  신호색(sim.신호로(시뮬, 원천노드).신호)
}

// 전선의 프레임은 원천 노드가 풀린 층입니다. 신호가 그 층에서 흘러 나갑니다.
export function 원천프레임(시뮬: sim.시뮬결과, 원천노드: string) -> string {
  프레임속성(sim.신호로(시뮬, 원천노드).프레임)
}
