Skip to content

@ue-too/board / index / KmtIdleState

類別: KmtIdleState

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:233

IDLE state - default state waiting for user input.

備註

This is the default state of the KMT input state machine. It handles scroll events for panning and zooming, and transitions to pan-ready states when the user presses spacebar or middle-click.

Responsibilities:

  • Process scroll events (pan or zoom depending on device and modifiers)
  • Detect spacebar press to enter pan mode
  • Detect middle-click to enter pan mode
  • Distinguish between mouse and trackpad input modalities

Scroll Behavior:

  • Ctrl + Scroll: Always zoom (both mouse and trackpad)
  • Scroll (no Ctrl): Pan (trackpad) or Zoom (mouse, determined by modality detection)

Input Modality Detection: The state tracks horizontal scroll deltas to distinguish trackpads (which produce deltaX) from mice (which typically only produce deltaY). This affects zoom behavior.

Extends

建構函式

建構函式

new KmtIdleState(): KmtIdleState

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:239

回傳

KmtIdleState

覆寫了

TemplateState< KmtInputEventMapping, KmtInputContext, KmtInputStates, KmtInputEventOutputMapping >.constructor

屬性

_defer

protected _defer: Defer<KmtInputContext, KmtInputEventMapping, "IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", KmtInputEventOutputMapping> | undefined

定義於: packages/being/dist/interface.d.ts:493

繼承自

TemplateState._defer


_delay

protected _delay: Delay<KmtInputContext, KmtInputEventMapping, "IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", KmtInputEventOutputMapping> | undefined

定義於: packages/being/dist/interface.d.ts:492

繼承自

TemplateState._delay


_eventGuards

protected _eventGuards: Partial<EventGuards<KmtInputEventMapping, KmtInputStates, KmtInputContext, Guard<KmtInputContext>>> = {}

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:247

覆寫了

TemplateState._eventGuards


_eventReactions

protected _eventReactions: EventReactions<KmtInputEventMapping, KmtInputContext, KmtInputStates, KmtInputEventOutputMapping>

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:318

覆寫了

TemplateState._eventReactions


_guards

protected _guards: Guard<KmtInputContext, "isIdle">

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:243

覆寫了

TemplateState._guards

存取器

delay

Getter 簽章

get delay(): Delay<Context, EventPayloadMapping, States, EventOutputMapping> | undefined

定義於: packages/being/dist/interface.d.ts:498

回傳

Delay<Context, EventPayloadMapping, States, EventOutputMapping> | undefined

繼承自

TemplateState.delay


eventGuards

Getter 簽章

get eventGuards(): Partial<EventGuards<EventPayloadMapping, States, Context, Guard<Context>>>

定義於: packages/being/dist/interface.d.ts:496

回傳

Partial<EventGuards<EventPayloadMapping, States, Context, Guard<Context>>>

繼承自

TemplateState.eventGuards


eventReactions

Getter 簽章

get eventReactions(): EventReactions<EventPayloadMapping, Context, States, EventOutputMapping>

定義於: packages/being/dist/interface.d.ts:497

回傳

EventReactions<EventPayloadMapping, Context, States, EventOutputMapping>

繼承自

TemplateState.eventReactions


guards

Getter 簽章

get guards(): Guard<Context>

定義於: packages/being/dist/interface.d.ts:495

回傳

Guard<Context>

繼承自

TemplateState.guards


handlingEvents

Getter 簽章

get handlingEvents(): keyof EventPayloadMapping[]

定義於: packages/being/dist/interface.d.ts:494

回傳

keyof EventPayloadMapping[]

繼承自

TemplateState.handlingEvents

方法

beforeExit()

beforeExit(context, stateMachine, to): void

定義於: packages/being/dist/interface.d.ts:500

參數

context

KmtInputContext

stateMachine

StateMachine<KmtInputEventMapping, KmtInputContext, "IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", KmtInputEventOutputMapping>

to

"TERMINAL" | "IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED"

回傳

void

繼承自

TemplateState.beforeExit


handles()

handles<K>(args, context, stateMachine): EventResult<"IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", K extends keyof KmtInputEventOutputMapping ? KmtInputEventOutputMapping[K<K>] : void>

定義於: packages/being/dist/interface.d.ts:501

型別參數

K

K extends string

參數

args

EventArgs<KmtInputEventMapping, K>

context

KmtInputContext

stateMachine

StateMachine<KmtInputEventMapping, KmtInputContext, "IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", KmtInputEventOutputMapping>

回傳

EventResult<"IDLE" | "READY_TO_PAN_VIA_SPACEBAR" | "READY_TO_PAN_VIA_SCROLL_WHEEL" | "PAN" | "INITIAL_PAN" | "PAN_VIA_SCROLL_WHEEL" | "DISABLED", K extends keyof KmtInputEventOutputMapping ? KmtInputEventOutputMapping[K<K>] : void>

繼承自

TemplateState.handles


middlePointerDownHandler()

middlePointerDownHandler(context, payload): void

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:358

參數

context

KmtInputContext

payload

PointerEventPayload

回傳

void


scrollHandler()

scrollHandler(context, payload): KmtOutputEvent

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:295

參數

context

KmtInputContext

payload

ScrollWithCtrlEventPayload

回傳

KmtOutputEvent


scrollPan()

scrollPan(context, payload): KmtOutputEvent

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:257

參數

context

KmtInputContext

payload

ScrollEventPayload

回傳

KmtOutputEvent


scrollWithCtrlHandler()

scrollWithCtrlHandler(context, payload): KmtOutputEvent

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:311

參數

context

KmtInputContext

payload

ScrollWithCtrlEventPayload

回傳

KmtOutputEvent


scrollZoom()

scrollZoom(context, payload): KmtOutputEvent

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:271

參數

context

KmtInputContext

payload

ScrollWithCtrlEventPayload

回傳

KmtOutputEvent


spacebarDownHandler()

spacebarDownHandler(context, payload): number

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:350

參數

context

KmtInputContext

payload

EmptyPayload

回傳

number


uponEnter()

uponEnter(context): void

定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:346

參數

context

KmtInputContext

回傳

void

覆寫了

TemplateState.uponEnter