PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.11
VikBooking Hotel Booking Engine & PMS v1.8.11
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
vikbooking / admin / resources / js_upload / jquery.ui.widget.js

jquery.ui.widget.js in VikBooking Hotel Booking Engine & PMS 1.8.11, at admin/resources/js_upload/jquery.ui.widget.js

573 lines 15.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! jQuery UI - v1.11.4+CommonJS - 2015-08-28
2 * http://jqueryui.com
3 * Includes: widget.js
4 * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
5
6 (function( factory ) {
7 if ( typeof define === "function" && define.amd ) {
8
9 // AMD. Register as an anonymous module.
10 define([ "jquery" ], factory );
11
12 } else if ( typeof exports === "object" ) {
13
14 // Node/CommonJS
15 factory( require( "jquery" ) );
16
17 } else {
18
19 // Browser globals
20 factory( jQuery );
21 }
22 }(function( $ ) {
23 /*!
24 * jQuery UI Widget 1.11.4
25 * http://jqueryui.com
26 *
27 * Copyright jQuery Foundation and other contributors
28 * Released under the MIT license.
29 * http://jquery.org/license
30 *
31 * http://api.jqueryui.com/jQuery.widget/
32 */
33
34
35 var widget_uuid = 0,
36 widget_slice = Array.prototype.slice;
37
38 $.cleanData = (function( orig ) {
39 return function( elems ) {
40 var events, elem, i;
41 for ( i = 0; (elem = elems[i]) != null; i++ ) {
42 try {
43
44 // Only trigger remove when necessary to save time
45 events = $._data( elem, "events" );
46 if ( events && events.remove ) {
47 $( elem ).triggerHandler( "remove" );
48 }
49
50 // http://bugs.jquery.com/ticket/8235
51 } catch ( e ) {}
52 }
53 orig( elems );
54 };
55 })( $.cleanData );
56
57 $.widget = function( name, base, prototype ) {
58 var fullName, existingConstructor, constructor, basePrototype,
59 // proxiedPrototype allows the provided prototype to remain unmodified
60 // so that it can be used as a mixin for multiple widgets (#8876)
61 proxiedPrototype = {},
62 namespace = name.split( "." )[ 0 ];
63
64 name = name.split( "." )[ 1 ];
65 fullName = namespace + "-" + name;
66
67 if ( !prototype ) {
68 prototype = base;
69 base = $.Widget;
70 }
71
72 // create selector for plugin
73 $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
74 return !!$.data( elem, fullName );
75 };
76
77 $[ namespace ] = $[ namespace ] || {};
78 existingConstructor = $[ namespace ][ name ];
79 constructor = $[ namespace ][ name ] = function( options, element ) {
80 // allow instantiation without "new" keyword
81 if ( !this._createWidget ) {
82 return new constructor( options, element );
83 }
84
85 // allow instantiation without initializing for simple inheritance
86 // must use "new" keyword (the code above always passes args)
87 if ( arguments.length ) {
88 this._createWidget( options, element );
89 }
90 };
91 // extend with the existing constructor to carry over any static properties
92 $.extend( constructor, existingConstructor, {
93 version: prototype.version,
94 // copy the object used to create the prototype in case we need to
95 // redefine the widget later
96 _proto: $.extend( {}, prototype ),
97 // track widgets that inherit from this widget in case this widget is
98 // redefined after a widget inherits from it
99 _childConstructors: []
100 });
101
102 basePrototype = new base();
103 // we need to make the options hash a property directly on the new instance
104 // otherwise we'll modify the options hash on the prototype that we're
105 // inheriting from
106 basePrototype.options = $.widget.extend( {}, basePrototype.options );
107 $.each( prototype, function( prop, value ) {
108 if ( !$.isFunction( value ) ) {
109 proxiedPrototype[ prop ] = value;
110 return;
111 }
112 proxiedPrototype[ prop ] = (function() {
113 var _super = function() {
114 return base.prototype[ prop ].apply( this, arguments );
115 },
116 _superApply = function( args ) {
117 return base.prototype[ prop ].apply( this, args );
118 };
119 return function() {
120 var __super = this._super,
121 __superApply = this._superApply,
122 returnValue;
123
124 this._super = _super;
125 this._superApply = _superApply;
126
127 returnValue = value.apply( this, arguments );
128
129 this._super = __super;
130 this._superApply = __superApply;
131
132 return returnValue;
133 };
134 })();
135 });
136 constructor.prototype = $.widget.extend( basePrototype, {
137 // TODO: remove support for widgetEventPrefix
138 // always use the name + a colon as the prefix, e.g., draggable:start
139 // don't prefix for widgets that aren't DOM-based
140 widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
141 }, proxiedPrototype, {
142 constructor: constructor,
143 namespace: namespace,
144 widgetName: name,
145 widgetFullName: fullName
146 });
147
148 // If this widget is being redefined then we need to find all widgets that
149 // are inheriting from it and redefine all of them so that they inherit from
150 // the new version of this widget. We're essentially trying to replace one
151 // level in the prototype chain.
152 if ( existingConstructor ) {
153 $.each( existingConstructor._childConstructors, function( i, child ) {
154 var childPrototype = child.prototype;
155
156 // redefine the child widget using the same prototype that was
157 // originally used, but inherit from the new version of the base
158 $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
159 });
160 // remove the list of existing child constructors from the old constructor
161 // so the old child constructors can be garbage collected
162 delete existingConstructor._childConstructors;
163 } else {
164 base._childConstructors.push( constructor );
165 }
166
167 $.widget.bridge( name, constructor );
168
169 return constructor;
170 };
171
172 $.widget.extend = function( target ) {
173 var input = widget_slice.call( arguments, 1 ),
174 inputIndex = 0,
175 inputLength = input.length,
176 key,
177 value;
178 for ( ; inputIndex < inputLength; inputIndex++ ) {
179 for ( key in input[ inputIndex ] ) {
180 value = input[ inputIndex ][ key ];
181 if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
182 // Clone objects
183 if ( $.isPlainObject( value ) ) {
184 target[ key ] = $.isPlainObject( target[ key ] ) ?
185 $.widget.extend( {}, target[ key ], value ) :
186 // Don't extend strings, arrays, etc. with objects
187 $.widget.extend( {}, value );
188 // Copy everything else by reference
189 } else {
190 target[ key ] = value;
191 }
192 }
193 }
194 }
195 return target;
196 };
197
198 $.widget.bridge = function( name, object ) {
199 var fullName = object.prototype.widgetFullName || name;
200 $.fn[ name ] = function( options ) {
201 var isMethodCall = typeof options === "string",
202 args = widget_slice.call( arguments, 1 ),
203 returnValue = this;
204
205 if ( isMethodCall ) {
206 this.each(function() {
207 var methodValue,
208 instance = $.data( this, fullName );
209 if ( options === "instance" ) {
210 returnValue = instance;
211 return false;
212 }
213 if ( !instance ) {
214 return $.error( "cannot call methods on " + name + " prior to initialization; " +
215 "attempted to call method '" + options + "'" );
216 }
217 if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
218 return $.error( "no such method '" + options + "' for " + name + " widget instance" );
219 }
220 methodValue = instance[ options ].apply( instance, args );
221 if ( methodValue !== instance && methodValue !== undefined ) {
222 returnValue = methodValue && methodValue.jquery ?
223 returnValue.pushStack( methodValue.get() ) :
224 methodValue;
225 return false;
226 }
227 });
228 } else {
229
230 // Allow multiple hashes to be passed on init
231 if ( args.length ) {
232 options = $.widget.extend.apply( null, [ options ].concat(args) );
233 }
234
235 this.each(function() {
236 var instance = $.data( this, fullName );
237 if ( instance ) {
238 instance.option( options || {} );
239 if ( instance._init ) {
240 instance._init();
241 }
242 } else {
243 $.data( this, fullName, new object( options, this ) );
244 }
245 });
246 }
247
248 return returnValue;
249 };
250 };
251
252 $.Widget = function( /* options, element */ ) {};
253 $.Widget._childConstructors = [];
254
255 $.Widget.prototype = {
256 widgetName: "widget",
257 widgetEventPrefix: "",
258 defaultElement: "<div>",
259 options: {
260 disabled: false,
261
262 // callbacks
263 create: null
264 },
265 _createWidget: function( options, element ) {
266 element = $( element || this.defaultElement || this )[ 0 ];
267 this.element = $( element );
268 this.uuid = widget_uuid++;
269 this.eventNamespace = "." + this.widgetName + this.uuid;
270
271 this.bindings = $();
272 this.hoverable = $();
273 this.focusable = $();
274
275 if ( element !== this ) {
276 $.data( element, this.widgetFullName, this );
277 this._on( true, this.element, {
278 remove: function( event ) {
279 if ( event.target === element ) {
280 this.destroy();
281 }
282 }
283 });
284 this.document = $( element.style ?
285 // element within the document
286 element.ownerDocument :
287 // element is window or document
288 element.document || element );
289 this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
290 }
291
292 this.options = $.widget.extend( {},
293 this.options,
294 this._getCreateOptions(),
295 options );
296
297 this._create();
298 this._trigger( "create", null, this._getCreateEventData() );
299 this._init();
300 },
301 _getCreateOptions: $.noop,
302 _getCreateEventData: $.noop,
303 _create: $.noop,
304 _init: $.noop,
305
306 destroy: function() {
307 this._destroy();
308 // we can probably remove the unbind calls in 2.0
309 // all event bindings should go through this._on()
310 this.element
311 .unbind( this.eventNamespace )
312 .removeData( this.widgetFullName )
313 // support: jquery <1.6.3
314 // http://bugs.jquery.com/ticket/9413
315 .removeData( $.camelCase( this.widgetFullName ) );
316 this.widget()
317 .unbind( this.eventNamespace )
318 .removeAttr( "aria-disabled" )
319 .removeClass(
320 this.widgetFullName + "-disabled " +
321 "ui-state-disabled" );
322
323 // clean up events and states
324 this.bindings.unbind( this.eventNamespace );
325 this.hoverable.removeClass( "ui-state-hover" );
326 this.focusable.removeClass( "ui-state-focus" );
327 },
328 _destroy: $.noop,
329
330 widget: function() {
331 return this.element;
332 },
333
334 option: function( key, value ) {
335 var options = key,
336 parts,
337 curOption,
338 i;
339
340 if ( arguments.length === 0 ) {
341 // don't return a reference to the internal hash
342 return $.widget.extend( {}, this.options );
343 }
344
345 if ( typeof key === "string" ) {
346 // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
347 options = {};
348 parts = key.split( "." );
349 key = parts.shift();
350 if ( parts.length ) {
351 curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
352 for ( i = 0; i < parts.length - 1; i++ ) {
353 curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
354 curOption = curOption[ parts[ i ] ];
355 }
356 key = parts.pop();
357 if ( arguments.length === 1 ) {
358 return curOption[ key ] === undefined ? null : curOption[ key ];
359 }
360 curOption[ key ] = value;
361 } else {
362 if ( arguments.length === 1 ) {
363 return this.options[ key ] === undefined ? null : this.options[ key ];
364 }
365 options[ key ] = value;
366 }
367 }
368
369 this._setOptions( options );
370
371 return this;
372 },
373 _setOptions: function( options ) {
374 var key;
375
376 for ( key in options ) {
377 this._setOption( key, options[ key ] );
378 }
379
380 return this;
381 },
382 _setOption: function( key, value ) {
383 this.options[ key ] = value;
384
385 if ( key === "disabled" ) {
386 this.widget()
387 .toggleClass( this.widgetFullName + "-disabled", !!value );
388
389 // If the widget is becoming disabled, then nothing is interactive
390 if ( value ) {
391 this.hoverable.removeClass( "ui-state-hover" );
392 this.focusable.removeClass( "ui-state-focus" );
393 }
394 }
395
396 return this;
397 },
398
399 enable: function() {
400 return this._setOptions({ disabled: false });
401 },
402 disable: function() {
403 return this._setOptions({ disabled: true });
404 },
405
406 _on: function( suppressDisabledCheck, element, handlers ) {
407 var delegateElement,
408 instance = this;
409
410 // no suppressDisabledCheck flag, shuffle arguments
411 if ( typeof suppressDisabledCheck !== "boolean" ) {
412 handlers = element;
413 element = suppressDisabledCheck;
414 suppressDisabledCheck = false;
415 }
416
417 // no element argument, shuffle and use this.element
418 if ( !handlers ) {
419 handlers = element;
420 element = this.element;
421 delegateElement = this.widget();
422 } else {
423 element = delegateElement = $( element );
424 this.bindings = this.bindings.add( element );
425 }
426
427 $.each( handlers, function( event, handler ) {
428 function handlerProxy() {
429 // allow widgets to customize the disabled handling
430 // - disabled as an array instead of boolean
431 // - disabled class as method for disabling individual parts
432 if ( !suppressDisabledCheck &&
433 ( instance.options.disabled === true ||
434 $( this ).hasClass( "ui-state-disabled" ) ) ) {
435 return;
436 }
437 return ( typeof handler === "string" ? instance[ handler ] : handler )
438 .apply( instance, arguments );
439 }
440
441 // copy the guid so direct unbinding works
442 if ( typeof handler !== "string" ) {
443 handlerProxy.guid = handler.guid =
444 handler.guid || handlerProxy.guid || $.guid++;
445 }
446
447 var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
448 eventName = match[1] + instance.eventNamespace,
449 selector = match[2];
450 if ( selector ) {
451 delegateElement.delegate( selector, eventName, handlerProxy );
452 } else {
453 element.bind( eventName, handlerProxy );
454 }
455 });
456 },
457
458 _off: function( element, eventName ) {
459 eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
460 this.eventNamespace;
461 element.unbind( eventName ).undelegate( eventName );
462
463 // Clear the stack to avoid memory leaks (#10056)
464 this.bindings = $( this.bindings.not( element ).get() );
465 this.focusable = $( this.focusable.not( element ).get() );
466 this.hoverable = $( this.hoverable.not( element ).get() );
467 },
468
469 _delay: function( handler, delay ) {
470 function handlerProxy() {
471 return ( typeof handler === "string" ? instance[ handler ] : handler )
472 .apply( instance, arguments );
473 }
474 var instance = this;
475 return setTimeout( handlerProxy, delay || 0 );
476 },
477
478 _hoverable: function( element ) {
479 this.hoverable = this.hoverable.add( element );
480 this._on( element, {
481 mouseenter: function( event ) {
482 $( event.currentTarget ).addClass( "ui-state-hover" );
483 },
484 mouseleave: function( event ) {
485 $( event.currentTarget ).removeClass( "ui-state-hover" );
486 }
487 });
488 },
489
490 _focusable: function( element ) {
491 this.focusable = this.focusable.add( element );
492 this._on( element, {
493 focusin: function( event ) {
494 $( event.currentTarget ).addClass( "ui-state-focus" );
495 },
496 focusout: function( event ) {
497 $( event.currentTarget ).removeClass( "ui-state-focus" );
498 }
499 });
500 },
501
502 _trigger: function( type, event, data ) {
503 var prop, orig,
504 callback = this.options[ type ];
505
506 data = data || {};
507 event = $.Event( event );
508 event.type = ( type === this.widgetEventPrefix ?
509 type :
510 this.widgetEventPrefix + type ).toLowerCase();
511 // the original event may come from any element
512 // so we need to reset the target on the new event
513 event.target = this.element[ 0 ];
514
515 // copy original event properties over to the new event
516 orig = event.originalEvent;
517 if ( orig ) {
518 for ( prop in orig ) {
519 if ( !( prop in event ) ) {
520 event[ prop ] = orig[ prop ];
521 }
522 }
523 }
524
525 this.element.trigger( event, data );
526 return !( $.isFunction( callback ) &&
527 callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
528 event.isDefaultPrevented() );
529 }
530 };
531
532 $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
533 $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
534 if ( typeof options === "string" ) {
535 options = { effect: options };
536 }
537 var hasOptions,
538 effectName = !options ?
539 method :
540 options === true || typeof options === "number" ?
541 defaultEffect :
542 options.effect || defaultEffect;
543 options = options || {};
544 if ( typeof options === "number" ) {
545 options = { duration: options };
546 }
547 hasOptions = !$.isEmptyObject( options );
548 options.complete = callback;
549 if ( options.delay ) {
550 element.delay( options.delay );
551 }
552 if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
553 element[ method ]( options );
554 } else if ( effectName !== method && element[ effectName ] ) {
555 element[ effectName ]( options.duration, options.easing, callback );
556 } else {
557 element.queue(function( next ) {
558 $( this )[ method ]();
559 if ( callback ) {
560 callback.call( element[ 0 ] );
561 }
562 next();
563 });
564 }
565 };
566 });
567
568 var widget = $.widget;
569
570
571
572 }));
573