@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
TemplateState<KmtInputEventMapping,KmtInputContext,KmtInputStates,KmtInputEventOutputMapping>
建構函式
建構函式
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
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",Kextends keyofKmtInputEventOutputMapping?KmtInputEventOutputMapping[K<K>] :void>
定義於: packages/being/dist/interface.d.ts:501
型別參數
K
K extends string
參數
args
EventArgs<KmtInputEventMapping, K>
context
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
payload
回傳
void
scrollHandler()
scrollHandler(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:295
參數
context
payload
回傳
scrollPan()
scrollPan(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:257
參數
context
payload
回傳
scrollWithCtrlHandler()
scrollWithCtrlHandler(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:311
參數
context
payload
回傳
scrollZoom()
scrollZoom(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:271
參數
context
payload
回傳
spacebarDownHandler()
spacebarDownHandler(
context,payload):number
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:350
參數
context
payload
EmptyPayload
回傳
number
uponEnter()
uponEnter(
context):void
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:346
參數
context
回傳
void
覆寫了
TemplateState.uponEnter