@ue-too/board / index / KmtIdleState
類別: KmtIdleState
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:236
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:242
回傳
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:581
繼承自
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:580
繼承自
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:250
覆寫了
TemplateState._eventGuards
_eventPreconditions
protected_eventPreconditions:Partial<EventPreconditions<EventPayloadMapping,Context,Guard<Context>>>
定義於: packages/being/dist/interface.d.ts:579
繼承自
TemplateState._eventPreconditions
_eventReactions
protected_eventReactions:EventReactions<KmtInputEventMapping,KmtInputContext,KmtInputStates,KmtInputEventOutputMapping>
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:321
覆寫了
TemplateState._eventReactions
_guards
protected_guards:Guard<KmtInputContext,"isIdle">
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:246
覆寫了
TemplateState._guards
存取器
delay
Getter 簽章
get delay():
Delay<Context,EventPayloadMapping,States,EventOutputMapping> |undefined
定義於: packages/being/dist/interface.d.ts:587
回傳
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:584
回傳
Partial<EventGuards<EventPayloadMapping, States, Context, Guard<Context>>>
繼承自
TemplateState.eventGuards
eventPreconditions
Getter 簽章
get eventPreconditions():
Partial<EventPreconditions<EventPayloadMapping,Context,Guard<Context>>>
定義於: packages/being/dist/interface.d.ts:585
Pre-action vetoes: named guards that must all pass before this state handles an event. Optional so existing State implementations remain valid; TemplateState always provides it.
回傳
Partial<EventPreconditions<EventPayloadMapping, Context, Guard<Context>>>
繼承自
TemplateState.eventPreconditions
eventReactions
Getter 簽章
get eventReactions():
EventReactions<EventPayloadMapping,Context,States,EventOutputMapping>
定義於: packages/being/dist/interface.d.ts:586
回傳
EventReactions<EventPayloadMapping, Context, States, EventOutputMapping>
繼承自
TemplateState.eventReactions
guards
Getter 簽章
get guards():
Guard<Context>
定義於: packages/being/dist/interface.d.ts:583
回傳
Guard<Context>
繼承自
TemplateState.guards
handlingEvents
Getter 簽章
get handlingEvents(): keyof
EventPayloadMapping[]
定義於: packages/being/dist/interface.d.ts:582
回傳
keyof EventPayloadMapping[]
繼承自
TemplateState.handlingEvents
方法
beforeExit()
beforeExit(
context,stateMachine,to):void
定義於: packages/being/dist/interface.d.ts:589
參數
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:590
型別參數
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:361
參數
context
payload
回傳
void
scrollHandler()
scrollHandler(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:298
參數
context
payload
回傳
scrollPan()
scrollPan(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:260
參數
context
payload
回傳
scrollWithCtrlHandler()
scrollWithCtrlHandler(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:314
參數
context
payload
回傳
scrollZoom()
scrollZoom(
context,payload):KmtOutputEvent
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:274
參數
context
payload
回傳
spacebarDownHandler()
spacebarDownHandler(
context,payload):number
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:353
參數
context
payload
EmptyPayload
回傳
number
uponEnter()
uponEnter(
context):void
定義於: packages/board/src/input-interpretation/input-state-machine/kmt-input-state-machine.ts:349
參數
context
回傳
void
覆寫了
TemplateState.uponEnter