jquery-ui-rails 4.2.1 → 5.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 (217) hide show
  1. data/History.md +6 -0
  2. data/README.md +69 -73
  3. data/Rakefile +28 -24
  4. data/VERSIONS.md +1 -0
  5. data/app/assets/javascripts/jquery-ui.js +37 -0
  6. data/app/assets/javascripts/{jquery.ui.accordion.js → jquery-ui/accordion.js} +62 -57
  7. data/app/assets/javascripts/{jquery.ui.autocomplete.js → jquery-ui/autocomplete.js} +70 -50
  8. data/app/assets/javascripts/{jquery.ui.button.js → jquery-ui/button.js} +41 -25
  9. data/app/assets/javascripts/{jquery.ui.core.js → jquery-ui/core.js} +106 -123
  10. data/app/assets/javascripts/jquery-ui/datepicker-af.js +37 -0
  11. data/app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js +37 -0
  12. data/app/assets/javascripts/jquery-ui/datepicker-ar.js +37 -0
  13. data/app/assets/javascripts/jquery-ui/datepicker-az.js +37 -0
  14. data/app/assets/javascripts/jquery-ui/datepicker-be.js +37 -0
  15. data/app/assets/javascripts/jquery-ui/datepicker-bg.js +38 -0
  16. data/app/assets/javascripts/jquery-ui/datepicker-bs.js +37 -0
  17. data/app/assets/javascripts/jquery-ui/datepicker-ca.js +37 -0
  18. data/app/assets/javascripts/jquery-ui/datepicker-cs.js +37 -0
  19. data/app/assets/javascripts/jquery-ui/datepicker-cy-GB.js +37 -0
  20. data/app/assets/javascripts/jquery-ui/datepicker-da.js +37 -0
  21. data/app/assets/javascripts/jquery-ui/datepicker-de.js +37 -0
  22. data/app/assets/javascripts/jquery-ui/datepicker-el.js +37 -0
  23. data/app/assets/javascripts/jquery-ui/datepicker-en-AU.js +37 -0
  24. data/app/assets/javascripts/jquery-ui/datepicker-en-GB.js +37 -0
  25. data/app/assets/javascripts/jquery-ui/datepicker-en-NZ.js +37 -0
  26. data/app/assets/javascripts/jquery-ui/datepicker-eo.js +37 -0
  27. data/app/assets/javascripts/jquery-ui/datepicker-es.js +37 -0
  28. data/app/assets/javascripts/jquery-ui/datepicker-et.js +37 -0
  29. data/app/assets/javascripts/jquery-ui/datepicker-eu.js +36 -0
  30. data/app/assets/javascripts/jquery-ui/datepicker-fa.js +73 -0
  31. data/app/assets/javascripts/jquery-ui/datepicker-fi.js +37 -0
  32. data/app/assets/javascripts/jquery-ui/datepicker-fo.js +37 -0
  33. data/app/assets/javascripts/jquery-ui/datepicker-fr-CA.js +37 -0
  34. data/app/assets/javascripts/jquery-ui/datepicker-fr-CH.js +37 -0
  35. data/app/assets/javascripts/jquery-ui/datepicker-fr.js +39 -0
  36. data/app/assets/javascripts/jquery-ui/datepicker-gl.js +37 -0
  37. data/app/assets/javascripts/jquery-ui/datepicker-he.js +37 -0
  38. data/app/assets/javascripts/jquery-ui/datepicker-hi.js +37 -0
  39. data/app/assets/javascripts/jquery-ui/datepicker-hr.js +37 -0
  40. data/app/assets/javascripts/jquery-ui/datepicker-hu.js +36 -0
  41. data/app/assets/javascripts/jquery-ui/datepicker-hy.js +37 -0
  42. data/app/assets/javascripts/jquery-ui/datepicker-id.js +37 -0
  43. data/app/assets/javascripts/jquery-ui/datepicker-is.js +37 -0
  44. data/app/assets/javascripts/jquery-ui/datepicker-it-CH.js +37 -0
  45. data/app/assets/javascripts/jquery-ui/datepicker-it.js +37 -0
  46. data/app/assets/javascripts/jquery-ui/datepicker-ja.js +37 -0
  47. data/app/assets/javascripts/jquery-ui/datepicker-ka.js +35 -0
  48. data/app/assets/javascripts/jquery-ui/datepicker-kk.js +37 -0
  49. data/app/assets/javascripts/jquery-ui/datepicker-km.js +37 -0
  50. data/app/assets/javascripts/jquery-ui/datepicker-ko.js +37 -0
  51. data/app/assets/javascripts/jquery-ui/datepicker-ky.js +38 -0
  52. data/app/assets/javascripts/jquery-ui/datepicker-lb.js +37 -0
  53. data/app/assets/javascripts/jquery-ui/datepicker-lt.js +37 -0
  54. data/app/assets/javascripts/jquery-ui/datepicker-lv.js +37 -0
  55. data/app/assets/javascripts/jquery-ui/datepicker-mk.js +37 -0
  56. data/app/assets/javascripts/jquery-ui/datepicker-ml.js +37 -0
  57. data/app/assets/javascripts/jquery-ui/datepicker-ms.js +37 -0
  58. data/app/assets/javascripts/jquery-ui/datepicker-nb.js +36 -0
  59. data/app/assets/javascripts/jquery-ui/datepicker-nl-BE.js +37 -0
  60. data/app/assets/javascripts/jquery-ui/datepicker-nl.js +37 -0
  61. data/app/assets/javascripts/jquery-ui/datepicker-nn.js +36 -0
  62. data/app/assets/javascripts/jquery-ui/datepicker-no.js +37 -0
  63. data/app/assets/javascripts/jquery-ui/datepicker-pl.js +37 -0
  64. data/app/assets/javascripts/jquery-ui/datepicker-pt-BR.js +37 -0
  65. data/app/assets/javascripts/jquery-ui/datepicker-pt.js +36 -0
  66. data/app/assets/javascripts/jquery-ui/datepicker-rm.js +35 -0
  67. data/app/assets/javascripts/jquery-ui/datepicker-ro.js +40 -0
  68. data/app/assets/javascripts/jquery-ui/datepicker-ru.js +37 -0
  69. data/app/assets/javascripts/jquery-ui/datepicker-sk.js +37 -0
  70. data/app/assets/javascripts/jquery-ui/datepicker-sl.js +38 -0
  71. data/app/assets/javascripts/jquery-ui/datepicker-sq.js +37 -0
  72. data/app/assets/javascripts/jquery-ui/datepicker-sr-SR.js +37 -0
  73. data/app/assets/javascripts/jquery-ui/datepicker-sr.js +37 -0
  74. data/app/assets/javascripts/jquery-ui/datepicker-sv.js +37 -0
  75. data/app/assets/javascripts/jquery-ui/datepicker-ta.js +37 -0
  76. data/app/assets/javascripts/jquery-ui/datepicker-th.js +37 -0
  77. data/app/assets/javascripts/jquery-ui/datepicker-tj.js +37 -0
  78. data/app/assets/javascripts/jquery-ui/datepicker-tr.js +37 -0
  79. data/app/assets/javascripts/jquery-ui/datepicker-uk.js +38 -0
  80. data/app/assets/javascripts/jquery-ui/datepicker-vi.js +37 -0
  81. data/app/assets/javascripts/jquery-ui/datepicker-zh-CN.js +37 -0
  82. data/app/assets/javascripts/jquery-ui/datepicker-zh-HK.js +37 -0
  83. data/app/assets/javascripts/jquery-ui/datepicker-zh-TW.js +37 -0
  84. data/app/assets/javascripts/{jquery.ui.datepicker.js → jquery-ui/datepicker.js} +72 -37
  85. data/app/assets/javascripts/{jquery.ui.dialog.js → jquery-ui/dialog.js} +215 -180
  86. data/app/assets/javascripts/{jquery.ui.draggable.js → jquery-ui/draggable.js} +219 -161
  87. data/app/assets/javascripts/jquery-ui/droppable.js +421 -0
  88. data/app/assets/javascripts/{jquery.ui.effect-blind.js → jquery-ui/effect-blind.js} +20 -12
  89. data/app/assets/javascripts/{jquery.ui.effect-bounce.js → jquery-ui/effect-bounce.js} +18 -8
  90. data/app/assets/javascripts/{jquery.ui.effect-clip.js → jquery-ui/effect-clip.js} +18 -8
  91. data/app/assets/javascripts/{jquery.ui.effect-drop.js → jquery-ui/effect-drop.js} +18 -8
  92. data/app/assets/javascripts/{jquery.ui.effect-explode.js → jquery-ui/effect-explode.js} +20 -10
  93. data/app/assets/javascripts/{jquery.ui.effect-fade.js → jquery-ui/effect-fade.js} +18 -8
  94. data/app/assets/javascripts/{jquery.ui.effect-fold.js → jquery-ui/effect-fold.js} +18 -8
  95. data/app/assets/javascripts/{jquery.ui.effect-highlight.js → jquery-ui/effect-highlight.js} +18 -8
  96. data/app/assets/javascripts/jquery-ui/effect-puff.js +63 -0
  97. data/app/assets/javascripts/{jquery.ui.effect-pulsate.js → jquery-ui/effect-pulsate.js} +18 -8
  98. data/app/assets/javascripts/jquery-ui/effect-scale.js +92 -0
  99. data/app/assets/javascripts/{jquery.ui.effect-shake.js → jquery-ui/effect-shake.js} +19 -9
  100. data/app/assets/javascripts/{jquery.ui.effect-scale.js → jquery-ui/effect-size.js} +19 -104
  101. data/app/assets/javascripts/{jquery.ui.effect-slide.js → jquery-ui/effect-slide.js} +18 -8
  102. data/app/assets/javascripts/{jquery.ui.effect-transfer.js → jquery-ui/effect-transfer.js} +22 -12
  103. data/app/assets/javascripts/jquery-ui/effect.all.js +16 -0
  104. data/app/assets/javascripts/{jquery.ui.effect.js → jquery-ui/effect.js} +28 -20
  105. data/app/assets/javascripts/{jquery.ui.menu.js → jquery-ui/menu.js} +93 -80
  106. data/app/assets/javascripts/{jquery.ui.mouse.js → jquery-ui/mouse.js} +41 -23
  107. data/app/assets/javascripts/{jquery.ui.position.js → jquery-ui/position.js} +25 -12
  108. data/app/assets/javascripts/{jquery.ui.progressbar.js → jquery-ui/progressbar.js} +26 -12
  109. data/app/assets/javascripts/{jquery.ui.resizable.js → jquery-ui/resizable.js} +196 -146
  110. data/app/assets/javascripts/{jquery.ui.selectable.js → jquery-ui/selectable.js} +25 -15
  111. data/app/assets/javascripts/jquery-ui/selectmenu.js +560 -0
  112. data/app/assets/javascripts/{jquery.ui.slider.js → jquery-ui/slider.js} +43 -31
  113. data/app/assets/javascripts/{jquery.ui.sortable.js → jquery-ui/sortable.js} +71 -50
  114. data/app/assets/javascripts/{jquery.ui.spinner.js → jquery-ui/spinner.js} +46 -29
  115. data/app/assets/javascripts/{jquery.ui.tabs.js → jquery-ui/tabs.js} +69 -52
  116. data/app/assets/javascripts/{jquery.ui.tooltip.js → jquery-ui/tooltip.js} +97 -55
  117. data/app/assets/javascripts/{jquery.ui.widget.js → jquery-ui/widget.js} +52 -30
  118. data/app/assets/stylesheets/jquery-ui.css +1 -0
  119. data/app/assets/stylesheets/{jquery.ui.accordion.css.erb → jquery-ui/accordion.css.erb} +5 -7
  120. data/app/assets/stylesheets/{jquery.ui.all.css.erb → jquery-ui/all.css.erb} +3 -3
  121. data/app/assets/stylesheets/{jquery.ui.autocomplete.css.erb → jquery-ui/autocomplete.css.erb} +4 -4
  122. data/app/assets/stylesheets/jquery-ui/base.css.erb +30 -0
  123. data/app/assets/stylesheets/{jquery.ui.button.css.erb → jquery-ui/button.css.erb} +3 -3
  124. data/app/assets/stylesheets/{jquery.ui.core.css.erb → jquery-ui/core.css.erb} +4 -1
  125. data/app/assets/stylesheets/{jquery.ui.datepicker.css.erb → jquery-ui/datepicker.css.erb} +3 -3
  126. data/app/assets/stylesheets/{jquery.ui.dialog.css.erb → jquery-ui/dialog.css.erb} +6 -5
  127. data/app/assets/stylesheets/jquery-ui/draggable.css.erb +16 -0
  128. data/app/assets/stylesheets/{jquery.ui.menu.css.erb → jquery-ui/menu.css.erb} +18 -34
  129. data/app/assets/stylesheets/{jquery.ui.progressbar.css.erb → jquery-ui/progressbar.css.erb} +3 -3
  130. data/app/assets/stylesheets/{jquery.ui.resizable.css.erb → jquery-ui/resizable.css.erb} +5 -3
  131. data/app/assets/stylesheets/{jquery.ui.selectable.css.erb → jquery-ui/selectable.css.erb} +7 -3
  132. data/app/assets/stylesheets/jquery-ui/selectmenu.css.erb +64 -0
  133. data/app/assets/stylesheets/{jquery.ui.slider.css.erb → jquery-ui/slider.css.erb} +5 -3
  134. data/app/assets/stylesheets/jquery-ui/sortable.css.erb +16 -0
  135. data/app/assets/stylesheets/{jquery.ui.spinner.css.erb → jquery-ui/spinner.css.erb} +4 -4
  136. data/app/assets/stylesheets/{jquery.ui.tabs.css.erb → jquery-ui/tabs.css.erb} +3 -3
  137. data/app/assets/stylesheets/{jquery.ui.theme.css.erb → jquery-ui/theme.css.erb} +1 -4
  138. data/app/assets/stylesheets/{jquery.ui.tooltip.css.erb → jquery-ui/tooltip.css.erb} +3 -3
  139. data/lib/jquery/ui/rails/version.rb +2 -2
  140. metadata +137 -129
  141. data/app/assets/javascripts/jquery.ui.all.js +0 -34
  142. data/app/assets/javascripts/jquery.ui.datepicker-af.js +0 -23
  143. data/app/assets/javascripts/jquery.ui.datepicker-ar-DZ.js +0 -23
  144. data/app/assets/javascripts/jquery.ui.datepicker-ar.js +0 -23
  145. data/app/assets/javascripts/jquery.ui.datepicker-az.js +0 -23
  146. data/app/assets/javascripts/jquery.ui.datepicker-be.js +0 -23
  147. data/app/assets/javascripts/jquery.ui.datepicker-bg.js +0 -24
  148. data/app/assets/javascripts/jquery.ui.datepicker-bs.js +0 -23
  149. data/app/assets/javascripts/jquery.ui.datepicker-ca.js +0 -23
  150. data/app/assets/javascripts/jquery.ui.datepicker-cs.js +0 -23
  151. data/app/assets/javascripts/jquery.ui.datepicker-cy-GB.js +0 -23
  152. data/app/assets/javascripts/jquery.ui.datepicker-da.js +0 -23
  153. data/app/assets/javascripts/jquery.ui.datepicker-de.js +0 -23
  154. data/app/assets/javascripts/jquery.ui.datepicker-el.js +0 -23
  155. data/app/assets/javascripts/jquery.ui.datepicker-en-AU.js +0 -23
  156. data/app/assets/javascripts/jquery.ui.datepicker-en-GB.js +0 -23
  157. data/app/assets/javascripts/jquery.ui.datepicker-en-NZ.js +0 -23
  158. data/app/assets/javascripts/jquery.ui.datepicker-eo.js +0 -23
  159. data/app/assets/javascripts/jquery.ui.datepicker-es.js +0 -23
  160. data/app/assets/javascripts/jquery.ui.datepicker-et.js +0 -23
  161. data/app/assets/javascripts/jquery.ui.datepicker-eu.js +0 -23
  162. data/app/assets/javascripts/jquery.ui.datepicker-fa.js +0 -59
  163. data/app/assets/javascripts/jquery.ui.datepicker-fi.js +0 -23
  164. data/app/assets/javascripts/jquery.ui.datepicker-fo.js +0 -23
  165. data/app/assets/javascripts/jquery.ui.datepicker-fr-CA.js +0 -23
  166. data/app/assets/javascripts/jquery.ui.datepicker-fr-CH.js +0 -23
  167. data/app/assets/javascripts/jquery.ui.datepicker-fr.js +0 -25
  168. data/app/assets/javascripts/jquery.ui.datepicker-gl.js +0 -23
  169. data/app/assets/javascripts/jquery.ui.datepicker-he.js +0 -23
  170. data/app/assets/javascripts/jquery.ui.datepicker-hi.js +0 -23
  171. data/app/assets/javascripts/jquery.ui.datepicker-hr.js +0 -23
  172. data/app/assets/javascripts/jquery.ui.datepicker-hu.js +0 -23
  173. data/app/assets/javascripts/jquery.ui.datepicker-hy.js +0 -23
  174. data/app/assets/javascripts/jquery.ui.datepicker-id.js +0 -23
  175. data/app/assets/javascripts/jquery.ui.datepicker-is.js +0 -23
  176. data/app/assets/javascripts/jquery.ui.datepicker-it.js +0 -23
  177. data/app/assets/javascripts/jquery.ui.datepicker-ja.js +0 -23
  178. data/app/assets/javascripts/jquery.ui.datepicker-ka.js +0 -21
  179. data/app/assets/javascripts/jquery.ui.datepicker-kk.js +0 -23
  180. data/app/assets/javascripts/jquery.ui.datepicker-km.js +0 -23
  181. data/app/assets/javascripts/jquery.ui.datepicker-ko.js +0 -23
  182. data/app/assets/javascripts/jquery.ui.datepicker-ky.js +0 -24
  183. data/app/assets/javascripts/jquery.ui.datepicker-lb.js +0 -23
  184. data/app/assets/javascripts/jquery.ui.datepicker-lt.js +0 -23
  185. data/app/assets/javascripts/jquery.ui.datepicker-lv.js +0 -23
  186. data/app/assets/javascripts/jquery.ui.datepicker-mk.js +0 -23
  187. data/app/assets/javascripts/jquery.ui.datepicker-ml.js +0 -23
  188. data/app/assets/javascripts/jquery.ui.datepicker-ms.js +0 -23
  189. data/app/assets/javascripts/jquery.ui.datepicker-nb.js +0 -22
  190. data/app/assets/javascripts/jquery.ui.datepicker-nl-BE.js +0 -23
  191. data/app/assets/javascripts/jquery.ui.datepicker-nl.js +0 -23
  192. data/app/assets/javascripts/jquery.ui.datepicker-nn.js +0 -22
  193. data/app/assets/javascripts/jquery.ui.datepicker-no.js +0 -23
  194. data/app/assets/javascripts/jquery.ui.datepicker-pl.js +0 -23
  195. data/app/assets/javascripts/jquery.ui.datepicker-pt-BR.js +0 -23
  196. data/app/assets/javascripts/jquery.ui.datepicker-pt.js +0 -22
  197. data/app/assets/javascripts/jquery.ui.datepicker-rm.js +0 -21
  198. data/app/assets/javascripts/jquery.ui.datepicker-ro.js +0 -26
  199. data/app/assets/javascripts/jquery.ui.datepicker-ru.js +0 -23
  200. data/app/assets/javascripts/jquery.ui.datepicker-sk.js +0 -23
  201. data/app/assets/javascripts/jquery.ui.datepicker-sl.js +0 -24
  202. data/app/assets/javascripts/jquery.ui.datepicker-sq.js +0 -23
  203. data/app/assets/javascripts/jquery.ui.datepicker-sr-SR.js +0 -23
  204. data/app/assets/javascripts/jquery.ui.datepicker-sr.js +0 -23
  205. data/app/assets/javascripts/jquery.ui.datepicker-sv.js +0 -23
  206. data/app/assets/javascripts/jquery.ui.datepicker-ta.js +0 -23
  207. data/app/assets/javascripts/jquery.ui.datepicker-th.js +0 -23
  208. data/app/assets/javascripts/jquery.ui.datepicker-tj.js +0 -23
  209. data/app/assets/javascripts/jquery.ui.datepicker-tr.js +0 -23
  210. data/app/assets/javascripts/jquery.ui.datepicker-uk.js +0 -24
  211. data/app/assets/javascripts/jquery.ui.datepicker-vi.js +0 -23
  212. data/app/assets/javascripts/jquery.ui.datepicker-zh-CN.js +0 -23
  213. data/app/assets/javascripts/jquery.ui.datepicker-zh-HK.js +0 -23
  214. data/app/assets/javascripts/jquery.ui.datepicker-zh-TW.js +0 -23
  215. data/app/assets/javascripts/jquery.ui.droppable.js +0 -394
  216. data/app/assets/javascripts/jquery.ui.effect.all.js +0 -14
  217. data/app/assets/stylesheets/jquery.ui.base.css.erb +0 -27
@@ -1,9 +1,9 @@
1
- //= require jquery.ui.core
2
- //= require jquery.ui.widget
3
- //= require jquery.ui.mouse
1
+ //= require jquery-ui/core
2
+ //= require jquery-ui/widget
3
+ //= require jquery-ui/mouse
4
4
 
5
5
  /*!
6
- * jQuery UI Draggable 1.10.4
6
+ * jQuery UI Draggable 1.11.0
7
7
  * http://jqueryui.com
8
8
  *
9
9
  * Copyright 2014 jQuery Foundation and other contributors
@@ -11,16 +11,26 @@
11
11
  * http://jquery.org/license
12
12
  *
13
13
  * http://api.jqueryui.com/draggable/
14
- *
15
- * Depends:
16
- * jquery.ui.core.js
17
- * jquery.ui.mouse.js
18
- * jquery.ui.widget.js
19
14
  */
20
- (function( $, undefined ) {
15
+ (function( factory ) {
16
+ if ( typeof define === "function" && define.amd ) {
17
+
18
+ // AMD. Register as an anonymous module.
19
+ define([
20
+ "jquery",
21
+ "./core",
22
+ "./mouse",
23
+ "./widget"
24
+ ], factory );
25
+ } else {
26
+
27
+ // Browser globals
28
+ factory( jQuery );
29
+ }
30
+ }(function( $ ) {
21
31
 
22
32
  $.widget("ui.draggable", $.ui.mouse, {
23
- version: "1.10.4",
33
+ version: "1.11.0",
24
34
  widgetEventPrefix: "drag",
25
35
  options: {
26
36
  addClasses: true,
@@ -64,19 +74,43 @@ $.widget("ui.draggable", $.ui.mouse, {
64
74
  if (this.options.disabled){
65
75
  this.element.addClass("ui-draggable-disabled");
66
76
  }
77
+ this._setHandleClassName();
67
78
 
68
79
  this._mouseInit();
80
+ },
69
81
 
82
+ _setOption: function( key, value ) {
83
+ this._super( key, value );
84
+ if ( key === "handle" ) {
85
+ this._setHandleClassName();
86
+ }
70
87
  },
71
88
 
72
89
  _destroy: function() {
90
+ if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
91
+ this.destroyOnClear = true;
92
+ return;
93
+ }
73
94
  this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" );
95
+ this._removeHandleClassName();
74
96
  this._mouseDestroy();
75
97
  },
76
98
 
77
99
  _mouseCapture: function(event) {
78
100
 
79
- var o = this.options;
101
+ var document = this.document[ 0 ],
102
+ o = this.options;
103
+
104
+ // support: IE9
105
+ // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
106
+ try {
107
+ // Support: IE9+
108
+ // If the <body> is blurred, IE will switch windows, see #9520
109
+ if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {
110
+ // Blur any element that currently has focus, see #4261
111
+ $( document.activeElement ).blur();
112
+ }
113
+ } catch ( error ) {}
80
114
 
81
115
  // among others, prevent a drag on a resizable-handle
82
116
  if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
@@ -92,7 +126,7 @@ $.widget("ui.draggable", $.ui.mouse, {
92
126
  $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
93
127
  $("<div class='ui-draggable-iframeFix' style='background: #fff;'></div>")
94
128
  .css({
95
- width: this.offsetWidth+"px", height: this.offsetHeight+"px",
129
+ width: this.offsetWidth + "px", height: this.offsetHeight + "px",
96
130
  position: "absolute", opacity: "0.001", zIndex: 1000
97
131
  })
98
132
  .css($(this).offset())
@@ -116,7 +150,7 @@ $.widget("ui.draggable", $.ui.mouse, {
116
150
  this._cacheHelperProportions();
117
151
 
118
152
  //If ddmanager is used for droppables, set the global draggable
119
- if($.ui.ddmanager) {
153
+ if ($.ui.ddmanager) {
120
154
  $.ui.ddmanager.current = this;
121
155
  }
122
156
 
@@ -154,7 +188,7 @@ $.widget("ui.draggable", $.ui.mouse, {
154
188
  });
155
189
 
156
190
  //Generate the original position
157
- this.originalPosition = this.position = this._generatePosition(event);
191
+ this.originalPosition = this.position = this._generatePosition( event, false );
158
192
  this.originalPageX = event.pageX;
159
193
  this.originalPageY = event.pageY;
160
194
 
@@ -165,7 +199,7 @@ $.widget("ui.draggable", $.ui.mouse, {
165
199
  this._setContainment();
166
200
 
167
201
  //Trigger event + callbacks
168
- if(this._trigger("start", event) === false) {
202
+ if (this._trigger("start", event) === false) {
169
203
  this._clear();
170
204
  return false;
171
205
  }
@@ -178,7 +212,6 @@ $.widget("ui.draggable", $.ui.mouse, {
178
212
  $.ui.ddmanager.prepareOffsets(this, event);
179
213
  }
180
214
 
181
-
182
215
  this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
183
216
 
184
217
  //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
@@ -196,26 +229,23 @@ $.widget("ui.draggable", $.ui.mouse, {
196
229
  }
197
230
 
198
231
  //Compute the helpers position
199
- this.position = this._generatePosition(event);
232
+ this.position = this._generatePosition( event, true );
200
233
  this.positionAbs = this._convertPositionTo("absolute");
201
234
 
202
235
  //Call plugins and callbacks and use the resulting position if something is returned
203
236
  if (!noPropagation) {
204
237
  var ui = this._uiHash();
205
- if(this._trigger("drag", event, ui) === false) {
238
+ if (this._trigger("drag", event, ui) === false) {
206
239
  this._mouseUp({});
207
240
  return false;
208
241
  }
209
242
  this.position = ui.position;
210
243
  }
211
244
 
212
- if(!this.options.axis || this.options.axis !== "y") {
213
- this.helper[0].style.left = this.position.left+"px";
214
- }
215
- if(!this.options.axis || this.options.axis !== "x") {
216
- this.helper[0].style.top = this.position.top+"px";
217
- }
218
- if($.ui.ddmanager) {
245
+ this.helper[ 0 ].style.left = this.position.left + "px";
246
+ this.helper[ 0 ].style.top = this.position.top + "px";
247
+
248
+ if ($.ui.ddmanager) {
219
249
  $.ui.ddmanager.drag(this, event);
220
250
  }
221
251
 
@@ -232,24 +262,19 @@ $.widget("ui.draggable", $.ui.mouse, {
232
262
  }
233
263
 
234
264
  //if a drop comes from outside (a sortable)
235
- if(this.dropped) {
265
+ if (this.dropped) {
236
266
  dropped = this.dropped;
237
267
  this.dropped = false;
238
268
  }
239
269
 
240
- //if the original element is no longer in the DOM don't bother to continue (see #8269)
241
- if ( this.options.helper === "original" && !$.contains( this.element[ 0 ].ownerDocument, this.element[ 0 ] ) ) {
242
- return false;
243
- }
244
-
245
- 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))) {
270
+ 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))) {
246
271
  $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
247
- if(that._trigger("stop", event) !== false) {
272
+ if (that._trigger("stop", event) !== false) {
248
273
  that._clear();
249
274
  }
250
275
  });
251
276
  } else {
252
- if(this._trigger("stop", event) !== false) {
277
+ if (this._trigger("stop", event) !== false) {
253
278
  this._clear();
254
279
  }
255
280
  }
@@ -264,16 +289,19 @@ $.widget("ui.draggable", $.ui.mouse, {
264
289
  });
265
290
 
266
291
  //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
267
- if( $.ui.ddmanager ) {
292
+ if ( $.ui.ddmanager ) {
268
293
  $.ui.ddmanager.dragStop(this, event);
269
294
  }
270
295
 
296
+ // The interaction is over; whether or not the click resulted in a drag, focus the element
297
+ this.element.focus();
298
+
271
299
  return $.ui.mouse.prototype._mouseUp.call(this, event);
272
300
  },
273
301
 
274
302
  cancel: function() {
275
303
 
276
- if(this.helper.is(".ui-draggable-dragging")) {
304
+ if (this.helper.is(".ui-draggable-dragging")) {
277
305
  this._mouseUp({});
278
306
  } else {
279
307
  this._clear();
@@ -289,16 +317,27 @@ $.widget("ui.draggable", $.ui.mouse, {
289
317
  true;
290
318
  },
291
319
 
320
+ _setHandleClassName: function() {
321
+ this._removeHandleClassName();
322
+ $( this.options.handle || this.element ).addClass( "ui-draggable-handle" );
323
+ },
324
+
325
+ _removeHandleClassName: function() {
326
+ this.element.find( ".ui-draggable-handle" )
327
+ .addBack()
328
+ .removeClass( "ui-draggable-handle" );
329
+ },
330
+
292
331
  _createHelper: function(event) {
293
332
 
294
333
  var o = this.options,
295
- helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
334
+ helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[ 0 ], [ event ])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element);
296
335
 
297
- if(!helper.parents("body").length) {
336
+ if (!helper.parents("body").length) {
298
337
  helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
299
338
  }
300
339
 
301
- if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
340
+ if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
302
341
  helper.css("position", "absolute");
303
342
  }
304
343
 
@@ -311,7 +350,7 @@ $.widget("ui.draggable", $.ui.mouse, {
311
350
  obj = obj.split(" ");
312
351
  }
313
352
  if ($.isArray(obj)) {
314
- obj = {left: +obj[0], top: +obj[1] || 0};
353
+ obj = { left: +obj[0], top: +obj[1] || 0 };
315
354
  }
316
355
  if ("left" in obj) {
317
356
  this.offset.click.left = obj.left + this.margins.left;
@@ -327,24 +366,26 @@ $.widget("ui.draggable", $.ui.mouse, {
327
366
  }
328
367
  },
329
368
 
369
+ _isRootNode: function( element ) {
370
+ return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
371
+ },
372
+
330
373
  _getParentOffset: function() {
331
374
 
332
375
  //Get the offsetParent and cache its position
333
- var po = this.offsetParent.offset();
376
+ var po = this.offsetParent.offset(),
377
+ document = this.document[ 0 ];
334
378
 
335
379
  // This is a special case where we need to modify a offset calculated on start, since the following happened:
336
380
  // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
337
381
  // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
338
382
  // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
339
- if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
383
+ if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
340
384
  po.left += this.scrollParent.scrollLeft();
341
385
  po.top += this.scrollParent.scrollTop();
342
386
  }
343
387
 
344
- //This needs to be actually done for all browsers, since pageX/pageY includes this information
345
- //Ugly IE fix
346
- if((this.offsetParent[0] === document.body) ||
347
- (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
388
+ if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
348
389
  po = { top: 0, left: 0 };
349
390
  }
350
391
 
@@ -356,17 +397,18 @@ $.widget("ui.draggable", $.ui.mouse, {
356
397
  },
357
398
 
358
399
  _getRelativeOffset: function() {
359
-
360
- if(this.cssPosition === "relative") {
361
- var p = this.element.position();
362
- return {
363
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
364
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
365
- };
366
- } else {
400
+ if ( this.cssPosition !== "relative" ) {
367
401
  return { top: 0, left: 0 };
368
402
  }
369
403
 
404
+ var p = this.element.position(),
405
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
406
+
407
+ return {
408
+ top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
409
+ left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
410
+ };
411
+
370
412
  },
371
413
 
372
414
  _cacheMargins: function() {
@@ -388,7 +430,10 @@ $.widget("ui.draggable", $.ui.mouse, {
388
430
  _setContainment: function() {
389
431
 
390
432
  var over, c, ce,
391
- o = this.options;
433
+ o = this.options,
434
+ document = this.document[ 0 ];
435
+
436
+ this.relative_container = null;
392
437
 
393
438
  if ( !o.containment ) {
394
439
  this.containment = null;
@@ -427,7 +472,7 @@ $.widget("ui.draggable", $.ui.mouse, {
427
472
  c = $( o.containment );
428
473
  ce = c[ 0 ];
429
474
 
430
- if( !ce ) {
475
+ if ( !ce ) {
431
476
  return;
432
477
  }
433
478
 
@@ -435,7 +480,7 @@ $.widget("ui.draggable", $.ui.mouse, {
435
480
 
436
481
  this.containment = [
437
482
  ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
438
- ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ) ,
483
+ ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
439
484
  ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right,
440
485
  ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top - this.margins.bottom
441
486
  ];
@@ -444,46 +489,44 @@ $.widget("ui.draggable", $.ui.mouse, {
444
489
 
445
490
  _convertPositionTo: function(d, pos) {
446
491
 
447
- if(!pos) {
492
+ if (!pos) {
448
493
  pos = this.position;
449
494
  }
450
495
 
451
496
  var mod = d === "absolute" ? 1 : -1,
452
- scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent;
453
-
454
- //Cache the scroll
455
- if (!this.offset.scroll) {
456
- this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
457
- }
497
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
458
498
 
459
499
  return {
460
500
  top: (
461
501
  pos.top + // The absolute mouse position
462
502
  this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
463
503
  this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border)
464
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top ) * mod )
504
+ ( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)
465
505
  ),
466
506
  left: (
467
507
  pos.left + // The absolute mouse position
468
508
  this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent
469
509
  this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border)
470
- ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left ) * mod )
510
+ ( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)
471
511
  )
472
512
  };
473
513
 
474
514
  },
475
515
 
476
- _generatePosition: function(event) {
516
+ _generatePosition: function( event, constrainPosition ) {
477
517
 
478
518
  var containment, co, top, left,
479
519
  o = this.options,
480
- scroll = this.cssPosition === "absolute" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent,
520
+ scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
481
521
  pageX = event.pageX,
482
522
  pageY = event.pageY;
483
523
 
484
- //Cache the scroll
485
- if (!this.offset.scroll) {
486
- this.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};
524
+ // Cache the scroll
525
+ if ( !scrollIsRootNode || !this.offset.scroll ) {
526
+ this.offset.scroll = {
527
+ top: this.scrollParent.scrollTop(),
528
+ left: this.scrollParent.scrollLeft()
529
+ };
487
530
  }
488
531
 
489
532
  /*
@@ -492,7 +535,7 @@ $.widget("ui.draggable", $.ui.mouse, {
492
535
  */
493
536
 
494
537
  // If we are not dragging yet, we won't check for options
495
- if ( this.originalPosition ) {
538
+ if ( constrainPosition ) {
496
539
  if ( this.containment ) {
497
540
  if ( this.relative_container ){
498
541
  co = this.relative_container.offset();
@@ -502,26 +545,25 @@ $.widget("ui.draggable", $.ui.mouse, {
502
545
  this.containment[ 2 ] + co.left,
503
546
  this.containment[ 3 ] + co.top
504
547
  ];
505
- }
506
- else {
548
+ } else {
507
549
  containment = this.containment;
508
550
  }
509
551
 
510
- if(event.pageX - this.offset.click.left < containment[0]) {
552
+ if (event.pageX - this.offset.click.left < containment[0]) {
511
553
  pageX = containment[0] + this.offset.click.left;
512
554
  }
513
- if(event.pageY - this.offset.click.top < containment[1]) {
555
+ if (event.pageY - this.offset.click.top < containment[1]) {
514
556
  pageY = containment[1] + this.offset.click.top;
515
557
  }
516
- if(event.pageX - this.offset.click.left > containment[2]) {
558
+ if (event.pageX - this.offset.click.left > containment[2]) {
517
559
  pageX = containment[2] + this.offset.click.left;
518
560
  }
519
- if(event.pageY - this.offset.click.top > containment[3]) {
561
+ if (event.pageY - this.offset.click.top > containment[3]) {
520
562
  pageY = containment[3] + this.offset.click.top;
521
563
  }
522
564
  }
523
565
 
524
- if(o.grid) {
566
+ if (o.grid) {
525
567
  //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
526
568
  top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
527
569
  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;
@@ -530,6 +572,13 @@ $.widget("ui.draggable", $.ui.mouse, {
530
572
  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;
531
573
  }
532
574
 
575
+ if ( o.axis === "y" ) {
576
+ pageX = this.originalPageX;
577
+ }
578
+
579
+ if ( o.axis === "x" ) {
580
+ pageY = this.originalPageY;
581
+ }
533
582
  }
534
583
 
535
584
  return {
@@ -538,14 +587,14 @@ $.widget("ui.draggable", $.ui.mouse, {
538
587
  this.offset.click.top - // Click offset (relative to the element)
539
588
  this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent
540
589
  this.offset.parent.top + // The offsetParent's offset without borders (offset + border)
541
- ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : this.offset.scroll.top )
590
+ ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
542
591
  ),
543
592
  left: (
544
593
  pageX - // The absolute mouse position
545
594
  this.offset.click.left - // Click offset (relative to the element)
546
595
  this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent
547
596
  this.offset.parent.left + // The offsetParent's offset without borders (offset + border)
548
- ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left )
597
+ ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
549
598
  )
550
599
  };
551
600
 
@@ -553,20 +602,23 @@ $.widget("ui.draggable", $.ui.mouse, {
553
602
 
554
603
  _clear: function() {
555
604
  this.helper.removeClass("ui-draggable-dragging");
556
- if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
605
+ if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
557
606
  this.helper.remove();
558
607
  }
559
608
  this.helper = null;
560
609
  this.cancelHelperRemoval = false;
610
+ if ( this.destroyOnClear ) {
611
+ this.destroy();
612
+ }
561
613
  },
562
614
 
563
615
  // From now on bulk stuff - mainly helpers
564
616
 
565
617
  _trigger: function(type, event, ui) {
566
618
  ui = ui || this._uiHash();
567
- $.ui.plugin.call(this, type, [event, ui]);
619
+ $.ui.plugin.call( this, type, [ event, ui, this ], true );
568
620
  //The absolute position has to be recalculated after plugins
569
- if(type === "drag") {
621
+ if (type === "drag") {
570
622
  this.positionAbs = this._convertPositionTo("absolute");
571
623
  }
572
624
  return $.Widget.prototype._trigger.call(this, type, event, ui);
@@ -586,13 +638,13 @@ $.widget("ui.draggable", $.ui.mouse, {
586
638
  });
587
639
 
588
640
  $.ui.plugin.add("draggable", "connectToSortable", {
589
- start: function(event, ui) {
641
+ start: function( event, ui, inst ) {
590
642
 
591
- var inst = $(this).data("ui-draggable"), o = inst.options,
643
+ var o = inst.options,
592
644
  uiSortable = $.extend({}, ui, { item: inst.element });
593
645
  inst.sortables = [];
594
646
  $(o.connectToSortable).each(function() {
595
- var sortable = $.data(this, "ui-sortable");
647
+ var sortable = $( this ).sortable( "instance" );
596
648
  if (sortable && !sortable.options.disabled) {
597
649
  inst.sortables.push({
598
650
  instance: sortable,
@@ -604,14 +656,15 @@ $.ui.plugin.add("draggable", "connectToSortable", {
604
656
  });
605
657
 
606
658
  },
607
- stop: function(event, ui) {
659
+ stop: function( event, ui, inst ) {
608
660
 
609
661
  //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
610
- var inst = $(this).data("ui-draggable"),
611
- uiSortable = $.extend({}, ui, { item: inst.element });
662
+ var uiSortable = $.extend( {}, ui, {
663
+ item: inst.element
664
+ });
612
665
 
613
666
  $.each(inst.sortables, function() {
614
- if(this.instance.isOver) {
667
+ if (this.instance.isOver) {
615
668
 
616
669
  this.instance.isOver = 0;
617
670
 
@@ -619,7 +672,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
619
672
  this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
620
673
 
621
674
  //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid"
622
- if(this.shouldRevert) {
675
+ if (this.shouldRevert) {
623
676
  this.instance.options.revert = this.shouldRevert;
624
677
  }
625
678
 
@@ -629,7 +682,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
629
682
  this.instance.options.helper = this.instance.options._helper;
630
683
 
631
684
  //If the helper has been the original item, restore properties in the sortable
632
- if(inst.options.helper === "original") {
685
+ if (inst.options.helper === "original") {
633
686
  this.instance.currentItem.css({ top: "auto", left: "auto" });
634
687
  }
635
688
 
@@ -641,9 +694,9 @@ $.ui.plugin.add("draggable", "connectToSortable", {
641
694
  });
642
695
 
643
696
  },
644
- drag: function(event, ui) {
697
+ drag: function( event, ui, inst ) {
645
698
 
646
- var inst = $(this).data("ui-draggable"), that = this;
699
+ var that = this;
647
700
 
648
701
  $.each(inst.sortables, function() {
649
702
 
@@ -655,9 +708,9 @@ $.ui.plugin.add("draggable", "connectToSortable", {
655
708
  this.instance.helperProportions = inst.helperProportions;
656
709
  this.instance.offset.click = inst.offset.click;
657
710
 
658
- if(this.instance._intersectsWith(this.instance.containerCache)) {
711
+ if (this.instance._intersectsWith(this.instance.containerCache)) {
659
712
  innermostIntersecting = true;
660
- $.each(inst.sortables, function () {
713
+ $.each(inst.sortables, function() {
661
714
  this.instance.positionAbs = inst.positionAbs;
662
715
  this.instance.helperProportions = inst.helperProportions;
663
716
  this.instance.offset.click = inst.offset.click;
@@ -671,10 +724,9 @@ $.ui.plugin.add("draggable", "connectToSortable", {
671
724
  });
672
725
  }
673
726
 
674
-
675
- if(innermostIntersecting) {
727
+ if (innermostIntersecting) {
676
728
  //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
677
- if(!this.instance.isOver) {
729
+ if (!this.instance.isOver) {
678
730
 
679
731
  this.instance.isOver = 1;
680
732
  //Now we fake the start of dragging for the sortable instance,
@@ -703,7 +755,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
703
755
  }
704
756
 
705
757
  //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
706
- if(this.instance.currentItem) {
758
+ if (this.instance.currentItem) {
707
759
  this.instance._mouseDrag(event);
708
760
  }
709
761
 
@@ -711,7 +763,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
711
763
 
712
764
  //If it doesn't intersect with the sortable, and it intersected before,
713
765
  //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
714
- if(this.instance.isOver) {
766
+ if (this.instance.isOver) {
715
767
 
716
768
  this.instance.isOver = 0;
717
769
  this.instance.cancelHelperRemoval = true;
@@ -727,7 +779,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
727
779
 
728
780
  //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
729
781
  this.instance.currentItem.remove();
730
- if(this.instance.placeholder) {
782
+ if (this.instance.placeholder) {
731
783
  this.instance.placeholder.remove();
732
784
  }
733
785
 
@@ -743,15 +795,17 @@ $.ui.plugin.add("draggable", "connectToSortable", {
743
795
  });
744
796
 
745
797
  $.ui.plugin.add("draggable", "cursor", {
746
- start: function() {
747
- var t = $("body"), o = $(this).data("ui-draggable").options;
798
+ start: function( event, ui, instance ) {
799
+ var t = $( "body" ),
800
+ o = instance.options;
801
+
748
802
  if (t.css("cursor")) {
749
803
  o._cursor = t.css("cursor");
750
804
  }
751
805
  t.css("cursor", o.cursor);
752
806
  },
753
- stop: function() {
754
- var o = $(this).data("ui-draggable").options;
807
+ stop: function( event, ui, instance ) {
808
+ var o = instance.options;
755
809
  if (o._cursor) {
756
810
  $("body").css("cursor", o._cursor);
757
811
  }
@@ -759,71 +813,72 @@ $.ui.plugin.add("draggable", "cursor", {
759
813
  });
760
814
 
761
815
  $.ui.plugin.add("draggable", "opacity", {
762
- start: function(event, ui) {
763
- var t = $(ui.helper), o = $(this).data("ui-draggable").options;
764
- if(t.css("opacity")) {
816
+ start: function( event, ui, instance ) {
817
+ var t = $( ui.helper ),
818
+ o = instance.options;
819
+ if (t.css("opacity")) {
765
820
  o._opacity = t.css("opacity");
766
821
  }
767
822
  t.css("opacity", o.opacity);
768
823
  },
769
- stop: function(event, ui) {
770
- var o = $(this).data("ui-draggable").options;
771
- if(o._opacity) {
824
+ stop: function( event, ui, instance ) {
825
+ var o = instance.options;
826
+ if (o._opacity) {
772
827
  $(ui.helper).css("opacity", o._opacity);
773
828
  }
774
829
  }
775
830
  });
776
831
 
777
832
  $.ui.plugin.add("draggable", "scroll", {
778
- start: function() {
779
- var i = $(this).data("ui-draggable");
780
- if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
833
+ start: function( event, ui, i ) {
834
+ if ( i.scrollParent[ 0 ] !== i.document[ 0 ] && i.scrollParent[ 0 ].tagName !== "HTML" ) {
781
835
  i.overflowOffset = i.scrollParent.offset();
782
836
  }
783
837
  },
784
- drag: function( event ) {
785
-
786
- var i = $(this).data("ui-draggable"), o = i.options, scrolled = false;
838
+ drag: function( event, ui, i ) {
787
839
 
788
- if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") {
840
+ var o = i.options,
841
+ scrolled = false,
842
+ document = i.document[ 0 ];
789
843
 
790
- if(!o.axis || o.axis !== "x") {
791
- if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
844
+ if ( i.scrollParent[ 0 ] !== document && i.scrollParent[ 0 ].tagName !== "HTML" ) {
845
+ if (!o.axis || o.axis !== "x") {
846
+ if ((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
792
847
  i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
793
- } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
848
+ } else if (event.pageY - i.overflowOffset.top < o.scrollSensitivity) {
794
849
  i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
795
850
  }
796
851
  }
797
852
 
798
- if(!o.axis || o.axis !== "y") {
799
- if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
853
+ if (!o.axis || o.axis !== "y") {
854
+ if ((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
800
855
  i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
801
- } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
856
+ } else if (event.pageX - i.overflowOffset.left < o.scrollSensitivity) {
802
857
  i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
803
858
  }
804
859
  }
805
860
 
806
861
  } else {
807
862
 
808
- if(!o.axis || o.axis !== "x") {
809
- if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
863
+ if (!o.axis || o.axis !== "x") {
864
+ if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
810
865
  scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
811
- } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
866
+ } else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
812
867
  scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
813
868
  }
814
869
  }
815
870
 
816
- if(!o.axis || o.axis !== "y") {
817
- if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
871
+ if (!o.axis || o.axis !== "y") {
872
+ if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
818
873
  scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
819
- } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
874
+ } else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
820
875
  scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
821
876
  }
822
877
  }
823
878
 
824
879
  }
825
880
 
826
- if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
881
+ if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
827
882
  $.ui.ddmanager.prepareOffsets(i, event);
828
883
  }
829
884
 
@@ -831,17 +886,16 @@ $.ui.plugin.add("draggable", "scroll", {
831
886
  });
832
887
 
833
888
  $.ui.plugin.add("draggable", "snap", {
834
- start: function() {
889
+ start: function( event, ui, i ) {
835
890
 
836
- var i = $(this).data("ui-draggable"),
837
- o = i.options;
891
+ var o = i.options;
838
892
 
839
893
  i.snapElements = [];
840
894
 
841
895
  $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() {
842
896
  var $t = $(this),
843
897
  $o = $t.offset();
844
- if(this !== i.element[0]) {
898
+ if (this !== i.element[0]) {
845
899
  i.snapElements.push({
846
900
  item: this,
847
901
  width: $t.outerWidth(), height: $t.outerHeight(),
@@ -851,10 +905,9 @@ $.ui.plugin.add("draggable", "snap", {
851
905
  });
852
906
 
853
907
  },
854
- drag: function(event, ui) {
908
+ drag: function( event, ui, inst ) {
855
909
 
856
910
  var ts, bs, ls, rs, l, r, t, b, i, first,
857
- inst = $(this).data("ui-draggable"),
858
911
  o = inst.options,
859
912
  d = o.snapTolerance,
860
913
  x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
@@ -868,54 +921,54 @@ $.ui.plugin.add("draggable", "snap", {
868
921
  b = t + inst.snapElements[i].height;
869
922
 
870
923
  if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {
871
- if(inst.snapElements[i].snapping) {
924
+ if (inst.snapElements[i].snapping) {
872
925
  (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
873
926
  }
874
927
  inst.snapElements[i].snapping = false;
875
928
  continue;
876
929
  }
877
930
 
878
- if(o.snapMode !== "inner") {
931
+ if (o.snapMode !== "inner") {
879
932
  ts = Math.abs(t - y2) <= d;
880
933
  bs = Math.abs(b - y1) <= d;
881
934
  ls = Math.abs(l - x2) <= d;
882
935
  rs = Math.abs(r - x1) <= d;
883
- if(ts) {
936
+ if (ts) {
884
937
  ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
885
938
  }
886
- if(bs) {
939
+ if (bs) {
887
940
  ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
888
941
  }
889
- if(ls) {
942
+ if (ls) {
890
943
  ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
891
944
  }
892
- if(rs) {
945
+ if (rs) {
893
946
  ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
894
947
  }
895
948
  }
896
949
 
897
950
  first = (ts || bs || ls || rs);
898
951
 
899
- if(o.snapMode !== "outer") {
952
+ if (o.snapMode !== "outer") {
900
953
  ts = Math.abs(t - y1) <= d;
901
954
  bs = Math.abs(b - y2) <= d;
902
955
  ls = Math.abs(l - x1) <= d;
903
956
  rs = Math.abs(r - x2) <= d;
904
- if(ts) {
957
+ if (ts) {
905
958
  ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
906
959
  }
907
- if(bs) {
960
+ if (bs) {
908
961
  ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
909
962
  }
910
- if(ls) {
963
+ if (ls) {
911
964
  ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
912
965
  }
913
- if(rs) {
966
+ if (rs) {
914
967
  ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
915
968
  }
916
969
  }
917
970
 
918
- if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
971
+ if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
919
972
  (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
920
973
  }
921
974
  inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
@@ -926,9 +979,9 @@ $.ui.plugin.add("draggable", "snap", {
926
979
  });
927
980
 
928
981
  $.ui.plugin.add("draggable", "stack", {
929
- start: function() {
982
+ start: function( event, ui, instance ) {
930
983
  var min,
931
- o = this.data("ui-draggable").options,
984
+ o = instance.options,
932
985
  group = $.makeArray($(o.stack)).sort(function(a,b) {
933
986
  return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
934
987
  });
@@ -944,19 +997,24 @@ $.ui.plugin.add("draggable", "stack", {
944
997
  });
945
998
 
946
999
  $.ui.plugin.add("draggable", "zIndex", {
947
- start: function(event, ui) {
948
- var t = $(ui.helper), o = $(this).data("ui-draggable").options;
949
- if(t.css("zIndex")) {
1000
+ start: function( event, ui, instance ) {
1001
+ var t = $( ui.helper ),
1002
+ o = instance.options;
1003
+
1004
+ if (t.css("zIndex")) {
950
1005
  o._zIndex = t.css("zIndex");
951
1006
  }
952
1007
  t.css("zIndex", o.zIndex);
953
1008
  },
954
- stop: function(event, ui) {
955
- var o = $(this).data("ui-draggable").options;
956
- if(o._zIndex) {
1009
+ stop: function( event, ui, instance ) {
1010
+ var o = instance.options;
1011
+
1012
+ if (o._zIndex) {
957
1013
  $(ui.helper).css("zIndex", o._zIndex);
958
1014
  }
959
1015
  }
960
1016
  });
961
1017
 
962
- })(jQuery);
1018
+ return $.ui.draggable;
1019
+
1020
+ }));