module Web.HTML.HTMLSelectElement
( HTMLSelectElement
, fromHTMLElement
, fromElement
, fromNode
, fromChildNode
, fromNonDocumentTypeChildNode
, fromParentNode
, fromEventTarget
, toHTMLElement
, toElement
, toNode
, toChildNode
, toNonDocumentTypeChildNode
, toParentNode
, toEventTarget
, autofocus
, setAutofocus
, disabled
, setDisabled
, form
, multiple
, setMultiple
, name
, setName
, required
, setRequired
, size
, setSize
, type_
, length
, setLength
, selectedOptions
, selectedIndex
, setSelectedIndex
, value
, setValue
, willValidate
, validity
, validationMessage
, checkValidity
, reportValidity
, setCustomValidity
, labels
) where
import Prelude
import Data.Maybe (Maybe)
import Data.Nullable (Nullable, toMaybe)
import Effect (Effect)
import Unsafe.Coerce (unsafeCoerce)
import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode)
import Web.DOM.HTMLCollection (HTMLCollection)
import Web.DOM.NodeList (NodeList)
import Web.Event.EventTarget (EventTarget)
import Web.HTML.HTMLElement (HTMLElement)
import Web.HTML.HTMLFormElement (HTMLFormElement)
import Web.HTML.ValidityState (ValidityState)
import Web.Internal.FFI (unsafeReadProtoTagged)
foreign import data HTMLSelectElement :: Type
fromHTMLElement :: HTMLElement -> Maybe HTMLSelectElement
fromHTMLElement = unsafeReadProtoTagged "HTMLSelectElement"
fromElement :: Element -> Maybe HTMLSelectElement
fromElement = unsafeReadProtoTagged "HTMLSelectElement"
fromNode :: Node -> Maybe HTMLSelectElement
fromNode = unsafeReadProtoTagged "HTMLSelectElement"
fromChildNode :: ChildNode -> Maybe HTMLSelectElement
fromChildNode = unsafeReadProtoTagged "HTMLSelectElement"
fromNonDocumentTypeChildNode :: NonDocumentTypeChildNode -> Maybe HTMLSelectElement
fromNonDocumentTypeChildNode = unsafeReadProtoTagged "HTMLSelectElement"
fromParentNode :: ParentNode -> Maybe HTMLSelectElement
fromParentNode = unsafeReadProtoTagged "HTMLSelectElement"
fromEventTarget :: EventTarget -> Maybe HTMLSelectElement
fromEventTarget = unsafeReadProtoTagged "HTMLSelectElement"
toHTMLElement :: HTMLSelectElement -> HTMLElement
toHTMLElement = unsafeCoerce
toElement :: HTMLSelectElement -> Element
toElement = unsafeCoerce
toNode :: HTMLSelectElement -> Node
toNode = unsafeCoerce
toChildNode :: HTMLSelectElement -> ChildNode
toChildNode = unsafeCoerce
toNonDocumentTypeChildNode :: HTMLSelectElement -> NonDocumentTypeChildNode
toNonDocumentTypeChildNode = unsafeCoerce
toParentNode :: HTMLSelectElement -> ParentNode
toParentNode = unsafeCoerce
toEventTarget :: HTMLSelectElement -> EventTarget
toEventTarget = unsafeCoerce
foreign import autofocus :: HTMLSelectElement -> Effect Boolean
foreign import setAutofocus :: Boolean -> HTMLSelectElement -> Effect Unit
foreign import disabled :: HTMLSelectElement -> Effect Boolean
foreign import setDisabled :: Boolean -> HTMLSelectElement -> Effect Unit
form :: HTMLSelectElement -> Effect (Maybe HTMLFormElement)
form = map toMaybe <<< _form
foreign import _form :: HTMLSelectElement -> Effect (Nullable HTMLFormElement)
foreign import multiple :: HTMLSelectElement -> Effect Boolean
foreign import setMultiple :: Boolean -> HTMLSelectElement -> Effect Unit
foreign import name :: HTMLSelectElement -> Effect String
foreign import setName :: String -> HTMLSelectElement -> Effect Unit
foreign import required :: HTMLSelectElement -> Effect Boolean
foreign import setRequired :: Boolean -> HTMLSelectElement -> Effect Unit
foreign import size :: HTMLSelectElement -> Effect Int
foreign import setSize :: Int -> HTMLSelectElement -> Effect Unit
foreign import type_ :: HTMLSelectElement -> Effect String
-- readonly attribute HTMLOptionsCollection options;
foreign import length :: HTMLSelectElement -> Effect Int
foreign import setLength :: Int -> HTMLSelectElement -> Effect Unit
-- getter Element? item(unsigned long index);
-- HTMLOptionElement? namedItem(DOMString name);
-- void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
-- void remove(); // ChildNode overload
-- void remove(long index);
-- setter creator void (unsigned long index, HTMLOptionElement? option);
foreign import selectedOptions :: HTMLSelectElement -> Effect HTMLCollection
foreign import selectedIndex :: HTMLSelectElement -> Effect Int
foreign import setSelectedIndex :: Int -> HTMLSelectElement -> Effect Unit
foreign import value :: HTMLSelectElement -> Effect String
foreign import setValue :: String -> HTMLSelectElement -> Effect Unit
foreign import willValidate :: HTMLSelectElement -> Effect Boolean
foreign import validity :: HTMLSelectElement -> Effect ValidityState
foreign import validationMessage :: HTMLSelectElement -> Effect String
foreign import checkValidity :: HTMLSelectElement -> Effect Boolean
foreign import reportValidity :: HTMLSelectElement -> Effect Boolean
foreign import setCustomValidity :: String -> HTMLSelectElement -> Effect Unit
foreign import labels :: HTMLSelectElement -> Effect NodeList