|
1 | 1 | module Halogen.VDom.DOM.Checkers where
|
2 | 2 |
|
3 |
| -import Prelude |
| 3 | +import Prelude (Unit, bind, discard, show, when, ($), (/=), (<>)) |
4 | 4 |
|
5 |
| -import Data.Maybe (Maybe(..)) |
6 |
| -import Data.Newtype (unwrap) |
7 |
| -import Data.Nullable (Nullable, toMaybe, toNullable) |
| 5 | +import Data.Maybe (Maybe) |
8 | 6 | import Data.String (toUpper)
|
9 |
| -import Data.Tuple (Tuple(..), fst) |
10 | 7 | import Effect (Effect)
|
11 | 8 | import Effect.Exception (error, throwException)
|
12 | 9 | import Effect.Uncurried as EFn
|
13 |
| -import Foreign.Object as Object |
14 |
| -import Halogen.VDom.Machine (Machine, Step, Step'(..), extract, halt, mkStep, step, unStep) |
15 |
| -import Halogen.VDom.Machine as Machine |
16 |
| -import Halogen.VDom.Types (ElemName(..), Namespace(..), VDom(..), runGraft) |
| 10 | +import Halogen.VDom.Types (ElemName, Namespace) |
17 | 11 | import Halogen.VDom.Util
|
18 | 12 | import Partial.Unsafe (unsafePartial)
|
19 |
| -import Unsafe.Coerce (unsafeCoerce) |
20 |
| -import Web.DOM as DOM |
21 |
| -import Web.DOM.Document as DOM |
22 |
| -import Web.DOM.Element as DOM |
| 13 | +import Web.DOM (NodeList, NodeType) as DOM |
| 14 | +import Web.DOM.Element (Element, tagName) as DOM |
23 | 15 | import Web.DOM.Element as DOM.Element
|
24 |
| -import Web.DOM.HTMLCollection (length) as DOM.HTMLCollection |
25 |
| -import Web.DOM.Node as DOM |
| 16 | +import Web.DOM.Node (childNodes, nodeType, textContent) as DOM |
26 | 17 | import Web.DOM.NodeList (length) as DOM.NodeList
|
27 | 18 | import Web.DOM.NodeType as DOM.NodeType
|
28 |
| -import Web.DOM.ParentNode (children) as DOM.ParentNode |
29 | 19 |
|
30 | 20 | --------------------------------------
|
31 | 21 | -- Text
|
32 | 22 |
|
33 |
| -getElementNodeType :: DOM.Element -> DOM.NodeType |
34 |
| -getElementNodeType element = unsafePartial $ DOM.nodeType (DOM.Element.toNode element) |
35 | 23 |
|
36 | 24 | checkElementIsNodeType :: DOM.NodeType -> DOM.Element -> Effect Unit
|
37 |
| -checkElementIsNodeType expectedNodeType element = |
38 |
| - let nodeType = getElementNodeType element |
39 |
| - in when (nodeType /= expectedNodeType) (throwException $ error $ "Expected element to be a " <> show expectedNodeType <> ", but got " <> show nodeType) |
| 25 | +checkElementIsNodeType = checkElementIsNodeType' |
| 26 | + where |
| 27 | + getElementNodeType :: DOM.Element -> DOM.NodeType |
| 28 | + getElementNodeType element = unsafePartial $ DOM.nodeType (DOM.Element.toNode element) |
| 29 | + |
| 30 | + checkElementIsNodeType' :: DOM.NodeType -> DOM.Element -> Effect Unit |
| 31 | + checkElementIsNodeType' expectedNodeType element = |
| 32 | + let nodeType = getElementNodeType element |
| 33 | + in when (nodeType /= expectedNodeType) (throwException $ error $ "Expected element to be a " <> show expectedNodeType <> ", but got " <> show nodeType) |
40 | 34 |
|
41 | 35 | checkIsTextNode :: DOM.Element -> Effect Unit
|
42 | 36 | checkIsTextNode = checkElementIsNodeType DOM.NodeType.TextNode
|
|
0 commit comments