/* ============================================================================= * A00_Common/design/design_user_pick.ts * 「사용자 고름」 표시 한 칸(PLAN 398-1) — 좌측 패널 저절로 펴기(09-04 「바깥에서 고르면 좌측 패널도」)는 * 사용자가 직접 누른 고름에서만. * * 사용자 고름 = 지금 브라우저가 진짜 누름(포인터 · 마우스 · 우클릭)을 처리하는 중 — 눈금 · 마름모 · 3D · * 종단 알약 · 배수유역도 · 횡단 카드 · 우클릭 추가가 다 그 누름 안에서 폼을 엶. * 아님 = 누름 밖(서버 응답 · 타이머 — 배수유역 다시 나눔 · 횡단 다시 그림) · 방향키 · 묶음이 도는 동안 * (교점 끌기 · 곡선 지우기 · 되돌리기가 띄운 차례의 관 · 구조물 따라가기 · 다시 칠하기). * 폼이 고른 것을 다시 실을 때마다 부르는 쪽을 막지 않고 펴기 한 곳(`design_shared` onReveal)이 여기만 봄. * ========================================================================== */ import { pageBusy } from "./design_page_data"; const PICK_EVENTS = new Set([ "pointerdown", "pointerup", "mousedown", "mouseup", "click", "dblclick", "contextmenu", ]); /** 지금 사용자 누름 안이고 묶음이 안 도는가 — 좌측 패널을 펴도 되는가. */ export function isUserPick(projectId: string | null): boolean { const event = (globalThis as { event?: Event }).event; // 처리 중인 이벤트(그 마이크로태스크까지) if (!event?.isTrusted || !PICK_EVENTS.has(event.type)) return false; return !projectId || !pageBusy(projectId); }