@@ -93,6 +93,7 @@ import Reflex.PostBuild.Class
93import Reflex.TriggerEvent.Base hiding (askEvents)
93import Reflex.TriggerEvent.Base hiding (askEvents)
94import qualified Reflex.TriggerEvent.Base as TriggerEventT (askEvents)
94import qualified Reflex.TriggerEvent.Base as TriggerEventT (askEvents)
95import Reflex.TriggerEvent.Class
95import Reflex.TriggerEvent.Class
96+import Reflex.Query.Base (QueryT)
97import Control.Concurrent
98import Control.Concurrent
98import Control.Lens hiding (element, ix)
99import Control.Lens hiding (element, ix)
@@ -129,6 +130,7 @@ import GHCJS.DOM.Element (getScrollTop, removeAttribute, removeAttributeNS, setA
129import qualified GHCJS.DOM.Element as Element
130import qualified GHCJS.DOM.Element as Element
130import qualified GHCJS.DOM.Event as Event
131import qualified GHCJS.DOM.Event as Event
131import qualified GHCJS.DOM.GlobalEventHandlers as Events
132import qualified GHCJS.DOM.GlobalEventHandlers as Events
133+import qualified GHCJS.DOM.DocumentAndElementEventHandlers as Events
132import GHCJS.DOM.EventM (EventM, event, on)
134import GHCJS.DOM.EventM (EventM, event, on)
133import qualified GHCJS.DOM.EventM as DOM
135import qualified GHCJS.DOM.EventM as DOM
134import qualified GHCJS.DOM.FileList as FileList
136import qualified GHCJS.DOM.FileList as FileList
@@ -232,6 +234,8 @@ instance HasDocument m => HasDocument (Lazy.StateT s m)
232instance HasDocument m => HasDocument (EventWriterT t w m)
234instance HasDocument m => HasDocument (EventWriterT t w m)
233instance HasDocument m => HasDocument (DynamicWriterT t w m)
235instance HasDocument m => HasDocument (DynamicWriterT t w m)
234instance HasDocument m => HasDocument (PostBuildT t m)
236instance HasDocument m => HasDocument (PostBuildT t m)
237+instance HasDocument m => HasDocument (RequesterT t request response m)
238+instance HasDocument m => HasDocument (QueryT t q m)
236instance Monad m => HasDocument (ImmediateDomBuilderT t m) where
240instance Monad m => HasDocument (ImmediateDomBuilderT t m) where
237 {-# INLINABLE askDocument #-}
241 {-# INLINABLE askDocument #-}
@@ -449,7 +453,7 @@ instance er ~ EventResult => Default (GhcjsEventSpec er) where
449 def = GhcjsEventSpec
453 def = GhcjsEventSpec
450 { _ghcjsEventSpec_filters = mempty
454 { _ghcjsEventSpec_filters = mempty
451 , _ghcjsEventSpec_handler = GhcjsEventHandler $ \(en, GhcjsDomEvent evt) -> do
455 , _ghcjsEventSpec_handler = GhcjsEventHandler $ \(en, GhcjsDomEvent evt) -> do
452− t :: DOM.EventTarget <- withIsEvent en $ Event.getTarget evt --TODO: Rework this; defaultDomEventHandler shouldn't need to take this as an argument
456+ t :: DOM.EventTarget <- withIsEvent en $ Event.getTargetUnchecked evt --TODO: Rework this; defaultDomEventHandler shouldn't need to take this as an argument
453 let e = uncheckedCastTo DOM.Element t
457 let e = uncheckedCastTo DOM.Element t
454 runReaderT (defaultDomEventHandler e en) evt
458 runReaderT (defaultDomEventHandler e en) evt
@@ -1181,6 +1185,7 @@ instance DOM.FromJSVal ElementEventTarget where
1181 fromJSVal = fmap (fmap ElementEventTarget) . DOM.fromJSVal
1185 fromJSVal = fmap (fmap ElementEventTarget) . DOM.fromJSVal
1182instance DOM.IsEventTarget ElementEventTarget
1186instance DOM.IsEventTarget ElementEventTarget
1183instance DOM.IsGlobalEventHandlers ElementEventTarget
1187instance DOM.IsGlobalEventHandlers ElementEventTarget
1188+instance DOM.IsDocumentAndElementEventHandlers ElementEventTarget
1185{-# INLINABLE elementOnEventName #-}
1190{-# INLINABLE elementOnEventName #-}
1186elementOnEventName :: IsElement e => EventName en -> e -> EventM e (EventType en) () -> JSM (JSM ())
1191elementOnEventName :: IsElement e => EventName en -> e -> EventM e (EventType en) () -> JSM (JSM ())
@@ -1218,12 +1223,12 @@ elementOnEventName en e_ = let e = ElementEventTarget (DOM.toElement e_) in case
1218 Select -> on e Events.select
1223 Select -> on e Events.select
1219 Submit -> on e Events.submit
1224 Submit -> on e Events.submit
1220 Wheel -> on e Events.wheel
1225 Wheel -> on e Events.wheel
1221− Beforecut -> on e Element.beforeCut
1226+ Beforecut -> on e Events.beforeCut
1222− Cut -> on e Element.cut
1227+ Cut -> on e Events.cut
1223− Beforecopy -> on e Element.beforeCopy
1228+ Beforecopy -> on e Events.beforeCopy
1224− Copy -> on e Element.copy
1229+ Copy -> on e Events.copy
1225− Beforepaste -> on e Element.beforePaste
1230+ Beforepaste -> on e Events.beforePaste
1226− Paste -> on e Element.paste
1231+ Paste -> on e Events.paste
1227 Reset -> on e Events.reset
1232 Reset -> on e Events.reset
1228 Search -> on e Events.search
1233 Search -> on e Events.search
1229 Selectstart -> on e Element.selectStart
1234 Selectstart -> on e Element.selectStart