@@ -20,6 +20,11 @@ module Web.HTML.HTMLImageElement
20
20
, setAlt
21
21
, src
22
22
, setSrc
23
+ , srcset
24
+ , setSrcset
25
+ , currentSrc
26
+ , sizes
27
+ , setSizes
23
28
, crossOrigin
24
29
, setCrossOrigin
25
30
, useMap
@@ -32,16 +37,31 @@ module Web.HTML.HTMLImageElement
32
37
, setHeight
33
38
, naturalWidth
34
39
, naturalHeight
40
+ , referrerPolicy
41
+ , setReferrerPolicy
42
+ , decoding
43
+ , setDecoding
44
+ , loading
45
+ , setLoading
35
46
, complete
36
47
) where
37
48
38
- import Data.Maybe (Maybe )
49
+ import Data.Nullable (Nullable )
50
+ import Data.Nullable as Nullable
51
+ import Data.Maybe (Maybe , fromMaybe )
39
52
import Effect (Effect )
40
- import Prelude (Unit )
53
+ import Effect.Uncurried (EffectFn1 , EffectFn2 , runEffectFn1 , runEffectFn2 )
54
+ import Prelude (Unit , map , (<<<), (<=<))
41
55
import Unsafe.Coerce (unsafeCoerce )
42
56
import Web.DOM (ChildNode , Element , Node , NonDocumentTypeChildNode , ParentNode )
43
57
import Web.Event.EventTarget (EventTarget )
44
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
45
65
import Web.Internal.FFI (unsafeReadProtoTagged )
46
66
47
67
foreign import data HTMLImageElement :: Type
@@ -101,8 +121,23 @@ foreign import setAlt :: String -> HTMLImageElement -> Effect Unit
101
121
foreign import src :: HTMLImageElement -> Effect String
102
122
foreign import setSrc :: String -> HTMLImageElement -> Effect Unit
103
123
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)
106
141
107
142
foreign import useMap :: HTMLImageElement -> Effect String
108
143
foreign import setUseMap :: String -> HTMLImageElement -> Effect Unit
@@ -118,4 +153,28 @@ foreign import setHeight :: Int -> HTMLImageElement -> Effect Unit
118
153
119
154
foreign import naturalWidth :: HTMLImageElement -> Effect Int
120
155
foreign 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
+
121
180
foreign import complete :: HTMLImageElement -> Effect Boolean
0 commit comments