glebtv-rails-uploader 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce75403149d61918f485a79cd2fd49c113043410
4
- data.tar.gz: 8b85dfdb78085e19a7e49609c94cdbed2e3627e0
3
+ metadata.gz: d0cc87c634b2c61726ac3728893ba8a82b5eb45f
4
+ data.tar.gz: 79535f6f28c0e894a518a040219cf66dc55584db
5
5
  SHA512:
6
- metadata.gz: 1c7a4228ea072c007a42615779bb1fde2120580bf7ee06b318eaea7f6bae83c4738daab4ecab51d1a504c9d5ec1cf586a2ac60313ce019002f95a9f917bf5d55
7
- data.tar.gz: c867447af03443e735734772502664d3f9328ef0fead3d2d7b4d117751c973fd53ef45722d0800884117ea691eb2d2219d3cff8a01a780e34e4e14e68a424810
6
+ metadata.gz: f27c9ea1a8aa965e361fcedcba0f785c0fd88b112609dba3bb9162df172b7523ac6373102704a50e6eab58d774383511060f03d5b9c403226d401da5856fd13a
7
+ data.tar.gz: dbe120732c661749376fea3d7f5618591012e8691aee23b5b810a9a394517c60f865afad01ed7a087e57d7c2a73875037ee88970745cca8f24dd7ab923c5976c
@@ -1,4 +1,4 @@
1
- //= require uploader/jquery.ui.widget
1
+ //= require jquery-ui/widget
2
2
  //= require uploader/locales/en
3
3
  //= require uploader/tmpl.min
4
4
  //= require uploader/load-image.min
@@ -1,5 +1,5 @@
1
- //= require uploader/jquery.ui.widget
2
- //= require uploader/jquery.ui.sortable
1
+ //= require jquery-ui/widget
2
+ //= require jquery-ui/sortable
3
3
  //= require uploader/locales/en
4
4
  //= require uploader/tmpl.min
5
5
  //= require uploader/load-image.min
@@ -1,3 +1,3 @@
1
1
  module Uploader
2
- VERSION = "0.8.0".freeze
2
+ VERSION = "0.9.0".freeze
3
3
  end
@@ -37,11 +37,7 @@
37
37
  .uploader-button {
38
38
  display: inline-block;
39
39
  background: #972da0;
40
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#982da1', endColorstr='#892891');
41
- background: -webkit-linear-gradient(left top, left bottom, #982da1, #892891);
42
- background: -moz-linear-gradient(top, #982da1, #892891);
43
- background: -o-linear-gradient(top, #982da1, #892891);
44
- background: -ms-linear-gradient(top, #982da1, #892891);
40
+ background: linear-gradient(left top, left bottom, #982da1, #892891);
45
41
  border: solid 1px #5f1c65;
46
42
  border-radius: 2px;
47
43
  -moz-border-radius: 2px;
@@ -57,24 +53,14 @@
57
53
  }
58
54
  .uploader-button:hover {
59
55
  background: #972da0;
60
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#90179a', endColorstr='#7d2485');
61
- background: -webkit-linear-gradient(left top, left bottom, #90179a, #7d2485);
62
- background: -moz-linear-gradient(top, #90179a, #7d2485);
63
- background: -o-linear-gradient(top, #90179a, #7d2485);
64
- background: -ms-linear-gradient(top, #90179a, #7d2485);
56
+ background: linear-gradient(top, #90179a, #7d2485);
65
57
  -moz-box-shadow: 0 1px 3px #aaa;
66
58
  -webkit-box-shadow: 0 1px 3px #aaa;
67
59
  box-shadow: 0 1px 3px #aaa;
68
60
  }
69
61
  .uploader-button:active {
70
62
  background: #8e1898;
71
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8e1898', endColorstr='#7f2387');
72
- background: -webkit-linear-gradient(left top, left bottom, #8e1898, #7f2387);
73
- background: -moz-linear-gradient(top, #8e1898, #7f2387);
74
- background: -o-linear-gradient(top, #8e1898, #7f2387);
75
- background: -ms-linear-gradient(top, #8e1898, #7f2387);
76
- -moz-box-shadow: inset 0 0 4px #5f1c65;
77
- -webkit-box-shadow: inset 0 0 4px #5f1c65;
63
+ background: linear-gradient(top, #8e1898, #7f2387);
78
64
  box-shadow: inset 0 0 4px #5f1c65;
79
65
  }
80
66
  .uploader-button::-moz-focus-inner {
@@ -96,9 +82,6 @@
96
82
  }
97
83
  .uploader-button.gray:active {
98
84
  border: 1px solid #ccc;
99
- -webkit-box-shadow: 0 0 3px #ccc inset !important;
100
- -moz-box-shadow : 0 0 3px #ccc inset !important;
101
- -o-box-shadow : 0 0 3px #ccc inset !important;
102
85
  box-shadow : 0 0 3px #ccc inset !important;
103
86
  background-color: #e9e9e9 !important;
104
87
  color: #444;
@@ -106,9 +89,6 @@
106
89
  input[disabled].uploader-button {
107
90
  background: #d2aad6 !important;
108
91
  border: solid 1px #bfa4c1 !important;
109
- -webkit-box-shadow: none !important;
110
- -moz-box-shadow : none !important;
111
- -o-box-shadow : none !important;
112
92
  box-shadow : none !important;
113
93
  text-shadow: none;
114
94
  cursor: default;
@@ -116,9 +96,6 @@ input[disabled].uploader-button {
116
96
  input[disabled].uploader-button.gray {
117
97
  background: #f4f4f4 !important;
118
98
  border: solid 1px #dbdbdb !important;
119
- -webkit-box-shadow: none !important;
120
- -moz-box-shadow : none !important;
121
- -o-box-shadow : none !important;
122
99
  box-shadow : none !important;
123
100
  color: #616161 !important;
124
101
  cursor: default;
@@ -126,7 +103,6 @@ input[disabled].uploader-button.gray {
126
103
 
127
104
  .uploader-dnd-area .attach_item {
128
105
  width: 242px;
129
- height: 50px;
130
106
  border: 1px solid #cccccd;
131
107
  padding: 19px;
132
108
  position: relative;
@@ -134,14 +110,19 @@ input[disabled].uploader-button.gray {
134
110
  margin: 0 20px 20px 0;
135
111
  background: #fff;
136
112
  }
113
+ .uploader-dnd-area .attach_item:before,
114
+ .uploader-dnd-area .attach_item:after {
115
+ content: " ";
116
+ display: table;
117
+ }
118
+ .uploader-dnd-area .attach_item:after {
119
+ clear: both;
120
+ }
121
+
137
122
  .uploader-dnd-area .attach_item:hover {
138
- -moz-box-shadow: 0 0 2px #ccc;
139
- -webkit-box-shadow: 0 0 2px #ccc;
140
123
  box-shadow: 0 0 2px #ccc;
141
124
  }
142
125
  .uploader-dnd-area .attach_item:active {
143
- -moz-box-shadow: 0 0 5px #d2d2d2;
144
- -webkit-box-shadow: 0 0 5px #d2d2d2;
145
126
  box-shadow: 0 0 5px #d2d2d2;
146
127
  border: solid 1px #cf63d8;
147
128
  }
@@ -165,6 +146,7 @@ input[disabled].uploader-button.gray {
165
146
  float: left;
166
147
  overflow: hidden;
167
148
  background-color: #f3f3f3;
149
+ margin-bottom: 0;
168
150
  }
169
151
  .uploader-dnd-area .attach_item .thumbnail .preloader {
170
152
  border: 1px solid #E5E5E5;
@@ -172,7 +154,7 @@ input[disabled].uploader-button.gray {
172
154
  }
173
155
  .uploader-dnd-area .attach_item .infoHolder {
174
156
  float: right;
175
- width: 180px;
157
+ width: 130px;
176
158
  overflow: hidden;
177
159
  }
178
160
  .uploader-dnd-area .attach_item .fileName {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glebtv-rails-uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Galeta
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-12-18 00:00:00.000000000 Z
13
+ date: 2015-01-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jquery-ui-rails
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 5.0.3
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '0'
28
+ version: 5.0.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: carrierwave
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -141,7 +141,6 @@ files:
141
141
  - vendor/assets/javascripts/uploader/jquery.fileupload-ui.js
142
142
  - vendor/assets/javascripts/uploader/jquery.fileupload.js
143
143
  - vendor/assets/javascripts/uploader/jquery.iframe-transport.js
144
- - vendor/assets/javascripts/uploader/jquery.ui.widget.js
145
144
  - vendor/assets/javascripts/uploader/load-image.min.js
146
145
  - vendor/assets/javascripts/uploader/locales/en.js
147
146
  - vendor/assets/javascripts/uploader/locales/ru.js
@@ -168,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
167
  version: '0'
169
168
  requirements: []
170
169
  rubyforge_project:
171
- rubygems_version: 2.4.4
170
+ rubygems_version: 2.4.5
172
171
  signing_key:
173
172
  specification_version: 4
174
173
  summary: Rails file upload implementation with jQuery-File-Upload
@@ -1,530 +0,0 @@
1
- /*
2
- * jQuery UI Widget 1.10.0+amd
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2013 jQuery Foundation and other contributors
6
- * Released under the MIT license.
7
- * http://jquery.org/license
8
- *
9
- * http://api.jqueryui.com/jQuery.widget/
10
- */
11
-
12
- (function (factory) {
13
- if (typeof define === "function" && define.amd) {
14
- // Register as an anonymous AMD module:
15
- define(["jquery"], factory);
16
- } else {
17
- // Browser globals:
18
- factory(jQuery);
19
- }
20
- }(function( $, undefined ) {
21
-
22
- var uuid = 0,
23
- slice = Array.prototype.slice,
24
- _cleanData = $.cleanData;
25
- $.cleanData = function( elems ) {
26
- for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
27
- try {
28
- $( elem ).triggerHandler( "remove" );
29
- // http://bugs.jquery.com/ticket/8235
30
- } catch( e ) {}
31
- }
32
- _cleanData( elems );
33
- };
34
-
35
- $.widget = function( name, base, prototype ) {
36
- var fullName, existingConstructor, constructor, basePrototype,
37
- // proxiedPrototype allows the provided prototype to remain unmodified
38
- // so that it can be used as a mixin for multiple widgets (#8876)
39
- proxiedPrototype = {},
40
- namespace = name.split( "." )[ 0 ];
41
-
42
- name = name.split( "." )[ 1 ];
43
- fullName = namespace + "-" + name;
44
-
45
- if ( !prototype ) {
46
- prototype = base;
47
- base = $.Widget;
48
- }
49
-
50
- // create selector for plugin
51
- $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
52
- return !!$.data( elem, fullName );
53
- };
54
-
55
- $[ namespace ] = $[ namespace ] || {};
56
- existingConstructor = $[ namespace ][ name ];
57
- constructor = $[ namespace ][ name ] = function( options, element ) {
58
- // allow instantiation without "new" keyword
59
- if ( !this._createWidget ) {
60
- return new constructor( options, element );
61
- }
62
-
63
- // allow instantiation without initializing for simple inheritance
64
- // must use "new" keyword (the code above always passes args)
65
- if ( arguments.length ) {
66
- this._createWidget( options, element );
67
- }
68
- };
69
- // extend with the existing constructor to carry over any static properties
70
- $.extend( constructor, existingConstructor, {
71
- version: prototype.version,
72
- // copy the object used to create the prototype in case we need to
73
- // redefine the widget later
74
- _proto: $.extend( {}, prototype ),
75
- // track widgets that inherit from this widget in case this widget is
76
- // redefined after a widget inherits from it
77
- _childConstructors: []
78
- });
79
-
80
- basePrototype = new base();
81
- // we need to make the options hash a property directly on the new instance
82
- // otherwise we'll modify the options hash on the prototype that we're
83
- // inheriting from
84
- basePrototype.options = $.widget.extend( {}, basePrototype.options );
85
- $.each( prototype, function( prop, value ) {
86
- if ( !$.isFunction( value ) ) {
87
- proxiedPrototype[ prop ] = value;
88
- return;
89
- }
90
- proxiedPrototype[ prop ] = (function() {
91
- var _super = function() {
92
- return base.prototype[ prop ].apply( this, arguments );
93
- },
94
- _superApply = function( args ) {
95
- return base.prototype[ prop ].apply( this, args );
96
- };
97
- return function() {
98
- var __super = this._super,
99
- __superApply = this._superApply,
100
- returnValue;
101
-
102
- this._super = _super;
103
- this._superApply = _superApply;
104
-
105
- returnValue = value.apply( this, arguments );
106
-
107
- this._super = __super;
108
- this._superApply = __superApply;
109
-
110
- return returnValue;
111
- };
112
- })();
113
- });
114
- constructor.prototype = $.widget.extend( basePrototype, {
115
- // TODO: remove support for widgetEventPrefix
116
- // always use the name + a colon as the prefix, e.g., draggable:start
117
- // don't prefix for widgets that aren't DOM-based
118
- widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
119
- }, proxiedPrototype, {
120
- constructor: constructor,
121
- namespace: namespace,
122
- widgetName: name,
123
- widgetFullName: fullName
124
- });
125
-
126
- // If this widget is being redefined then we need to find all widgets that
127
- // are inheriting from it and redefine all of them so that they inherit from
128
- // the new version of this widget. We're essentially trying to replace one
129
- // level in the prototype chain.
130
- if ( existingConstructor ) {
131
- $.each( existingConstructor._childConstructors, function( i, child ) {
132
- var childPrototype = child.prototype;
133
-
134
- // redefine the child widget using the same prototype that was
135
- // originally used, but inherit from the new version of the base
136
- $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
137
- });
138
- // remove the list of existing child constructors from the old constructor
139
- // so the old child constructors can be garbage collected
140
- delete existingConstructor._childConstructors;
141
- } else {
142
- base._childConstructors.push( constructor );
143
- }
144
-
145
- $.widget.bridge( name, constructor );
146
- };
147
-
148
- $.widget.extend = function( target ) {
149
- var input = slice.call( arguments, 1 ),
150
- inputIndex = 0,
151
- inputLength = input.length,
152
- key,
153
- value;
154
- for ( ; inputIndex < inputLength; inputIndex++ ) {
155
- for ( key in input[ inputIndex ] ) {
156
- value = input[ inputIndex ][ key ];
157
- if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
158
- // Clone objects
159
- if ( $.isPlainObject( value ) ) {
160
- target[ key ] = $.isPlainObject( target[ key ] ) ?
161
- $.widget.extend( {}, target[ key ], value ) :
162
- // Don't extend strings, arrays, etc. with objects
163
- $.widget.extend( {}, value );
164
- // Copy everything else by reference
165
- } else {
166
- target[ key ] = value;
167
- }
168
- }
169
- }
170
- }
171
- return target;
172
- };
173
-
174
- $.widget.bridge = function( name, object ) {
175
- var fullName = object.prototype.widgetFullName || name;
176
- $.fn[ name ] = function( options ) {
177
- var isMethodCall = typeof options === "string",
178
- args = slice.call( arguments, 1 ),
179
- returnValue = this;
180
-
181
- // allow multiple hashes to be passed on init
182
- options = !isMethodCall && args.length ?
183
- $.widget.extend.apply( null, [ options ].concat(args) ) :
184
- options;
185
-
186
- if ( isMethodCall ) {
187
- this.each(function() {
188
- var methodValue,
189
- instance = $.data( this, fullName );
190
- if ( !instance ) {
191
- return $.error( "cannot call methods on " + name + " prior to initialization; " +
192
- "attempted to call method '" + options + "'" );
193
- }
194
- if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
195
- return $.error( "no such method '" + options + "' for " + name + " widget instance" );
196
- }
197
- methodValue = instance[ options ].apply( instance, args );
198
- if ( methodValue !== instance && methodValue !== undefined ) {
199
- returnValue = methodValue && methodValue.jquery ?
200
- returnValue.pushStack( methodValue.get() ) :
201
- methodValue;
202
- return false;
203
- }
204
- });
205
- } else {
206
- this.each(function() {
207
- var instance = $.data( this, fullName );
208
- if ( instance ) {
209
- instance.option( options || {} )._init();
210
- } else {
211
- $.data( this, fullName, new object( options, this ) );
212
- }
213
- });
214
- }
215
-
216
- return returnValue;
217
- };
218
- };
219
-
220
- $.Widget = function( /* options, element */ ) {};
221
- $.Widget._childConstructors = [];
222
-
223
- $.Widget.prototype = {
224
- widgetName: "widget",
225
- widgetEventPrefix: "",
226
- defaultElement: "<div>",
227
- options: {
228
- disabled: false,
229
-
230
- // callbacks
231
- create: null
232
- },
233
- _createWidget: function( options, element ) {
234
- element = $( element || this.defaultElement || this )[ 0 ];
235
- this.element = $( element );
236
- this.uuid = uuid++;
237
- this.eventNamespace = "." + this.widgetName + this.uuid;
238
- this.options = $.widget.extend( {},
239
- this.options,
240
- this._getCreateOptions(),
241
- options );
242
-
243
- this.bindings = $();
244
- this.hoverable = $();
245
- this.focusable = $();
246
-
247
- if ( element !== this ) {
248
- $.data( element, this.widgetFullName, this );
249
- this._on( true, this.element, {
250
- remove: function( event ) {
251
- if ( event.target === element ) {
252
- this.destroy();
253
- }
254
- }
255
- });
256
- this.document = $( element.style ?
257
- // element within the document
258
- element.ownerDocument :
259
- // element is window or document
260
- element.document || element );
261
- this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
262
- }
263
-
264
- this._create();
265
- this._trigger( "create", null, this._getCreateEventData() );
266
- this._init();
267
- },
268
- _getCreateOptions: $.noop,
269
- _getCreateEventData: $.noop,
270
- _create: $.noop,
271
- _init: $.noop,
272
-
273
- destroy: function() {
274
- this._destroy();
275
- // we can probably remove the unbind calls in 2.0
276
- // all event bindings should go through this._on()
277
- this.element
278
- .unbind( this.eventNamespace )
279
- // 1.9 BC for #7810
280
- // TODO remove dual storage
281
- .removeData( this.widgetName )
282
- .removeData( this.widgetFullName )
283
- // support: jquery <1.6.3
284
- // http://bugs.jquery.com/ticket/9413
285
- .removeData( $.camelCase( this.widgetFullName ) );
286
- this.widget()
287
- .unbind( this.eventNamespace )
288
- .removeAttr( "aria-disabled" )
289
- .removeClass(
290
- this.widgetFullName + "-disabled " +
291
- "ui-state-disabled" );
292
-
293
- // clean up events and states
294
- this.bindings.unbind( this.eventNamespace );
295
- this.hoverable.removeClass( "ui-state-hover" );
296
- this.focusable.removeClass( "ui-state-focus" );
297
- },
298
- _destroy: $.noop,
299
-
300
- widget: function() {
301
- return this.element;
302
- },
303
-
304
- option: function( key, value ) {
305
- var options = key,
306
- parts,
307
- curOption,
308
- i;
309
-
310
- if ( arguments.length === 0 ) {
311
- // don't return a reference to the internal hash
312
- return $.widget.extend( {}, this.options );
313
- }
314
-
315
- if ( typeof key === "string" ) {
316
- // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
317
- options = {};
318
- parts = key.split( "." );
319
- key = parts.shift();
320
- if ( parts.length ) {
321
- curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
322
- for ( i = 0; i < parts.length - 1; i++ ) {
323
- curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
324
- curOption = curOption[ parts[ i ] ];
325
- }
326
- key = parts.pop();
327
- if ( value === undefined ) {
328
- return curOption[ key ] === undefined ? null : curOption[ key ];
329
- }
330
- curOption[ key ] = value;
331
- } else {
332
- if ( value === undefined ) {
333
- return this.options[ key ] === undefined ? null : this.options[ key ];
334
- }
335
- options[ key ] = value;
336
- }
337
- }
338
-
339
- this._setOptions( options );
340
-
341
- return this;
342
- },
343
- _setOptions: function( options ) {
344
- var key;
345
-
346
- for ( key in options ) {
347
- this._setOption( key, options[ key ] );
348
- }
349
-
350
- return this;
351
- },
352
- _setOption: function( key, value ) {
353
- this.options[ key ] = value;
354
-
355
- if ( key === "disabled" ) {
356
- this.widget()
357
- .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
358
- .attr( "aria-disabled", value );
359
- this.hoverable.removeClass( "ui-state-hover" );
360
- this.focusable.removeClass( "ui-state-focus" );
361
- }
362
-
363
- return this;
364
- },
365
-
366
- enable: function() {
367
- return this._setOption( "disabled", false );
368
- },
369
- disable: function() {
370
- return this._setOption( "disabled", true );
371
- },
372
-
373
- _on: function( suppressDisabledCheck, element, handlers ) {
374
- var delegateElement,
375
- instance = this;
376
-
377
- // no suppressDisabledCheck flag, shuffle arguments
378
- if ( typeof suppressDisabledCheck !== "boolean" ) {
379
- handlers = element;
380
- element = suppressDisabledCheck;
381
- suppressDisabledCheck = false;
382
- }
383
-
384
- // no element argument, shuffle and use this.element
385
- if ( !handlers ) {
386
- handlers = element;
387
- element = this.element;
388
- delegateElement = this.widget();
389
- } else {
390
- // accept selectors, DOM elements
391
- element = delegateElement = $( element );
392
- this.bindings = this.bindings.add( element );
393
- }
394
-
395
- $.each( handlers, function( event, handler ) {
396
- function handlerProxy() {
397
- // allow widgets to customize the disabled handling
398
- // - disabled as an array instead of boolean
399
- // - disabled class as method for disabling individual parts
400
- if ( !suppressDisabledCheck &&
401
- ( instance.options.disabled === true ||
402
- $( this ).hasClass( "ui-state-disabled" ) ) ) {
403
- return;
404
- }
405
- return ( typeof handler === "string" ? instance[ handler ] : handler )
406
- .apply( instance, arguments );
407
- }
408
-
409
- // copy the guid so direct unbinding works
410
- if ( typeof handler !== "string" ) {
411
- handlerProxy.guid = handler.guid =
412
- handler.guid || handlerProxy.guid || $.guid++;
413
- }
414
-
415
- var match = event.match( /^(\w+)\s*(.*)$/ ),
416
- eventName = match[1] + instance.eventNamespace,
417
- selector = match[2];
418
- if ( selector ) {
419
- delegateElement.delegate( selector, eventName, handlerProxy );
420
- } else {
421
- element.bind( eventName, handlerProxy );
422
- }
423
- });
424
- },
425
-
426
- _off: function( element, eventName ) {
427
- eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
428
- element.unbind( eventName ).undelegate( eventName );
429
- },
430
-
431
- _delay: function( handler, delay ) {
432
- function handlerProxy() {
433
- return ( typeof handler === "string" ? instance[ handler ] : handler )
434
- .apply( instance, arguments );
435
- }
436
- var instance = this;
437
- return setTimeout( handlerProxy, delay || 0 );
438
- },
439
-
440
- _hoverable: function( element ) {
441
- this.hoverable = this.hoverable.add( element );
442
- this._on( element, {
443
- mouseenter: function( event ) {
444
- $( event.currentTarget ).addClass( "ui-state-hover" );
445
- },
446
- mouseleave: function( event ) {
447
- $( event.currentTarget ).removeClass( "ui-state-hover" );
448
- }
449
- });
450
- },
451
-
452
- _focusable: function( element ) {
453
- this.focusable = this.focusable.add( element );
454
- this._on( element, {
455
- focusin: function( event ) {
456
- $( event.currentTarget ).addClass( "ui-state-focus" );
457
- },
458
- focusout: function( event ) {
459
- $( event.currentTarget ).removeClass( "ui-state-focus" );
460
- }
461
- });
462
- },
463
-
464
- _trigger: function( type, event, data ) {
465
- var prop, orig,
466
- callback = this.options[ type ];
467
-
468
- data = data || {};
469
- event = $.Event( event );
470
- event.type = ( type === this.widgetEventPrefix ?
471
- type :
472
- this.widgetEventPrefix + type ).toLowerCase();
473
- // the original event may come from any element
474
- // so we need to reset the target on the new event
475
- event.target = this.element[ 0 ];
476
-
477
- // copy original event properties over to the new event
478
- orig = event.originalEvent;
479
- if ( orig ) {
480
- for ( prop in orig ) {
481
- if ( !( prop in event ) ) {
482
- event[ prop ] = orig[ prop ];
483
- }
484
- }
485
- }
486
-
487
- this.element.trigger( event, data );
488
- return !( $.isFunction( callback ) &&
489
- callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
490
- event.isDefaultPrevented() );
491
- }
492
- };
493
-
494
- $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
495
- $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
496
- if ( typeof options === "string" ) {
497
- options = { effect: options };
498
- }
499
- var hasOptions,
500
- effectName = !options ?
501
- method :
502
- options === true || typeof options === "number" ?
503
- defaultEffect :
504
- options.effect || defaultEffect;
505
- options = options || {};
506
- if ( typeof options === "number" ) {
507
- options = { duration: options };
508
- }
509
- hasOptions = !$.isEmptyObject( options );
510
- options.complete = callback;
511
- if ( options.delay ) {
512
- element.delay( options.delay );
513
- }
514
- if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
515
- element[ method ]( options );
516
- } else if ( effectName !== method && element[ effectName ] ) {
517
- element[ effectName ]( options.duration, options.easing, callback );
518
- } else {
519
- element.queue(function( next ) {
520
- $( this )[ method ]();
521
- if ( callback ) {
522
- callback.call( element[ 0 ] );
523
- }
524
- next();
525
- });
526
- }
527
- };
528
- });
529
-
530
- }));