Skip to Content

TimelineChart

시간 축 기반으로 일정/이력 데이터를 선형적으로 시각화하는 컴포넌트


개요

TimelineChart 컴포넌트는 vis-timeline 기반으로 일정 데이터를 바(Bar) 형태로 시간 축 위에 표시합니다. 일/주/월/분기 뷰 모드, 드래그 이동, 상태별 색상 구분, 항목 리스트 고정 등을 지원합니다.

주요 특징

  • 보기 모드 전환: 일 / 주 / 월 / 분기 뷰
  • 시간 축 표시: 가로 방향 시간/날짜 축
  • 항목 리스트 고정: 고정 영역 + 가로 스크롤
  • 현재 시점 표시: 오늘/현재 시간 기준선
  • 일정 바 표시: Bar 형태 일정 시각화
  • 상태 스타일: 색상으로 상태 구분
  • 드래그 이동: 일정 바 드래그로 날짜 변경

기본 상태 / 시간 축 표시 / 항목 리스트 고정

Status:
Pending
In Progress
Completed
Delayed

보기 모드 전환

일 / 주 / 월 단위 보기 모드를 전환할 수 있는 토글 UI를 제공합니다.

Status:
Pending
In Progress
Completed
Delayed

현재 시점 표시

오늘 날짜 또는 현재 시점을 기준선으로 시각적으로 표시합니다.

Status:
Pending
In Progress
Completed
Delayed

상태 스타일 표시

일정 상태(진행중, 완료, 지연 등)를 색상으로 구분하여 표시합니다.

Status:
Pending
In Progress
Completed
Delayed

드래그 이동

일정 바를 드래그하여 날짜/시간을 변경할 수 있습니다.

Status:
Pending
In Progress
Completed
Delayed

API Reference

Props

PropTypeDefaultDescription
itemsTimelineChartItem[]-일정 데이터
groupsTimelineChartGroup[]-그룹 데이터 (행 레이블)
restrictionsTimelineRestriction[][]제한 기간
viewMode"day" | "week" | "month" | "quarter""month"현재 뷰 모드
editablebooleanfalse드래그 앤 드롭 활성화
showCurrentTimebooleantrue현재 시점 표시
showCurrentTimeLinebooleantrue현재 시간 라인 표시
showViewModeTogglebooleantrue뷰 모드 토글 표시
availableViewModesTimelineViewMode[]["day","week","month"]사용 가능 뷰 모드
zoomablebooleantrue줌 활성화
moveablebooleantrue스크롤 이동 활성화
heightstring | number400높이
loadingbooleanfalse로딩 오버레이
emptyMessagestring"No items"빈 상태 메시지
classNamestring-추가 CSS 클래스

Events

EventTypeDescription
onViewModeChange(mode: TimelineViewMode) => void뷰 모드 변경 시
onItemClick(item: TimelineChartItem, event: MouseEvent) => void아이템 클릭 시
onItemDoubleClick(item: TimelineChartItem, event: MouseEvent) => void아이템 더블클릭 시
onItemChange(event: TimelineItemChangeEvent) => void드래그 완료 시
onItemMove(event: TimelineItemChangeEvent) => void그룹 간 이동 시

TimelineChartItem

PropTypeDescription
idstring | number고유 ID
contentstring일정 내용
startDate | string시작 시간
endDate | string종료 시간
groupstring | number그룹 ID
statusTimelineItemStatus상태 (색상 결정)

TimelineChartGroup

PropTypeDescription
idstring | number고유 ID
contentstring그룹 레이블
ordernumber정렬 순서

기본 사용법

import { TimelineChart, type TimelineChartItem, type TimelineChartGroup, } from "@vortex/ui-foundation" <TimelineChart items={items} groups={groups} viewMode="month" height={400} showViewModeToggle showCurrentTime />

접근성

권장 사항

  • ✅ 일정 바에 의미 있는 content 텍스트 제공
  • ✅ 색상만으로 상태를 구분하지 않고 텍스트 병행
  • ❌ 드래그 이동만으로 기능을 제공하지 않음 (키보드 대안 고려)
Last updated on