3
3
// of the MICROSOFT REACTIVE EXTENSIONS FOR JAVASCRIPT AND .NET LIBRARIES License.
4
4
// See http://go.microsoft.com/fwlink/?LinkId=186234.
5
5
6
- ( function ( )
7
- {
8
- var _jQuery , proto , global , root , observable , asyncSubject , observableCreate , disposableEmpty , slice ;
9
- _jQuery = jQuery ;
10
- proto = _jQuery . fn ;
11
- global = this ;
12
- slice = [ ] . slice ;
13
- if ( typeof ProvideCustomRxRootObject == "undefined" ) {
14
- root = global . Rx ;
15
- } else {
16
- root = ProvideCustomRxRootObject ( ) ;
17
- }
18
- observable = root . Observable ;
19
- asyncSubject = root . AsyncSubject ;
20
- observableCreate = observable . Create ;
21
- disposableEmpty = root . Disposable . Empty ;
6
+ ( function ( global , $ ) {
7
+ var root = global . Rx ,
8
+ observable = root . Observable ,
9
+ asyncSubject = root . AsyncSubject ,
10
+ observableCreate = observable . create ,
11
+ observableCreateWithDisposable = observable . createWithDisposable ,
12
+ disposableEmpty = root . Disposable . empty ,
13
+ slice = Array . prototype . slice ,
14
+ proto = $ . fn ;
15
+
16
+ proto . onAsObservable = function ( events , selector , data ) {
17
+ var parent = this ;
18
+ return observableCreate ( function ( observer ) {
19
+ var handler = function ( eventObject ) {
20
+ observer . onNext ( eventObject ) ;
21
+ } ;
22
+ parent . on ( events , selector , data , handler ) ;
23
+ return function ( ) {
24
+ parent . off ( events , selector , handler ) ;
25
+ } ;
26
+ } ) ;
27
+ } ;
22
28
23
29
proto . bindAsObservable = function ( eventType , eventData ) {
24
- var parent ;
25
- parent = this ;
30
+ var parent = this ;
26
31
return observableCreate ( function ( observer ) {
27
- var handler ;
28
- handler = function ( eventObject ) {
29
- observer . OnNext ( eventObject ) ;
32
+ var handler = function ( eventObject ) {
33
+ observer . onNext ( eventObject ) ;
30
34
} ;
31
35
parent . bind ( eventType , eventData , handler ) ;
32
36
return function ( ) {
33
37
parent . unbind ( eventType , handler ) ;
34
38
} ;
35
39
} ) ;
36
40
} ;
37
- proto . delegateAsObservable = function ( selector , eventType ) {
38
- var parent , args ;
39
- parent = this ;
40
- args = slice . call ( arguments ) ;
41
+ proto . delegateAsObservable = function ( selector , eventType , eventData ) {
42
+ var parent = this ;
41
43
return observableCreate ( function ( observer ) {
42
- var handler ;
43
- handler = function ( eventObject ) {
44
- observer . OnNext ( eventObject ) ;
44
+ var handler = function ( eventObject ) {
45
+ observer . onNext ( eventObject ) ;
45
46
} ;
46
- args . push ( handler ) ;
47
- parent . delegate . apply ( this , args ) ;
47
+ parent . delegate ( selector , eventType , eventData , handler ) ;
48
48
return function ( ) {
49
49
parent . undelegate ( selector , eventType , handler ) ;
50
50
} ;
51
51
} ) ;
52
52
} ;
53
53
proto . liveAsObservable = function ( eventType , eventData ) {
54
- var parent ;
55
- parent = this ;
54
+ var parent = this ;
56
55
return observableCreate ( function ( observer ) {
57
- var handler ;
58
- handler = function ( eventObject ) {
59
- observer . OnNext ( eventObject ) ;
56
+ var handler = function ( eventObject ) {
57
+ observer . onNext ( eventObject ) ;
60
58
} ;
61
59
parent . live ( eventType , eventData , handler ) ;
62
60
return function ( ) {
116
114
return this . bindAsObservable ( 'unload' , eventData ) ;
117
115
} ;
118
116
proto . oneAsObservable = function ( eventType , eventData ) {
119
- var parent ;
120
- parent = this ;
121
- return observableCreate ( function ( observer ) {
122
- var handler ;
123
- handler = function ( eventObject ) {
117
+ var parent = this ;
118
+ return observableCreateWithDisposable ( function ( observer ) {
119
+ var handler = function ( eventObject ) {
124
120
parent . unbind ( eventType , handler ) ;
125
- observer . OnNext ( eventObject ) ;
126
- observer . OnCompleted ( ) ;
121
+ observer . onNext ( eventObject ) ;
122
+ observer . onCompleted ( ) ;
127
123
} ;
128
124
parent . bind ( eventType , eventData , handler ) ;
129
- return function ( ) { } ;
125
+ return dispoableEmpty ;
130
126
} ) ;
131
127
} ;
132
128
proto . readyAsObservable = function ( ) {
133
- var parent ;
134
- parent = this ;
135
- return observableCreate ( function ( observer ) {
136
- var handler ;
137
- handler = function ( eventObject ) {
138
- observer . OnNext ( eventObject ) ;
129
+ var parent = this ;
130
+ return observableCreateWithDisposable ( function ( observer ) {
131
+ var handler = function ( eventObject ) {
132
+ observer . onNext ( eventObject ) ;
139
133
} ;
140
134
parent . ready ( handler ) ;
141
- return function ( ) { } ;
135
+ return dispoableEmpty ;
142
136
} ) ;
143
137
} ;
144
138
proto . hideAsObservable = function ( duration ) {
145
- var subject ;
146
- subject = new asyncSubject ( ) ;
139
+ var subject = new asyncSubject ( ) ;
147
140
this . hide ( duration , function ( ) {
148
- subject . OnNext ( this ) ;
149
- subject . OnCompleted ( ) ;
141
+ subject . onNext ( this ) ;
142
+ subject . onCompleted ( ) ;
150
143
} ) ;
151
144
return subject ;
152
145
} ;
153
146
proto . showAsObservable = function ( duration ) {
154
- var subject ;
155
- subject = new asyncSubject ( ) ;
147
+ var subject = new asyncSubject ( ) ;
156
148
this . show ( duration , function ( ) {
157
- subject . OnNext ( this ) ;
158
- subject . OnCompleted ( ) ;
149
+ subject . onNext ( this ) ;
150
+ subject . onCompleted ( ) ;
159
151
} ) ;
160
152
return subject ;
161
153
} ;
162
154
proto . animateAsObservable = function ( properties , duration , easing ) {
163
- var subject ;
164
- subject = new asyncSubject ( ) ;
155
+ var subject = new asyncSubject ( ) ;
165
156
this . animate ( properties , duration , easing , function ( ) {
166
- subject . OnNext ( this ) ;
167
- subject . OnCompleted ( ) ;
157
+ subject . onNext ( this ) ;
158
+ subject . onCompleted ( ) ;
168
159
} ) ;
169
160
return subject ;
170
161
} ;
171
162
proto . fadeInAsObservable = function ( duration ) {
172
- var subject ;
173
- subject = new asyncSubject ( ) ;
163
+ var subject = new asyncSubject ( ) ;
174
164
this . fadeIn ( duration , function ( ) {
175
- subject . OnNext ( this ) ;
176
- subject . OnCompleted ( ) ;
165
+ subject . onNext ( this ) ;
166
+ subject . onCompleted ( ) ;
177
167
} ) ;
178
168
return subject ;
179
169
} ;
180
170
proto . fadeToAsObservable = function ( duration , opacity ) {
181
- var subject ;
182
- subject = new asyncSubject ( ) ;
171
+ var subject = new asyncSubject ( ) ;
183
172
this . fadeTo ( duration , opacity , function ( ) {
184
- subject . OnNext ( this ) ;
185
- subject . OnCompleted ( ) ;
173
+ subject . onNext ( this ) ;
174
+ subject . onCompleted ( ) ;
186
175
} ) ;
187
176
return subject ;
188
177
} ;
189
178
proto . fadeOutAsObservable = function ( duration ) {
190
- var subject ;
191
- subject = new asyncSubject ( ) ;
179
+ var subject = new asyncSubject ( ) ;
192
180
this . fadeOut ( duration , function ( ) {
193
- subject . OnNext ( this ) ;
194
- subject . OnCompleted ( ) ;
181
+ subject . onNext ( this ) ;
182
+ subject . onCompleted ( ) ;
195
183
} ) ;
196
184
return subject ;
197
185
} ;
198
186
proto . slideDownAsObservable = function ( duration ) {
199
- var subject ;
200
- subject = new asyncSubject ( ) ;
187
+ var subject = new asyncSubject ( ) ;
201
188
this . slideDown ( duration , function ( ) {
202
- subject . OnNext ( this ) ;
203
- subject . OnCompleted ( ) ;
189
+ subject . onNext ( this ) ;
190
+ subject . onCompleted ( ) ;
204
191
} ) ;
205
192
return subject ;
206
193
} ;
207
194
proto . slideUpAsObservable = function ( duration ) {
208
- var subject ;
209
- subject = new asyncSubject ( ) ;
195
+ var subject = new asyncSubject ( ) ;
210
196
this . slideUp ( duration , function ( ) {
211
- subject . OnNext ( this ) ;
212
- subject . OnCompleted ( ) ;
197
+ subject . onNext ( this ) ;
198
+ subject . onCompleted ( ) ;
213
199
} ) ;
214
200
return subject ;
215
201
} ;
216
202
proto . slideToggleAsObservable = function ( duration ) {
217
- var subject ;
218
- subject = new asyncSubject ( ) ;
219
- this . slideToggle ( duration , function ( )
220
- {
221
- subject . OnNext ( this ) ;
222
- subject . OnCompleted ( ) ;
203
+ var subject = new asyncSubject ( ) ;
204
+ this . slideToggle ( duration , function ( ) {
205
+ subject . onNext ( this ) ;
206
+ subject . onCompleted ( ) ;
223
207
} ) ;
224
208
return subject ;
225
209
} ;
226
210
var ajaxAsObservable = _jQuery . ajaxAsObservable = function ( settings ) {
227
- var subject , internalSettings , k ;
228
- internalSettings = { } ;
229
- for ( k in settings ) {
211
+ var subject = new asyncSubject ( ) , internalSettings = { } ;
212
+ for ( var k in settings ) {
230
213
internalSettings [ k ] = settings [ k ] ;
231
- }
232
- subject = new asyncSubject ( ) ;
214
+ }
233
215
internalSettings . success = function ( data , textStatus , jqXHR ) {
234
- subject . OnNext ( { data : data , textStatus : textStatus , jqXHR : jqXHR } ) ;
235
- subject . OnCompleted ( ) ;
216
+ subject . onNext ( { data : data , textStatus : textStatus , jqXHR : jqXHR } ) ;
217
+ subject . onCompleted ( ) ;
236
218
} ;
237
219
internalSettings . error = function ( jqXHR , textStatus , errorThrown ) {
238
- subject . OnError ( { jqXHR : jqXHR , textStatus : textStatus , errorThrown : errorThrown } ) ;
220
+ subject . onError ( { jqXHR : jqXHR , textStatus : textStatus , errorThrown : errorThrown } ) ;
239
221
} ;
240
- _jQuery . ajax ( internalSettings ) ;
222
+ $ . ajax ( internalSettings ) ;
241
223
return subject ;
242
224
} ;
243
- _jQuery . getAsObservable = function ( url , data , dataType ) {
225
+ $ . getAsObservable = function ( url , data , dataType ) {
244
226
return ajaxAsObservable ( { url : url , dataType : dataType , data : data } ) ;
245
227
} ;
246
- _jQuery . getJSONAsObservable = function ( url , data ) {
228
+ $ . getJSONAsObservable = function ( url , data ) {
247
229
return ajaxAsObservable ( { url : url , dataType : 'json' , data : data } ) ;
248
230
} ;
249
- _jQuery . getScriptAsObservable = function ( url ) {
231
+ $ . getScriptAsObservable = function ( url ) {
250
232
return ajaxAsObservable ( { url : url , dataType : 'script' } ) ;
251
233
} ;
252
- _jQuery . postAsObservable = function ( url , data , dataType ) {
234
+ $ . postAsObservable = function ( url , data , dataType ) {
253
235
return ajaxAsObservable ( { url : url , dataType : dataType , data : data , type : 'POST' } ) ;
254
236
} ;
255
- } ) ( ) ;
237
+ } ) ( this , jQuery ) ;
0 commit comments