1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // This code is licensed by Microsoft Corporation under the terms
3
+ // of the MICROSOFT REACTIVE EXTENSIONS FOR JAVASCRIPT AND .NET LIBRARIES License.
4
+ // See http://go.microsoft.com/fwlink/?LinkId=186234.
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 ;
22
+
23
+ proto . bindAsObservable = function ( eventType , eventData ) {
24
+ var parent ;
25
+ parent = this ;
26
+ return observableCreate ( function ( observer ) {
27
+ var handler ;
28
+ handler = function ( eventObject ) {
29
+ observer . OnNext ( eventObject ) ;
30
+ } ;
31
+ parent . bind ( eventType , eventData , handler ) ;
32
+ return function ( ) {
33
+ parent . unbind ( eventType , handler ) ;
34
+ } ;
35
+ } ) ;
36
+ } ;
37
+ proto . delegateAsObservable = function ( selector , eventType ) {
38
+ var parent , args ;
39
+ parent = this ;
40
+ args = slice . call ( arguments ) ;
41
+ return observableCreate ( function ( observer ) {
42
+ var handler ;
43
+ handler = function ( eventObject ) {
44
+ observer . OnNext ( eventObject ) ;
45
+ } ;
46
+ args . push ( handler ) ;
47
+ parent . delegate . apply ( this , args ) ;
48
+ return function ( ) {
49
+ parent . undelegate ( selector , eventType , handler ) ;
50
+ } ;
51
+ } ) ;
52
+ } ;
53
+ proto . liveAsObservable = function ( eventType , eventData ) {
54
+ var parent ;
55
+ parent = this ;
56
+ return observableCreate ( function ( observer ) {
57
+ var handler ;
58
+ handler = function ( eventObject ) {
59
+ observer . OnNext ( eventObject ) ;
60
+ } ;
61
+ parent . live ( eventType , eventData , handler ) ;
62
+ return function ( ) {
63
+ parent . die ( eventType , handler ) ;
64
+ } ;
65
+ } ) ;
66
+ } ;
67
+ proto . focusAsObservable = function ( eventData ) {
68
+ return this . bindAsObservable ( 'focus' , eventData ) ;
69
+ } ;
70
+ proto . focusinAsObservable = function ( eventData ) {
71
+ return this . bindAsObservable ( 'focusin' , eventData ) ;
72
+ } ;
73
+ proto . focusoutAsObservable = function ( eventData ) {
74
+ return this . bindAsObservable ( 'focusout' , eventData ) ;
75
+ } ;
76
+ proto . keydownAsObservable = function ( eventData ) {
77
+ return this . bindAsObservable ( 'keydown' , eventData ) ;
78
+ } ;
79
+ proto . keyupAsObservable = function ( eventData ) {
80
+ return this . bindAsObservable ( 'keyup' , eventData ) ;
81
+ } ;
82
+ proto . loadAsObservable = function ( eventData ) {
83
+ return this . bindAsObservable ( 'load' , eventData ) ;
84
+ } ;
85
+ proto . mousedownAsObservable = function ( eventData ) {
86
+ return this . bindAsObservable ( 'mousedown' , eventData ) ;
87
+ } ;
88
+ proto . mouseenterAsObservable = function ( eventData ) {
89
+ return this . bindAsObservable ( 'mouseenter' , eventData ) ;
90
+ } ;
91
+ proto . mouseleaveAsObservable = function ( eventData ) {
92
+ return this . bindAsObservable ( 'mouseleave' , eventData ) ;
93
+ } ;
94
+ proto . mousemoveAsObservable = function ( eventData ) {
95
+ return this . bindAsObservable ( 'mousemove' , eventData ) ;
96
+ } ;
97
+ proto . mouseoverAsObservable = function ( eventData ) {
98
+ return this . bindAsObservable ( 'mouseover' , eventData ) ;
99
+ } ;
100
+ proto . mouseupAsObservable = function ( eventData ) {
101
+ return this . bindAsObservable ( 'mouseup' , eventData ) ;
102
+ } ;
103
+ proto . resizeAsObservable = function ( eventData ) {
104
+ return this . bindAsObservable ( 'resize' , eventData ) ;
105
+ } ;
106
+ proto . scrollAsObservable = function ( eventData ) {
107
+ return this . bindAsObservable ( 'scroll' , eventData ) ;
108
+ } ;
109
+ proto . selectAsObservable = function ( eventData ) {
110
+ return this . bindAsObservable ( 'select' , eventData ) ;
111
+ } ;
112
+ proto . submitAsObservable = function ( eventData ) {
113
+ return this . bindAsObservable ( 'submit' , eventData ) ;
114
+ } ;
115
+ proto . unloadAsObservable = function ( eventData ) {
116
+ return this . bindAsObservable ( 'unload' , eventData ) ;
117
+ } ;
118
+ proto . oneAsObservable = function ( eventType , eventData ) {
119
+ var parent ;
120
+ parent = this ;
121
+ return observableCreate ( function ( observer ) {
122
+ var handler ;
123
+ handler = function ( eventObject ) {
124
+ parent . unbind ( eventType , handler ) ;
125
+ observer . OnNext ( eventObject ) ;
126
+ observer . OnCompleted ( ) ;
127
+ } ;
128
+ parent . bind ( eventType , eventData , handler ) ;
129
+ return function ( ) { } ;
130
+ } ) ;
131
+ } ;
132
+ 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 ) ;
139
+ } ;
140
+ parent . ready ( handler ) ;
141
+ return function ( ) { } ;
142
+ } ) ;
143
+ } ;
144
+ proto . hideAsObservable = function ( duration ) {
145
+ var subject ;
146
+ subject = new asyncSubject ( ) ;
147
+ this . hide ( duration , function ( ) {
148
+ subject . OnNext ( this ) ;
149
+ subject . OnCompleted ( ) ;
150
+ } ) ;
151
+ return subject ;
152
+ } ;
153
+ proto . showAsObservable = function ( duration ) {
154
+ var subject ;
155
+ subject = new asyncSubject ( ) ;
156
+ this . show ( duration , function ( ) {
157
+ subject . OnNext ( this ) ;
158
+ subject . OnCompleted ( ) ;
159
+ } ) ;
160
+ return subject ;
161
+ } ;
162
+ proto . animateAsObservable = function ( properties , duration , easing ) {
163
+ var subject ;
164
+ subject = new asyncSubject ( ) ;
165
+ this . animate ( properties , duration , easing , function ( ) {
166
+ subject . OnNext ( this ) ;
167
+ subject . OnCompleted ( ) ;
168
+ } ) ;
169
+ return subject ;
170
+ } ;
171
+ proto . fadeInAsObservable = function ( duration ) {
172
+ var subject ;
173
+ subject = new asyncSubject ( ) ;
174
+ this . fadeIn ( duration , function ( ) {
175
+ subject . OnNext ( this ) ;
176
+ subject . OnCompleted ( ) ;
177
+ } ) ;
178
+ return subject ;
179
+ } ;
180
+ proto . fadeToAsObservable = function ( duration , opacity ) {
181
+ var subject ;
182
+ subject = new asyncSubject ( ) ;
183
+ this . fadeTo ( duration , opacity , function ( ) {
184
+ subject . OnNext ( this ) ;
185
+ subject . OnCompleted ( ) ;
186
+ } ) ;
187
+ return subject ;
188
+ } ;
189
+ proto . fadeOutAsObservable = function ( duration ) {
190
+ var subject ;
191
+ subject = new asyncSubject ( ) ;
192
+ this . fadeOut ( duration , function ( ) {
193
+ subject . OnNext ( this ) ;
194
+ subject . OnCompleted ( ) ;
195
+ } ) ;
196
+ return subject ;
197
+ } ;
198
+ proto . slideDownAsObservable = function ( duration ) {
199
+ var subject ;
200
+ subject = new asyncSubject ( ) ;
201
+ this . slideDown ( duration , function ( ) {
202
+ subject . OnNext ( this ) ;
203
+ subject . OnCompleted ( ) ;
204
+ } ) ;
205
+ return subject ;
206
+ } ;
207
+ proto . slideUpAsObservable = function ( duration ) {
208
+ var subject ;
209
+ subject = new asyncSubject ( ) ;
210
+ this . slideUp ( duration , function ( ) {
211
+ subject . OnNext ( this ) ;
212
+ subject . OnCompleted ( ) ;
213
+ } ) ;
214
+ return subject ;
215
+ } ;
216
+ proto . slideToggleAsObservable = function ( duration ) {
217
+ var subject ;
218
+ subject = new asyncSubject ( ) ;
219
+ this . slideToggle ( duration , function ( )
220
+ {
221
+ subject . OnNext ( this ) ;
222
+ subject . OnCompleted ( ) ;
223
+ } ) ;
224
+ return subject ;
225
+ } ;
226
+ var ajaxAsObservable = _jQuery . ajaxAsObservable = function ( settings ) {
227
+ var subject , internalSettings , k ;
228
+ internalSettings = { } ;
229
+ for ( k in settings ) {
230
+ internalSettings [ k ] = settings [ k ] ;
231
+ }
232
+ subject = new asyncSubject ( ) ;
233
+ internalSettings . success = function ( data , textStatus , jqXHR ) {
234
+ subject . OnNext ( { data : data , textStatus : textStatus , jqXHR : jqXHR } ) ;
235
+ subject . OnCompleted ( ) ;
236
+ } ;
237
+ internalSettings . error = function ( jqXHR , textStatus , errorThrown ) {
238
+ subject . OnError ( { jqXHR : jqXHR , textStatus : textStatus , errorThrown : errorThrown } ) ;
239
+ } ;
240
+ _jQuery . ajax ( internalSettings ) ;
241
+ return subject ;
242
+ } ;
243
+ _jQuery . getAsObservable = function ( url , data , dataType ) {
244
+ return ajaxAsObservable ( { url : url , dataType : dataType , data : data } ) ;
245
+ } ;
246
+ _jQuery . getJSONAsObservable = function ( url , data ) {
247
+ return ajaxAsObservable ( { url : url , dataType : 'json' , data : data } ) ;
248
+ } ;
249
+ _jQuery . getScriptAsObservable = function ( url ) {
250
+ return ajaxAsObservable ( { url : url , dataType : 'script' } ) ;
251
+ } ;
252
+ _jQuery . postAsObservable = function ( url , data , dataType ) {
253
+ return ajaxAsObservable ( { url : url , dataType : dataType , data : data , type : 'POST' } ) ;
254
+ } ;
255
+ } ) ( ) ;
0 commit comments