jquery-ui-rails 3.0.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.

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