activeadmin-rb 1.4.0 → 1.5.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.travis.yml +17 -12
- data/CHANGELOG.md +10 -1
- data/Gemfile +3 -11
- data/activeadmin-rb.gemspec +3 -2
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/docs/documentation.md +1 -1
- data/features/index/filters.feature +3 -3
- data/features/index/pagination.feature +3 -3
- data/features/registering_assets.feature +4 -8
- data/features/support/env.rb +4 -0
- data/gemfiles/rails_42.gemfile +2 -1
- data/gemfiles/rails_50.gemfile +2 -1
- data/gemfiles/rails_51.gemfile +2 -1
- data/gemfiles/rails_52.gemfile +2 -1
- data/gemfiles/rails_60.gemfile +13 -0
- data/lib/active_admin.rb +1 -0
- data/lib/active_admin/application.rb +4 -3
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/version.rb +1 -1
- data/lib/bug_report_templates/active_admin_master.rb +3 -4
- data/spec/bug_report_templates_spec.rb +6 -4
- data/spec/support/active_admin_integration_spec_helper.rb +15 -7
- data/spec/support/rails_template.rb +8 -6
- data/spec/unit/asset_registration_spec.rb +0 -29
- data/spec/unit/auto_link_spec.rb +26 -16
- data/spec/unit/comments_spec.rb +22 -7
- data/spec/unit/filters/filter_form_builder_spec.rb +10 -10
- data/spec/unit/form_builder_spec.rb +1 -1
- data/spec/unit/pretty_format_spec.rb +73 -22
- data/spec/unit/resource_controller/data_access_spec.rb +3 -3
- data/spec/unit/routing_spec.rb +1 -1
- data/spec/unit/view_helpers/flash_helper_spec.rb +1 -1
- data/spec/unit/view_helpers/form_helper_spec.rb +2 -2
- data/spec/unit/views/components/attributes_table_spec.rb +1 -1
- metadata +20 -36
- data/vendor/assets/javascripts/jquery-ui/data.js +0 -41
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
- data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -300
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
| @@ -1,230 +0,0 @@ | |
| 1 | 
            -
            //= require jquery-ui/ie
         | 
| 2 | 
            -
            //= require jquery-ui/version
         | 
| 3 | 
            -
            //= require jquery-ui/widget
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            /*!
         | 
| 6 | 
            -
             * jQuery UI Mouse 1.12.1
         | 
| 7 | 
            -
             * http://jqueryui.com
         | 
| 8 | 
            -
             *
         | 
| 9 | 
            -
             * Copyright jQuery Foundation and other contributors
         | 
| 10 | 
            -
             * Released under the MIT license.
         | 
| 11 | 
            -
             * http://jquery.org/license
         | 
| 12 | 
            -
             */
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            //>>label: Mouse
         | 
| 15 | 
            -
            //>>group: Widgets
         | 
| 16 | 
            -
            //>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
         | 
| 17 | 
            -
            //>>docs: http://api.jqueryui.com/mouse/
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            ( function( factory ) {
         | 
| 20 | 
            -
            	if ( typeof define === "function" && define.amd ) {
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            		// AMD. Register as an anonymous module.
         | 
| 23 | 
            -
            		define( [
         | 
| 24 | 
            -
            			"jquery",
         | 
| 25 | 
            -
            			"../ie",
         | 
| 26 | 
            -
            			"../version",
         | 
| 27 | 
            -
            			"../widget"
         | 
| 28 | 
            -
            		], factory );
         | 
| 29 | 
            -
            	} else {
         | 
| 30 | 
            -
             | 
| 31 | 
            -
            		// Browser globals
         | 
| 32 | 
            -
            		factory( jQuery );
         | 
| 33 | 
            -
            	}
         | 
| 34 | 
            -
            }( function( $ ) {
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            var mouseHandled = false;
         | 
| 37 | 
            -
            $( document ).on( "mouseup", function() {
         | 
| 38 | 
            -
            	mouseHandled = false;
         | 
| 39 | 
            -
            } );
         | 
| 40 | 
            -
             | 
| 41 | 
            -
            return $.widget( "ui.mouse", {
         | 
| 42 | 
            -
            	version: "1.12.1",
         | 
| 43 | 
            -
            	options: {
         | 
| 44 | 
            -
            		cancel: "input, textarea, button, select, option",
         | 
| 45 | 
            -
            		distance: 1,
         | 
| 46 | 
            -
            		delay: 0
         | 
| 47 | 
            -
            	},
         | 
| 48 | 
            -
            	_mouseInit: function() {
         | 
| 49 | 
            -
            		var that = this;
         | 
| 50 | 
            -
             | 
| 51 | 
            -
            		this.element
         | 
| 52 | 
            -
            			.on( "mousedown." + this.widgetName, function( event ) {
         | 
| 53 | 
            -
            				return that._mouseDown( event );
         | 
| 54 | 
            -
            			} )
         | 
| 55 | 
            -
            			.on( "click." + this.widgetName, function( event ) {
         | 
| 56 | 
            -
            				if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
         | 
| 57 | 
            -
            					$.removeData( event.target, that.widgetName + ".preventClickEvent" );
         | 
| 58 | 
            -
            					event.stopImmediatePropagation();
         | 
| 59 | 
            -
            					return false;
         | 
| 60 | 
            -
            				}
         | 
| 61 | 
            -
            			} );
         | 
| 62 | 
            -
             | 
| 63 | 
            -
            		this.started = false;
         | 
| 64 | 
            -
            	},
         | 
| 65 | 
            -
             | 
| 66 | 
            -
            	// TODO: make sure destroying one instance of mouse doesn't mess with
         | 
| 67 | 
            -
            	// other instances of mouse
         | 
| 68 | 
            -
            	_mouseDestroy: function() {
         | 
| 69 | 
            -
            		this.element.off( "." + this.widgetName );
         | 
| 70 | 
            -
            		if ( this._mouseMoveDelegate ) {
         | 
| 71 | 
            -
            			this.document
         | 
| 72 | 
            -
            				.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
         | 
| 73 | 
            -
            				.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
         | 
| 74 | 
            -
            		}
         | 
| 75 | 
            -
            	},
         | 
| 76 | 
            -
             | 
| 77 | 
            -
            	_mouseDown: function( event ) {
         | 
| 78 | 
            -
             | 
| 79 | 
            -
            		// don't let more than one widget handle mouseStart
         | 
| 80 | 
            -
            		if ( mouseHandled ) {
         | 
| 81 | 
            -
            			return;
         | 
| 82 | 
            -
            		}
         | 
| 83 | 
            -
             | 
| 84 | 
            -
            		this._mouseMoved = false;
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            		// We may have missed mouseup (out of window)
         | 
| 87 | 
            -
            		( this._mouseStarted && this._mouseUp( event ) );
         | 
| 88 | 
            -
             | 
| 89 | 
            -
            		this._mouseDownEvent = event;
         | 
| 90 | 
            -
             | 
| 91 | 
            -
            		var that = this,
         | 
| 92 | 
            -
            			btnIsLeft = ( event.which === 1 ),
         | 
| 93 | 
            -
             | 
| 94 | 
            -
            			// event.target.nodeName works around a bug in IE 8 with
         | 
| 95 | 
            -
            			// disabled inputs (#7620)
         | 
| 96 | 
            -
            			elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
         | 
| 97 | 
            -
            				$( event.target ).closest( this.options.cancel ).length : false );
         | 
| 98 | 
            -
            		if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
         | 
| 99 | 
            -
            			return true;
         | 
| 100 | 
            -
            		}
         | 
| 101 | 
            -
             | 
| 102 | 
            -
            		this.mouseDelayMet = !this.options.delay;
         | 
| 103 | 
            -
            		if ( !this.mouseDelayMet ) {
         | 
| 104 | 
            -
            			this._mouseDelayTimer = setTimeout( function() {
         | 
| 105 | 
            -
            				that.mouseDelayMet = true;
         | 
| 106 | 
            -
            			}, this.options.delay );
         | 
| 107 | 
            -
            		}
         | 
| 108 | 
            -
             | 
| 109 | 
            -
            		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
         | 
| 110 | 
            -
            			this._mouseStarted = ( this._mouseStart( event ) !== false );
         | 
| 111 | 
            -
            			if ( !this._mouseStarted ) {
         | 
| 112 | 
            -
            				event.preventDefault();
         | 
| 113 | 
            -
            				return true;
         | 
| 114 | 
            -
            			}
         | 
| 115 | 
            -
            		}
         | 
| 116 | 
            -
             | 
| 117 | 
            -
            		// Click event may never have fired (Gecko & Opera)
         | 
| 118 | 
            -
            		if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
         | 
| 119 | 
            -
            			$.removeData( event.target, this.widgetName + ".preventClickEvent" );
         | 
| 120 | 
            -
            		}
         | 
| 121 | 
            -
             | 
| 122 | 
            -
            		// These delegates are required to keep context
         | 
| 123 | 
            -
            		this._mouseMoveDelegate = function( event ) {
         | 
| 124 | 
            -
            			return that._mouseMove( event );
         | 
| 125 | 
            -
            		};
         | 
| 126 | 
            -
            		this._mouseUpDelegate = function( event ) {
         | 
| 127 | 
            -
            			return that._mouseUp( event );
         | 
| 128 | 
            -
            		};
         | 
| 129 | 
            -
             | 
| 130 | 
            -
            		this.document
         | 
| 131 | 
            -
            			.on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
         | 
| 132 | 
            -
            			.on( "mouseup." + this.widgetName, this._mouseUpDelegate );
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            		event.preventDefault();
         | 
| 135 | 
            -
             | 
| 136 | 
            -
            		mouseHandled = true;
         | 
| 137 | 
            -
            		return true;
         | 
| 138 | 
            -
            	},
         | 
| 139 | 
            -
             | 
| 140 | 
            -
            	_mouseMove: function( event ) {
         | 
| 141 | 
            -
             | 
| 142 | 
            -
            		// Only check for mouseups outside the document if you've moved inside the document
         | 
| 143 | 
            -
            		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
         | 
| 144 | 
            -
            		// fire a mousemove event if content is placed under the cursor. See #7778
         | 
| 145 | 
            -
            		// Support: IE <9
         | 
| 146 | 
            -
            		if ( this._mouseMoved ) {
         | 
| 147 | 
            -
             | 
| 148 | 
            -
            			// IE mouseup check - mouseup happened when mouse was out of window
         | 
| 149 | 
            -
            			if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
         | 
| 150 | 
            -
            					!event.button ) {
         | 
| 151 | 
            -
            				return this._mouseUp( event );
         | 
| 152 | 
            -
             | 
| 153 | 
            -
            			// Iframe mouseup check - mouseup occurred in another document
         | 
| 154 | 
            -
            			} else if ( !event.which ) {
         | 
| 155 | 
            -
             | 
| 156 | 
            -
            				// Support: Safari <=8 - 9
         | 
| 157 | 
            -
            				// Safari sets which to 0 if you press any of the following keys
         | 
| 158 | 
            -
            				// during a drag (#14461)
         | 
| 159 | 
            -
            				if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
         | 
| 160 | 
            -
            						event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
         | 
| 161 | 
            -
            					this.ignoreMissingWhich = true;
         | 
| 162 | 
            -
            				} else if ( !this.ignoreMissingWhich ) {
         | 
| 163 | 
            -
            					return this._mouseUp( event );
         | 
| 164 | 
            -
            				}
         | 
| 165 | 
            -
            			}
         | 
| 166 | 
            -
            		}
         | 
| 167 | 
            -
             | 
| 168 | 
            -
            		if ( event.which || event.button ) {
         | 
| 169 | 
            -
            			this._mouseMoved = true;
         | 
| 170 | 
            -
            		}
         | 
| 171 | 
            -
             | 
| 172 | 
            -
            		if ( this._mouseStarted ) {
         | 
| 173 | 
            -
            			this._mouseDrag( event );
         | 
| 174 | 
            -
            			return event.preventDefault();
         | 
| 175 | 
            -
            		}
         | 
| 176 | 
            -
             | 
| 177 | 
            -
            		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
         | 
| 178 | 
            -
            			this._mouseStarted =
         | 
| 179 | 
            -
            				( this._mouseStart( this._mouseDownEvent, event ) !== false );
         | 
| 180 | 
            -
            			( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
         | 
| 181 | 
            -
            		}
         | 
| 182 | 
            -
             | 
| 183 | 
            -
            		return !this._mouseStarted;
         | 
| 184 | 
            -
            	},
         | 
| 185 | 
            -
             | 
| 186 | 
            -
            	_mouseUp: function( event ) {
         | 
| 187 | 
            -
            		this.document
         | 
| 188 | 
            -
            			.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
         | 
| 189 | 
            -
            			.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
         | 
| 190 | 
            -
             | 
| 191 | 
            -
            		if ( this._mouseStarted ) {
         | 
| 192 | 
            -
            			this._mouseStarted = false;
         | 
| 193 | 
            -
             | 
| 194 | 
            -
            			if ( event.target === this._mouseDownEvent.target ) {
         | 
| 195 | 
            -
            				$.data( event.target, this.widgetName + ".preventClickEvent", true );
         | 
| 196 | 
            -
            			}
         | 
| 197 | 
            -
             | 
| 198 | 
            -
            			this._mouseStop( event );
         | 
| 199 | 
            -
            		}
         | 
| 200 | 
            -
             | 
| 201 | 
            -
            		if ( this._mouseDelayTimer ) {
         | 
| 202 | 
            -
            			clearTimeout( this._mouseDelayTimer );
         | 
| 203 | 
            -
            			delete this._mouseDelayTimer;
         | 
| 204 | 
            -
            		}
         | 
| 205 | 
            -
             | 
| 206 | 
            -
            		this.ignoreMissingWhich = false;
         | 
| 207 | 
            -
            		mouseHandled = false;
         | 
| 208 | 
            -
            		event.preventDefault();
         | 
| 209 | 
            -
            	},
         | 
| 210 | 
            -
             | 
| 211 | 
            -
            	_mouseDistanceMet: function( event ) {
         | 
| 212 | 
            -
            		return ( Math.max(
         | 
| 213 | 
            -
            				Math.abs( this._mouseDownEvent.pageX - event.pageX ),
         | 
| 214 | 
            -
            				Math.abs( this._mouseDownEvent.pageY - event.pageY )
         | 
| 215 | 
            -
            			) >= this.options.distance
         | 
| 216 | 
            -
            		);
         | 
| 217 | 
            -
            	},
         | 
| 218 | 
            -
             | 
| 219 | 
            -
            	_mouseDelayMet: function( /* event */ ) {
         | 
| 220 | 
            -
            		return this.mouseDelayMet;
         | 
| 221 | 
            -
            	},
         | 
| 222 | 
            -
             | 
| 223 | 
            -
            	// These are placeholder methods, to be overriden by extending plugin
         | 
| 224 | 
            -
            	_mouseStart: function( /* event */ ) {},
         | 
| 225 | 
            -
            	_mouseDrag: function( /* event */ ) {},
         | 
| 226 | 
            -
            	_mouseStop: function( /* event */ ) {},
         | 
| 227 | 
            -
            	_mouseCapture: function( /* event */ ) { return true; }
         | 
| 228 | 
            -
            } );
         | 
| 229 | 
            -
             | 
| 230 | 
            -
            } ) );
         | 
| @@ -1,1207 +0,0 @@ | |
| 1 | 
            -
            //= require jquery-ui/widgets/mouse
         | 
| 2 | 
            -
            //= require jquery-ui/disable-selection
         | 
| 3 | 
            -
            //= require jquery-ui/plugin
         | 
| 4 | 
            -
            //= require jquery-ui/version
         | 
| 5 | 
            -
            //= require jquery-ui/widget
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            /*!
         | 
| 8 | 
            -
             * jQuery UI Resizable 1.12.1
         | 
| 9 | 
            -
             * http://jqueryui.com
         | 
| 10 | 
            -
             *
         | 
| 11 | 
            -
             * Copyright jQuery Foundation and other contributors
         | 
| 12 | 
            -
             * Released under the MIT license.
         | 
| 13 | 
            -
             * http://jquery.org/license
         | 
| 14 | 
            -
             */
         | 
| 15 | 
            -
             | 
| 16 | 
            -
            //>>label: Resizable
         | 
| 17 | 
            -
            //>>group: Interactions
         | 
| 18 | 
            -
            //>>description: Enables resize functionality for any element.
         | 
| 19 | 
            -
            //>>docs: http://api.jqueryui.com/resizable/
         | 
| 20 | 
            -
            //>>demos: http://jqueryui.com/resizable/
         | 
| 21 | 
            -
            //>>css.structure: ../../themes/base/core.css
         | 
| 22 | 
            -
            //>>css.structure: ../../themes/base/resizable.css
         | 
| 23 | 
            -
            //>>css.theme: ../../themes/base/theme.css
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            ( function( factory ) {
         | 
| 26 | 
            -
            	if ( typeof define === "function" && define.amd ) {
         | 
| 27 | 
            -
             | 
| 28 | 
            -
            		// AMD. Register as an anonymous module.
         | 
| 29 | 
            -
            		define( [
         | 
| 30 | 
            -
            			"jquery",
         | 
| 31 | 
            -
            			"./mouse",
         | 
| 32 | 
            -
            			"../disable-selection",
         | 
| 33 | 
            -
            			"../plugin",
         | 
| 34 | 
            -
            			"../version",
         | 
| 35 | 
            -
            			"../widget"
         | 
| 36 | 
            -
            		], factory );
         | 
| 37 | 
            -
            	} else {
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            		// Browser globals
         | 
| 40 | 
            -
            		factory( jQuery );
         | 
| 41 | 
            -
            	}
         | 
| 42 | 
            -
            }( function( $ ) {
         | 
| 43 | 
            -
             | 
| 44 | 
            -
            $.widget( "ui.resizable", $.ui.mouse, {
         | 
| 45 | 
            -
            	version: "1.12.1",
         | 
| 46 | 
            -
            	widgetEventPrefix: "resize",
         | 
| 47 | 
            -
            	options: {
         | 
| 48 | 
            -
            		alsoResize: false,
         | 
| 49 | 
            -
            		animate: false,
         | 
| 50 | 
            -
            		animateDuration: "slow",
         | 
| 51 | 
            -
            		animateEasing: "swing",
         | 
| 52 | 
            -
            		aspectRatio: false,
         | 
| 53 | 
            -
            		autoHide: false,
         | 
| 54 | 
            -
            		classes: {
         | 
| 55 | 
            -
            			"ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
         | 
| 56 | 
            -
            		},
         | 
| 57 | 
            -
            		containment: false,
         | 
| 58 | 
            -
            		ghost: false,
         | 
| 59 | 
            -
            		grid: false,
         | 
| 60 | 
            -
            		handles: "e,s,se",
         | 
| 61 | 
            -
            		helper: false,
         | 
| 62 | 
            -
            		maxHeight: null,
         | 
| 63 | 
            -
            		maxWidth: null,
         | 
| 64 | 
            -
            		minHeight: 10,
         | 
| 65 | 
            -
            		minWidth: 10,
         | 
| 66 | 
            -
             | 
| 67 | 
            -
            		// See #7960
         | 
| 68 | 
            -
            		zIndex: 90,
         | 
| 69 | 
            -
             | 
| 70 | 
            -
            		// Callbacks
         | 
| 71 | 
            -
            		resize: null,
         | 
| 72 | 
            -
            		start: null,
         | 
| 73 | 
            -
            		stop: null
         | 
| 74 | 
            -
            	},
         | 
| 75 | 
            -
             | 
| 76 | 
            -
            	_num: function( value ) {
         | 
| 77 | 
            -
            		return parseFloat( value ) || 0;
         | 
| 78 | 
            -
            	},
         | 
| 79 | 
            -
             | 
| 80 | 
            -
            	_isNumber: function( value ) {
         | 
| 81 | 
            -
            		return !isNaN( parseFloat( value ) );
         | 
| 82 | 
            -
            	},
         | 
| 83 | 
            -
             | 
| 84 | 
            -
            	_hasScroll: function( el, a ) {
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            		if ( $( el ).css( "overflow" ) === "hidden" ) {
         | 
| 87 | 
            -
            			return false;
         | 
| 88 | 
            -
            		}
         | 
| 89 | 
            -
             | 
| 90 | 
            -
            		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
         | 
| 91 | 
            -
            			has = false;
         | 
| 92 | 
            -
             | 
| 93 | 
            -
            		if ( el[ scroll ] > 0 ) {
         | 
| 94 | 
            -
            			return true;
         | 
| 95 | 
            -
            		}
         | 
| 96 | 
            -
             | 
| 97 | 
            -
            		// TODO: determine which cases actually cause this to happen
         | 
| 98 | 
            -
            		// if the element doesn't have the scroll set, see if it's possible to
         | 
| 99 | 
            -
            		// set the scroll
         | 
| 100 | 
            -
            		el[ scroll ] = 1;
         | 
| 101 | 
            -
            		has = ( el[ scroll ] > 0 );
         | 
| 102 | 
            -
            		el[ scroll ] = 0;
         | 
| 103 | 
            -
            		return has;
         | 
| 104 | 
            -
            	},
         | 
| 105 | 
            -
             | 
| 106 | 
            -
            	_create: function() {
         | 
| 107 | 
            -
             | 
| 108 | 
            -
            		var margins,
         | 
| 109 | 
            -
            			o = this.options,
         | 
| 110 | 
            -
            			that = this;
         | 
| 111 | 
            -
            		this._addClass( "ui-resizable" );
         | 
| 112 | 
            -
             | 
| 113 | 
            -
            		$.extend( this, {
         | 
| 114 | 
            -
            			_aspectRatio: !!( o.aspectRatio ),
         | 
| 115 | 
            -
            			aspectRatio: o.aspectRatio,
         | 
| 116 | 
            -
            			originalElement: this.element,
         | 
| 117 | 
            -
            			_proportionallyResizeElements: [],
         | 
| 118 | 
            -
            			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
         | 
| 119 | 
            -
            		} );
         | 
| 120 | 
            -
             | 
| 121 | 
            -
            		// Wrap the element if it cannot hold child nodes
         | 
| 122 | 
            -
            		if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
         | 
| 123 | 
            -
             | 
| 124 | 
            -
            			this.element.wrap(
         | 
| 125 | 
            -
            				$( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
         | 
| 126 | 
            -
            					position: this.element.css( "position" ),
         | 
| 127 | 
            -
            					width: this.element.outerWidth(),
         | 
| 128 | 
            -
            					height: this.element.outerHeight(),
         | 
| 129 | 
            -
            					top: this.element.css( "top" ),
         | 
| 130 | 
            -
            					left: this.element.css( "left" )
         | 
| 131 | 
            -
            				} )
         | 
| 132 | 
            -
            			);
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            			this.element = this.element.parent().data(
         | 
| 135 | 
            -
            				"ui-resizable", this.element.resizable( "instance" )
         | 
| 136 | 
            -
            			);
         | 
| 137 | 
            -
             | 
| 138 | 
            -
            			this.elementIsWrapper = true;
         | 
| 139 | 
            -
             | 
| 140 | 
            -
            			margins = {
         | 
| 141 | 
            -
            				marginTop: this.originalElement.css( "marginTop" ),
         | 
| 142 | 
            -
            				marginRight: this.originalElement.css( "marginRight" ),
         | 
| 143 | 
            -
            				marginBottom: this.originalElement.css( "marginBottom" ),
         | 
| 144 | 
            -
            				marginLeft: this.originalElement.css( "marginLeft" )
         | 
| 145 | 
            -
            			};
         | 
| 146 | 
            -
             | 
| 147 | 
            -
            			this.element.css( margins );
         | 
| 148 | 
            -
            			this.originalElement.css( "margin", 0 );
         | 
| 149 | 
            -
             | 
| 150 | 
            -
            			// support: Safari
         | 
| 151 | 
            -
            			// Prevent Safari textarea resize
         | 
| 152 | 
            -
            			this.originalResizeStyle = this.originalElement.css( "resize" );
         | 
| 153 | 
            -
            			this.originalElement.css( "resize", "none" );
         | 
| 154 | 
            -
             | 
| 155 | 
            -
            			this._proportionallyResizeElements.push( this.originalElement.css( {
         | 
| 156 | 
            -
            				position: "static",
         | 
| 157 | 
            -
            				zoom: 1,
         | 
| 158 | 
            -
            				display: "block"
         | 
| 159 | 
            -
            			} ) );
         | 
| 160 | 
            -
             | 
| 161 | 
            -
            			// Support: IE9
         | 
| 162 | 
            -
            			// avoid IE jump (hard set the margin)
         | 
| 163 | 
            -
            			this.originalElement.css( margins );
         | 
| 164 | 
            -
             | 
| 165 | 
            -
            			this._proportionallyResize();
         | 
| 166 | 
            -
            		}
         | 
| 167 | 
            -
             | 
| 168 | 
            -
            		this._setupHandles();
         | 
| 169 | 
            -
             | 
| 170 | 
            -
            		if ( o.autoHide ) {
         | 
| 171 | 
            -
            			$( this.element )
         | 
| 172 | 
            -
            				.on( "mouseenter", function() {
         | 
| 173 | 
            -
            					if ( o.disabled ) {
         | 
| 174 | 
            -
            						return;
         | 
| 175 | 
            -
            					}
         | 
| 176 | 
            -
            					that._removeClass( "ui-resizable-autohide" );
         | 
| 177 | 
            -
            					that._handles.show();
         | 
| 178 | 
            -
            				} )
         | 
| 179 | 
            -
            				.on( "mouseleave", function() {
         | 
| 180 | 
            -
            					if ( o.disabled ) {
         | 
| 181 | 
            -
            						return;
         | 
| 182 | 
            -
            					}
         | 
| 183 | 
            -
            					if ( !that.resizing ) {
         | 
| 184 | 
            -
            						that._addClass( "ui-resizable-autohide" );
         | 
| 185 | 
            -
            						that._handles.hide();
         | 
| 186 | 
            -
            					}
         | 
| 187 | 
            -
            				} );
         | 
| 188 | 
            -
            		}
         | 
| 189 | 
            -
             | 
| 190 | 
            -
            		this._mouseInit();
         | 
| 191 | 
            -
            	},
         | 
| 192 | 
            -
             | 
| 193 | 
            -
            	_destroy: function() {
         | 
| 194 | 
            -
             | 
| 195 | 
            -
            		this._mouseDestroy();
         | 
| 196 | 
            -
             | 
| 197 | 
            -
            		var wrapper,
         | 
| 198 | 
            -
            			_destroy = function( exp ) {
         | 
| 199 | 
            -
            				$( exp )
         | 
| 200 | 
            -
            					.removeData( "resizable" )
         | 
| 201 | 
            -
            					.removeData( "ui-resizable" )
         | 
| 202 | 
            -
            					.off( ".resizable" )
         | 
| 203 | 
            -
            					.find( ".ui-resizable-handle" )
         | 
| 204 | 
            -
            						.remove();
         | 
| 205 | 
            -
            			};
         | 
| 206 | 
            -
             | 
| 207 | 
            -
            		// TODO: Unwrap at same DOM position
         | 
| 208 | 
            -
            		if ( this.elementIsWrapper ) {
         | 
| 209 | 
            -
            			_destroy( this.element );
         | 
| 210 | 
            -
            			wrapper = this.element;
         | 
| 211 | 
            -
            			this.originalElement.css( {
         | 
| 212 | 
            -
            				position: wrapper.css( "position" ),
         | 
| 213 | 
            -
            				width: wrapper.outerWidth(),
         | 
| 214 | 
            -
            				height: wrapper.outerHeight(),
         | 
| 215 | 
            -
            				top: wrapper.css( "top" ),
         | 
| 216 | 
            -
            				left: wrapper.css( "left" )
         | 
| 217 | 
            -
            			} ).insertAfter( wrapper );
         | 
| 218 | 
            -
            			wrapper.remove();
         | 
| 219 | 
            -
            		}
         | 
| 220 | 
            -
             | 
| 221 | 
            -
            		this.originalElement.css( "resize", this.originalResizeStyle );
         | 
| 222 | 
            -
            		_destroy( this.originalElement );
         | 
| 223 | 
            -
             | 
| 224 | 
            -
            		return this;
         | 
| 225 | 
            -
            	},
         | 
| 226 | 
            -
             | 
| 227 | 
            -
            	_setOption: function( key, value ) {
         | 
| 228 | 
            -
            		this._super( key, value );
         | 
| 229 | 
            -
             | 
| 230 | 
            -
            		switch ( key ) {
         | 
| 231 | 
            -
            		case "handles":
         | 
| 232 | 
            -
            			this._removeHandles();
         | 
| 233 | 
            -
            			this._setupHandles();
         | 
| 234 | 
            -
            			break;
         | 
| 235 | 
            -
            		default:
         | 
| 236 | 
            -
            			break;
         | 
| 237 | 
            -
            		}
         | 
| 238 | 
            -
            	},
         | 
| 239 | 
            -
             | 
| 240 | 
            -
            	_setupHandles: function() {
         | 
| 241 | 
            -
            		var o = this.options, handle, i, n, hname, axis, that = this;
         | 
| 242 | 
            -
            		this.handles = o.handles ||
         | 
| 243 | 
            -
            			( !$( ".ui-resizable-handle", this.element ).length ?
         | 
| 244 | 
            -
            				"e,s,se" : {
         | 
| 245 | 
            -
            					n: ".ui-resizable-n",
         | 
| 246 | 
            -
            					e: ".ui-resizable-e",
         | 
| 247 | 
            -
            					s: ".ui-resizable-s",
         | 
| 248 | 
            -
            					w: ".ui-resizable-w",
         | 
| 249 | 
            -
            					se: ".ui-resizable-se",
         | 
| 250 | 
            -
            					sw: ".ui-resizable-sw",
         | 
| 251 | 
            -
            					ne: ".ui-resizable-ne",
         | 
| 252 | 
            -
            					nw: ".ui-resizable-nw"
         | 
| 253 | 
            -
            				} );
         | 
| 254 | 
            -
             | 
| 255 | 
            -
            		this._handles = $();
         | 
| 256 | 
            -
            		if ( this.handles.constructor === String ) {
         | 
| 257 | 
            -
             | 
| 258 | 
            -
            			if ( this.handles === "all" ) {
         | 
| 259 | 
            -
            				this.handles = "n,e,s,w,se,sw,ne,nw";
         | 
| 260 | 
            -
            			}
         | 
| 261 | 
            -
             | 
| 262 | 
            -
            			n = this.handles.split( "," );
         | 
| 263 | 
            -
            			this.handles = {};
         | 
| 264 | 
            -
             | 
| 265 | 
            -
            			for ( i = 0; i < n.length; i++ ) {
         | 
| 266 | 
            -
             | 
| 267 | 
            -
            				handle = $.trim( n[ i ] );
         | 
| 268 | 
            -
            				hname = "ui-resizable-" + handle;
         | 
| 269 | 
            -
            				axis = $( "<div>" );
         | 
| 270 | 
            -
            				this._addClass( axis, "ui-resizable-handle " + hname );
         | 
| 271 | 
            -
             | 
| 272 | 
            -
            				axis.css( { zIndex: o.zIndex } );
         | 
| 273 | 
            -
             | 
| 274 | 
            -
            				this.handles[ handle ] = ".ui-resizable-" + handle;
         | 
| 275 | 
            -
            				this.element.append( axis );
         | 
| 276 | 
            -
            			}
         | 
| 277 | 
            -
             | 
| 278 | 
            -
            		}
         | 
| 279 | 
            -
             | 
| 280 | 
            -
            		this._renderAxis = function( target ) {
         | 
| 281 | 
            -
             | 
| 282 | 
            -
            			var i, axis, padPos, padWrapper;
         | 
| 283 | 
            -
             | 
| 284 | 
            -
            			target = target || this.element;
         | 
| 285 | 
            -
             | 
| 286 | 
            -
            			for ( i in this.handles ) {
         | 
| 287 | 
            -
             | 
| 288 | 
            -
            				if ( this.handles[ i ].constructor === String ) {
         | 
| 289 | 
            -
            					this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
         | 
| 290 | 
            -
            				} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
         | 
| 291 | 
            -
            					this.handles[ i ] = $( this.handles[ i ] );
         | 
| 292 | 
            -
            					this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
         | 
| 293 | 
            -
            				}
         | 
| 294 | 
            -
             | 
| 295 | 
            -
            				if ( this.elementIsWrapper &&
         | 
| 296 | 
            -
            						this.originalElement[ 0 ]
         | 
| 297 | 
            -
            							.nodeName
         | 
| 298 | 
            -
            							.match( /^(textarea|input|select|button)$/i ) ) {
         | 
| 299 | 
            -
            					axis = $( this.handles[ i ], this.element );
         | 
| 300 | 
            -
             | 
| 301 | 
            -
            					padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
         | 
| 302 | 
            -
            						axis.outerHeight() :
         | 
| 303 | 
            -
            						axis.outerWidth();
         | 
| 304 | 
            -
             | 
| 305 | 
            -
            					padPos = [ "padding",
         | 
| 306 | 
            -
            						/ne|nw|n/.test( i ) ? "Top" :
         | 
| 307 | 
            -
            						/se|sw|s/.test( i ) ? "Bottom" :
         | 
| 308 | 
            -
            						/^e$/.test( i ) ? "Right" : "Left" ].join( "" );
         | 
| 309 | 
            -
             | 
| 310 | 
            -
            					target.css( padPos, padWrapper );
         | 
| 311 | 
            -
             | 
| 312 | 
            -
            					this._proportionallyResize();
         | 
| 313 | 
            -
            				}
         | 
| 314 | 
            -
             | 
| 315 | 
            -
            				this._handles = this._handles.add( this.handles[ i ] );
         | 
| 316 | 
            -
            			}
         | 
| 317 | 
            -
            		};
         | 
| 318 | 
            -
             | 
| 319 | 
            -
            		// TODO: make renderAxis a prototype function
         | 
| 320 | 
            -
            		this._renderAxis( this.element );
         | 
| 321 | 
            -
             | 
| 322 | 
            -
            		this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
         | 
| 323 | 
            -
            		this._handles.disableSelection();
         | 
| 324 | 
            -
             | 
| 325 | 
            -
            		this._handles.on( "mouseover", function() {
         | 
| 326 | 
            -
            			if ( !that.resizing ) {
         | 
| 327 | 
            -
            				if ( this.className ) {
         | 
| 328 | 
            -
            					axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
         | 
| 329 | 
            -
            				}
         | 
| 330 | 
            -
            				that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
         | 
| 331 | 
            -
            			}
         | 
| 332 | 
            -
            		} );
         | 
| 333 | 
            -
             | 
| 334 | 
            -
            		if ( o.autoHide ) {
         | 
| 335 | 
            -
            			this._handles.hide();
         | 
| 336 | 
            -
            			this._addClass( "ui-resizable-autohide" );
         | 
| 337 | 
            -
            		}
         | 
| 338 | 
            -
            	},
         | 
| 339 | 
            -
             | 
| 340 | 
            -
            	_removeHandles: function() {
         | 
| 341 | 
            -
            		this._handles.remove();
         | 
| 342 | 
            -
            	},
         | 
| 343 | 
            -
             | 
| 344 | 
            -
            	_mouseCapture: function( event ) {
         | 
| 345 | 
            -
            		var i, handle,
         | 
| 346 | 
            -
            			capture = false;
         | 
| 347 | 
            -
             | 
| 348 | 
            -
            		for ( i in this.handles ) {
         | 
| 349 | 
            -
            			handle = $( this.handles[ i ] )[ 0 ];
         | 
| 350 | 
            -
            			if ( handle === event.target || $.contains( handle, event.target ) ) {
         | 
| 351 | 
            -
            				capture = true;
         | 
| 352 | 
            -
            			}
         | 
| 353 | 
            -
            		}
         | 
| 354 | 
            -
             | 
| 355 | 
            -
            		return !this.options.disabled && capture;
         | 
| 356 | 
            -
            	},
         | 
| 357 | 
            -
             | 
| 358 | 
            -
            	_mouseStart: function( event ) {
         | 
| 359 | 
            -
             | 
| 360 | 
            -
            		var curleft, curtop, cursor,
         | 
| 361 | 
            -
            			o = this.options,
         | 
| 362 | 
            -
            			el = this.element;
         | 
| 363 | 
            -
             | 
| 364 | 
            -
            		this.resizing = true;
         | 
| 365 | 
            -
             | 
| 366 | 
            -
            		this._renderProxy();
         | 
| 367 | 
            -
             | 
| 368 | 
            -
            		curleft = this._num( this.helper.css( "left" ) );
         | 
| 369 | 
            -
            		curtop = this._num( this.helper.css( "top" ) );
         | 
| 370 | 
            -
             | 
| 371 | 
            -
            		if ( o.containment ) {
         | 
| 372 | 
            -
            			curleft += $( o.containment ).scrollLeft() || 0;
         | 
| 373 | 
            -
            			curtop += $( o.containment ).scrollTop() || 0;
         | 
| 374 | 
            -
            		}
         | 
| 375 | 
            -
             | 
| 376 | 
            -
            		this.offset = this.helper.offset();
         | 
| 377 | 
            -
            		this.position = { left: curleft, top: curtop };
         | 
| 378 | 
            -
             | 
| 379 | 
            -
            		this.size = this._helper ? {
         | 
| 380 | 
            -
            				width: this.helper.width(),
         | 
| 381 | 
            -
            				height: this.helper.height()
         | 
| 382 | 
            -
            			} : {
         | 
| 383 | 
            -
            				width: el.width(),
         | 
| 384 | 
            -
            				height: el.height()
         | 
| 385 | 
            -
            			};
         | 
| 386 | 
            -
             | 
| 387 | 
            -
            		this.originalSize = this._helper ? {
         | 
| 388 | 
            -
            				width: el.outerWidth(),
         | 
| 389 | 
            -
            				height: el.outerHeight()
         | 
| 390 | 
            -
            			} : {
         | 
| 391 | 
            -
            				width: el.width(),
         | 
| 392 | 
            -
            				height: el.height()
         | 
| 393 | 
            -
            			};
         | 
| 394 | 
            -
             | 
| 395 | 
            -
            		this.sizeDiff = {
         | 
| 396 | 
            -
            			width: el.outerWidth() - el.width(),
         | 
| 397 | 
            -
            			height: el.outerHeight() - el.height()
         | 
| 398 | 
            -
            		};
         | 
| 399 | 
            -
             | 
| 400 | 
            -
            		this.originalPosition = { left: curleft, top: curtop };
         | 
| 401 | 
            -
            		this.originalMousePosition = { left: event.pageX, top: event.pageY };
         | 
| 402 | 
            -
             | 
| 403 | 
            -
            		this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
         | 
| 404 | 
            -
            			o.aspectRatio :
         | 
| 405 | 
            -
            			( ( this.originalSize.width / this.originalSize.height ) || 1 );
         | 
| 406 | 
            -
             | 
| 407 | 
            -
            		cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
         | 
| 408 | 
            -
            		$( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
         | 
| 409 | 
            -
             | 
| 410 | 
            -
            		this._addClass( "ui-resizable-resizing" );
         | 
| 411 | 
            -
            		this._propagate( "start", event );
         | 
| 412 | 
            -
            		return true;
         | 
| 413 | 
            -
            	},
         | 
| 414 | 
            -
             | 
| 415 | 
            -
            	_mouseDrag: function( event ) {
         | 
| 416 | 
            -
             | 
| 417 | 
            -
            		var data, props,
         | 
| 418 | 
            -
            			smp = this.originalMousePosition,
         | 
| 419 | 
            -
            			a = this.axis,
         | 
| 420 | 
            -
            			dx = ( event.pageX - smp.left ) || 0,
         | 
| 421 | 
            -
            			dy = ( event.pageY - smp.top ) || 0,
         | 
| 422 | 
            -
            			trigger = this._change[ a ];
         | 
| 423 | 
            -
             | 
| 424 | 
            -
            		this._updatePrevProperties();
         | 
| 425 | 
            -
             | 
| 426 | 
            -
            		if ( !trigger ) {
         | 
| 427 | 
            -
            			return false;
         | 
| 428 | 
            -
            		}
         | 
| 429 | 
            -
             | 
| 430 | 
            -
            		data = trigger.apply( this, [ event, dx, dy ] );
         | 
| 431 | 
            -
             | 
| 432 | 
            -
            		this._updateVirtualBoundaries( event.shiftKey );
         | 
| 433 | 
            -
            		if ( this._aspectRatio || event.shiftKey ) {
         | 
| 434 | 
            -
            			data = this._updateRatio( data, event );
         | 
| 435 | 
            -
            		}
         | 
| 436 | 
            -
             | 
| 437 | 
            -
            		data = this._respectSize( data, event );
         | 
| 438 | 
            -
             | 
| 439 | 
            -
            		this._updateCache( data );
         | 
| 440 | 
            -
             | 
| 441 | 
            -
            		this._propagate( "resize", event );
         | 
| 442 | 
            -
             | 
| 443 | 
            -
            		props = this._applyChanges();
         | 
| 444 | 
            -
             | 
| 445 | 
            -
            		if ( !this._helper && this._proportionallyResizeElements.length ) {
         | 
| 446 | 
            -
            			this._proportionallyResize();
         | 
| 447 | 
            -
            		}
         | 
| 448 | 
            -
             | 
| 449 | 
            -
            		if ( !$.isEmptyObject( props ) ) {
         | 
| 450 | 
            -
            			this._updatePrevProperties();
         | 
| 451 | 
            -
            			this._trigger( "resize", event, this.ui() );
         | 
| 452 | 
            -
            			this._applyChanges();
         | 
| 453 | 
            -
            		}
         | 
| 454 | 
            -
             | 
| 455 | 
            -
            		return false;
         | 
| 456 | 
            -
            	},
         | 
| 457 | 
            -
             | 
| 458 | 
            -
            	_mouseStop: function( event ) {
         | 
| 459 | 
            -
             | 
| 460 | 
            -
            		this.resizing = false;
         | 
| 461 | 
            -
            		var pr, ista, soffseth, soffsetw, s, left, top,
         | 
| 462 | 
            -
            			o = this.options, that = this;
         | 
| 463 | 
            -
             | 
| 464 | 
            -
            		if ( this._helper ) {
         | 
| 465 | 
            -
             | 
| 466 | 
            -
            			pr = this._proportionallyResizeElements;
         | 
| 467 | 
            -
            			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
         | 
| 468 | 
            -
            			soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
         | 
| 469 | 
            -
            			soffsetw = ista ? 0 : that.sizeDiff.width;
         | 
| 470 | 
            -
             | 
| 471 | 
            -
            			s = {
         | 
| 472 | 
            -
            				width: ( that.helper.width()  - soffsetw ),
         | 
| 473 | 
            -
            				height: ( that.helper.height() - soffseth )
         | 
| 474 | 
            -
            			};
         | 
| 475 | 
            -
            			left = ( parseFloat( that.element.css( "left" ) ) +
         | 
| 476 | 
            -
            				( that.position.left - that.originalPosition.left ) ) || null;
         | 
| 477 | 
            -
            			top = ( parseFloat( that.element.css( "top" ) ) +
         | 
| 478 | 
            -
            				( that.position.top - that.originalPosition.top ) ) || null;
         | 
| 479 | 
            -
             | 
| 480 | 
            -
            			if ( !o.animate ) {
         | 
| 481 | 
            -
            				this.element.css( $.extend( s, { top: top, left: left } ) );
         | 
| 482 | 
            -
            			}
         | 
| 483 | 
            -
             | 
| 484 | 
            -
            			that.helper.height( that.size.height );
         | 
| 485 | 
            -
            			that.helper.width( that.size.width );
         | 
| 486 | 
            -
             | 
| 487 | 
            -
            			if ( this._helper && !o.animate ) {
         | 
| 488 | 
            -
            				this._proportionallyResize();
         | 
| 489 | 
            -
            			}
         | 
| 490 | 
            -
            		}
         | 
| 491 | 
            -
             | 
| 492 | 
            -
            		$( "body" ).css( "cursor", "auto" );
         | 
| 493 | 
            -
             | 
| 494 | 
            -
            		this._removeClass( "ui-resizable-resizing" );
         | 
| 495 | 
            -
             | 
| 496 | 
            -
            		this._propagate( "stop", event );
         | 
| 497 | 
            -
             | 
| 498 | 
            -
            		if ( this._helper ) {
         | 
| 499 | 
            -
            			this.helper.remove();
         | 
| 500 | 
            -
            		}
         | 
| 501 | 
            -
             | 
| 502 | 
            -
            		return false;
         | 
| 503 | 
            -
             | 
| 504 | 
            -
            	},
         | 
| 505 | 
            -
             | 
| 506 | 
            -
            	_updatePrevProperties: function() {
         | 
| 507 | 
            -
            		this.prevPosition = {
         | 
| 508 | 
            -
            			top: this.position.top,
         | 
| 509 | 
            -
            			left: this.position.left
         | 
| 510 | 
            -
            		};
         | 
| 511 | 
            -
            		this.prevSize = {
         | 
| 512 | 
            -
            			width: this.size.width,
         | 
| 513 | 
            -
            			height: this.size.height
         | 
| 514 | 
            -
            		};
         | 
| 515 | 
            -
            	},
         | 
| 516 | 
            -
             | 
| 517 | 
            -
            	_applyChanges: function() {
         | 
| 518 | 
            -
            		var props = {};
         | 
| 519 | 
            -
             | 
| 520 | 
            -
            		if ( this.position.top !== this.prevPosition.top ) {
         | 
| 521 | 
            -
            			props.top = this.position.top + "px";
         | 
| 522 | 
            -
            		}
         | 
| 523 | 
            -
            		if ( this.position.left !== this.prevPosition.left ) {
         | 
| 524 | 
            -
            			props.left = this.position.left + "px";
         | 
| 525 | 
            -
            		}
         | 
| 526 | 
            -
            		if ( this.size.width !== this.prevSize.width ) {
         | 
| 527 | 
            -
            			props.width = this.size.width + "px";
         | 
| 528 | 
            -
            		}
         | 
| 529 | 
            -
            		if ( this.size.height !== this.prevSize.height ) {
         | 
| 530 | 
            -
            			props.height = this.size.height + "px";
         | 
| 531 | 
            -
            		}
         | 
| 532 | 
            -
             | 
| 533 | 
            -
            		this.helper.css( props );
         | 
| 534 | 
            -
             | 
| 535 | 
            -
            		return props;
         | 
| 536 | 
            -
            	},
         | 
| 537 | 
            -
             | 
| 538 | 
            -
            	_updateVirtualBoundaries: function( forceAspectRatio ) {
         | 
| 539 | 
            -
            		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
         | 
| 540 | 
            -
            			o = this.options;
         | 
| 541 | 
            -
             | 
| 542 | 
            -
            		b = {
         | 
| 543 | 
            -
            			minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
         | 
| 544 | 
            -
            			maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
         | 
| 545 | 
            -
            			minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
         | 
| 546 | 
            -
            			maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
         | 
| 547 | 
            -
            		};
         | 
| 548 | 
            -
             | 
| 549 | 
            -
            		if ( this._aspectRatio || forceAspectRatio ) {
         | 
| 550 | 
            -
            			pMinWidth = b.minHeight * this.aspectRatio;
         | 
| 551 | 
            -
            			pMinHeight = b.minWidth / this.aspectRatio;
         | 
| 552 | 
            -
            			pMaxWidth = b.maxHeight * this.aspectRatio;
         | 
| 553 | 
            -
            			pMaxHeight = b.maxWidth / this.aspectRatio;
         | 
| 554 | 
            -
             | 
| 555 | 
            -
            			if ( pMinWidth > b.minWidth ) {
         | 
| 556 | 
            -
            				b.minWidth = pMinWidth;
         | 
| 557 | 
            -
            			}
         | 
| 558 | 
            -
            			if ( pMinHeight > b.minHeight ) {
         | 
| 559 | 
            -
            				b.minHeight = pMinHeight;
         | 
| 560 | 
            -
            			}
         | 
| 561 | 
            -
            			if ( pMaxWidth < b.maxWidth ) {
         | 
| 562 | 
            -
            				b.maxWidth = pMaxWidth;
         | 
| 563 | 
            -
            			}
         | 
| 564 | 
            -
            			if ( pMaxHeight < b.maxHeight ) {
         | 
| 565 | 
            -
            				b.maxHeight = pMaxHeight;
         | 
| 566 | 
            -
            			}
         | 
| 567 | 
            -
            		}
         | 
| 568 | 
            -
            		this._vBoundaries = b;
         | 
| 569 | 
            -
            	},
         | 
| 570 | 
            -
             | 
| 571 | 
            -
            	_updateCache: function( data ) {
         | 
| 572 | 
            -
            		this.offset = this.helper.offset();
         | 
| 573 | 
            -
            		if ( this._isNumber( data.left ) ) {
         | 
| 574 | 
            -
            			this.position.left = data.left;
         | 
| 575 | 
            -
            		}
         | 
| 576 | 
            -
            		if ( this._isNumber( data.top ) ) {
         | 
| 577 | 
            -
            			this.position.top = data.top;
         | 
| 578 | 
            -
            		}
         | 
| 579 | 
            -
            		if ( this._isNumber( data.height ) ) {
         | 
| 580 | 
            -
            			this.size.height = data.height;
         | 
| 581 | 
            -
            		}
         | 
| 582 | 
            -
            		if ( this._isNumber( data.width ) ) {
         | 
| 583 | 
            -
            			this.size.width = data.width;
         | 
| 584 | 
            -
            		}
         | 
| 585 | 
            -
            	},
         | 
| 586 | 
            -
             | 
| 587 | 
            -
            	_updateRatio: function( data ) {
         | 
| 588 | 
            -
             | 
| 589 | 
            -
            		var cpos = this.position,
         | 
| 590 | 
            -
            			csize = this.size,
         | 
| 591 | 
            -
            			a = this.axis;
         | 
| 592 | 
            -
             | 
| 593 | 
            -
            		if ( this._isNumber( data.height ) ) {
         | 
| 594 | 
            -
            			data.width = ( data.height * this.aspectRatio );
         | 
| 595 | 
            -
            		} else if ( this._isNumber( data.width ) ) {
         | 
| 596 | 
            -
            			data.height = ( data.width / this.aspectRatio );
         | 
| 597 | 
            -
            		}
         | 
| 598 | 
            -
             | 
| 599 | 
            -
            		if ( a === "sw" ) {
         | 
| 600 | 
            -
            			data.left = cpos.left + ( csize.width - data.width );
         | 
| 601 | 
            -
            			data.top = null;
         | 
| 602 | 
            -
            		}
         | 
| 603 | 
            -
            		if ( a === "nw" ) {
         | 
| 604 | 
            -
            			data.top = cpos.top + ( csize.height - data.height );
         | 
| 605 | 
            -
            			data.left = cpos.left + ( csize.width - data.width );
         | 
| 606 | 
            -
            		}
         | 
| 607 | 
            -
             | 
| 608 | 
            -
            		return data;
         | 
| 609 | 
            -
            	},
         | 
| 610 | 
            -
             | 
| 611 | 
            -
            	_respectSize: function( data ) {
         | 
| 612 | 
            -
             | 
| 613 | 
            -
            		var o = this._vBoundaries,
         | 
| 614 | 
            -
            			a = this.axis,
         | 
| 615 | 
            -
            			ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
         | 
| 616 | 
            -
            			ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
         | 
| 617 | 
            -
            			isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
         | 
| 618 | 
            -
            			isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
         | 
| 619 | 
            -
            			dw = this.originalPosition.left + this.originalSize.width,
         | 
| 620 | 
            -
            			dh = this.originalPosition.top + this.originalSize.height,
         | 
| 621 | 
            -
            			cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
         | 
| 622 | 
            -
            		if ( isminw ) {
         | 
| 623 | 
            -
            			data.width = o.minWidth;
         | 
| 624 | 
            -
            		}
         | 
| 625 | 
            -
            		if ( isminh ) {
         | 
| 626 | 
            -
            			data.height = o.minHeight;
         | 
| 627 | 
            -
            		}
         | 
| 628 | 
            -
            		if ( ismaxw ) {
         | 
| 629 | 
            -
            			data.width = o.maxWidth;
         | 
| 630 | 
            -
            		}
         | 
| 631 | 
            -
            		if ( ismaxh ) {
         | 
| 632 | 
            -
            			data.height = o.maxHeight;
         | 
| 633 | 
            -
            		}
         | 
| 634 | 
            -
             | 
| 635 | 
            -
            		if ( isminw && cw ) {
         | 
| 636 | 
            -
            			data.left = dw - o.minWidth;
         | 
| 637 | 
            -
            		}
         | 
| 638 | 
            -
            		if ( ismaxw && cw ) {
         | 
| 639 | 
            -
            			data.left = dw - o.maxWidth;
         | 
| 640 | 
            -
            		}
         | 
| 641 | 
            -
            		if ( isminh && ch ) {
         | 
| 642 | 
            -
            			data.top = dh - o.minHeight;
         | 
| 643 | 
            -
            		}
         | 
| 644 | 
            -
            		if ( ismaxh && ch ) {
         | 
| 645 | 
            -
            			data.top = dh - o.maxHeight;
         | 
| 646 | 
            -
            		}
         | 
| 647 | 
            -
             | 
| 648 | 
            -
            		// Fixing jump error on top/left - bug #2330
         | 
| 649 | 
            -
            		if ( !data.width && !data.height && !data.left && data.top ) {
         | 
| 650 | 
            -
            			data.top = null;
         | 
| 651 | 
            -
            		} else if ( !data.width && !data.height && !data.top && data.left ) {
         | 
| 652 | 
            -
            			data.left = null;
         | 
| 653 | 
            -
            		}
         | 
| 654 | 
            -
             | 
| 655 | 
            -
            		return data;
         | 
| 656 | 
            -
            	},
         | 
| 657 | 
            -
             | 
| 658 | 
            -
            	_getPaddingPlusBorderDimensions: function( element ) {
         | 
| 659 | 
            -
            		var i = 0,
         | 
| 660 | 
            -
            			widths = [],
         | 
| 661 | 
            -
            			borders = [
         | 
| 662 | 
            -
            				element.css( "borderTopWidth" ),
         | 
| 663 | 
            -
            				element.css( "borderRightWidth" ),
         | 
| 664 | 
            -
            				element.css( "borderBottomWidth" ),
         | 
| 665 | 
            -
            				element.css( "borderLeftWidth" )
         | 
| 666 | 
            -
            			],
         | 
| 667 | 
            -
            			paddings = [
         | 
| 668 | 
            -
            				element.css( "paddingTop" ),
         | 
| 669 | 
            -
            				element.css( "paddingRight" ),
         | 
| 670 | 
            -
            				element.css( "paddingBottom" ),
         | 
| 671 | 
            -
            				element.css( "paddingLeft" )
         | 
| 672 | 
            -
            			];
         | 
| 673 | 
            -
             | 
| 674 | 
            -
            		for ( ; i < 4; i++ ) {
         | 
| 675 | 
            -
            			widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
         | 
| 676 | 
            -
            			widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
         | 
| 677 | 
            -
            		}
         | 
| 678 | 
            -
             | 
| 679 | 
            -
            		return {
         | 
| 680 | 
            -
            			height: widths[ 0 ] + widths[ 2 ],
         | 
| 681 | 
            -
            			width: widths[ 1 ] + widths[ 3 ]
         | 
| 682 | 
            -
            		};
         | 
| 683 | 
            -
            	},
         | 
| 684 | 
            -
             | 
| 685 | 
            -
            	_proportionallyResize: function() {
         | 
| 686 | 
            -
             | 
| 687 | 
            -
            		if ( !this._proportionallyResizeElements.length ) {
         | 
| 688 | 
            -
            			return;
         | 
| 689 | 
            -
            		}
         | 
| 690 | 
            -
             | 
| 691 | 
            -
            		var prel,
         | 
| 692 | 
            -
            			i = 0,
         | 
| 693 | 
            -
            			element = this.helper || this.element;
         | 
| 694 | 
            -
             | 
| 695 | 
            -
            		for ( ; i < this._proportionallyResizeElements.length; i++ ) {
         | 
| 696 | 
            -
             | 
| 697 | 
            -
            			prel = this._proportionallyResizeElements[ i ];
         | 
| 698 | 
            -
             | 
| 699 | 
            -
            			// TODO: Seems like a bug to cache this.outerDimensions
         | 
| 700 | 
            -
            			// considering that we are in a loop.
         | 
| 701 | 
            -
            			if ( !this.outerDimensions ) {
         | 
| 702 | 
            -
            				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
         | 
| 703 | 
            -
            			}
         | 
| 704 | 
            -
             | 
| 705 | 
            -
            			prel.css( {
         | 
| 706 | 
            -
            				height: ( element.height() - this.outerDimensions.height ) || 0,
         | 
| 707 | 
            -
            				width: ( element.width() - this.outerDimensions.width ) || 0
         | 
| 708 | 
            -
            			} );
         | 
| 709 | 
            -
             | 
| 710 | 
            -
            		}
         | 
| 711 | 
            -
             | 
| 712 | 
            -
            	},
         | 
| 713 | 
            -
             | 
| 714 | 
            -
            	_renderProxy: function() {
         | 
| 715 | 
            -
             | 
| 716 | 
            -
            		var el = this.element, o = this.options;
         | 
| 717 | 
            -
            		this.elementOffset = el.offset();
         | 
| 718 | 
            -
             | 
| 719 | 
            -
            		if ( this._helper ) {
         | 
| 720 | 
            -
             | 
| 721 | 
            -
            			this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
         | 
| 722 | 
            -
             | 
| 723 | 
            -
            			this._addClass( this.helper, this._helper );
         | 
| 724 | 
            -
            			this.helper.css( {
         | 
| 725 | 
            -
            				width: this.element.outerWidth(),
         | 
| 726 | 
            -
            				height: this.element.outerHeight(),
         | 
| 727 | 
            -
            				position: "absolute",
         | 
| 728 | 
            -
            				left: this.elementOffset.left + "px",
         | 
| 729 | 
            -
            				top: this.elementOffset.top + "px",
         | 
| 730 | 
            -
            				zIndex: ++o.zIndex //TODO: Don't modify option
         | 
| 731 | 
            -
            			} );
         | 
| 732 | 
            -
             | 
| 733 | 
            -
            			this.helper
         | 
| 734 | 
            -
            				.appendTo( "body" )
         | 
| 735 | 
            -
            				.disableSelection();
         | 
| 736 | 
            -
             | 
| 737 | 
            -
            		} else {
         | 
| 738 | 
            -
            			this.helper = this.element;
         | 
| 739 | 
            -
            		}
         | 
| 740 | 
            -
             | 
| 741 | 
            -
            	},
         | 
| 742 | 
            -
             | 
| 743 | 
            -
            	_change: {
         | 
| 744 | 
            -
            		e: function( event, dx ) {
         | 
| 745 | 
            -
            			return { width: this.originalSize.width + dx };
         | 
| 746 | 
            -
            		},
         | 
| 747 | 
            -
            		w: function( event, dx ) {
         | 
| 748 | 
            -
            			var cs = this.originalSize, sp = this.originalPosition;
         | 
| 749 | 
            -
            			return { left: sp.left + dx, width: cs.width - dx };
         | 
| 750 | 
            -
            		},
         | 
| 751 | 
            -
            		n: function( event, dx, dy ) {
         | 
| 752 | 
            -
            			var cs = this.originalSize, sp = this.originalPosition;
         | 
| 753 | 
            -
            			return { top: sp.top + dy, height: cs.height - dy };
         | 
| 754 | 
            -
            		},
         | 
| 755 | 
            -
            		s: function( event, dx, dy ) {
         | 
| 756 | 
            -
            			return { height: this.originalSize.height + dy };
         | 
| 757 | 
            -
            		},
         | 
| 758 | 
            -
            		se: function( event, dx, dy ) {
         | 
| 759 | 
            -
            			return $.extend( this._change.s.apply( this, arguments ),
         | 
| 760 | 
            -
            				this._change.e.apply( this, [ event, dx, dy ] ) );
         | 
| 761 | 
            -
            		},
         | 
| 762 | 
            -
            		sw: function( event, dx, dy ) {
         | 
| 763 | 
            -
            			return $.extend( this._change.s.apply( this, arguments ),
         | 
| 764 | 
            -
            				this._change.w.apply( this, [ event, dx, dy ] ) );
         | 
| 765 | 
            -
            		},
         | 
| 766 | 
            -
            		ne: function( event, dx, dy ) {
         | 
| 767 | 
            -
            			return $.extend( this._change.n.apply( this, arguments ),
         | 
| 768 | 
            -
            				this._change.e.apply( this, [ event, dx, dy ] ) );
         | 
| 769 | 
            -
            		},
         | 
| 770 | 
            -
            		nw: function( event, dx, dy ) {
         | 
| 771 | 
            -
            			return $.extend( this._change.n.apply( this, arguments ),
         | 
| 772 | 
            -
            				this._change.w.apply( this, [ event, dx, dy ] ) );
         | 
| 773 | 
            -
            		}
         | 
| 774 | 
            -
            	},
         | 
| 775 | 
            -
             | 
| 776 | 
            -
            	_propagate: function( n, event ) {
         | 
| 777 | 
            -
            		$.ui.plugin.call( this, n, [ event, this.ui() ] );
         | 
| 778 | 
            -
            		( n !== "resize" && this._trigger( n, event, this.ui() ) );
         | 
| 779 | 
            -
            	},
         | 
| 780 | 
            -
             | 
| 781 | 
            -
            	plugins: {},
         | 
| 782 | 
            -
             | 
| 783 | 
            -
            	ui: function() {
         | 
| 784 | 
            -
            		return {
         | 
| 785 | 
            -
            			originalElement: this.originalElement,
         | 
| 786 | 
            -
            			element: this.element,
         | 
| 787 | 
            -
            			helper: this.helper,
         | 
| 788 | 
            -
            			position: this.position,
         | 
| 789 | 
            -
            			size: this.size,
         | 
| 790 | 
            -
            			originalSize: this.originalSize,
         | 
| 791 | 
            -
            			originalPosition: this.originalPosition
         | 
| 792 | 
            -
            		};
         | 
| 793 | 
            -
            	}
         | 
| 794 | 
            -
             | 
| 795 | 
            -
            } );
         | 
| 796 | 
            -
             | 
| 797 | 
            -
            /*
         | 
| 798 | 
            -
             * Resizable Extensions
         | 
| 799 | 
            -
             */
         | 
| 800 | 
            -
             | 
| 801 | 
            -
            $.ui.plugin.add( "resizable", "animate", {
         | 
| 802 | 
            -
             | 
| 803 | 
            -
            	stop: function( event ) {
         | 
| 804 | 
            -
            		var that = $( this ).resizable( "instance" ),
         | 
| 805 | 
            -
            			o = that.options,
         | 
| 806 | 
            -
            			pr = that._proportionallyResizeElements,
         | 
| 807 | 
            -
            			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
         | 
| 808 | 
            -
            			soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
         | 
| 809 | 
            -
            			soffsetw = ista ? 0 : that.sizeDiff.width,
         | 
| 810 | 
            -
            			style = {
         | 
| 811 | 
            -
            				width: ( that.size.width - soffsetw ),
         | 
| 812 | 
            -
            				height: ( that.size.height - soffseth )
         | 
| 813 | 
            -
            			},
         | 
| 814 | 
            -
            			left = ( parseFloat( that.element.css( "left" ) ) +
         | 
| 815 | 
            -
            				( that.position.left - that.originalPosition.left ) ) || null,
         | 
| 816 | 
            -
            			top = ( parseFloat( that.element.css( "top" ) ) +
         | 
| 817 | 
            -
            				( that.position.top - that.originalPosition.top ) ) || null;
         | 
| 818 | 
            -
             | 
| 819 | 
            -
            		that.element.animate(
         | 
| 820 | 
            -
            			$.extend( style, top && left ? { top: top, left: left } : {} ), {
         | 
| 821 | 
            -
            				duration: o.animateDuration,
         | 
| 822 | 
            -
            				easing: o.animateEasing,
         | 
| 823 | 
            -
            				step: function() {
         | 
| 824 | 
            -
             | 
| 825 | 
            -
            					var data = {
         | 
| 826 | 
            -
            						width: parseFloat( that.element.css( "width" ) ),
         | 
| 827 | 
            -
            						height: parseFloat( that.element.css( "height" ) ),
         | 
| 828 | 
            -
            						top: parseFloat( that.element.css( "top" ) ),
         | 
| 829 | 
            -
            						left: parseFloat( that.element.css( "left" ) )
         | 
| 830 | 
            -
            					};
         | 
| 831 | 
            -
             | 
| 832 | 
            -
            					if ( pr && pr.length ) {
         | 
| 833 | 
            -
            						$( pr[ 0 ] ).css( { width: data.width, height: data.height } );
         | 
| 834 | 
            -
            					}
         | 
| 835 | 
            -
             | 
| 836 | 
            -
            					// Propagating resize, and updating values for each animation step
         | 
| 837 | 
            -
            					that._updateCache( data );
         | 
| 838 | 
            -
            					that._propagate( "resize", event );
         | 
| 839 | 
            -
             | 
| 840 | 
            -
            				}
         | 
| 841 | 
            -
            			}
         | 
| 842 | 
            -
            		);
         | 
| 843 | 
            -
            	}
         | 
| 844 | 
            -
             | 
| 845 | 
            -
            } );
         | 
| 846 | 
            -
             | 
| 847 | 
            -
            $.ui.plugin.add( "resizable", "containment", {
         | 
| 848 | 
            -
             | 
| 849 | 
            -
            	start: function() {
         | 
| 850 | 
            -
            		var element, p, co, ch, cw, width, height,
         | 
| 851 | 
            -
            			that = $( this ).resizable( "instance" ),
         | 
| 852 | 
            -
            			o = that.options,
         | 
| 853 | 
            -
            			el = that.element,
         | 
| 854 | 
            -
            			oc = o.containment,
         | 
| 855 | 
            -
            			ce = ( oc instanceof $ ) ?
         | 
| 856 | 
            -
            				oc.get( 0 ) :
         | 
| 857 | 
            -
            				( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
         | 
| 858 | 
            -
             | 
| 859 | 
            -
            		if ( !ce ) {
         | 
| 860 | 
            -
            			return;
         | 
| 861 | 
            -
            		}
         | 
| 862 | 
            -
             | 
| 863 | 
            -
            		that.containerElement = $( ce );
         | 
| 864 | 
            -
             | 
| 865 | 
            -
            		if ( /document/.test( oc ) || oc === document ) {
         | 
| 866 | 
            -
            			that.containerOffset = {
         | 
| 867 | 
            -
            				left: 0,
         | 
| 868 | 
            -
            				top: 0
         | 
| 869 | 
            -
            			};
         | 
| 870 | 
            -
            			that.containerPosition = {
         | 
| 871 | 
            -
            				left: 0,
         | 
| 872 | 
            -
            				top: 0
         | 
| 873 | 
            -
            			};
         | 
| 874 | 
            -
             | 
| 875 | 
            -
            			that.parentData = {
         | 
| 876 | 
            -
            				element: $( document ),
         | 
| 877 | 
            -
            				left: 0,
         | 
| 878 | 
            -
            				top: 0,
         | 
| 879 | 
            -
            				width: $( document ).width(),
         | 
| 880 | 
            -
            				height: $( document ).height() || document.body.parentNode.scrollHeight
         | 
| 881 | 
            -
            			};
         | 
| 882 | 
            -
            		} else {
         | 
| 883 | 
            -
            			element = $( ce );
         | 
| 884 | 
            -
            			p = [];
         | 
| 885 | 
            -
            			$( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
         | 
| 886 | 
            -
            				p[ i ] = that._num( element.css( "padding" + name ) );
         | 
| 887 | 
            -
            			} );
         | 
| 888 | 
            -
             | 
| 889 | 
            -
            			that.containerOffset = element.offset();
         | 
| 890 | 
            -
            			that.containerPosition = element.position();
         | 
| 891 | 
            -
            			that.containerSize = {
         | 
| 892 | 
            -
            				height: ( element.innerHeight() - p[ 3 ] ),
         | 
| 893 | 
            -
            				width: ( element.innerWidth() - p[ 1 ] )
         | 
| 894 | 
            -
            			};
         | 
| 895 | 
            -
             | 
| 896 | 
            -
            			co = that.containerOffset;
         | 
| 897 | 
            -
            			ch = that.containerSize.height;
         | 
| 898 | 
            -
            			cw = that.containerSize.width;
         | 
| 899 | 
            -
            			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
         | 
| 900 | 
            -
            			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
         | 
| 901 | 
            -
             | 
| 902 | 
            -
            			that.parentData = {
         | 
| 903 | 
            -
            				element: ce,
         | 
| 904 | 
            -
            				left: co.left,
         | 
| 905 | 
            -
            				top: co.top,
         | 
| 906 | 
            -
            				width: width,
         | 
| 907 | 
            -
            				height: height
         | 
| 908 | 
            -
            			};
         | 
| 909 | 
            -
            		}
         | 
| 910 | 
            -
            	},
         | 
| 911 | 
            -
             | 
| 912 | 
            -
            	resize: function( event ) {
         | 
| 913 | 
            -
            		var woset, hoset, isParent, isOffsetRelative,
         | 
| 914 | 
            -
            			that = $( this ).resizable( "instance" ),
         | 
| 915 | 
            -
            			o = that.options,
         | 
| 916 | 
            -
            			co = that.containerOffset,
         | 
| 917 | 
            -
            			cp = that.position,
         | 
| 918 | 
            -
            			pRatio = that._aspectRatio || event.shiftKey,
         | 
| 919 | 
            -
            			cop = {
         | 
| 920 | 
            -
            				top: 0,
         | 
| 921 | 
            -
            				left: 0
         | 
| 922 | 
            -
            			},
         | 
| 923 | 
            -
            			ce = that.containerElement,
         | 
| 924 | 
            -
            			continueResize = true;
         | 
| 925 | 
            -
             | 
| 926 | 
            -
            		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
         | 
| 927 | 
            -
            			cop = co;
         | 
| 928 | 
            -
            		}
         | 
| 929 | 
            -
             | 
| 930 | 
            -
            		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
         | 
| 931 | 
            -
            			that.size.width = that.size.width +
         | 
| 932 | 
            -
            				( that._helper ?
         | 
| 933 | 
            -
            					( that.position.left - co.left ) :
         | 
| 934 | 
            -
            					( that.position.left - cop.left ) );
         | 
| 935 | 
            -
             | 
| 936 | 
            -
            			if ( pRatio ) {
         | 
| 937 | 
            -
            				that.size.height = that.size.width / that.aspectRatio;
         | 
| 938 | 
            -
            				continueResize = false;
         | 
| 939 | 
            -
            			}
         | 
| 940 | 
            -
            			that.position.left = o.helper ? co.left : 0;
         | 
| 941 | 
            -
            		}
         | 
| 942 | 
            -
             | 
| 943 | 
            -
            		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
         | 
| 944 | 
            -
            			that.size.height = that.size.height +
         | 
| 945 | 
            -
            				( that._helper ?
         | 
| 946 | 
            -
            					( that.position.top - co.top ) :
         | 
| 947 | 
            -
            					that.position.top );
         | 
| 948 | 
            -
             | 
| 949 | 
            -
            			if ( pRatio ) {
         | 
| 950 | 
            -
            				that.size.width = that.size.height * that.aspectRatio;
         | 
| 951 | 
            -
            				continueResize = false;
         | 
| 952 | 
            -
            			}
         | 
| 953 | 
            -
            			that.position.top = that._helper ? co.top : 0;
         | 
| 954 | 
            -
            		}
         | 
| 955 | 
            -
             | 
| 956 | 
            -
            		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
         | 
| 957 | 
            -
            		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
         | 
| 958 | 
            -
             | 
| 959 | 
            -
            		if ( isParent && isOffsetRelative ) {
         | 
| 960 | 
            -
            			that.offset.left = that.parentData.left + that.position.left;
         | 
| 961 | 
            -
            			that.offset.top = that.parentData.top + that.position.top;
         | 
| 962 | 
            -
            		} else {
         | 
| 963 | 
            -
            			that.offset.left = that.element.offset().left;
         | 
| 964 | 
            -
            			that.offset.top = that.element.offset().top;
         | 
| 965 | 
            -
            		}
         | 
| 966 | 
            -
             | 
| 967 | 
            -
            		woset = Math.abs( that.sizeDiff.width +
         | 
| 968 | 
            -
            			( that._helper ?
         | 
| 969 | 
            -
            				that.offset.left - cop.left :
         | 
| 970 | 
            -
            				( that.offset.left - co.left ) ) );
         | 
| 971 | 
            -
             | 
| 972 | 
            -
            		hoset = Math.abs( that.sizeDiff.height +
         | 
| 973 | 
            -
            			( that._helper ?
         | 
| 974 | 
            -
            				that.offset.top - cop.top :
         | 
| 975 | 
            -
            				( that.offset.top - co.top ) ) );
         | 
| 976 | 
            -
             | 
| 977 | 
            -
            		if ( woset + that.size.width >= that.parentData.width ) {
         | 
| 978 | 
            -
            			that.size.width = that.parentData.width - woset;
         | 
| 979 | 
            -
            			if ( pRatio ) {
         | 
| 980 | 
            -
            				that.size.height = that.size.width / that.aspectRatio;
         | 
| 981 | 
            -
            				continueResize = false;
         | 
| 982 | 
            -
            			}
         | 
| 983 | 
            -
            		}
         | 
| 984 | 
            -
             | 
| 985 | 
            -
            		if ( hoset + that.size.height >= that.parentData.height ) {
         | 
| 986 | 
            -
            			that.size.height = that.parentData.height - hoset;
         | 
| 987 | 
            -
            			if ( pRatio ) {
         | 
| 988 | 
            -
            				that.size.width = that.size.height * that.aspectRatio;
         | 
| 989 | 
            -
            				continueResize = false;
         | 
| 990 | 
            -
            			}
         | 
| 991 | 
            -
            		}
         | 
| 992 | 
            -
             | 
| 993 | 
            -
            		if ( !continueResize ) {
         | 
| 994 | 
            -
            			that.position.left = that.prevPosition.left;
         | 
| 995 | 
            -
            			that.position.top = that.prevPosition.top;
         | 
| 996 | 
            -
            			that.size.width = that.prevSize.width;
         | 
| 997 | 
            -
            			that.size.height = that.prevSize.height;
         | 
| 998 | 
            -
            		}
         | 
| 999 | 
            -
            	},
         | 
| 1000 | 
            -
             | 
| 1001 | 
            -
            	stop: function() {
         | 
| 1002 | 
            -
            		var that = $( this ).resizable( "instance" ),
         | 
| 1003 | 
            -
            			o = that.options,
         | 
| 1004 | 
            -
            			co = that.containerOffset,
         | 
| 1005 | 
            -
            			cop = that.containerPosition,
         | 
| 1006 | 
            -
            			ce = that.containerElement,
         | 
| 1007 | 
            -
            			helper = $( that.helper ),
         | 
| 1008 | 
            -
            			ho = helper.offset(),
         | 
| 1009 | 
            -
            			w = helper.outerWidth() - that.sizeDiff.width,
         | 
| 1010 | 
            -
            			h = helper.outerHeight() - that.sizeDiff.height;
         | 
| 1011 | 
            -
             | 
| 1012 | 
            -
            		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
         | 
| 1013 | 
            -
            			$( this ).css( {
         | 
| 1014 | 
            -
            				left: ho.left - cop.left - co.left,
         | 
| 1015 | 
            -
            				width: w,
         | 
| 1016 | 
            -
            				height: h
         | 
| 1017 | 
            -
            			} );
         | 
| 1018 | 
            -
            		}
         | 
| 1019 | 
            -
             | 
| 1020 | 
            -
            		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
         | 
| 1021 | 
            -
            			$( this ).css( {
         | 
| 1022 | 
            -
            				left: ho.left - cop.left - co.left,
         | 
| 1023 | 
            -
            				width: w,
         | 
| 1024 | 
            -
            				height: h
         | 
| 1025 | 
            -
            			} );
         | 
| 1026 | 
            -
            		}
         | 
| 1027 | 
            -
            	}
         | 
| 1028 | 
            -
            } );
         | 
| 1029 | 
            -
             | 
| 1030 | 
            -
            $.ui.plugin.add( "resizable", "alsoResize", {
         | 
| 1031 | 
            -
             | 
| 1032 | 
            -
            	start: function() {
         | 
| 1033 | 
            -
            		var that = $( this ).resizable( "instance" ),
         | 
| 1034 | 
            -
            			o = that.options;
         | 
| 1035 | 
            -
             | 
| 1036 | 
            -
            		$( o.alsoResize ).each( function() {
         | 
| 1037 | 
            -
            			var el = $( this );
         | 
| 1038 | 
            -
            			el.data( "ui-resizable-alsoresize", {
         | 
| 1039 | 
            -
            				width: parseFloat( el.width() ), height: parseFloat( el.height() ),
         | 
| 1040 | 
            -
            				left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
         | 
| 1041 | 
            -
            			} );
         | 
| 1042 | 
            -
            		} );
         | 
| 1043 | 
            -
            	},
         | 
| 1044 | 
            -
             | 
| 1045 | 
            -
            	resize: function( event, ui ) {
         | 
| 1046 | 
            -
            		var that = $( this ).resizable( "instance" ),
         | 
| 1047 | 
            -
            			o = that.options,
         | 
| 1048 | 
            -
            			os = that.originalSize,
         | 
| 1049 | 
            -
            			op = that.originalPosition,
         | 
| 1050 | 
            -
            			delta = {
         | 
| 1051 | 
            -
            				height: ( that.size.height - os.height ) || 0,
         | 
| 1052 | 
            -
            				width: ( that.size.width - os.width ) || 0,
         | 
| 1053 | 
            -
            				top: ( that.position.top - op.top ) || 0,
         | 
| 1054 | 
            -
            				left: ( that.position.left - op.left ) || 0
         | 
| 1055 | 
            -
            			};
         | 
| 1056 | 
            -
             | 
| 1057 | 
            -
            			$( o.alsoResize ).each( function() {
         | 
| 1058 | 
            -
            				var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
         | 
| 1059 | 
            -
            					css = el.parents( ui.originalElement[ 0 ] ).length ?
         | 
| 1060 | 
            -
            							[ "width", "height" ] :
         | 
| 1061 | 
            -
            							[ "width", "height", "top", "left" ];
         | 
| 1062 | 
            -
             | 
| 1063 | 
            -
            				$.each( css, function( i, prop ) {
         | 
| 1064 | 
            -
            					var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
         | 
| 1065 | 
            -
            					if ( sum && sum >= 0 ) {
         | 
| 1066 | 
            -
            						style[ prop ] = sum || null;
         | 
| 1067 | 
            -
            					}
         | 
| 1068 | 
            -
            				} );
         | 
| 1069 | 
            -
             | 
| 1070 | 
            -
            				el.css( style );
         | 
| 1071 | 
            -
            			} );
         | 
| 1072 | 
            -
            	},
         | 
| 1073 | 
            -
             | 
| 1074 | 
            -
            	stop: function() {
         | 
| 1075 | 
            -
            		$( this ).removeData( "ui-resizable-alsoresize" );
         | 
| 1076 | 
            -
            	}
         | 
| 1077 | 
            -
            } );
         | 
| 1078 | 
            -
             | 
| 1079 | 
            -
            $.ui.plugin.add( "resizable", "ghost", {
         | 
| 1080 | 
            -
             | 
| 1081 | 
            -
            	start: function() {
         | 
| 1082 | 
            -
             | 
| 1083 | 
            -
            		var that = $( this ).resizable( "instance" ), cs = that.size;
         | 
| 1084 | 
            -
             | 
| 1085 | 
            -
            		that.ghost = that.originalElement.clone();
         | 
| 1086 | 
            -
            		that.ghost.css( {
         | 
| 1087 | 
            -
            			opacity: 0.25,
         | 
| 1088 | 
            -
            			display: "block",
         | 
| 1089 | 
            -
            			position: "relative",
         | 
| 1090 | 
            -
            			height: cs.height,
         | 
| 1091 | 
            -
            			width: cs.width,
         | 
| 1092 | 
            -
            			margin: 0,
         | 
| 1093 | 
            -
            			left: 0,
         | 
| 1094 | 
            -
            			top: 0
         | 
| 1095 | 
            -
            		} );
         | 
| 1096 | 
            -
             | 
| 1097 | 
            -
            		that._addClass( that.ghost, "ui-resizable-ghost" );
         | 
| 1098 | 
            -
             | 
| 1099 | 
            -
            		// DEPRECATED
         | 
| 1100 | 
            -
            		// TODO: remove after 1.12
         | 
| 1101 | 
            -
            		if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
         | 
| 1102 | 
            -
             | 
| 1103 | 
            -
            			// Ghost option
         | 
| 1104 | 
            -
            			that.ghost.addClass( this.options.ghost );
         | 
| 1105 | 
            -
            		}
         | 
| 1106 | 
            -
             | 
| 1107 | 
            -
            		that.ghost.appendTo( that.helper );
         | 
| 1108 | 
            -
             | 
| 1109 | 
            -
            	},
         | 
| 1110 | 
            -
             | 
| 1111 | 
            -
            	resize: function() {
         | 
| 1112 | 
            -
            		var that = $( this ).resizable( "instance" );
         | 
| 1113 | 
            -
            		if ( that.ghost ) {
         | 
| 1114 | 
            -
            			that.ghost.css( {
         | 
| 1115 | 
            -
            				position: "relative",
         | 
| 1116 | 
            -
            				height: that.size.height,
         | 
| 1117 | 
            -
            				width: that.size.width
         | 
| 1118 | 
            -
            			} );
         | 
| 1119 | 
            -
            		}
         | 
| 1120 | 
            -
            	},
         | 
| 1121 | 
            -
             | 
| 1122 | 
            -
            	stop: function() {
         | 
| 1123 | 
            -
            		var that = $( this ).resizable( "instance" );
         | 
| 1124 | 
            -
            		if ( that.ghost && that.helper ) {
         | 
| 1125 | 
            -
            			that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
         | 
| 1126 | 
            -
            		}
         | 
| 1127 | 
            -
            	}
         | 
| 1128 | 
            -
             | 
| 1129 | 
            -
            } );
         | 
| 1130 | 
            -
             | 
| 1131 | 
            -
            $.ui.plugin.add( "resizable", "grid", {
         | 
| 1132 | 
            -
             | 
| 1133 | 
            -
            	resize: function() {
         | 
| 1134 | 
            -
            		var outerDimensions,
         | 
| 1135 | 
            -
            			that = $( this ).resizable( "instance" ),
         | 
| 1136 | 
            -
            			o = that.options,
         | 
| 1137 | 
            -
            			cs = that.size,
         | 
| 1138 | 
            -
            			os = that.originalSize,
         | 
| 1139 | 
            -
            			op = that.originalPosition,
         | 
| 1140 | 
            -
            			a = that.axis,
         | 
| 1141 | 
            -
            			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
         | 
| 1142 | 
            -
            			gridX = ( grid[ 0 ] || 1 ),
         | 
| 1143 | 
            -
            			gridY = ( grid[ 1 ] || 1 ),
         | 
| 1144 | 
            -
            			ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
         | 
| 1145 | 
            -
            			oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
         | 
| 1146 | 
            -
            			newWidth = os.width + ox,
         | 
| 1147 | 
            -
            			newHeight = os.height + oy,
         | 
| 1148 | 
            -
            			isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
         | 
| 1149 | 
            -
            			isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
         | 
| 1150 | 
            -
            			isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
         | 
| 1151 | 
            -
            			isMinHeight = o.minHeight && ( o.minHeight > newHeight );
         | 
| 1152 | 
            -
             | 
| 1153 | 
            -
            		o.grid = grid;
         | 
| 1154 | 
            -
             | 
| 1155 | 
            -
            		if ( isMinWidth ) {
         | 
| 1156 | 
            -
            			newWidth += gridX;
         | 
| 1157 | 
            -
            		}
         | 
| 1158 | 
            -
            		if ( isMinHeight ) {
         | 
| 1159 | 
            -
            			newHeight += gridY;
         | 
| 1160 | 
            -
            		}
         | 
| 1161 | 
            -
            		if ( isMaxWidth ) {
         | 
| 1162 | 
            -
            			newWidth -= gridX;
         | 
| 1163 | 
            -
            		}
         | 
| 1164 | 
            -
            		if ( isMaxHeight ) {
         | 
| 1165 | 
            -
            			newHeight -= gridY;
         | 
| 1166 | 
            -
            		}
         | 
| 1167 | 
            -
             | 
| 1168 | 
            -
            		if ( /^(se|s|e)$/.test( a ) ) {
         | 
| 1169 | 
            -
            			that.size.width = newWidth;
         | 
| 1170 | 
            -
            			that.size.height = newHeight;
         | 
| 1171 | 
            -
            		} else if ( /^(ne)$/.test( a ) ) {
         | 
| 1172 | 
            -
            			that.size.width = newWidth;
         | 
| 1173 | 
            -
            			that.size.height = newHeight;
         | 
| 1174 | 
            -
            			that.position.top = op.top - oy;
         | 
| 1175 | 
            -
            		} else if ( /^(sw)$/.test( a ) ) {
         | 
| 1176 | 
            -
            			that.size.width = newWidth;
         | 
| 1177 | 
            -
            			that.size.height = newHeight;
         | 
| 1178 | 
            -
            			that.position.left = op.left - ox;
         | 
| 1179 | 
            -
            		} else {
         | 
| 1180 | 
            -
            			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
         | 
| 1181 | 
            -
            				outerDimensions = that._getPaddingPlusBorderDimensions( this );
         | 
| 1182 | 
            -
            			}
         | 
| 1183 | 
            -
             | 
| 1184 | 
            -
            			if ( newHeight - gridY > 0 ) {
         | 
| 1185 | 
            -
            				that.size.height = newHeight;
         | 
| 1186 | 
            -
            				that.position.top = op.top - oy;
         | 
| 1187 | 
            -
            			} else {
         | 
| 1188 | 
            -
            				newHeight = gridY - outerDimensions.height;
         | 
| 1189 | 
            -
            				that.size.height = newHeight;
         | 
| 1190 | 
            -
            				that.position.top = op.top + os.height - newHeight;
         | 
| 1191 | 
            -
            			}
         | 
| 1192 | 
            -
            			if ( newWidth - gridX > 0 ) {
         | 
| 1193 | 
            -
            				that.size.width = newWidth;
         | 
| 1194 | 
            -
            				that.position.left = op.left - ox;
         | 
| 1195 | 
            -
            			} else {
         | 
| 1196 | 
            -
            				newWidth = gridX - outerDimensions.width;
         | 
| 1197 | 
            -
            				that.size.width = newWidth;
         | 
| 1198 | 
            -
            				that.position.left = op.left + os.width - newWidth;
         | 
| 1199 | 
            -
            			}
         | 
| 1200 | 
            -
            		}
         | 
| 1201 | 
            -
            	}
         | 
| 1202 | 
            -
             | 
| 1203 | 
            -
            } );
         | 
| 1204 | 
            -
             | 
| 1205 | 
            -
            return $.ui.resizable;
         | 
| 1206 | 
            -
             | 
| 1207 | 
            -
            } ) );
         |