1
0
mirror of synced 2025-02-18 13:03:14 +03:00
select2/src/js/jquery.select2.js

58 lines
1.4 KiB
JavaScript
Raw Normal View History

define([
'jquery',
'require',
'./select2/core',
'./select2/defaults'
], function ($, require, Select2, Defaults) {
// Force jQuery.mousewheel to be loaded if it hasn't already
require('jquery.mousewheel');
if ($.fn.select2 == null) {
// All methods that should return the element
var thisMethods = ['open', 'close', 'destroy'];
$.fn.select2 = function (options) {
options = options || {};
if (typeof options === 'object') {
this.each(function () {
var instanceOptions = $.extend({}, options, true);
var instance = new Select2($(this), instanceOptions);
});
return this;
} else if (typeof options === 'string') {
var instance = this.data('select2');
if (instance == null && window.console && console.error) {
console.error(
'The select2(\'' + options + '\') method was called on an ' +
'element that is not using Select2.'
);
}
2014-10-20 20:29:23 -04:00
var args = Array.prototype.slice.call(arguments, 1);
var ret = instance[options](args);
// Check if we should be returning `this`
if ($.inArray(options, thisMethods) > -1) {
return this;
}
return ret;
} else {
throw new Error('Invalid arguments for Select2: ' + options);
}
};
}
if ($.fn.select2.defaults == null) {
$.fn.select2.defaults = Defaults;
}
return Select2;
});