@@ -72,9 +72,16 @@ angular.module('ui.scroll', [])
72
72
Buffer = (itemName , $scope , linker , bufferSize )->
73
73
74
74
buffer = Object .create Array .prototype
75
+
76
+ origin = 1 # starting index for initial load
75
77
76
- # starting index for initial load
77
- origin = 1
78
+ reset = ->
79
+ buffer .eof = false
80
+ buffer .bof = false
81
+ buffer .first = origin
82
+ buffer .next = origin
83
+ buffer .minIndex = Number .MAX_VALUE
84
+ buffer .maxIndex = Number .MIN_VALUE
78
85
79
86
buffer .size = bufferSize
80
87
@@ -123,39 +130,16 @@ angular.module('ui.scroll', [])
123
130
buffer .splice buffer .indexOf (arg1), 1
124
131
removeElementAnimated arg1
125
132
126
-
127
- minIndex = Number .MAX_VALUE
128
- maxIndex = Number .MIN_VALUE
129
-
130
- reset = ->
131
- buffer .eof = false
132
- buffer .bof = false
133
- buffer .first = origin
134
- buffer .next = origin
135
-
136
- minIndex = Number .MAX_VALUE
137
- maxIndex = Number .MIN_VALUE
138
-
139
133
buffer .setUpper = ->
140
- if buffer .eof
141
- maxIndex = buffer .next - 1
142
- else
143
- maxIndex = Math .max buffer .next - 1 , maxIndex
144
-
145
- buffer .maxIndex = -> maxIndex
134
+ buffer .maxIndex = if buffer .eof then buffer .next - 1 else Math .max buffer .next - 1 , buffer .maxIndex
146
135
147
136
buffer .setLower = ->
148
- if buffer .bof
149
- minIndex = buffer .first
150
- else
151
- minIndex = Math .min buffer .first , minIndex
152
-
153
- buffer .minIndex = -> minIndex
137
+ buffer .minIndex = if buffer .bof then buffer .minIndex = buffer .first else Math .min buffer .first , buffer .minIndex
154
138
155
139
buffer .syncDatasource = (datasource )->
156
- offset = minIndex - (Math .min minIndex, datasource .minIndex || Number .MAX_VALUE )
157
- datasource .minIndex = (minIndex -= offset)
158
- datasource .maxIndex = maxIndex = Math .max maxIndex, datasource .maxIndex || Number .MIN_VALUE
140
+ offset = buffer . minIndex - (Math .min buffer . minIndex , datasource .minIndex || Number .MAX_VALUE )
141
+ datasource .minIndex = (buffer . minIndex -= offset)
142
+ datasource .maxIndex = buffer . maxIndex = Math .max buffer . maxIndex , datasource .maxIndex || Number .MIN_VALUE
159
143
console .log " offset #{ offset} "
160
144
offset
161
145
@@ -253,8 +237,8 @@ angular.module('ui.scroll', [])
253
237
viewport .averageItemHeight = (buffer[buffer .length - 1 ].element .offset ().top +
254
238
buffer[buffer .length - 1 ].element .outerHeight (true ) -
255
239
buffer[0 ].element .offset ().top ) / buffer .length
256
- topPadding .height (buffer .first - buffer .minIndex () ) * viewport .averageItemHeight
257
- bottomPadding .height (buffer .maxIndex () - buffer .next + 1 ) * viewport .averageItemHeight
240
+ topPadding .height (buffer .first - buffer .minIndex ) * viewport .averageItemHeight
241
+ bottomPadding .height (buffer .maxIndex - buffer .next + 1 ) * viewport .averageItemHeight
258
242
259
243
viewport .syncDatasource = (datasource ) ->
260
244
return if not buffer .length
0 commit comments