Module

Halogen.XShell.Free

Package
purescript-halogen-xterm
Repository
grybiena/halogen-xterm

#Slots Source

type Slots :: Row Type -> Row Typetype Slots w = (terminal :: Slot TerminalM Output Unit | w)

#XShell Source

type XShell :: Row Type -> Type -> Type -> (Type -> Type) -> Typetype XShell w s o m = { interpreter :: Output -> ShellM w s o m Unit, shell :: s, terminal :: Maybe Terminal, windows :: WindowSlots w s o m }

#WindowSlot Source

newtype WindowSlot :: Row Type -> Type -> Type -> (Type -> Type) -> (Type -> Type) -> Type -> Typenewtype WindowSlot w s o m query output

Constructors

#Action Source

data Action :: Row Type -> Type -> Type -> (Type -> Type) -> Typedata Action w s o m

Constructors

#renderWindows Source

renderWindows :: forall w s o m. WindowSlots w s o m -> Array (ComponentHTML (Action w s o m) (Slots w) m)

#WindowSlots Source

type WindowSlots :: Row Type -> Type -> Type -> (Type -> Type) -> Typetype WindowSlots w s o m = SlotStorage w (WindowSlot w s o m)

#ShellF Source

data ShellF :: Row Type -> Type -> Type -> (Type -> Type) -> Type -> Typedata ShellF w s o m r

Constructors

Instances

#Shell Source

type Shell :: Row Type -> Type -> Type -> (Type -> Type) -> Type -> Typetype Shell w s o m = Free (ShellF w s o m)

#ShellM Source

newtype ShellM :: Row Type -> Type -> Type -> (Type -> Type) -> Type -> Typenewtype ShellM w s o m r

Constructors

Instances

#terminal Source

terminal :: forall w s o m r. TerminalM r -> ShellM w s o m r

#getShell Source

getShell :: forall w s o m. ShellM w s o m s

#putShell Source

putShell :: forall w s o m. s -> ShellM w s o m Unit

#modifyShell Source

modifyShell :: forall w s o m. (s -> s) -> ShellM w s o m Unit

#interpreter Source

interpreter :: forall w s o m. (Output -> ShellM w s o m Unit) -> ShellM w s o m Unit

#output Source

output :: forall w s o m. o -> ShellM w s o m Unit

#liftHalogen Source

liftHalogen :: forall w s o m r. HalogenM (XShell w s o m) (Action w s o m) (Slots w) o m r -> ShellM w s o m r

#modifyWindowSlots Source

modifyWindowSlots :: forall w s o m. (WindowSlots w s o m -> WindowSlots w s o m) -> ShellM w s o m Unit

#openWindow Source

openWindow :: forall q' o' i' _1 s o sym px i w m. Cons sym (Slot q' o' i) _1 (Slots w) => IsSymbol sym => Ord i => Cons sym (Slot q' o' i) px w => Proxy sym -> i -> Component q' i' o' m -> i' -> (o' -> ShellM w s o m Unit) -> ShellM w s o m Unit

#queryWindow Source

queryWindow :: forall q o' _1 s o sym px i w m a. Cons sym (Slot q o' i) _1 (Slots w) => IsSymbol sym => Ord i => Cons sym (Slot q o' i) px w => Proxy sym -> i -> q a -> ShellM w s o m (Maybe a)

#closeWindow Source

closeWindow :: forall q' o' _1 s o sym px i w m. Cons sym (Slot q' o' i) _1 (Slots w) => IsSymbol sym => Ord i => Cons sym (Slot q' o' i) px w => Proxy sym -> i -> ShellM w s o m Unit