@@ -25,6 +25,9 @@ module Reflex.Dom.Builder.Class
26import Reflex.Class as Reflex
26import Reflex.Class as Reflex
27import Reflex.Dom.Builder.Class.Events
27import Reflex.Dom.Builder.Class.Events
28+#ifdef USE_TEMPLATE_HASKELL
29+import Reflex.Dom.Builder.Class.TH
28import Reflex.DynamicWriter
31import Reflex.DynamicWriter
29import Reflex.EventWriter
32import Reflex.EventWriter
30import Reflex.PerformEvent.Class
33import Reflex.PerformEvent.Class
@@ -40,6 +43,7 @@ import Data.Default
40import Data.Functor.Misc
43import Data.Functor.Misc
41import Data.Map (Map)
44import Data.Map (Map)
42import qualified Data.Map as Map
45import qualified Data.Map as Map
43import Data.Proxy
47import Data.Proxy
44import Data.Semigroup
48import Data.Semigroup
45import Data.String
49import Data.String
@@ -86,11 +90,6 @@ class (Monad m, Reflex t, DomSpace (DomBuilderSpace m), MonadAdjust t m) => DomB
86 => Text -> ElementConfig er t m -> m a -> m (Element er (DomBuilderSpace m) t, a)
90 => Text -> ElementConfig er t m -> m a -> m (Element er (DomBuilderSpace m) t, a)
87 element t cfg child = liftWith $ \run -> element t (liftElementConfig cfg) $ run child
91 element t cfg child = liftWith $ \run -> element t (liftElementConfig cfg) $ run child
88 {-# INLINABLE element #-}
92 {-# INLINABLE element #-}
90− -- | Create a placeholder in the DOM, with the ability to insert new DOM before it
91− -- The provided DOM will be executed after the current frame, so it will not be affected by any occurrences that are concurrent with the occurrence that created it
92− placeholder :: PlaceholderConfig above t m -> m (Placeholder above t)
94 inputElement :: InputElementConfig er t m -> m (InputElement er (DomBuilderSpace m) t)
93 inputElement :: InputElementConfig er t m -> m (InputElement er (DomBuilderSpace m) t)
95 default inputElement :: ( MonadTransControl f
94 default inputElement :: ( MonadTransControl f
96 , m ~ f m'
95 , m ~ f m'
@@ -221,7 +220,7 @@ stopPropagation = mempty { _eventFlags_propagation = Propagation_Stop }
221data ElementConfig er t m
220data ElementConfig er t m
222 = ElementConfig { _elementConfig_namespace :: Maybe Namespace
221 = ElementConfig { _elementConfig_namespace :: Maybe Namespace
223 , _elementConfig_initialAttributes :: Map AttributeName Text
222 , _elementConfig_initialAttributes :: Map AttributeName Text
224− , _elementConfig_modifyAttributes :: Event t (Map AttributeName (Maybe Text))
223+ , _elementConfig_modifyAttributes :: Maybe (Event t (Map AttributeName (Maybe Text)))
225 , _elementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
224 , _elementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
@@ -232,13 +231,6 @@ elementConfig_namespace f (ElementConfig a b c d) = (\a' -> ElementConfig a' b c
232elementConfig_initialAttributes :: Lens' (ElementConfig er t m) (Map AttributeName Text)
231elementConfig_initialAttributes :: Lens' (ElementConfig er t m) (Map AttributeName Text)
233elementConfig_initialAttributes f (ElementConfig a b c d) = (\b' -> ElementConfig a b' c d) <$> f b
232elementConfig_initialAttributes f (ElementConfig a b c d) = (\b' -> ElementConfig a b' c d) <$> f b
234{-# INLINE elementConfig_initialAttributes #-}
233{-# INLINE elementConfig_initialAttributes #-}
235−elementConfig_modifyAttributes :: Lens
236− (ElementConfig er t1 m)
237− (ElementConfig er t2 m)
238− (Event t1 (Map AttributeName (Maybe Text)))
239− (Event t2 (Map AttributeName (Maybe Text)))
240−elementConfig_modifyAttributes f (ElementConfig a b c d) = (\c' -> ElementConfig a b c' d) <$> f c
241−{-# INLINE elementConfig_modifyAttributes #-}
242elementConfig_eventSpec :: Lens
234elementConfig_eventSpec :: Lens
243 (ElementConfig er1 t m1)
235 (ElementConfig er1 t m1)
244 (ElementConfig er2 t m2)
236 (ElementConfig er2 t m2)
@@ -253,41 +245,11 @@ data Element er d t
253 , _element_raw :: RawElement d
245 , _element_raw :: RawElement d
256−data PlaceholderConfig above t m
257− = PlaceholderConfig { _placeholderConfig_insertAbove :: Event t (m above)
258− , _placeholderConfig_deleteSelf :: Event t ()
261−#ifndef USE_TEMPLATE_HASKELL
262−placeholderConfig_insertAbove :: Lens
263− (PlaceholderConfig above1 t m1)
264− (PlaceholderConfig above2 t m2)
265− (Event t (m1 above1))
266− (Event t (m2 above2))
267−placeholderConfig_insertAbove f (PlaceholderConfig a b) = (\a' -> PlaceholderConfig a' b) <$> f a
268−{-# INLINE placeholderConfig_insertAbove #-}
269−placeholderConfig_deleteSelf :: Lens' (PlaceholderConfig above t m) (Event t ())
270−placeholderConfig_deleteSelf f (PlaceholderConfig a b) = (\b' -> PlaceholderConfig a b') <$> f b
271−{-# INLINE placeholderConfig_deleteSelf #-}
274−instance Reflex t => Default (PlaceholderConfig above t m) where
275− {-# INLINABLE def #-}
276− def = PlaceholderConfig
277− { _placeholderConfig_insertAbove = never
278− , _placeholderConfig_deleteSelf = never
281−data Placeholder above t
282− = Placeholder { _placeholder_insertedAbove :: Event t above
283− , _placeholder_deletedSelf :: Event t ()
286data InputElementConfig er t m
248data InputElementConfig er t m
287 = InputElementConfig { _inputElementConfig_initialValue :: Text
249 = InputElementConfig { _inputElementConfig_initialValue :: Text
288− , _inputElementConfig_setValue :: Event t Text
250+ , _inputElementConfig_setValue :: Maybe (Event t Text)
289 , _inputElementConfig_initialChecked :: Bool
251 , _inputElementConfig_initialChecked :: Bool
290− , _inputElementConfig_setChecked :: Event t Bool
252+ , _inputElementConfig_setChecked :: Maybe (Event t Bool)
291 , _inputElementConfig_elementConfig :: ElementConfig er t m
253 , _inputElementConfig_elementConfig :: ElementConfig er t m
@@ -295,15 +257,9 @@ data InputElementConfig er t m
295inputElementConfig_initialValue :: Lens' (InputElementConfig er t m) Text
257inputElementConfig_initialValue :: Lens' (InputElementConfig er t m) Text
296inputElementConfig_initialValue f (InputElementConfig a b c d e) = (\a' -> InputElementConfig a' b c d e) <$> f a
258inputElementConfig_initialValue f (InputElementConfig a b c d e) = (\a' -> InputElementConfig a' b c d e) <$> f a
297{-# INLINE inputElementConfig_initialValue #-}
259{-# INLINE inputElementConfig_initialValue #-}
298−inputElementConfig_setValue :: Lens' (InputElementConfig er t m) (Event t Text)
299−inputElementConfig_setValue f (InputElementConfig a b c d e) = (\b' -> InputElementConfig a b' c d e) <$> f b
300−{-# INLINE inputElementConfig_setValue #-}
301inputElementConfig_initialChecked :: Lens' (InputElementConfig er t m) Bool
260inputElementConfig_initialChecked :: Lens' (InputElementConfig er t m) Bool
302inputElementConfig_initialChecked f (InputElementConfig a b c d e) = (\c' -> InputElementConfig a b c' d e) <$> f c
261inputElementConfig_initialChecked f (InputElementConfig a b c d e) = (\c' -> InputElementConfig a b c' d e) <$> f c
303{-# INLINE inputElementConfig_initialChecked #-}
262{-# INLINE inputElementConfig_initialChecked #-}
304−inputElementConfig_setChecked :: Lens' (InputElementConfig er t m) (Event t Bool)
305−inputElementConfig_setChecked f (InputElementConfig a b c d e) = (\d' -> InputElementConfig a b c d' e) <$> f d
306−{-# INLINE inputElementConfig_setChecked #-}
307inputElementConfig_elementConfig :: Lens
263inputElementConfig_elementConfig :: Lens
308 (InputElementConfig er1 t m1)
264 (InputElementConfig er1 t m1)
309 (InputElementConfig er2 t m2)
265 (InputElementConfig er2 t m2)
@@ -317,9 +273,9 @@ instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (InputElementCo
317 {-# INLINABLE def #-}
273 {-# INLINABLE def #-}
318 def = InputElementConfig
274 def = InputElementConfig
319 { _inputElementConfig_initialValue = ""
275 { _inputElementConfig_initialValue = ""
320− , _inputElementConfig_setValue = never
276+ , _inputElementConfig_setValue = Nothing
321 , _inputElementConfig_initialChecked = False
277 , _inputElementConfig_initialChecked = False
322− , _inputElementConfig_setChecked = never
278+ , _inputElementConfig_setChecked = Nothing
323 , _inputElementConfig_elementConfig = def
279 , _inputElementConfig_elementConfig = def
@@ -336,7 +292,7 @@ data InputElement er d t
337data TextAreaElementConfig er t m
293data TextAreaElementConfig er t m
338 = TextAreaElementConfig { _textAreaElementConfig_initialValue :: Text
294 = TextAreaElementConfig { _textAreaElementConfig_initialValue :: Text
339− , _textAreaElementConfig_setValue :: Event t Text
295+ , _textAreaElementConfig_setValue :: Maybe (Event t Text)
340 , _textAreaElementConfig_elementConfig :: ElementConfig er t m
296 , _textAreaElementConfig_elementConfig :: ElementConfig er t m
@@ -344,9 +300,6 @@ data TextAreaElementConfig er t m
344textAreaElementConfig_initialValue :: Lens' (TextAreaElementConfig er t m) Text
300textAreaElementConfig_initialValue :: Lens' (TextAreaElementConfig er t m) Text
345textAreaElementConfig_initialValue f (TextAreaElementConfig a b c) = (\a' -> TextAreaElementConfig a' b c) <$> f a
301textAreaElementConfig_initialValue f (TextAreaElementConfig a b c) = (\a' -> TextAreaElementConfig a' b c) <$> f a
346{-# INLINE textAreaElementConfig_initialValue #-}
302{-# INLINE textAreaElementConfig_initialValue #-}
347−textAreaElementConfig_setValue :: Lens' (TextAreaElementConfig er t m) (Event t Text)
348−textAreaElementConfig_setValue f (TextAreaElementConfig a b c) = (\b' -> TextAreaElementConfig a b' c) <$> f b
349−{-# INLINE textAreaElementConfig_setValue #-}
350textAreaElementConfig_elementConfig :: Lens
303textAreaElementConfig_elementConfig :: Lens
351 (TextAreaElementConfig er1 t m1)
304 (TextAreaElementConfig er1 t m1)
352 (TextAreaElementConfig er2 t m2)
305 (TextAreaElementConfig er2 t m2)
@@ -360,7 +313,7 @@ instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (TextAreaElemen
360 {-# INLINABLE def #-}
313 {-# INLINABLE def #-}
361 def = TextAreaElementConfig
314 def = TextAreaElementConfig
362 { _textAreaElementConfig_initialValue = ""
315 { _textAreaElementConfig_initialValue = ""
363− , _textAreaElementConfig_setValue = never
316+ , _textAreaElementConfig_setValue = Nothing
364 , _textAreaElementConfig_elementConfig = def
317 , _textAreaElementConfig_elementConfig = def
@@ -379,18 +332,11 @@ extractRawElementConfig cfg = RawElementConfig
381data RawElementConfig er t m = RawElementConfig
334data RawElementConfig er t m = RawElementConfig
382− { _rawElementConfig_modifyAttributes :: Event t (Map AttributeName (Maybe Text))
335+ { _rawElementConfig_modifyAttributes :: Maybe (Event t (Map AttributeName (Maybe Text)))
383 , _rawElementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
336 , _rawElementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
386#ifndef USE_TEMPLATE_HASKELL
339#ifndef USE_TEMPLATE_HASKELL
387−rawElementConfig_modifyAttributes :: Lens
388− (RawElementConfig er t1 m)
389− (RawElementConfig er t2 m)
390− (Event t1 (Map AttributeName (Maybe Text)))
391− (Event t2 (Map AttributeName (Maybe Text)))
392−rawElementConfig_modifyAttributes f (RawElementConfig a b) = (\a' -> RawElementConfig a' b) <$> f a
393−{-# INLINE rawElementConfig_modifyAttributes #-}
394rawElementConfig_eventSpec :: Lens
340rawElementConfig_eventSpec :: Lens
395 (RawElementConfig er1 t m1)
341 (RawElementConfig er1 t m1)
396 (RawElementConfig er2 t m2)
342 (RawElementConfig er2 t m2)
@@ -402,13 +348,13 @@ rawElementConfig_eventSpec f (RawElementConfig a b) = (\b' -> RawElementConfig a
403instance (Reflex t, DomSpace (DomBuilderSpace m)) => Default (RawElementConfig EventResult t m) where
349instance (Reflex t, DomSpace (DomBuilderSpace m)) => Default (RawElementConfig EventResult t m) where
404 def = RawElementConfig
350 def = RawElementConfig
405− { _rawElementConfig_modifyAttributes = never
351+ { _rawElementConfig_modifyAttributes = Nothing
406 , _rawElementConfig_eventSpec = def
352 , _rawElementConfig_eventSpec = def
409data SelectElementConfig er t m = SelectElementConfig
355data SelectElementConfig er t m = SelectElementConfig
410 { _selectElementConfig_initialValue :: Text
356 { _selectElementConfig_initialValue :: Text
411− , _selectElementConfig_setValue :: Event t Text
357+ , _selectElementConfig_setValue :: Maybe (Event t Text)
412 , _selectElementConfig_elementConfig :: ElementConfig er t m
358 , _selectElementConfig_elementConfig :: ElementConfig er t m
@@ -416,9 +362,6 @@ data SelectElementConfig er t m = SelectElementConfig
416selectElementConfig_initialValue :: Lens' (SelectElementConfig er t m) Text
362selectElementConfig_initialValue :: Lens' (SelectElementConfig er t m) Text
417selectElementConfig_initialValue f (SelectElementConfig a b c) = (\a' -> SelectElementConfig a' b c) <$> f a
363selectElementConfig_initialValue f (SelectElementConfig a b c) = (\a' -> SelectElementConfig a' b c) <$> f a
418{-# INLINE selectElementConfig_initialValue #-}
364{-# INLINE selectElementConfig_initialValue #-}
419−selectElementConfig_setValue :: Lens' (SelectElementConfig er t m) (Event t Text)
420−selectElementConfig_setValue f (SelectElementConfig a b c) = (\b' -> SelectElementConfig a b' c) <$> f b
421−{-# INLINE selectElementConfig_setValue #-}
422selectElementConfig_elementConfig :: Lens
365selectElementConfig_elementConfig :: Lens
423 (SelectElementConfig er1 t m1)
366 (SelectElementConfig er1 t m1)
424 (SelectElementConfig er2 t m2)
367 (SelectElementConfig er2 t m2)
@@ -431,7 +374,7 @@ selectElementConfig_elementConfig f (SelectElementConfig a b c) = (\c' -> Select
431instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (SelectElementConfig er t m) where
374instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (SelectElementConfig er t m) where
432 def = SelectElementConfig
375 def = SelectElementConfig
433 { _selectElementConfig_initialValue = ""
376 { _selectElementConfig_initialValue = ""
434− , _selectElementConfig_setValue = never
377+ , _selectElementConfig_setValue = Nothing
435 , _selectElementConfig_elementConfig = def
378 , _selectElementConfig_elementConfig = def
@@ -444,43 +387,65 @@ data SelectElement er d t = SelectElement
446#ifdef USE_TEMPLATE_HASKELL
389#ifdef USE_TEMPLATE_HASKELL
447−makeLensesFor
390+concat <$> mapM (uncurry makeLensesWithoutField)
448− [("_textNodeConfig_initialContents", "textNodeConfig_initialContents")]
449− ''TextNodeConfig
391+ [ (["_textNodeConfig_setContents"], ''TextNodeConfig)
392+ , ([ "_inputElementConfig_setValue"
393+ , "_inputElementConfig_setChecked" ], ''InputElementConfig)
394+ , (["_rawElementConfig_modifyAttributes"], ''RawElementConfig)
395+ , (["_elementConfig_modifyAttributes"], ''ElementConfig)
396+ , (["_textAreaElementConfig_setValue"], ''TextAreaElementConfig)
397+ , (["_selectElementConfig_setValue"], ''SelectElementConfig)
452-- | This lens is technically illegal. The implementation of 'TextNodeConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'TextNodeConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
401-- | This lens is technically illegal. The implementation of 'TextNodeConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'TextNodeConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
453textNodeConfig_setContents :: Reflex t => Lens (TextNodeConfig t) (TextNodeConfig t) (Event t Text) (Event t Text)
402textNodeConfig_setContents :: Reflex t => Lens (TextNodeConfig t) (TextNodeConfig t) (Event t Text) (Event t Text)
454textNodeConfig_setContents =
403textNodeConfig_setContents =
455− let getter t = case _textNodeConfig_setContents t of
404+ let getter = fromMaybe never . _textNodeConfig_setContents
458 setter t e = t { _textNodeConfig_setContents = Just e }
405 setter t e = t { _textNodeConfig_setContents = Just e }
459 in lens getter setter
406 in lens getter setter
461−#ifdef USE_TEMPLATE_HASKELL
408+-- | This lens is technically illegal. The implementation of 'InputElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'InputElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
462−concat <$> mapM makeLenses
409+inputElementConfig_setValue :: Reflex t => Lens (InputElementConfig er t m) (InputElementConfig er t m) (Event t Text) (Event t Text)
463− [ ''ElementConfig
410+inputElementConfig_setValue =
464− , ''PlaceholderConfig
411+ let getter = fromMaybe never . _inputElementConfig_setValue
465− , ''InputElementConfig
412+ setter t e = t { _inputElementConfig_setValue = Just e }
466− , ''TextAreaElementConfig
413+ in lens getter setter
467− , ''SelectElementConfig
414+
468− , ''RawElementConfig
415+-- | This lens is technically illegal. The implementation of 'InputElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'InputElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
469− ]
416+inputElementConfig_setChecked :: Reflex t => Lens (InputElementConfig er t m) (InputElementConfig er t m) (Event t Bool) (Event t Bool)
470−#endif
417+inputElementConfig_setChecked =
418+ let getter = fromMaybe never . _inputElementConfig_setChecked
419+ setter t e = t { _inputElementConfig_setChecked = Just e }
420+ in lens getter setter
472−class CanDeleteSelf t a | a -> t where
422+-- | This lens is technically illegal. The implementation of 'RawElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'RawElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
473− deleteSelf :: Lens' a (Event t ())
423+rawElementConfig_modifyAttributes :: Reflex t => Lens (RawElementConfig er t m) (RawElementConfig er t m) (Event t (Map AttributeName (Maybe Text))) (Event t (Map AttributeName (Maybe Text)))
424+rawElementConfig_modifyAttributes =
425+ let getter = fromMaybe never . _rawElementConfig_modifyAttributes
426+ setter t e = t { _rawElementConfig_modifyAttributes = Just e }
427+ in lens getter setter
475−instance CanDeleteSelf t (PlaceholderConfig above t m) where
429+-- | This lens is technically illegal. The implementation of 'RawElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'RawElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
476− {-# INLINABLE deleteSelf #-}
430+elementConfig_modifyAttributes :: Reflex t => Lens (ElementConfig er t m) (ElementConfig er t m) (Event t (Map AttributeName (Maybe Text))) (Event t (Map AttributeName (Maybe Text)))
477− deleteSelf = placeholderConfig_deleteSelf
431+elementConfig_modifyAttributes =
432+ let getter = fromMaybe never . _elementConfig_modifyAttributes
433+ setter t e = t { _elementConfig_modifyAttributes = Just e }
434+ in lens getter setter
479−class InsertAbove t m above above' a a' | a -> t m above, a' -> t m above', a above' -> a', a' above -> a where
436+-- | This lens is technically illegal. The implementation of 'TextAreaElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'TextAreaElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
480− insertAbove :: Lens a a' (Event t (m above)) (Event t (m above'))
437+textAreaElementConfig_setValue :: Reflex t => Lens (TextAreaElementConfig er t m) (TextAreaElementConfig er t m) (Event t Text) (Event t Text)
438+textAreaElementConfig_setValue =
439+ let getter = fromMaybe never . _textAreaElementConfig_setValue
440+ setter t e = t { _textAreaElementConfig_setValue = Just e }
441+ in lens getter setter
482−instance InsertAbove t m above above' (PlaceholderConfig above t m) (PlaceholderConfig above' t m) where
443+-- | This lens is technically illegal. The implementation of 'SelectElementConfig' uses a 'Maybe' under the hood for efficiency reasons. However, always interacting with 'SelectElementConfig' via lenses will always behave correctly, and if you pattern match on it, you should always treat 'Nothing' as 'never'.
483− insertAbove = placeholderConfig_insertAbove
444+selectElementConfig_setValue :: Reflex t => Lens (SelectElementConfig er t m) (SelectElementConfig er t m) (Event t Text) (Event t Text)
445+selectElementConfig_setValue =
446+ let getter = fromMaybe never . _selectElementConfig_setValue
447+ setter t e = t { _selectElementConfig_setValue = Just e }
448+ in lens getter setter
485class InitialAttributes a where
450class InitialAttributes a where
486 initialAttributes :: Lens' a (Map AttributeName Text)
451 initialAttributes :: Lens' a (Map AttributeName Text)
@@ -502,7 +467,7 @@ instance InitialAttributes (SelectElementConfig er t m) where
502 initialAttributes = selectElementConfig_elementConfig . elementConfig_initialAttributes
467 initialAttributes = selectElementConfig_elementConfig . elementConfig_initialAttributes
504class ModifyAttributes t a | a -> t where
469class ModifyAttributes t a | a -> t where
505− modifyAttributes :: Lens' a (Event t (Map AttributeName (Maybe Text)))
470+ modifyAttributes :: Reflex t => Lens' a (Event t (Map AttributeName (Maybe Text)))
507instance ModifyAttributes t (ElementConfig er t m) where
472instance ModifyAttributes t (ElementConfig er t m) where
508 {-# INLINABLE modifyAttributes #-}
473 {-# INLINABLE modifyAttributes #-}
@@ -536,7 +501,7 @@ instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (ElementConfig
536 def = ElementConfig
501 def = ElementConfig
537 { _elementConfig_namespace = Nothing
502 { _elementConfig_namespace = Nothing
538 , _elementConfig_initialAttributes = mempty
503 , _elementConfig_initialAttributes = mempty
539− , _elementConfig_modifyAttributes = never
504+ , _elementConfig_modifyAttributes = Nothing
540 , _elementConfig_eventSpec = def
505 , _elementConfig_eventSpec = def
@@ -623,12 +588,6 @@ instance Functor1 (ElementConfig er t) where
623 { _elementConfig_eventSpec = _elementConfig_eventSpec cfg
588 { _elementConfig_eventSpec = _elementConfig_eventSpec cfg
626−instance Reflex t => Functor1 (PlaceholderConfig above t) where
627− {-# INLINABLE fmap1 #-}
629− { _placeholderConfig_insertAbove = f <$> _placeholderConfig_insertAbove cfg
632instance Functor1 (InputElementConfig er t) where
591instance Functor1 (InputElementConfig er t) where
633 type Functor1Constraint (InputElementConfig er t) a b = Functor1Constraint (ElementConfig er t) a b
592 type Functor1Constraint (InputElementConfig er t) a b = Functor1Constraint (ElementConfig er t) a b
634 fmap1 f cfg = cfg & inputElementConfig_elementConfig %~ fmap1 f
593 fmap1 f cfg = cfg & inputElementConfig_elementConfig %~ fmap1 f
@@ -702,11 +661,6 @@ liftTextNode = lift . textNode
702liftElement :: LiftDomBuilder t f m => Text -> ElementConfig er t (f m) -> f m a -> f m (Element er (DomBuilderSpace m) t, a)
661liftElement :: LiftDomBuilder t f m => Text -> ElementConfig er t (f m) -> f m a -> f m (Element er (DomBuilderSpace m) t, a)
703liftElement elementTag cfg child = liftWithStateless $ \run -> element elementTag (fmap1 run cfg) $ run child
662liftElement elementTag cfg child = liftWithStateless $ \run -> element elementTag (fmap1 run cfg) $ run child
706−liftPlaceholder :: LiftDomBuilder t f m => PlaceholderConfig above t (f m) -> f m (Placeholder above t)
707−liftPlaceholder cfg = liftWithStateless $ \run -> placeholder $ fmap1 run cfg
710liftInputElement :: LiftDomBuilder t f m => InputElementConfig er t (f m) -> f m (InputElement er (DomBuilderSpace m) t)
664liftInputElement :: LiftDomBuilder t f m => InputElementConfig er t (f m) -> f m (InputElement er (DomBuilderSpace m) t)
711liftInputElement cfg = liftWithStateless $ \run -> inputElement $ fmap1 run cfg
665liftInputElement cfg = liftWithStateless $ \run -> inputElement $ fmap1 run cfg