Skip to content

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

readonly changes: Observable<DrawingsChange>

Defined in: tools/src/tools.ts:214

목록이 바뀌었다. 드래그로 옮긴 결과도 여기로 온다.


disposed

readonly disposed: boolean

Defined in: core/dist/plot/plugin.d.ts:22

Inherited from

PluginApi.disposed


modeChanges

readonly modeChanges: Observable<DrawingModeChange>

Defined in: tools/src/tools.ts:181


selectionChanges

readonly selectionChanges: 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

Drawing

options?

AddDrawingOptions

Returns

DrawingHandle


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

PluginApi.dispose


handles()

handles(): DrawingHandle[]

Defined in: tools/src/tools.ts:208

list()와 같은 순서의 손잡이들.

add만 손잡이를 발급하면 새로고침 뒤 load로 복원된 드로잉은 개별 지목·삭제가 안 되고 clear()만 남는다 — 그래서 목록 전체에 손잡이를 낸다. 매번 새 객체를 내도 된다: 신원이 아니라 가리키는 대상이 계약이라 select·remove가 그대로 동작한다.

Returns

DrawingHandle[]


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