돋보기 화면창 수정

This commit is contained in:
Macbook
2026-06-16 23:45:57 +09:00
parent 5acaaabc76
commit e4611404a9
+14 -2
View File
@@ -54,6 +54,18 @@ function nearestStepIndex(steps: number[], cur: number): number {
return best; return best;
} }
/** LWC chart-container + 래퍼 오버레이(매매 시그널 라벨·드로잉) 캔버스 — DOM 순서 유지 */
function collectMagnifierChartLayers(
container: HTMLElement,
wrapper: HTMLElement,
): HTMLCanvasElement[] {
const containerLayers = Array.from(container.querySelectorAll<HTMLCanvasElement>('canvas'));
const containerSet = new Set(containerLayers);
const overlayLayers = Array.from(wrapper.querySelectorAll<HTMLCanvasElement>('canvas'))
.filter(c => !containerSet.has(c) && !c.classList.contains('chart-magnifier-canvas'));
return [...containerLayers, ...overlayLayers];
}
const ChartMagnifier: React.FC<ChartMagnifierProps> = ({ const ChartMagnifier: React.FC<ChartMagnifierProps> = ({
containerRef, wrapperRef, enabled, onClose, containerRef, wrapperRef, enabled, onClose,
}) => { }) => {
@@ -126,8 +138,8 @@ const ChartMagnifier: React.FC<ChartMagnifierProps> = ({
const ssrcL = srcL; const ssrcL = srcL;
const ssrcT = srcT; const ssrcT = srcT;
// LWC 캔버스 레이어 순서대로 복사 // LWC 캔버스 + 매매 시그널 라벨·드로잉 오버레이 (tv-chart-wrap 자식) 순서대로 복사
const layers = Array.from(container.querySelectorAll<HTMLCanvasElement>('canvas')); const layers = collectMagnifierChartLayers(container, wrapper);
for (const lc of layers) { for (const lc of layers) {
const cRect = lc.getBoundingClientRect(); const cRect = lc.getBoundingClientRect();
const csX = (ssrcL - cRect.left) * dpr; const csX = (ssrcL - cRect.left) * dpr;