import { ReactGanttChart, type GanttProps } from '@jaeungkim/gantt-chart';
모든 prop은 생략할 수 있어요. 아래 표에 나오는 타입은 모두 패키지 루트에서 내보내요. Dayjs,
ReactNode, React.MouseEvent만 예외예요. 기본값 열에는 컴포넌트가 쓰는 대체 값이 들어가요.
없음은 대체 값이 없다는 뜻이고 그 prop이 켜는 기능도 꺼진 채로 있어요.
selectable에는 고정된 기본값이 없어요. 생략하면 onTaskSelect를 넘긴 경우에 선택이 켜지고
상세 패널이 켜져 있을 때도 함께 켜져요. 콜백 없이 강조만 쓰려면 true를 넘기고 아예 끄려면
false를 넘기세요.
showDetail도 같은 방식이에요. 생략하면 renderDetail을 넘긴 경우에만 상세 패널이 켜져요.
패널을 켜면 selectable을 따로 넘기지 않는 한 행 선택도 함께 켜져요.
상세 패널 참고.
allowMove와 allowResize, allowProgressChange, allowTaskCreate, allowLinkCreate,
allowLinkDelete의 기본값은 true가 아니라 !readOnly예요. 같은 이름의 작업별 플래그가 차트
쪽 설정보다 우선하고 작업의 readOnly는 그 둘 사이에 놓여요.
GanttInteractionConfig 참고.
allowTaskCreate만으로는 아무것도 만들어지지 않으니 onTaskCreate도 함께 넘기세요. 없으면
버튼과 제스처가 생기지 않고 addTask()도 아무 일도 하지 않아요.
allowReorder의 기본값은 !readOnly가 아니라 false예요. 켜기 전까지는 행 그립이 생기지 않고
순서 바꾸기 키도 아무 일도 하지 않아요. 작업의 allowReorder가 우선하고 작업의
readOnly: true는 이 플래그를 막아요. 차트의 readOnly는 참조하지 않아요.
GanttInteractionConfig 참고.
defaultScale은 제어 값이 아니라 초기값이에요. 차트를 만들 때 한 번만 읽어서 첫 렌더링부터 그
배율로 그려요. 그 뒤에 prop을 바꿔도 무시하고 onScaleChange도 호출되지 않아요. 저장하는 값이
없어서 다시 마운트하면 초기값에서 다시 출발해요.
collapsedIds와 defaultCollapsedIds는 한 값을 제어 모드와 비제어 모드로 나눈 prop이에요.
collapsedIds를 넘기면 차트는 그 목록을 보여주고 자체 추적을 멈춰요. onCollapsedChange는
두 방식 모두에서 호출돼요.
theme에는 기본값이 없어요. 생략하면 호스트 페이지의 color-scheme을 따르고, 'system'은 OS
설정을 읽고, 'light'와 'dark'는 서버 렌더링을 포함해 어디서나 그대로 적용돼요. 해결 순서
표는 테마에 있어요.
visibleStart와 visibleEnd는 서로 독립이에요. 한쪽 끝을 고정하면 그쪽으로는
infiniteScroll이 범위를 늘리지 못하고 반대쪽은 계속 늘어나요.
workingCalendar는 workingWeekdays와 holidays로 달력을 만들어요. 이 두 prop은
showNonWorkingDays 음영을 결정하는 prop과 같아요.
workingWeekdays와 holidays는 내용이 아니라 참조로 비교해요. 렌더마다 새 배열을 넘기면
렌더마다 달력을 다시 만들어요.