This repository was archived by the owner on Oct 4, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathSelection.purs
More file actions
149 lines (125 loc) · 2.96 KB
/
Selection.purs
File metadata and controls
149 lines (125 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
module DOM.HTML.Selection
( SelectionType
, anchorNode
, anchorOffset
, focusNode
, focusOffset
, isCollapsed
, rangeCount
, type_
) where
import Prelude
import Control.Monad.Eff (Eff)
import DOM (DOM)
import DOM.HTML.Types (Range, SELECTION, Selection)
import DOM.Node.Types (Node)
import Data.Maybe (Maybe(..), fromJust)
import Partial.Unsafe (unsafePartial)
foreign import anchorNode
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Node
foreign import anchorOffset
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Int
foreign import focusNode
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Node
foreign import focusOffset
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Int
foreign import isCollapsed
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Boolean
foreign import rangeCount
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Int
foreign import typeImpl
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) String
type_
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) SelectionType
type_ = unsafePartial $ typeImpl >=> pure <<< fromJust <<< toSelectionType
data SelectionType
= None
| Caret
| Range
toSelectionType :: String -> Maybe SelectionType
toSelectionType "None" = Just None
toSelectionType "Caret" = Just Caret
toSelectionType "Range" = Just Range
toSelectionType _ = Nothing
foreign import getRangeAt
:: forall eff
. Int
-> Selection
-> Eff (selection :: SELECTION | eff) Range
foreign import collapse
:: forall eff
. Node
-> Int
-> Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import extend
:: forall eff
. Node
-> Int
-> Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import collapseToStart
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import collapseToEnd
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import selectAllChildren
:: forall eff
. Node
-> Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import addRange
:: forall eff
. Range
-> Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import removeRange
:: forall eff
. Range
-> Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import removeAllRanges
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) Unit
foreign import deleteFromDocument
:: forall eff
. Selection
-> Eff (dom :: DOM, selection :: SELECTION | eff) Unit
foreign import toString
:: forall eff
. Selection
-> Eff (selection :: SELECTION | eff) String
foreign import containsNode
:: forall eff
. Node
-> Boolean
-> Selection
-> Eff (selection :: SELECTION | eff) Boolean
foreign import setBaseAndExtent
:: forall eff
. Node
-> Int
-> Node
-> Int
-> Selection
-> Eff (selection :: SELECTION | eff) Unit