14
14
*/
15
15
16
16
( function ( global , $ ) {
17
- var root = global . Rx ,
17
+ var root = global . Rx ,
18
18
observable = root . Observable ,
19
19
observableProto = observable . prototype ,
20
20
asyncSubject = root . AsyncSubject ,
45
45
return deferred ;
46
46
} ;
47
47
48
- $ . Callbacks . prototype . toObservable = function ( ) {
49
- var parent = this ;
50
- return observableCreate ( function ( observer ) {
51
- var handler = function ( values ) {
52
- observer . onNext ( values ) ;
53
- } ;
54
- parent . add ( handler ) ;
55
- return function ( ) {
56
- parent . remove ( handler ) ;
48
+ //in order to support jQuery 1.6.*
49
+ if ( $ . Callbacks ) {
50
+ $ . Callbacks . prototype . toObservable = function ( ) {
51
+ var parent = this ;
52
+ return observableCreate ( function ( observer ) {
53
+ var handler = function ( values ) {
54
+ observer . onNext ( values ) ;
55
+ } ;
56
+ parent . add ( handler ) ;
57
+ return function ( ) {
58
+ parent . remove ( handler ) ;
59
+ } ;
60
+ } ) ;
57
61
} ;
58
- } ) ;
59
- } ;
62
+ }
60
63
61
64
proto . onAsObservable = function ( events , selector , data ) {
62
65
var parent = this ;
72
75
} ;
73
76
74
77
proto . bindAsObservable = function ( eventType , eventData ) {
75
- var parent = this ;
78
+ var parent = this ;
76
79
return observableCreate ( function ( observer ) {
77
- var handler = function ( eventObject ) {
80
+ var handler = function ( eventObject ) {
78
81
observer . onNext ( eventObject ) ;
79
82
} ;
80
83
parent . bind ( eventType , eventData , handler ) ;
84
87
} ) ;
85
88
} ;
86
89
proto . delegateAsObservable = function ( selector , eventType , eventData ) {
87
- var parent = this ;
90
+ var parent = this ;
88
91
return observableCreate ( function ( observer ) {
89
- var handler = function ( eventObject ) {
92
+ var handler = function ( eventObject ) {
90
93
observer . onNext ( eventObject ) ;
91
94
} ;
92
95
parent . delegate ( selector , eventType , eventData , handler ) ;
93
96
return function ( ) {
94
97
parent . undelegate ( selector , eventType , handler ) ;
95
98
} ;
96
99
} ) ;
97
- } ;
100
+ } ;
98
101
proto . liveAsObservable = function ( eventType , eventData ) {
99
- var parent = this ;
102
+ var parent = this ;
100
103
return observableCreate ( function ( observer ) {
101
- var handler = function ( eventObject ) {
104
+ var handler = function ( eventObject ) {
102
105
observer . onNext ( eventObject ) ;
103
106
} ;
104
107
parent . live ( eventType , eventData , handler ) ;
109
112
} ;
110
113
proto . changeAsObservable = function ( eventData ) {
111
114
return this . bindAsObservable ( 'change' , eventData ) ;
112
- } ;
115
+ } ;
113
116
proto . clickAsObservable = function ( eventData ) {
114
117
return this . bindAsObservable ( 'click' , eventData ) ;
115
118
} ;
116
119
proto . dblclickAsObservable = function ( eventData ) {
117
120
return this . bindAsObservable ( 'dblclick' , eventData ) ;
118
121
} ;
119
- proto . focusAsObservable = function ( eventData ) {
120
- return this . bindAsObservable ( 'focus' , eventData ) ;
121
- } ;
122
- proto . focusinAsObservable = function ( eventData ) {
123
- return this . bindAsObservable ( 'focusin' , eventData ) ;
124
- } ;
125
- proto . focusoutAsObservable = function ( eventData ) {
126
- return this . bindAsObservable ( 'focusout' , eventData ) ;
127
- } ;
128
- proto . keydownAsObservable = function ( eventData ) {
129
- return this . bindAsObservable ( 'keydown' , eventData ) ;
130
- } ;
131
- proto . keyupAsObservable = function ( eventData ) {
132
- return this . bindAsObservable ( 'keyup' , eventData ) ;
133
- } ;
134
- proto . loadAsObservable = function ( eventData ) {
135
- return this . bindAsObservable ( 'load' , eventData ) ;
136
- } ;
137
- proto . mousedownAsObservable = function ( eventData ) {
138
- return this . bindAsObservable ( 'mousedown' , eventData ) ;
139
- } ;
140
- proto . mouseenterAsObservable = function ( eventData ) {
141
- return this . bindAsObservable ( 'mouseenter' , eventData ) ;
142
- } ;
143
- proto . mouseleaveAsObservable = function ( eventData ) {
144
- return this . bindAsObservable ( 'mouseleave' , eventData ) ;
145
- } ;
146
- proto . mousemoveAsObservable = function ( eventData ) {
147
- return this . bindAsObservable ( 'mousemove' , eventData ) ;
148
- } ;
122
+ proto . focusAsObservable = function ( eventData ) {
123
+ return this . bindAsObservable ( 'focus' , eventData ) ;
124
+ } ;
125
+ proto . focusinAsObservable = function ( eventData ) {
126
+ return this . bindAsObservable ( 'focusin' , eventData ) ;
127
+ } ;
128
+ proto . focusoutAsObservable = function ( eventData ) {
129
+ return this . bindAsObservable ( 'focusout' , eventData ) ;
130
+ } ;
131
+ proto . keydownAsObservable = function ( eventData ) {
132
+ return this . bindAsObservable ( 'keydown' , eventData ) ;
133
+ } ;
134
+ proto . keyupAsObservable = function ( eventData ) {
135
+ return this . bindAsObservable ( 'keyup' , eventData ) ;
136
+ } ;
137
+ proto . loadAsObservable = function ( eventData ) {
138
+ return this . bindAsObservable ( 'load' , eventData ) ;
139
+ } ;
140
+ proto . mousedownAsObservable = function ( eventData ) {
141
+ return this . bindAsObservable ( 'mousedown' , eventData ) ;
142
+ } ;
143
+ proto . mouseenterAsObservable = function ( eventData ) {
144
+ return this . bindAsObservable ( 'mouseenter' , eventData ) ;
145
+ } ;
146
+ proto . mouseleaveAsObservable = function ( eventData ) {
147
+ return this . bindAsObservable ( 'mouseleave' , eventData ) ;
148
+ } ;
149
+ proto . mousemoveAsObservable = function ( eventData ) {
150
+ return this . bindAsObservable ( 'mousemove' , eventData ) ;
151
+ } ;
149
152
proto . mouseoutAsObservable = function ( eventData ) {
150
153
return this . bindAsObservable ( 'mouseout' , eventData ) ;
151
154
} ;
152
- proto . mouseoverAsObservable = function ( eventData ) {
153
- return this . bindAsObservable ( 'mouseover' , eventData ) ;
154
- } ;
155
- proto . mouseupAsObservable = function ( eventData ) {
156
- return this . bindAsObservable ( 'mouseup' , eventData ) ;
157
- } ;
158
- proto . resizeAsObservable = function ( eventData ) {
159
- return this . bindAsObservable ( 'resize' , eventData ) ;
160
- } ;
161
- proto . scrollAsObservable = function ( eventData ) {
162
- return this . bindAsObservable ( 'scroll' , eventData ) ;
163
- } ;
164
- proto . selectAsObservable = function ( eventData ) {
165
- return this . bindAsObservable ( 'select' , eventData ) ;
166
- } ;
167
- proto . submitAsObservable = function ( eventData ) {
168
- return this . bindAsObservable ( 'submit' , eventData ) ;
169
- } ;
170
- proto . unloadAsObservable = function ( eventData ) {
171
- return this . bindAsObservable ( 'unload' , eventData ) ;
172
- } ;
155
+ proto . mouseoverAsObservable = function ( eventData ) {
156
+ return this . bindAsObservable ( 'mouseover' , eventData ) ;
157
+ } ;
158
+ proto . mouseupAsObservable = function ( eventData ) {
159
+ return this . bindAsObservable ( 'mouseup' , eventData ) ;
160
+ } ;
161
+ proto . resizeAsObservable = function ( eventData ) {
162
+ return this . bindAsObservable ( 'resize' , eventData ) ;
163
+ } ;
164
+ proto . scrollAsObservable = function ( eventData ) {
165
+ return this . bindAsObservable ( 'scroll' , eventData ) ;
166
+ } ;
167
+ proto . selectAsObservable = function ( eventData ) {
168
+ return this . bindAsObservable ( 'select' , eventData ) ;
169
+ } ;
170
+ proto . submitAsObservable = function ( eventData ) {
171
+ return this . bindAsObservable ( 'submit' , eventData ) ;
172
+ } ;
173
+ proto . unloadAsObservable = function ( eventData ) {
174
+ return this . bindAsObservable ( 'unload' , eventData ) ;
175
+ } ;
173
176
proto . oneAsObservable = function ( types , selector , data ) {
174
- var parent = this ;
177
+ var parent = this ;
175
178
return observableCreateWithDisposable ( function ( observer ) {
176
- var handler = function ( eventObject ) {
177
- parent . off ( types , selector , data , handler ) ;
179
+ var handler = function ( eventObject ) {
180
+ parent . off ( types , selector , data , handler ) ;
178
181
observer . onNext ( eventObject ) ;
179
- observer . onCompleted ( ) ;
182
+ observer . onCompleted ( ) ;
180
183
} ;
181
184
parent . on ( types , selector , data , handler ) ;
182
185
return dispoableEmpty ;
183
186
} ) ;
184
187
} ;
185
188
proto . readyAsObservable = function ( ) {
186
- var parent = this ;
189
+ var parent = this ;
187
190
return observableCreateWithDisposable ( function ( observer ) {
188
- var handler = function ( eventObject ) {
191
+ var handler = function ( eventObject ) {
189
192
observer . onNext ( eventObject ) ;
190
193
} ;
191
194
parent . ready ( handler ) ;
192
195
return dispoableEmpty ;
193
196
} ) ;
194
- } ;
197
+ } ;
195
198
proto . hideAsObservable = function ( duration ) {
196
- var subject = new asyncSubject ( ) ;
199
+ var subject = new asyncSubject ( ) ;
197
200
this . hide ( duration , function ( ) {
198
201
subject . onNext ( this ) ;
199
202
subject . onCompleted ( ) ;
200
203
} ) ;
201
204
return subject ;
202
205
} ;
203
206
proto . showAsObservable = function ( duration , easing ) {
204
- var subject = new asyncSubject ( ) ;
207
+ var subject = new asyncSubject ( ) ;
205
208
this . show ( duration , function ( ) {
206
209
subject . onNext ( this ) ;
207
210
subject . onCompleted ( ) ;
208
211
} ) ;
209
212
return subject ;
210
213
} ;
211
214
proto . animateAsObservable = function ( properties , duration , easing ) {
212
- var subject = new asyncSubject ( ) ;
215
+ var subject = new asyncSubject ( ) ;
213
216
this . animate ( properties , duration , easing , function ( ) {
214
217
subject . onNext ( this ) ;
215
218
subject . onCompleted ( ) ;
216
219
} ) ;
217
220
return subject ;
218
221
} ;
219
222
proto . fadeInAsObservable = function ( duration , easing ) {
220
- var subject = new asyncSubject ( ) ;
223
+ var subject = new asyncSubject ( ) ;
221
224
this . fadeIn ( duration , easing , function ( ) {
222
225
subject . onNext ( this ) ;
223
226
subject . onCompleted ( ) ;
224
227
} ) ;
225
228
return subject ;
226
229
} ;
227
230
proto . fadeToAsObservable = function ( duration , opacity , easing ) {
228
- var subject = new asyncSubject ( ) ;
231
+ var subject = new asyncSubject ( ) ;
229
232
this . fadeTo ( duration , opacity , easing , function ( ) {
230
233
subject . onNext ( this ) ;
231
234
subject . onCompleted ( ) ;
232
235
} ) ;
233
236
return subject ;
234
237
} ;
235
238
proto . fadeOutAsObservable = function ( duration , easing ) {
236
- var subject = new asyncSubject ( ) ;
239
+ var subject = new asyncSubject ( ) ;
237
240
this . fadeOut ( duration , easing , function ( ) {
238
241
subject . onNext ( this ) ;
239
242
subject . onCompleted ( ) ;
247
250
subject . onCompleted ( ) ;
248
251
} ) ;
249
252
return subject ;
250
- } ;
253
+ } ;
251
254
proto . slideDownAsObservable = function ( duration ) {
252
- var subject = new asyncSubject ( ) ;
255
+ var subject = new asyncSubject ( ) ;
253
256
this . slideDown ( duration , function ( ) {
254
257
subject . onNext ( this ) ;
255
258
subject . onCompleted ( ) ;
256
259
} ) ;
257
260
return subject ;
258
261
} ;
259
262
proto . slideUpAsObservable = function ( duration ) {
260
- var subject = new asyncSubject ( ) ;
263
+ var subject = new asyncSubject ( ) ;
261
264
this . slideUp ( duration , function ( ) {
262
265
subject . onNext ( this ) ;
263
266
subject . onCompleted ( ) ;
264
267
} ) ;
265
268
return subject ;
266
269
} ;
267
270
proto . slideToggleAsObservable = function ( duration ) {
268
- var subject = new asyncSubject ( ) ;
271
+ var subject = new asyncSubject ( ) ;
269
272
this . slideToggle ( duration , function ( ) {
270
273
subject . onNext ( this ) ;
271
274
subject . onCompleted ( ) ;
295
298
} ;
296
299
$ . getAsObservable = function ( url , data , dataType ) {
297
300
return ajaxAsObservable ( { url : url , dataType : dataType , data : data } ) ;
298
- } ;
301
+ } ;
299
302
$ . getJSONAsObservable = function ( url , data ) {
300
303
return ajaxAsObservable ( { url : url , dataType : 'json' , data : data } ) ;
301
304
} ;
302
305
$ . getScriptAsObservable = function ( url ) {
303
306
return ajaxAsObservable ( { url : url , dataType : 'script' } ) ;
304
- } ;
305
- $ . postAsObservable = function ( url , data , dataType ) {
307
+ } ;
308
+ $ . postAsObservable = function ( url , data , dataType ) {
306
309
return ajaxAsObservable ( { url : url , dataType : dataType , data : data , type : 'POST' } ) ;
307
- } ;
310
+ } ;
308
311
} ) ( this , jQuery ) ;
0 commit comments