@@ -16,9 +16,8 @@ gap = (element1, element2) ->
16
16
offsetLeft (element2) - offsetLeft (element1) - width (element1)
17
17
18
18
contain = (value ) ->
19
- if value % 1 is 0
20
- Math .min Math .max (0 , value), 100
21
- else value
19
+ return value if isNaN value
20
+ Math .min Math .max (0 , value), 100
22
21
23
22
roundStep = (value , precision , step , floor = 0 ) ->
24
23
step ?= 1 / Math .pow (10 , precision)
@@ -31,7 +30,7 @@ roundStep = (value, precision, step, floor = 0) ->
31
30
roundedValue = steppedValue * decimals / decimals
32
31
parseFloat roundedValue .toFixed precision
33
32
34
- inputEvents =
33
+ events =
35
34
mouse :
36
35
start : ' mousedown'
37
36
move : ' mousemove'
@@ -90,7 +89,7 @@ sliderDirective = ($timeout) ->
90
89
scope .local [low] = scope[low]
91
90
scope .local [high] = scope[high]
92
91
93
- boundToInputs = false
92
+ bound = false
94
93
ngDocument = angularize document
95
94
handleHalfWidth = barWidth = minOffset = maxOffset = minValue = maxValue = valueRange = offsetRange = undefined
96
95
@@ -129,28 +128,28 @@ sliderDirective = ($timeout) ->
129
128
# Translation functions
130
129
percentOffset = (offset ) -> contain ((offset - minOffset) / offsetRange) * 100
131
130
percentValue = (value ) -> contain ((value - minValue) / valueRange) * 100
132
- percentToOffset = (percent ) -> contain pixelize percent * offsetRange / 100
131
+ pixelsToOffset = (percent ) -> pixelize percent * offsetRange / 100
133
132
134
133
setPointers = ->
135
134
offset ceilBub, pixelize (barWidth - width (ceilBub))
136
135
newLowValue = percentValue scope .local [low]
137
- offset minPtr, percentToOffset newLowValue
136
+ offset minPtr, pixelsToOffset newLowValue
138
137
offset lowBub, pixelize (offsetLeft (minPtr) - (halfWidth lowBub) + handleHalfWidth)
139
138
offset selection, pixelize (offsetLeft (minPtr) + handleHalfWidth)
140
139
141
140
switch true
142
141
when range
143
142
newHighValue = percentValue scope .local [high]
144
- offset maxPtr, percentToOffset newHighValue
143
+ offset maxPtr, pixelsToOffset newHighValue
145
144
offset highBub, pixelize (offsetLeft (maxPtr) - (halfWidth highBub) + handleHalfWidth)
146
- selection .css width : percentToOffset newHighValue - newLowValue
145
+ selection .css width : pixelsToOffset newHighValue - newLowValue
147
146
when attributes .highlight is ' right'
148
- selection .css width : percentToOffset 110 - newLowValue
147
+ selection .css width : pixelsToOffset 110 - newLowValue
149
148
when attributes .highlight is ' left'
150
- selection .css width : percentToOffset newLowValue
149
+ selection .css width : pixelsToOffset newLowValue
151
150
offset selection, 0
152
151
153
- bindToInputEvents = (handle , bubble , ref , events ) ->
152
+ bind = (handle , bubble , ref , events ) ->
154
153
currentRef = ref
155
154
onEnd = ->
156
155
bubble .removeClass ' active'
@@ -163,7 +162,7 @@ sliderDirective = ($timeout) ->
163
162
currentRef = ref
164
163
scope .$apply ()
165
164
onMove = (event ) ->
166
- eventX = event .clientX || event .touches ? [0 ]? .clientX || 0
165
+ eventX = event .clientX or event .touches ? [0 ]? .clientX or 0
167
166
newOffset = eventX - element[0 ].getBoundingClientRect ().left - handleHalfWidth
168
167
newOffset = Math .max (Math .min (newOffset, maxOffset), minOffset)
169
168
newPercent = percentOffset newOffset
@@ -211,18 +210,17 @@ sliderDirective = ($timeout) ->
211
210
handle .bind events .start , onStart
212
211
213
212
setBindings = ->
214
- boundToInputs = true
215
- bind = (method ) ->
216
- bindToInputEvents minPtr, lowBub, low, inputEvents[method]
217
- bindToInputEvents maxPtr, highBub, high, inputEvents[method]
218
- bind (inputMethod) for inputMethod in [' touch' , ' mouse' ]
213
+ for method in [' touch' , ' mouse' ]
214
+ bind minPtr, lowBub, low, events[method]
215
+ bind maxPtr, highBub, high, events[method]
216
+ bound = true
219
217
220
- setBindings () unless boundToInputs
218
+ setBindings () unless bound
221
219
setPointers ()
222
220
223
221
$timeout updateDOM
224
222
scope .$watch w, updateDOM, true for w in watchables
225
- window .addEventListener " resize" , updateDOM
223
+ window .addEventListener ' resize' , updateDOM
226
224
227
225
qualifiedDirectiveDefinition = [
228
226
' $timeout'
0 commit comments