@@ -213,7 +213,7 @@ stopPropagation = mempty { _eventFlags_propagation = Propagation_Stop }
213data ElementConfig er t m
213data ElementConfig er t m
214 = ElementConfig { _elementConfig_namespace :: Maybe Namespace
214 = ElementConfig { _elementConfig_namespace :: Maybe Namespace
215 , _elementConfig_initialAttributes :: Map AttributeName Text
215 , _elementConfig_initialAttributes :: Map AttributeName Text
216− , _elementConfig_modifyAttributes :: Event t (Map AttributeName (Maybe Text))
216+ , _elementConfig_modifyAttributes :: Maybe (Event t (Map AttributeName (Maybe Text)))
217 , _elementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
217 , _elementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
@@ -297,13 +297,13 @@ extractRawElementConfig cfg = RawElementConfig
299data RawElementConfig er t m = RawElementConfig
299data RawElementConfig er t m = RawElementConfig
300− { _rawElementConfig_modifyAttributes :: Event t (Map AttributeName (Maybe Text))
300+ { _rawElementConfig_modifyAttributes :: Maybe (Event t (Map AttributeName (Maybe Text)))
301 , _rawElementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
301 , _rawElementConfig_eventSpec :: EventSpec (DomBuilderSpace m) er
304instance (Reflex t, DomSpace (DomBuilderSpace m)) => Default (RawElementConfig EventResult t m) where
304instance (Reflex t, DomSpace (DomBuilderSpace m)) => Default (RawElementConfig EventResult t m) where
305 def = RawElementConfig
305 def = RawElementConfig
306− { _rawElementConfig_modifyAttributes = never
306+ { _rawElementConfig_modifyAttributes = Nothing
307 , _rawElementConfig_eventSpec = def
307 , _rawElementConfig_eventSpec = def
@@ -328,8 +328,12 @@ data SelectElement er d t = SelectElement
328 , _selectElement_raw :: RawSelectElement d
328 , _selectElement_raw :: RawSelectElement d
331+concat <$> mapM (uncurry makeLensesWithoutField)
331−makeLensesWithoutField "_textNodeConfig_setContents" ''TextNodeConfig
332+ [ ("_textNodeConfig_setContents", ''TextNodeConfig)
332−makeLensesWithoutField "_inputElementConfig_setValue" ''InputElementConfig
333+ , ("_inputElementConfig_setValue", ''InputElementConfig)
334+ , ("_rawElementConfig_modifyAttributes", ''RawElementConfig)
335+ , ("_elementConfig_modifyAttributes", ''ElementConfig)
334-- | 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'.
338-- | 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'.
335textNodeConfig_setContents :: Reflex t => Lens (TextNodeConfig t) (TextNodeConfig t) (Event t Text) (Event t Text)
339textNodeConfig_setContents :: Reflex t => Lens (TextNodeConfig t) (TextNodeConfig t) (Event t Text) (Event t Text)
@@ -349,12 +353,28 @@ inputElementConfig_setValue =
349 setter t e = t { _inputElementConfig_setValue = Just e }
353 setter t e = t { _inputElementConfig_setValue = Just e }
350 in lens getter setter
354 in lens getter setter
356+-- | 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'.
357+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)))
358+rawElementConfig_modifyAttributes =
359+ let getter t = case _rawElementConfig_modifyAttributes t of
362+ setter t e = t { _rawElementConfig_modifyAttributes = Just e }
363+ in lens getter setter
365+-- | 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'.
366+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)))
367+elementConfig_modifyAttributes =
368+ let getter t = case _elementConfig_modifyAttributes t of
371+ setter t e = t { _elementConfig_modifyAttributes = Just e }
372+ in lens getter setter
352concat <$> mapM makeLenses
374concat <$> mapM makeLenses
354− , ''PlaceholderConfig
375+ [ ''PlaceholderConfig
355 , ''TextAreaElementConfig
376 , ''TextAreaElementConfig
356 , ''SelectElementConfig
377 , ''SelectElementConfig
357− , ''RawElementConfig
360class CanDeleteSelf t a | a -> t where
380class CanDeleteSelf t a | a -> t where
@@ -390,7 +410,7 @@ instance InitialAttributes (SelectElementConfig er t m) where
390 initialAttributes = selectElementConfig_elementConfig . elementConfig_initialAttributes
410 initialAttributes = selectElementConfig_elementConfig . elementConfig_initialAttributes
392class ModifyAttributes t a | a -> t where
412class ModifyAttributes t a | a -> t where
393− modifyAttributes :: Lens' a (Event t (Map AttributeName (Maybe Text)))
413+ modifyAttributes :: Reflex t => Lens' a (Event t (Map AttributeName (Maybe Text)))
395instance ModifyAttributes t (ElementConfig er t m) where
415instance ModifyAttributes t (ElementConfig er t m) where
396 {-# INLINABLE modifyAttributes #-}
416 {-# INLINABLE modifyAttributes #-}
@@ -424,7 +444,7 @@ instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (ElementConfig
424 def = ElementConfig
444 def = ElementConfig
425 { _elementConfig_namespace = Nothing
445 { _elementConfig_namespace = Nothing
426 , _elementConfig_initialAttributes = mempty
446 , _elementConfig_initialAttributes = mempty
427− , _elementConfig_modifyAttributes = never
447+ , _elementConfig_modifyAttributes = Nothing
428 , _elementConfig_eventSpec = def
448 , _elementConfig_eventSpec = def