Documentation / @finchart/tools / DrawingToolsApi
Interface: DrawingToolsApi
Defined in: tools/src/tools.ts:165
플러그인이 돌려주는 것.
dispose는 여러 번 불려도 안전해야 한다 — 무대의 destroy()가 설치한 것을 전부 정리하는데, 사용자가 이미 손으로 정리했을 수 있기 때문이다.
disposed가 계약인 이유는 셋이다: ⑴ 죽은 API를 무대가 놓아준다(안 그러면 토글마다 클로저가 쌓인다) ⑵ 플러그인이 자기 정리 뒤의 호출을 막는다 ⑶ 생명주기 상태를 밖에서 관측할 수 있다.
직접 구현하지 말고 teardown·pluginApi를 쓴다 — 특히 스프레드로 합치지 않는다({ ...teardown(fn), add }). 스프레드는 접근자를 그 순간의 값으로 복사해서 disposed가 영영 false로 굳는다.
Extends
Properties
changes
readonlychanges:Observable<DrawingsChange>
Defined in: tools/src/tools.ts:214
목록이 바뀌었다. 드래그로 옮긴 결과도 여기로 온다.
disposed
readonlydisposed:boolean
Defined in: core/dist/plot/plugin.d.ts:22
Inherited from
modeChanges
readonlymodeChanges:Observable<DrawingModeChange>
Defined in: tools/src/tools.ts:181
selectionChanges
readonlyselectionChanges:Observable<DrawingSelectionChange>
Defined in: tools/src/tools.ts:219
선택이 바뀌었다 — 포인터·더블클릭·우클릭·]·[·select·해제, 모든 경로가 여기로 온다. 앱의 속성 패널·휴지통 버튼이 듣는 자리다.
Methods
add()
add(
drawing,options?):DrawingHandle
Defined in: tools/src/tools.ts:170
프로그램으로 얹는다. 기본은 선택하지 않는다 — 손으로 그으면 완성과 함께 선택되는 것과 다른 의도적 비대칭이다(AddDrawingOptions.select).
Parameters
drawing
options?
Returns
applyOptions()
applyOptions(
patch):void
Defined in: tools/src/tools.ts:221
준 자리만 바꾼다. 다시 세우면 그려 둔 선이 전부 사라진다.
Parameters
patch
Partial<DrawingToolsStyleOptions>
Returns
void
begin()
begin(
kind):void
Defined in: tools/src/tools.ts:176
다음 입력이 이 종류를 긋는다. 수평선은 누른 가격에 놓이고, 추세선· 피보나치는 클릭-드래그도 클릭-이동-클릭도 된다 — 누른 자리가 a, 놓거나 다시 누른 자리가 b다. 완성되면 선택되고 대기는 스스로 풀린다.
Parameters
kind
"horizontal" | "trend" | "fib"
Returns
void
cancel()
cancel():
void
Defined in: tools/src/tools.ts:178
긋는 중이던 것을 버리고 대기도 푼다. Esc가 부르는 것과 같다.
Returns
void
clear()
clear():
void
Defined in: tools/src/tools.ts:209
Returns
void
dispose()
dispose():
void
Defined in: core/dist/plot/plugin.d.ts:21
Returns
void
Inherited from
handles()
handles():
DrawingHandle[]
Defined in: tools/src/tools.ts:208
list()와 같은 순서의 손잡이들.
add만 손잡이를 발급하면 새로고침 뒤 load로 복원된 드로잉은 개별 지목·삭제가 안 되고 clear()만 남는다 — 그래서 목록 전체에 손잡이를 낸다. 매번 새 객체를 내도 된다: 신원이 아니라 가리키는 대상이 계약이라 select·remove가 그대로 동작한다.
Returns
list()
list():
Drawing[]
Defined in: tools/src/tools.ts:199
복사본들 — 밖에서 고쳐도 무대는 모른다. 고치려면 손잡이·드래그로.
Returns
Drawing[]
load()
load(
payload):boolean
Defined in: tools/src/tools.ts:212
못 읽으면 false를 돌려주고 기존 목록을 지킨다 — 던지지 않는다.
Parameters
payload
string
Returns
boolean
mode()
mode():
"horizontal"|"trend"|"fib"|null
Defined in: tools/src/tools.ts:180
지금 기다리거나 긋는 중인 종류. 없으면 null.
Returns
"horizontal" | "trend" | "fib" | null
select()
select(
handle):void
Defined in: tools/src/tools.ts:197
선택을 프로그램으로 연다 — 포인터 히트 없이도 키보드나 앱(목록 패널 → 차트 하이라이트)에서 선택을 걸 수 있다.
add가 돌려준 손잡이로 지목하고, null이 해제다. 이미 지운 드로잉의 손잡이면 던진다 — 조용히 성공하면 "된 것처럼 보이는 실패"다.
Parameters
handle
DrawingHandle | null
Returns
void
selection()
selection():
Drawing|null
Defined in: tools/src/tools.ts:189
지금 선택된 드로잉 — 복사본이다. 없으면 null.
선택은 포인터 히트, select, 키보드 순회(]·[)로 생기고, 빈 곳을 누르거나 Esc로 풀리며 Delete/Backspace가 지운다. 세션 상태라 직렬화에는 안 실린다.
Returns
Drawing | null
serialize()
serialize():
string
Defined in: tools/src/tools.ts:210
Returns
string
setSnap()
setSnap(
on):void
Defined in: tools/src/tools.ts:226
자석을 켜고 끈다 — 작도·앵커 드래그가 봉의 값(종가·저가·고가)과 봉 x에 붙는다. 긋던 것에는 다음 포인터부터 적용된다.
Parameters
on
boolean
Returns
void
snapping()
snapping():
boolean
Defined in: tools/src/tools.ts:228
자석이 켜져 있는가 — 토글 버튼의 aria-pressed가 묻는 자리.
Returns
boolean