@@ -20,6 +20,11 @@ module Web.HTML.HTMLImageElement
2020 , setAlt
2121 , src
2222 , setSrc
23+ , srcset
24+ , setSrcset
25+ , currentSrc
26+ , sizes
27+ , setSizes
2328 , crossOrigin
2429 , setCrossOrigin
2530 , useMap
@@ -32,16 +37,31 @@ module Web.HTML.HTMLImageElement
3237 , setHeight
3338 , naturalWidth
3439 , naturalHeight
40+ , referrerPolicy
41+ , setReferrerPolicy
42+ , decoding
43+ , setDecoding
44+ , loading
45+ , setLoading
3546 , complete
3647 ) where
3748
38- import Data.Maybe (Maybe )
49+ import Data.Nullable (Nullable )
50+ import Data.Nullable as Nullable
51+ import Data.Maybe (Maybe , fromMaybe )
3952import Effect (Effect )
40- import Prelude (Unit )
53+ import Effect.Uncurried (EffectFn1 , EffectFn2 , runEffectFn1 , runEffectFn2 )
54+ import Prelude (Unit , map , (<<<), (<=<))
4155import Unsafe.Coerce (unsafeCoerce )
4256import Web.DOM (ChildNode , Element , Node , NonDocumentTypeChildNode , ParentNode )
4357import Web.Event.EventTarget (EventTarget )
4458import Web.HTML.HTMLElement (HTMLElement )
59+ import Web.HTML.HTMLImageElement.CORSMode (CORSMode )
60+ import Web.HTML.HTMLImageElement.CORSMode as CORSMode
61+ import Web.HTML.HTMLImageElement.DecodingHint (DecodingHint )
62+ import Web.HTML.HTMLImageElement.DecodingHint as DecodingHint
63+ import Web.HTML.HTMLImageElement.Laziness (Laziness )
64+ import Web.HTML.HTMLImageElement.Laziness as Laziness
4565import Web.Internal.FFI (unsafeReadProtoTagged )
4666
4767foreign import data HTMLImageElement :: Type
@@ -101,8 +121,23 @@ foreign import setAlt :: String -> HTMLImageElement -> Effect Unit
101121foreign import src :: HTMLImageElement -> Effect String
102122foreign import setSrc :: String -> HTMLImageElement -> Effect Unit
103123
104- foreign import crossOrigin :: HTMLImageElement -> Effect String
105- foreign import setCrossOrigin :: String -> HTMLImageElement -> Effect Unit
124+ foreign import srcset :: HTMLImageElement -> Effect String
125+ foreign import setSrcset :: String -> HTMLImageElement -> Effect Unit
126+
127+ foreign import currentSrc :: HTMLImageElement -> Effect String
128+
129+ foreign import sizes :: HTMLImageElement -> Effect String
130+ foreign import setSizes :: String -> HTMLImageElement -> Effect Unit
131+
132+ foreign import _crossOrigin :: EffectFn1 HTMLImageElement (Nullable String )
133+
134+ crossOrigin :: HTMLImageElement -> Effect (Maybe CORSMode )
135+ crossOrigin = map (CORSMode .parse <=< Nullable .toMaybe) <<< runEffectFn1 _crossOrigin
136+
137+ foreign import _setCrossOrigin :: EffectFn2 String HTMLImageElement Unit
138+
139+ setCrossOrigin :: CORSMode -> HTMLImageElement -> Effect Unit
140+ setCrossOrigin mode = runEffectFn2 _setCrossOrigin (CORSMode .print mode)
106141
107142foreign import useMap :: HTMLImageElement -> Effect String
108143foreign import setUseMap :: String -> HTMLImageElement -> Effect Unit
@@ -118,4 +153,28 @@ foreign import setHeight :: Int -> HTMLImageElement -> Effect Unit
118153
119154foreign import naturalWidth :: HTMLImageElement -> Effect Int
120155foreign import naturalHeight :: HTMLImageElement -> Effect Int
156+
157+ foreign import referrerPolicy :: HTMLImageElement -> Effect String
158+ foreign import setReferrerPolicy :: String -> HTMLImageElement -> Effect Unit
159+
160+ foreign import _decoding :: EffectFn1 HTMLImageElement String
161+
162+ decoding :: HTMLImageElement -> Effect DecodingHint
163+ decoding = map (fromMaybe DecodingHint.Auto <<< DecodingHint .parse) <<< runEffectFn1 _decoding
164+
165+ foreign import _setDecoding :: EffectFn2 String HTMLImageElement Unit
166+
167+ setDecoding :: DecodingHint -> HTMLImageElement -> Effect Unit
168+ setDecoding hint = runEffectFn2 _setDecoding (DecodingHint .print hint)
169+
170+ foreign import _loading :: EffectFn1 HTMLImageElement String
171+
172+ loading :: HTMLImageElement -> Effect Laziness
173+ loading = map (fromMaybe Laziness.Eager <<< Laziness .parse) <<< runEffectFn1 _loading
174+
175+ foreign import _setLoading :: EffectFn2 String HTMLImageElement Unit
176+
177+ setLoading :: Laziness -> HTMLImageElement -> Effect Unit
178+ setLoading laziness = runEffectFn2 _setLoading (Laziness .print laziness)
179+
121180foreign import complete :: HTMLImageElement -> Effect Boolean
0 commit comments