@@ -33,7 +33,7 @@ angular.module('ui.scroll', [])
33
33
function ( console , $injector , $rootScope , $timeout , $q , $parse ) {
34
34
const $animate = ( $injector . has && $injector . has ( '$animate' ) ) ? $injector . get ( '$animate' ) : null ;
35
35
const isAngularVersionLessThen1_3 = angular . version . major === 1 && angular . version . minor < 3 ;
36
- const log = console . debug || console . log ;
36
+ // const log = console.debug || console.log;
37
37
38
38
return {
39
39
require : [ '?^uiScrollViewport' ] ,
@@ -91,117 +91,108 @@ angular.module('ui.scroll', [])
91
91
}
92
92
93
93
function Buffer ( itemName , $scope , linker , bufferSize ) {
94
- var buffer , reset ;
94
+ const buffer = Object . create ( Array . prototype ) ;
95
95
96
- buffer = Object . create ( Array . prototype ) ;
97
-
98
- reset = function ( origin ) {
96
+ function reset ( origin ) {
99
97
buffer . eof = false ;
100
98
buffer . bof = false ;
101
99
buffer . first = origin ;
102
100
buffer . next = origin ;
103
101
buffer . minIndex = Number . MAX_VALUE ;
104
102
return buffer . maxIndex = Number . MIN_VALUE ;
105
- } ;
103
+ }
106
104
107
- buffer . size = bufferSize ;
105
+ angular . extend ( buffer , {
106
+ size : bufferSize ,
108
107
109
- buffer . append = function ( items ) {
110
- var item , j , len , results ;
111
- results = [ ] ;
112
- for ( j = 0 , len = items . length ; j < len ; j ++ ) {
113
- item = items [ j ] ;
114
- ++ buffer . next ;
115
- results . push ( buffer . insert ( 'append' , item ) ) ;
116
- }
117
- return results ;
118
- } ;
108
+ append ( items ) {
109
+ items . forEach ( ( item ) => {
110
+ ++ buffer . next ;
111
+ buffer . insert ( 'append' , item ) ;
112
+ } ) ;
113
+ } ,
119
114
120
- buffer . prepend = function ( items ) {
121
- var item , j , len , ref , results ;
122
- ref = items . reverse ( ) ;
123
- results = [ ] ;
124
- for ( j = 0 , len = ref . length ; j < len ; j ++ ) {
125
- item = ref [ j ] ;
126
- -- buffer . first ;
127
- results . push ( buffer . insert ( 'prepend' , item ) ) ;
128
- }
129
- return results ;
130
- } ;
115
+ prepend ( items ) {
116
+ items . reverse ( ) . forEach ( ( item ) => {
117
+ -- buffer . first ;
118
+ buffer . insert ( 'prepend' , item ) ;
119
+ } ) ;
120
+ } ,
131
121
132
- /**
133
- * inserts wrapped element in the buffer
134
- * the first argument is either operation keyword (see below) or a number for operation 'insert'
135
- * for insert the number is the index for the buffer element the new one have to be inserted after
136
- * operations: 'append', 'prepend', 'insert', 'remove', 'update', 'none'
137
- */
138
- buffer . insert = function ( operation , item ) {
139
- var itemScope , wrapper ;
140
- itemScope = $scope . $new ( ) ;
141
- itemScope [ itemName ] = item ;
142
- wrapper = {
143
- scope : itemScope ,
144
- item : item
145
- } ;
146
- linker ( itemScope , function ( clone ) {
147
- return wrapper . element = clone ;
148
- } ) ;
149
- if ( operation % 1 === 0 ) { // it is an insert
150
- wrapper . op = 'insert' ;
151
- return buffer . splice ( operation , 0 , wrapper ) ;
152
- } else {
153
- wrapper . op = operation ;
154
- switch ( operation ) {
155
- case 'append' :
156
- return buffer . push ( wrapper ) ;
157
- case 'prepend' :
158
- return buffer . unshift ( wrapper ) ;
159
- }
160
- }
161
- } ;
122
+ /**
123
+ * inserts wrapped element in the buffer
124
+ * the first argument is either operation keyword (see below) or a number for operation 'insert'
125
+ * for insert the number is the index for the buffer element the new one have to be inserted after
126
+ * operations: 'append', 'prepend', 'insert', 'remove', 'update', 'none'
127
+ */
128
+ insert ( operation , item ) {
129
+ const itemScope = $scope . $new ( ) ;
130
+ const wrapper = {
131
+ item,
132
+ scope : itemScope
133
+ } ;
134
+
135
+ itemScope [ itemName ] = item ;
162
136
163
- // removes elements from buffer
164
- buffer . remove = function ( arg1 , arg2 ) {
165
- var i , j , ref , ref1 ;
166
- if ( angular . isNumber ( arg1 ) ) {
167
- // removes items from arg1 (including) through arg2 (excluding)
168
- for ( i = j = ref = arg1 , ref1 = arg2 ; ref <= ref1 ? j < ref1 : j > ref1 ; i = ref <= ref1 ? ++ j : -- j ) {
169
- removeElement ( buffer [ i ] ) ;
137
+ linker ( itemScope , ( clone ) => wrapper . element = clone ) ;
138
+
139
+ if ( operation % 1 === 0 ) { // it is an insert
140
+ wrapper . op = 'insert' ;
141
+ buffer . splice ( operation , 0 , wrapper ) ;
142
+ } else {
143
+ wrapper . op = operation ;
144
+ switch ( operation ) {
145
+ case 'append' :
146
+ buffer . push ( wrapper ) ;
147
+ break ;
148
+ case 'prepend' :
149
+ buffer . unshift ( wrapper ) ;
150
+ break ;
151
+ }
152
+ }
153
+ } ,
154
+
155
+ // removes elements from buffer
156
+ remove ( arg1 , arg2 ) {
157
+ if ( angular . isNumber ( arg1 ) ) {
158
+ // removes items from arg1 (including) through arg2 (excluding)
159
+ for ( var i = arg1 ; i < arg2 ; i ++ ) {
160
+ removeElement ( buffer [ i ] ) ;
161
+ }
162
+ return buffer . splice ( arg1 , arg2 - arg1 ) ;
170
163
}
171
- return buffer . splice ( arg1 , arg2 - arg1 ) ;
172
- } else {
173
164
// removes single item(wrapper) from the buffer
174
165
buffer . splice ( buffer . indexOf ( arg1 ) , 1 ) ;
166
+
175
167
return removeElementAnimated ( arg1 ) ;
176
- }
177
- } ;
168
+ } ,
178
169
179
- buffer . setUpper = function ( ) {
180
- return buffer . maxIndex = buffer . eof ? buffer . next - 1 : Math . max ( buffer . next - 1 , buffer . maxIndex ) ;
181
- } ;
170
+ setUpper ( ) {
171
+ buffer . maxIndex = buffer . eof ? buffer . next - 1 : Math . max ( buffer . next - 1 , buffer . maxIndex ) ;
172
+ } ,
182
173
183
- buffer . setLower = function ( ) {
184
- return buffer . minIndex = buffer . bof ? buffer . minIndex = buffer . first : Math . min ( buffer . first , buffer . minIndex ) ;
185
- } ;
174
+ setLower ( ) {
175
+ buffer . minIndex = buffer . bof ? buffer . minIndex = buffer . first : Math . min ( buffer . first , buffer . minIndex ) ;
176
+ } ,
186
177
187
- buffer . syncDatasource = function ( datasource ) {
188
- var offset ;
189
- offset = buffer . minIndex - ( Math . min ( buffer . minIndex , datasource . minIndex || Number . MAX_VALUE ) ) ;
190
- datasource . minIndex = ( buffer . minIndex -= offset ) ;
191
- datasource . maxIndex = buffer . maxIndex = Math . max ( buffer . maxIndex , datasource . maxIndex || Number . MIN_VALUE ) ;
192
- return offset ;
193
- } ;
178
+ syncDatasource ( datasource ) {
179
+ const offset = buffer . minIndex - ( Math . min ( buffer . minIndex , datasource . minIndex || Number . MAX_VALUE ) ) ;
194
180
195
- // clears the buffer
196
- buffer . clear = function ( ) {
197
- buffer . remove ( 0 , buffer . length ) ;
198
- if ( arguments . length ) {
199
- return reset ( arguments [ 0 ] ) ;
200
- } else {
201
- return reset ( 1 ) ;
181
+ datasource . minIndex = ( buffer . minIndex -= offset ) ;
182
+ datasource . maxIndex = buffer . maxIndex = Math . max ( buffer . maxIndex , datasource . maxIndex || Number . MIN_VALUE ) ;
183
+
184
+ return offset ;
185
+ } ,
186
+
187
+ // clears the buffer
188
+ clear ( ) {
189
+ buffer . remove ( 0 , buffer . length ) ;
190
+ arguments . length ? reset ( arguments [ 0 ] ) : reset ( 1 ) ;
202
191
}
203
- } ;
192
+ } ) ;
193
+
204
194
reset ( 1 ) ;
195
+
205
196
return buffer ;
206
197
}
207
198
0 commit comments