goldenChat base source add
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* ChartHoverToolbar
|
||||
* 차트 영역에 마우스 오버 시 하단 중앙에 표시되는 플로팅 툴바.
|
||||
* - 마우스가 차트 영역을 벗어나면 사라진다.
|
||||
* - 버튼: 줌아웃(−), 줌인(+), 전체보기(⌐┘), 왼쪽(‹), 오른쪽(›)
|
||||
*/
|
||||
import React from 'react';
|
||||
|
||||
interface ChartHoverToolbarProps {
|
||||
onZoomOut: () => void;
|
||||
onZoomIn: () => void;
|
||||
onFit: () => void;
|
||||
onScrollLeft: () => void;
|
||||
onScrollRight: () => void;
|
||||
/** 멀티차트 모드에서 이 슬롯을 단일 전체화면으로 확장. 없으면 기본 fitContent() 사용 */
|
||||
onFullView?: () => void;
|
||||
}
|
||||
|
||||
const ChartHoverToolbar: React.FC<ChartHoverToolbarProps> = ({
|
||||
onZoomOut, onZoomIn, onFit, onScrollLeft, onScrollRight, onFullView,
|
||||
}) => (
|
||||
<div className="chart-hover-toolbar" onMouseDown={e => e.stopPropagation()}>
|
||||
<button className="cht-btn" onClick={onZoomOut} title="축소 (−)">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round">
|
||||
<line x1="2" y1="7" x2="12" y2="7"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button className="cht-btn" onClick={onZoomIn} title="확대 (+)">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round">
|
||||
<line x1="7" y1="2" x2="7" y2="12"/>
|
||||
<line x1="2" y1="7" x2="12" y2="7"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
{/* 멀티차트: 단일 전체화면 전환 / 단일차트: 전체 데이터 핏 */}
|
||||
<button className="cht-btn" onClick={onFullView ?? onFit} title={onFullView ? '단일 차트로 전환' : '전체 보기'}>
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round">
|
||||
<polyline points="5,1 1,1 1,5"/>
|
||||
<polyline points="9,13 13,13 13,9"/>
|
||||
<line x1="1" y1="1" x2="6" y2="6"/>
|
||||
<line x1="13" y1="13" x2="8" y2="8"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button className="cht-btn" onClick={onScrollLeft} title="왼쪽으로 이동 (과거)">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
||||
<polyline points="9,2 4,7 9,12"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button className="cht-btn" onClick={onScrollRight} title="오른쪽으로 이동 (최근)">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
||||
<polyline points="5,2 10,7 5,12"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
|
||||
export default ChartHoverToolbar;
|
||||
Reference in New Issue
Block a user