@@ -23,6 +23,8 @@ module Web.HTML.HTMLImageElement
23
23
, srcset
24
24
, setSrcset
25
25
, currentSrc
26
+ , sizes
27
+ , setSizes
26
28
, crossOrigin
27
29
, setCrossOrigin
28
30
, useMap
@@ -44,13 +46,22 @@ module Web.HTML.HTMLImageElement
44
46
, complete
45
47
) where
46
48
47
- import Data.Maybe (Maybe )
49
+ import Data.Nullable (Nullable )
50
+ import Data.Nullable as Nullable
51
+ import Data.Maybe (Maybe , fromMaybe )
48
52
import Effect (Effect )
49
- import Prelude (Unit )
53
+ import Effect.Uncurried (EffectFn1 , EffectFn2 , runEffectFn1 , runEffectFn2 )
54
+ import Prelude (Unit , map , (<<<), (<=<))
50
55
import Unsafe.Coerce (unsafeCoerce )
51
56
import Web.DOM (ChildNode , Element , Node , NonDocumentTypeChildNode , ParentNode )
52
57
import Web.Event.EventTarget (EventTarget )
53
58
import 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
54
65
import Web.Internal.FFI (unsafeReadProtoTagged )
55
66
56
67
foreign import data HTMLImageElement :: Type
@@ -118,8 +129,15 @@ foreign import currentSrc :: HTMLImageElement -> Effect String
118
129
foreign import sizes :: HTMLImageElement -> Effect String
119
130
foreign import setSizes :: String -> HTMLImageElement -> Effect Unit
120
131
121
- foreign import crossOrigin :: HTMLImageElement -> Effect String
122
- foreign import setCrossOrigin :: String -> HTMLImageElement -> Effect Unit
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)
123
141
124
142
foreign import useMap :: HTMLImageElement -> Effect String
125
143
foreign import setUseMap :: String -> HTMLImageElement -> Effect Unit
@@ -139,10 +157,24 @@ foreign import naturalHeight :: HTMLImageElement -> Effect Int
139
157
foreign import referrerPolicy :: HTMLImageElement -> Effect String
140
158
foreign import setReferrerPolicy :: String -> HTMLImageElement -> Effect Unit
141
159
142
- foreign import decoding :: HTMLImageElement -> Effect String
143
- foreign import setDecoding :: String -> HTMLImageElement -> Effect Unit
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
144
176
145
- foreign import loading :: HTMLImageElement -> Effect String
146
- foreign import setLoading :: String -> HTMLImageElement -> Effect Unit
177
+ setLoading :: Laziness -> HTMLImageElement -> Effect Unit
178
+ setLoading laziness = runEffectFn2 _setLoading ( Laziness .print laziness)
147
179
148
180
foreign import complete :: HTMLImageElement -> Effect Boolean
0 commit comments