jquery-ui-rails 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jquery-ui-rails might be problematic. Click here for more details.

Files changed (61) hide show
  1. data/History.md +10 -0
  2. data/README.md +1 -1
  3. data/Rakefile +4 -5
  4. data/lib/jquery/ui/rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/jquery.ui.accordion.js +130 -290
  6. data/vendor/assets/javascripts/jquery.ui.autocomplete.js +30 -18
  7. data/vendor/assets/javascripts/jquery.ui.button.js +9 -8
  8. data/vendor/assets/javascripts/jquery.ui.core.js +19 -53
  9. data/vendor/assets/javascripts/jquery.ui.datepicker-be.js +23 -0
  10. data/vendor/assets/javascripts/jquery.ui.datepicker-fr-CA.js +23 -0
  11. data/vendor/assets/javascripts/jquery.ui.datepicker-ky.js +24 -0
  12. data/vendor/assets/javascripts/jquery.ui.datepicker-nb.js +22 -0
  13. data/vendor/assets/javascripts/jquery.ui.datepicker-nn.js +22 -0
  14. data/vendor/assets/javascripts/jquery.ui.datepicker.js +1076 -878
  15. data/vendor/assets/javascripts/jquery.ui.dialog.js +456 -547
  16. data/vendor/assets/javascripts/jquery.ui.draggable.js +317 -207
  17. data/vendor/assets/javascripts/jquery.ui.droppable.js +177 -100
  18. data/vendor/assets/javascripts/jquery.ui.effect-blind.js +2 -2
  19. data/vendor/assets/javascripts/jquery.ui.effect-bounce.js +2 -2
  20. data/vendor/assets/javascripts/jquery.ui.effect-clip.js +2 -2
  21. data/vendor/assets/javascripts/jquery.ui.effect-drop.js +2 -2
  22. data/vendor/assets/javascripts/jquery.ui.effect-explode.js +2 -2
  23. data/vendor/assets/javascripts/jquery.ui.effect-fade.js +2 -2
  24. data/vendor/assets/javascripts/jquery.ui.effect-fold.js +2 -2
  25. data/vendor/assets/javascripts/jquery.ui.effect-highlight.js +2 -2
  26. data/vendor/assets/javascripts/jquery.ui.effect-pulsate.js +2 -2
  27. data/vendor/assets/javascripts/jquery.ui.effect-scale.js +2 -2
  28. data/vendor/assets/javascripts/jquery.ui.effect-shake.js +2 -2
  29. data/vendor/assets/javascripts/jquery.ui.effect-slide.js +2 -2
  30. data/vendor/assets/javascripts/jquery.ui.effect-transfer.js +3 -3
  31. data/vendor/assets/javascripts/jquery.ui.effect.js +91 -99
  32. data/vendor/assets/javascripts/jquery.ui.menu.js +20 -9
  33. data/vendor/assets/javascripts/jquery.ui.mouse.js +25 -25
  34. data/vendor/assets/javascripts/jquery.ui.position.js +39 -59
  35. data/vendor/assets/javascripts/jquery.ui.progressbar.js +73 -33
  36. data/vendor/assets/javascripts/jquery.ui.resizable.js +461 -294
  37. data/vendor/assets/javascripts/jquery.ui.selectable.js +67 -51
  38. data/vendor/assets/javascripts/jquery.ui.slider.js +100 -95
  39. data/vendor/assets/javascripts/jquery.ui.sortable.js +411 -257
  40. data/vendor/assets/javascripts/jquery.ui.spinner.js +19 -5
  41. data/vendor/assets/javascripts/jquery.ui.tabs.js +47 -567
  42. data/vendor/assets/javascripts/jquery.ui.tooltip.js +14 -10
  43. data/vendor/assets/javascripts/jquery.ui.widget.js +33 -40
  44. data/vendor/assets/stylesheets/jquery.ui.accordion.css.erb +30 -8
  45. data/vendor/assets/stylesheets/jquery.ui.all.css.erb +2 -2
  46. data/vendor/assets/stylesheets/jquery.ui.autocomplete.css.erb +2 -5
  47. data/vendor/assets/stylesheets/jquery.ui.base.css.erb +2 -2
  48. data/vendor/assets/stylesheets/jquery.ui.button.css.erb +100 -26
  49. data/vendor/assets/stylesheets/jquery.ui.core.css.erb +65 -12
  50. data/vendor/assets/stylesheets/jquery.ui.datepicker.css.erb +166 -55
  51. data/vendor/assets/stylesheets/jquery.ui.dialog.css.erb +61 -14
  52. data/vendor/assets/stylesheets/jquery.ui.menu.css.erb +61 -14
  53. data/vendor/assets/stylesheets/jquery.ui.progressbar.css.erb +20 -4
  54. data/vendor/assets/stylesheets/jquery.ui.resizable.css.erb +70 -13
  55. data/vendor/assets/stylesheets/jquery.ui.selectable.css.erb +7 -3
  56. data/vendor/assets/stylesheets/jquery.ui.slider.css.erb +63 -15
  57. data/vendor/assets/stylesheets/jquery.ui.spinner.css.erb +52 -10
  58. data/vendor/assets/stylesheets/jquery.ui.tabs.css.erb +44 -10
  59. data/vendor/assets/stylesheets/jquery.ui.theme.css.erb +196 -38
  60. data/vendor/assets/stylesheets/jquery.ui.tooltip.css.erb +4 -6
  61. metadata +8 -3
@@ -3,10 +3,10 @@
3
3
  //= require jquery.ui.mouse
4
4
 
5
5
  /*!
6
- * jQuery UI Draggable 1.9.2
6
+ * jQuery UI Draggable 1.10.0
7
7
  * http://jqueryui.com
8
8
  *
9
- * Copyright 2012 jQuery Foundation and other contributors
9
+ * Copyright 2013 jQuery Foundation and other contributors
10
10
  * Released under the MIT license.
11
11
  * http://jquery.org/license
12
12
  *
@@ -20,7 +20,7 @@
20
20
  (function( $, undefined ) {
21
21
 
22
22
  $.widget("ui.draggable", $.ui.mouse, {
23
- version: "1.9.2",
23
+ version: "1.10.0",
24
24
  widgetEventPrefix: "drag",
25
25
  options: {
26
26
  addClasses: true,
@@ -46,15 +46,24 @@ $.widget("ui.draggable", $.ui.mouse, {
46
46
  snapMode: "both",
47
47
  snapTolerance: 20,
48
48
  stack: false,
49
- zIndex: false
49
+ zIndex: false,
50
+
51
+ // callbacks
52
+ drag: null,
53
+ start: null,
54
+ stop: null
50
55
  },
51
56
  _create: function() {
52
57
 
53
- if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
54
- this.element[0].style.position = 'relative';
55
-
56
- (this.options.addClasses && this.element.addClass("ui-draggable"));
57
- (this.options.disabled && this.element.addClass("ui-draggable-disabled"));
58
+ if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) {
59
+ this.element[0].style.position = "relative";
60
+ }
61
+ if (this.options.addClasses){
62
+ this.element.addClass("ui-draggable");
63
+ }
64
+ if (this.options.disabled){
65
+ this.element.addClass("ui-draggable-disabled");
66
+ }
58
67
 
59
68
  this._mouseInit();
60
69
 
@@ -70,16 +79,18 @@ $.widget("ui.draggable", $.ui.mouse, {
70
79
  var o = this.options;
71
80
 
72
81
  // among others, prevent a drag on a resizable-handle
73
- if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
82
+ if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
74
83
  return false;
84
+ }
75
85
 
76
86
  //Quit if we're not on a valid handle
77
87
  this.handle = this._getHandle(event);
78
- if (!this.handle)
88
+ if (!this.handle) {
79
89
  return false;
90
+ }
80
91
 
81
92
  $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
82
- $('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
93
+ $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>")
83
94
  .css({
84
95
  width: this.offsetWidth+"px", height: this.offsetHeight+"px",
85
96
  position: "absolute", opacity: "0.001", zIndex: 1000
@@ -105,8 +116,9 @@ $.widget("ui.draggable", $.ui.mouse, {
105
116
  this._cacheHelperProportions();
106
117
 
107
118
  //If ddmanager is used for droppables, set the global draggable
108
- if($.ui.ddmanager)
119
+ if($.ui.ddmanager) {
109
120
  $.ui.ddmanager.current = this;
121
+ }
110
122
 
111
123
  /*
112
124
  * - Position generation -
@@ -141,12 +153,13 @@ $.widget("ui.draggable", $.ui.mouse, {
141
153
  this.originalPageX = event.pageX;
142
154
  this.originalPageY = event.pageY;
143
155
 
144
- //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
156
+ //Adjust the mouse offset relative to the helper if "cursorAt" is supplied
145
157
  (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
146
158
 
147
159
  //Set a containment if given in the options
148
- if(o.containment)
160
+ if(o.containment) {
149
161
  this._setContainment();
162
+ }
150
163
 
151
164
  //Trigger event + callbacks
152
165
  if(this._trigger("start", event) === false) {
@@ -158,14 +171,17 @@ $.widget("ui.draggable", $.ui.mouse, {
158
171
  this._cacheHelperProportions();
159
172
 
160
173
  //Prepare the droppable offsets
161
- if ($.ui.ddmanager && !o.dropBehaviour)
174
+ if ($.ui.ddmanager && !o.dropBehaviour) {
162
175
  $.ui.ddmanager.prepareOffsets(this, event);
176
+ }
163
177
 
164
178
 
165
179
  this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
166
180
 
167
181
  //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
168
- if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event);
182
+ if ( $.ui.ddmanager ) {
183
+ $.ui.ddmanager.dragStart(this, event);
184
+ }
169
185
 
170
186
  return true;
171
187
  },
@@ -179,16 +195,22 @@ $.widget("ui.draggable", $.ui.mouse, {
179
195
  //Call plugins and callbacks and use the resulting position if something is returned
180
196
  if (!noPropagation) {
181
197
  var ui = this._uiHash();
182
- if(this._trigger('drag', event, ui) === false) {
198
+ if(this._trigger("drag", event, ui) === false) {
183
199
  this._mouseUp({});
184
200
  return false;
185
201
  }
186
202
  this.position = ui.position;
187
203
  }
188
204
 
189
- if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
190
- if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
191
- if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
205
+ if(!this.options.axis || this.options.axis !== "y") {
206
+ this.helper[0].style.left = this.position.left+"px";
207
+ }
208
+ if(!this.options.axis || this.options.axis !== "x") {
209
+ this.helper[0].style.top = this.position.top+"px";
210
+ }
211
+ if($.ui.ddmanager) {
212
+ $.ui.ddmanager.drag(this, event);
213
+ }
192
214
 
193
215
  return false;
194
216
  },
@@ -196,9 +218,13 @@ $.widget("ui.draggable", $.ui.mouse, {
196
218
  _mouseStop: function(event) {
197
219
 
198
220
  //If we are using droppables, inform the manager about the drop
199
- var dropped = false;
200
- if ($.ui.ddmanager && !this.options.dropBehaviour)
221
+ var element,
222
+ that = this,
223
+ elementInDom = false,
224
+ dropped = false;
225
+ if ($.ui.ddmanager && !this.options.dropBehaviour) {
201
226
  dropped = $.ui.ddmanager.drop(this, event);
227
+ }
202
228
 
203
229
  //if a drop comes from outside (a sortable)
204
230
  if(this.dropped) {
@@ -207,17 +233,17 @@ $.widget("ui.draggable", $.ui.mouse, {
207
233
  }
208
234
 
209
235
  //if the original element is no longer in the DOM don't bother to continue (see #8269)
210
- var element = this.element[0], elementInDom = false;
236
+ element = this.element[0];
211
237
  while ( element && (element = element.parentNode) ) {
212
- if (element == document ) {
238
+ if (element === document ) {
213
239
  elementInDom = true;
214
240
  }
215
241
  }
216
- if ( !elementInDom && this.options.helper === "original" )
242
+ if ( !elementInDom && this.options.helper === "original" ) {
217
243
  return false;
244
+ }
218
245
 
219
- if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
220
- var that = this;
246
+ if((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
221
247
  $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
222
248
  if(that._trigger("stop", event) !== false) {
223
249
  that._clear();
@@ -239,7 +265,9 @@ $.widget("ui.draggable", $.ui.mouse, {
239
265
  });
240
266
 
241
267
  //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
242
- if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event);
268
+ if( $.ui.ddmanager ) {
269
+ $.ui.ddmanager.dragStop(this, event);
270
+ }
243
271
 
244
272
  return $.ui.mouse.prototype._mouseUp.call(this, event);
245
273
  },
@@ -261,9 +289,11 @@ $.widget("ui.draggable", $.ui.mouse, {
261
289
  var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
262
290
  $(this.options.handle, this.element)
263
291
  .find("*")
264
- .andSelf()
292
+ .addBack()
265
293
  .each(function() {
266
- if(this == event.target) handle = true;
294
+ if(this === event.target) {
295
+ handle = true;
296
+ }
267
297
  });
268
298
 
269
299
  return handle;
@@ -272,36 +302,38 @@ $.widget("ui.draggable", $.ui.mouse, {
272
302
 
273
303
  _createHelper: function(event) {
274
304
 
275
- var o = this.options;
276
- var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element);
305
+ var o = this.options,
306
+ helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
277
307
 
278
- if(!helper.parents('body').length)
279
- helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
308
+ if(!helper.parents("body").length) {
309
+ helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
310
+ }
280
311
 
281
- if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
312
+ if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
282
313
  helper.css("position", "absolute");
314
+ }
283
315
 
284
316
  return helper;
285
317
 
286
318
  },
287
319
 
288
320
  _adjustOffsetFromHelper: function(obj) {
289
- if (typeof obj == 'string') {
290
- obj = obj.split(' ');
321
+ if (typeof obj === "string") {
322
+ obj = obj.split(" ");
291
323
  }
292
324
  if ($.isArray(obj)) {
293
325
  obj = {left: +obj[0], top: +obj[1] || 0};
294
326
  }
295
- if ('left' in obj) {
327
+ if ("left" in obj) {
296
328
  this.offset.click.left = obj.left + this.margins.left;
297
329
  }
298
- if ('right' in obj) {
330
+ if ("right" in obj) {
299
331
  this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
300
332
  }
301
- if ('top' in obj) {
333
+ if ("top" in obj) {
302
334
  this.offset.click.top = obj.top + this.margins.top;
303
335
  }
304
- if ('bottom' in obj) {
336
+ if ("bottom" in obj) {
305
337
  this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
306
338
  }
307
339
  },
@@ -316,14 +348,17 @@ $.widget("ui.draggable", $.ui.mouse, {
316
348
  // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
317
349
  // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
318
350
  // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
319
- if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
351
+ if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
320
352
  po.left += this.scrollParent.scrollLeft();
321
353
  po.top += this.scrollParent.scrollTop();
322
354
  }
323
355
 
324
- if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
325
- || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.ui.ie)) //Ugly IE fix
356
+ //This needs to be actually done for all browsers, since pageX/pageY includes this information
357
+ //Ugly IE fix
358
+ if((this.offsetParent[0] === document.body) ||
359
+ (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
326
360
  po = { top: 0, left: 0 };
361
+ }
327
362
 
328
363
  return {
329
364
  top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
@@ -334,7 +369,7 @@ $.widget("ui.draggable", $.ui.mouse, {
334
369
 
335
370
  _getRelativeOffset: function() {
336
371
 
337
- if(this.cssPosition == "relative") {
372
+ if(this.cssPosition === "relative") {
338
373
  var p = this.element.position();
339
374
  return {
340
375
  top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
@@ -364,20 +399,30 @@ $.widget("ui.draggable", $.ui.mouse, {
364
399
 
365
400
  _setContainment: function() {
366
401
 
367
- var o = this.options;
368
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
369
- if(o.containment == 'document' || o.containment == 'window') this.containment = [
370
- o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
371
- o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
372
- (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
373
- (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
374
- ];
375
-
376
- if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
377
- var c = $(o.containment);
378
- var ce = c[0]; if(!ce) return;
379
- var co = c.offset();
380
- var over = ($(ce).css("overflow") != 'hidden');
402
+ var over, c, ce,
403
+ o = this.options;
404
+
405
+ if(o.containment === "parent") {
406
+ o.containment = this.helper[0].parentNode;
407
+ }
408
+ if(o.containment === "document" || o.containment === "window") {
409
+ this.containment = [
410
+ o.containment === "document" ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
411
+ o.containment === "document" ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top,
412
+ (o.containment === "document" ? 0 : $(window).scrollLeft()) + $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left,
413
+ (o.containment === "document" ? 0 : $(window).scrollTop()) + ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
414
+ ];
415
+ }
416
+
417
+ if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor !== Array) {
418
+ c = $(o.containment);
419
+ ce = c[0];
420
+
421
+ if(!ce) {
422
+ return;
423
+ }
424
+
425
+ over = ($(ce).css("overflow") !== "hidden");
381
426
 
382
427
  this.containment = [
383
428
  (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
@@ -387,7 +432,7 @@ $.widget("ui.draggable", $.ui.mouse, {
387
432
  ];
388
433
  this.relative_container = c;
389
434
 
390
- } else if(o.containment.constructor == Array) {
435
+ } else if(o.containment.constructor === Array) {
391
436
  this.containment = o.containment;
392
437
  }
393
438
 
@@ -395,22 +440,25 @@ $.widget("ui.draggable", $.ui.mouse, {
395
440
 
396
441
  _convertPositionTo: function(d, pos) {
397
442
 
398
- if(!pos) pos = this.position;
399
- var mod = d == "absolute" ? 1 : -1;
400
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
443
+ if(!pos) {
444
+ pos = this.position;
445
+ }
446
+
447
+ var mod = d === "absolute" ? 1 : -1,
448
+ scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
401
449
 
402
450
  return {
403
451
  top: (
404
- pos.top // The absolute mouse position
405
- + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
406
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
407
- - ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
452
+ pos.top + // The absolute mouse position
453
+ this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
454
+ this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border)
455
+ ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
408
456
  ),
409
457
  left: (
410
- pos.left // The absolute mouse position
411
- + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
412
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
413
- - ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
458
+ pos.left + // The absolute mouse position
459
+ this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
460
+ this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border)
461
+ ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
414
462
  )
415
463
  };
416
464
 
@@ -418,9 +466,12 @@ $.widget("ui.draggable", $.ui.mouse, {
418
466
 
419
467
  _generatePosition: function(event) {
420
468
 
421
- var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
422
- var pageX = event.pageX;
423
- var pageY = event.pageY;
469
+ var containment, co, top, left,
470
+ o = this.options,
471
+ scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
472
+ scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName),
473
+ pageX = event.pageX,
474
+ pageY = event.pageY;
424
475
 
425
476
  /*
426
477
  * - Position constraining -
@@ -428,10 +479,9 @@ $.widget("ui.draggable", $.ui.mouse, {
428
479
  */
429
480
 
430
481
  if(this.originalPosition) { //If we are not dragging yet, we won't check for options
431
- var containment;
432
482
  if(this.containment) {
433
483
  if (this.relative_container){
434
- var co = this.relative_container.offset();
484
+ co = this.relative_container.offset();
435
485
  containment = [ this.containment[0] + co.left,
436
486
  this.containment[1] + co.top,
437
487
  this.containment[2] + co.left,
@@ -441,37 +491,45 @@ $.widget("ui.draggable", $.ui.mouse, {
441
491
  containment = this.containment;
442
492
  }
443
493
 
444
- if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left;
445
- if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top;
446
- if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left;
447
- if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top;
494
+ if(event.pageX - this.offset.click.left < containment[0]) {
495
+ pageX = containment[0] + this.offset.click.left;
496
+ }
497
+ if(event.pageY - this.offset.click.top < containment[1]) {
498
+ pageY = containment[1] + this.offset.click.top;
499
+ }
500
+ if(event.pageX - this.offset.click.left > containment[2]) {
501
+ pageX = containment[2] + this.offset.click.left;
502
+ }
503
+ if(event.pageY - this.offset.click.top > containment[3]) {
504
+ pageY = containment[3] + this.offset.click.top;
505
+ }
448
506
  }
449
507
 
450
508
  if(o.grid) {
451
509
  //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
452
- var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
453
- pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
510
+ top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
511
+ pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
454
512
 
455
- var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
456
- pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
513
+ left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
514
+ pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
457
515
  }
458
516
 
459
517
  }
460
518
 
461
519
  return {
462
520
  top: (
463
- pageY // The absolute mouse position
464
- - this.offset.click.top // Click offset (relative to the element)
465
- - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
466
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
467
- + ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
521
+ pageY - // The absolute mouse position
522
+ this.offset.click.top - // Click offset (relative to the element)
523
+ this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent
524
+ this.offset.parent.top + // The offsetParent's offset without borders (offset + border)
525
+ ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
468
526
  ),
469
527
  left: (
470
- pageX // The absolute mouse position
471
- - this.offset.click.left // Click offset (relative to the element)
472
- - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
473
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
474
- + ( ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
528
+ pageX - // The absolute mouse position
529
+ this.offset.click.left - // Click offset (relative to the element)
530
+ this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent
531
+ this.offset.parent.left + // The offsetParent's offset without borders (offset + border)
532
+ ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
475
533
  )
476
534
  };
477
535
 
@@ -479,8 +537,9 @@ $.widget("ui.draggable", $.ui.mouse, {
479
537
 
480
538
  _clear: function() {
481
539
  this.helper.removeClass("ui-draggable-dragging");
482
- if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
483
- //if($.ui.ddmanager) $.ui.ddmanager.current = null;
540
+ if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
541
+ this.helper.remove();
542
+ }
484
543
  this.helper = null;
485
544
  this.cancelHelperRemoval = false;
486
545
  },
@@ -490,13 +549,16 @@ $.widget("ui.draggable", $.ui.mouse, {
490
549
  _trigger: function(type, event, ui) {
491
550
  ui = ui || this._uiHash();
492
551
  $.ui.plugin.call(this, type, [event, ui]);
493
- if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
552
+ //The absolute position has to be recalculated after plugins
553
+ if(type === "drag") {
554
+ this.positionAbs = this._convertPositionTo("absolute");
555
+ }
494
556
  return $.Widget.prototype._trigger.call(this, type, event, ui);
495
557
  },
496
558
 
497
559
  plugins: {},
498
560
 
499
- _uiHash: function(event) {
561
+ _uiHash: function() {
500
562
  return {
501
563
  helper: this.helper,
502
564
  position: this.position,
@@ -510,11 +572,11 @@ $.widget("ui.draggable", $.ui.mouse, {
510
572
  $.ui.plugin.add("draggable", "connectToSortable", {
511
573
  start: function(event, ui) {
512
574
 
513
- var inst = $(this).data("draggable"), o = inst.options,
575
+ var inst = $(this).data("ui-draggable"), o = inst.options,
514
576
  uiSortable = $.extend({}, ui, { item: inst.element });
515
577
  inst.sortables = [];
516
578
  $(o.connectToSortable).each(function() {
517
- var sortable = $.data(this, 'sortable');
579
+ var sortable = $.data(this, "ui-sortable");
518
580
  if (sortable && !sortable.options.disabled) {
519
581
  inst.sortables.push({
520
582
  instance: sortable,
@@ -529,7 +591,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
529
591
  stop: function(event, ui) {
530
592
 
531
593
  //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
532
- var inst = $(this).data("draggable"),
594
+ var inst = $(this).data("ui-draggable"),
533
595
  uiSortable = $.extend({}, ui, { item: inst.element });
534
596
 
535
597
  $.each(inst.sortables, function() {
@@ -540,8 +602,10 @@ $.ui.plugin.add("draggable", "connectToSortable", {
540
602
  inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
541
603
  this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
542
604
 
543
- //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
544
- if(this.shouldRevert) this.instance.options.revert = true;
605
+ //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid"
606
+ if(this.shouldRevert) {
607
+ this.instance.options.revert = true;
608
+ }
545
609
 
546
610
  //Trigger the stop of the sortable
547
611
  this.instance._mouseStop(event);
@@ -549,8 +613,9 @@ $.ui.plugin.add("draggable", "connectToSortable", {
549
613
  this.instance.options.helper = this.instance.options._helper;
550
614
 
551
615
  //If the helper has been the original item, restore properties in the sortable
552
- if(inst.options.helper == 'original')
553
- this.instance.currentItem.css({ top: 'auto', left: 'auto' });
616
+ if(inst.options.helper === "original") {
617
+ this.instance.currentItem.css({ top: "auto", left: "auto" });
618
+ }
554
619
 
555
620
  } else {
556
621
  this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
@@ -562,21 +627,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
562
627
  },
563
628
  drag: function(event, ui) {
564
629
 
565
- var inst = $(this).data("draggable"), that = this;
566
-
567
- var checkPos = function(o) {
568
- var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
569
- var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
570
- var itemHeight = o.height, itemWidth = o.width;
571
- var itemTop = o.top, itemLeft = o.left;
630
+ var inst = $(this).data("ui-draggable"), that = this;
572
631
 
573
- return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
574
- };
632
+ $.each(inst.sortables, function() {
575
633
 
576
- $.each(inst.sortables, function(i) {
634
+ var innermostIntersecting = false,
635
+ thisSortable = this;
577
636
 
578
- var innermostIntersecting = false;
579
- var thisSortable = this;
580
637
  //Copy over some variables to allow calling the sortable's native _intersectsWith
581
638
  this.instance.positionAbs = inst.positionAbs;
582
639
  this.instance.helperProportions = inst.helperProportions;
@@ -588,11 +645,13 @@ $.ui.plugin.add("draggable", "connectToSortable", {
588
645
  this.instance.positionAbs = inst.positionAbs;
589
646
  this.instance.helperProportions = inst.helperProportions;
590
647
  this.instance.offset.click = inst.offset.click;
591
- if (this != thisSortable
592
- && this.instance._intersectsWith(this.instance.containerCache)
593
- && $.ui.contains(thisSortable.instance.element[0], this.instance.element[0]))
648
+ if (this !== thisSortable &&
649
+ this.instance._intersectsWith(this.instance.containerCache) &&
650
+ $.ui.contains(thisSortable.instance.element[0], this.instance.element[0])
651
+ ) {
594
652
  innermostIntersecting = false;
595
- return innermostIntersecting;
653
+ }
654
+ return innermostIntersecting;
596
655
  });
597
656
  }
598
657
 
@@ -605,7 +664,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
605
664
  //Now we fake the start of dragging for the sortable instance,
606
665
  //by cloning the list group item, appending it to the sortable and using it as inst.currentItem
607
666
  //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
608
- this.instance.currentItem = $(that).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true);
667
+ this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true);
609
668
  this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
610
669
  this.instance.options.helper = function() { return ui.helper[0]; };
611
670
 
@@ -628,7 +687,9 @@ $.ui.plugin.add("draggable", "connectToSortable", {
628
687
  }
629
688
 
630
689
  //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
631
- if(this.instance.currentItem) this.instance._mouseDrag(event);
690
+ if(this.instance.currentItem) {
691
+ this.instance._mouseDrag(event);
692
+ }
632
693
 
633
694
  } else {
634
695
 
@@ -643,20 +704,22 @@ $.ui.plugin.add("draggable", "connectToSortable", {
643
704
  this.instance.options.revert = false;
644
705
 
645
706
  // The out event needs to be triggered independently
646
- this.instance._trigger('out', event, this.instance._uiHash(this.instance));
707
+ this.instance._trigger("out", event, this.instance._uiHash(this.instance));
647
708
 
648
709
  this.instance._mouseStop(event, true);
649
710
  this.instance.options.helper = this.instance.options._helper;
650
711
 
651
712
  //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
652
713
  this.instance.currentItem.remove();
653
- if(this.instance.placeholder) this.instance.placeholder.remove();
714
+ if(this.instance.placeholder) {
715
+ this.instance.placeholder.remove();
716
+ }
654
717
 
655
718
  inst._trigger("fromSortable", event);
656
719
  inst.dropped = false; //draggable revert needs that
657
720
  }
658
721
 
659
- };
722
+ }
660
723
 
661
724
  });
662
725
 
@@ -664,158 +727,201 @@ $.ui.plugin.add("draggable", "connectToSortable", {
664
727
  });
665
728
 
666
729
  $.ui.plugin.add("draggable", "cursor", {
667
- start: function(event, ui) {
668
- var t = $('body'), o = $(this).data('draggable').options;
669
- if (t.css("cursor")) o._cursor = t.css("cursor");
730
+ start: function() {
731
+ var t = $("body"), o = $(this).data("ui-draggable").options;
732
+ if (t.css("cursor")) {
733
+ o._cursor = t.css("cursor");
734
+ }
670
735
  t.css("cursor", o.cursor);
671
736
  },
672
- stop: function(event, ui) {
673
- var o = $(this).data('draggable').options;
674
- if (o._cursor) $('body').css("cursor", o._cursor);
737
+ stop: function() {
738
+ var o = $(this).data("ui-draggable").options;
739
+ if (o._cursor) {
740
+ $("body").css("cursor", o._cursor);
741
+ }
675
742
  }
676
743
  });
677
744
 
678
745
  $.ui.plugin.add("draggable", "opacity", {
679
746
  start: function(event, ui) {
680
- var t = $(ui.helper), o = $(this).data('draggable').options;
681
- if(t.css("opacity")) o._opacity = t.css("opacity");
682
- t.css('opacity', o.opacity);
747
+ var t = $(ui.helper), o = $(this).data("ui-draggable").options;
748
+ if(t.css("opacity")) {
749
+ o._opacity = t.css("opacity");
750
+ }
751
+ t.css("opacity", o.opacity);
683
752
  },
684
753
  stop: function(event, ui) {
685
- var o = $(this).data('draggable').options;
686
- if(o._opacity) $(ui.helper).css('opacity', o._opacity);
754
+ var o = $(this).data("ui-draggable").options;
755
+ if(o._opacity) {
756
+ $(ui.helper).css("opacity", o._opacity);
757
+ }
687
758
  }
688
759
  });
689
760
 
690
761
  $.ui.plugin.add("draggable", "scroll", {
691
- start: function(event, ui) {
692
- var i = $(this).data("draggable");
693
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
762
+ start: function() {
763
+ var i = $(this).data("ui-draggable");
764
+ if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
765
+ i.overflowOffset = i.scrollParent.offset();
766
+ }
694
767
  },
695
- drag: function(event, ui) {
768
+ drag: function( event ) {
696
769
 
697
- var i = $(this).data("draggable"), o = i.options, scrolled = false;
770
+ var i = $(this).data("ui-draggable"), o = i.options, scrolled = false;
698
771
 
699
- if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
772
+ if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
700
773
 
701
- if(!o.axis || o.axis != 'x') {
702
- if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
774
+ if(!o.axis || o.axis !== "x") {
775
+ if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
703
776
  i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
704
- else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
777
+ } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
705
778
  i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
779
+ }
706
780
  }
707
781
 
708
- if(!o.axis || o.axis != 'y') {
709
- if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
782
+ if(!o.axis || o.axis !== "y") {
783
+ if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
710
784
  i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
711
- else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
785
+ } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
712
786
  i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
787
+ }
713
788
  }
714
789
 
715
790
  } else {
716
791
 
717
- if(!o.axis || o.axis != 'x') {
718
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
792
+ if(!o.axis || o.axis !== "x") {
793
+ if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
719
794
  scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
720
- else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
795
+ } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
721
796
  scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
797
+ }
722
798
  }
723
799
 
724
- if(!o.axis || o.axis != 'y') {
725
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
800
+ if(!o.axis || o.axis !== "y") {
801
+ if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
726
802
  scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
727
- else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
803
+ } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
728
804
  scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
805
+ }
729
806
  }
730
807
 
731
808
  }
732
809
 
733
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
810
+ if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
734
811
  $.ui.ddmanager.prepareOffsets(i, event);
812
+ }
735
813
 
736
814
  }
737
815
  });
738
816
 
739
817
  $.ui.plugin.add("draggable", "snap", {
740
- start: function(event, ui) {
818
+ start: function() {
819
+
820
+ var i = $(this).data("ui-draggable"),
821
+ o = i.options;
741
822
 
742
- var i = $(this).data("draggable"), o = i.options;
743
823
  i.snapElements = [];
744
824
 
745
- $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
746
- var $t = $(this); var $o = $t.offset();
747
- if(this != i.element[0]) i.snapElements.push({
748
- item: this,
749
- width: $t.outerWidth(), height: $t.outerHeight(),
750
- top: $o.top, left: $o.left
751
- });
825
+ $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() {
826
+ var $t = $(this),
827
+ $o = $t.offset();
828
+ if(this !== i.element[0]) {
829
+ i.snapElements.push({
830
+ item: this,
831
+ width: $t.outerWidth(), height: $t.outerHeight(),
832
+ top: $o.top, left: $o.left
833
+ });
834
+ }
752
835
  });
753
836
 
754
837
  },
755
838
  drag: function(event, ui) {
756
839
 
757
- var inst = $(this).data("draggable"), o = inst.options;
758
- var d = o.snapTolerance;
759
-
760
- var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
840
+ var ts, bs, ls, rs, l, r, t, b, i, first,
841
+ inst = $(this).data("ui-draggable"),
842
+ o = inst.options,
843
+ d = o.snapTolerance,
844
+ x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
761
845
  y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
762
846
 
763
- for (var i = inst.snapElements.length - 1; i >= 0; i--){
847
+ for (i = inst.snapElements.length - 1; i >= 0; i--){
764
848
 
765
- var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
766
- t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
849
+ l = inst.snapElements[i].left;
850
+ r = l + inst.snapElements[i].width;
851
+ t = inst.snapElements[i].top;
852
+ b = t + inst.snapElements[i].height;
767
853
 
768
854
  //Yes, I know, this is insane ;)
769
855
  if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
770
- if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
856
+ if(inst.snapElements[i].snapping) {
857
+ (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
858
+ }
771
859
  inst.snapElements[i].snapping = false;
772
860
  continue;
773
861
  }
774
862
 
775
- if(o.snapMode != 'inner') {
776
- var ts = Math.abs(t - y2) <= d;
777
- var bs = Math.abs(b - y1) <= d;
778
- var ls = Math.abs(l - x2) <= d;
779
- var rs = Math.abs(r - x1) <= d;
780
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
781
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
782
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
783
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
863
+ if(o.snapMode !== "inner") {
864
+ ts = Math.abs(t - y2) <= d;
865
+ bs = Math.abs(b - y1) <= d;
866
+ ls = Math.abs(l - x2) <= d;
867
+ rs = Math.abs(r - x1) <= d;
868
+ if(ts) {
869
+ ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
870
+ }
871
+ if(bs) {
872
+ ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
873
+ }
874
+ if(ls) {
875
+ ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
876
+ }
877
+ if(rs) {
878
+ ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
879
+ }
784
880
  }
785
881
 
786
- var first = (ts || bs || ls || rs);
787
-
788
- if(o.snapMode != 'outer') {
789
- var ts = Math.abs(t - y1) <= d;
790
- var bs = Math.abs(b - y2) <= d;
791
- var ls = Math.abs(l - x1) <= d;
792
- var rs = Math.abs(r - x2) <= d;
793
- if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
794
- if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
795
- if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
796
- if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
882
+ first = (ts || bs || ls || rs);
883
+
884
+ if(o.snapMode !== "outer") {
885
+ ts = Math.abs(t - y1) <= d;
886
+ bs = Math.abs(b - y2) <= d;
887
+ ls = Math.abs(l - x1) <= d;
888
+ rs = Math.abs(r - x2) <= d;
889
+ if(ts) {
890
+ ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
891
+ }
892
+ if(bs) {
893
+ ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
894
+ }
895
+ if(ls) {
896
+ ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
897
+ }
898
+ if(rs) {
899
+ ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
900
+ }
797
901
  }
798
902
 
799
- if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
903
+ if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
800
904
  (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
905
+ }
801
906
  inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
802
907
 
803
- };
908
+ }
804
909
 
805
910
  }
806
911
  });
807
912
 
808
913
  $.ui.plugin.add("draggable", "stack", {
809
- start: function(event, ui) {
914
+ start: function() {
810
915
 
811
- var o = $(this).data("draggable").options;
916
+ var min,
917
+ o = $(this).data("ui-draggable").options,
918
+ group = $.makeArray($(o.stack)).sort(function(a,b) {
919
+ return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
920
+ });
812
921
 
813
- var group = $.makeArray($(o.stack)).sort(function(a,b) {
814
- return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
815
- });
816
922
  if (!group.length) { return; }
817
923
 
818
- var min = parseInt(group[0].style.zIndex) || 0;
924
+ min = parseInt(group[0].style.zIndex, 10) || 0;
819
925
  $(group).each(function(i) {
820
926
  this.style.zIndex = min + i;
821
927
  });
@@ -827,13 +933,17 @@ $.ui.plugin.add("draggable", "stack", {
827
933
 
828
934
  $.ui.plugin.add("draggable", "zIndex", {
829
935
  start: function(event, ui) {
830
- var t = $(ui.helper), o = $(this).data("draggable").options;
831
- if(t.css("zIndex")) o._zIndex = t.css("zIndex");
832
- t.css('zIndex', o.zIndex);
936
+ var t = $(ui.helper), o = $(this).data("ui-draggable").options;
937
+ if(t.css("zIndex")) {
938
+ o._zIndex = t.css("zIndex");
939
+ }
940
+ t.css("zIndex", o.zIndex);
833
941
  },
834
942
  stop: function(event, ui) {
835
- var o = $(this).data("draggable").options;
836
- if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
943
+ var o = $(this).data("ui-draggable").options;
944
+ if(o._zIndex) {
945
+ $(ui.helper).css("zIndex", o._zIndex);
946
+ }
837
947
  }
838
948
  });
839
949