Files
Aislo/docs/wiki/pages/B05_Profile/frontend/_UI_Selection.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

1.3 KiB

type, status, related_pages, page_id, last_updated
type status related_pages page_id last_updated
page-frontend-sub draft
architecture/project_map
architecture/workflow_data_flow
B05_Profile 2026-08-02

_UI_Selection — 배수/구조물 3자 선택 동기화

1. 개요 및 역할

  • 파일: B05_Profile/frontend/_UI_Selection.ts (97줄)
  • 역할: 배수유역(Canvas) ↔ 종단 그래프(SVG) ↔ 좌측 구조물 리스트/폼 ↔ 3D 뷰어 마커 간의 선택(Focus/Active) 상태를 실시간으로 양방향 동기화하여 일관된 시각적 피드백을 제공합니다.

2. 주요 기능 및 함수

  • bindSelectionSync(options):
    • 3자 간의 클릭 및 액티브 스테이트 이벤트를 구독하여 선택 상태를 일괄 갱신.
    • 특정 요소가 클릭되었을 때 다른 연관 뷰어들이 해당 요소 위치로 스크롤하거나 하이라이트하도록 이벤트 라우팅.
  • isSyncing 가드 플래그:
    • 양방향 이벤트 전파 과정에서 발생할 수 있는 무한 루프(A 클릭 -> B 선택 -> A 선택 트리거 -> B 선택 트리거...)를 완벽히 가드하여 런타임 콜스택 오버플로우 방지.

3. 의존성