Fix undefined variable, rebuild dist
This commit is contained in:
parent
f0b819336a
commit
26986cacb6
272
dist/js/select2.amd.full.js
vendored
272
dist/js/select2.amd.full.js
vendored
@ -2,7 +2,7 @@ define('select2/utils',[], function () {
|
|||||||
var Utils = {};
|
var Utils = {};
|
||||||
|
|
||||||
Utils.Extend = function (ChildClass, SuperClass) {
|
Utils.Extend = function (ChildClass, SuperClass) {
|
||||||
var __hasProp = {}.hasOwnProperty
|
var __hasProp = {}.hasOwnProperty;
|
||||||
|
|
||||||
function BaseConstructor () {
|
function BaseConstructor () {
|
||||||
this.constructor = ChildClass;
|
this.constructor = ChildClass;
|
||||||
@ -29,7 +29,7 @@ define('select2/utils',[], function () {
|
|||||||
for (var methodName in proto) {
|
for (var methodName in proto) {
|
||||||
var m = proto[methodName];
|
var m = proto[methodName];
|
||||||
|
|
||||||
if (typeof m !== "function") {
|
if (typeof m !== 'function') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,38 +68,39 @@ define('select2/utils',[], function () {
|
|||||||
DecoratedClass.prototype = new ctr();
|
DecoratedClass.prototype = new ctr();
|
||||||
|
|
||||||
for (var m = 0; m < superMethods.length; m++) {
|
for (var m = 0; m < superMethods.length; m++) {
|
||||||
var methodName = superMethods[m];
|
var superMethod = superMethods[m];
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = SuperClass.prototype[methodName];
|
DecoratedClass.prototype[superMethod] =
|
||||||
|
SuperClass.prototype[superMethod];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var m = 0; m < decoratedMethods.length; m++) {
|
var calledMethod = function (methodName) {
|
||||||
var methodName = decoratedMethods[m];
|
// Stub out the original method if it's not decorating an actual method
|
||||||
|
var originalMethod = function () {};
|
||||||
|
|
||||||
function calledMethod (methodName) {
|
if (methodName in DecoratedClass.prototype) {
|
||||||
// Stub out the original method if it's not decorating an actual method
|
originalMethod = DecoratedClass.prototype[methodName];
|
||||||
var originalMethod = function () {};
|
|
||||||
|
|
||||||
if (methodName in DecoratedClass.prototype) {
|
|
||||||
originalMethod = DecoratedClass.prototype[methodName];
|
|
||||||
}
|
|
||||||
|
|
||||||
var decoratedMethod = DecoratorClass.prototype[methodName];
|
|
||||||
|
|
||||||
return function () {
|
|
||||||
var unshift = Array.prototype.unshift;
|
|
||||||
|
|
||||||
unshift.call(arguments, originalMethod);
|
|
||||||
|
|
||||||
return decoratedMethod.apply(this, arguments);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = calledMethod(methodName);
|
var decoratedMethod = DecoratorClass.prototype[methodName];
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
var unshift = Array.prototype.unshift;
|
||||||
|
|
||||||
|
unshift.call(arguments, originalMethod);
|
||||||
|
|
||||||
|
return decoratedMethod.apply(this, arguments);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var d = 0; d < decoratedMethods.length; d++) {
|
||||||
|
var decoratedMethod = decoratedMethods[d];
|
||||||
|
|
||||||
|
DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DecoratedClass;
|
return DecoratedClass;
|
||||||
}
|
};
|
||||||
|
|
||||||
var Observable = function () {
|
var Observable = function () {
|
||||||
this.listeners = {};
|
this.listeners = {};
|
||||||
@ -120,8 +121,8 @@ define('select2/utils',[], function () {
|
|||||||
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("*" in this.listeners) {
|
if ('*' in this.listeners) {
|
||||||
this.invoke(this.listeners["*"], arguments);
|
this.invoke(this.listeners['*'], arguments);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -146,12 +147,12 @@ define('select2/data/base',[
|
|||||||
Utils.Extend(BaseAdapter, Utils.Observable);
|
Utils.Extend(BaseAdapter, Utils.Observable);
|
||||||
|
|
||||||
BaseAdapter.prototype.current = function (callback) {
|
BaseAdapter.prototype.current = function (callback) {
|
||||||
throw new Error("The `current` method must be defined in child classes.");
|
throw new Error('The `current` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
BaseAdapter.prototype.query = function (params, callback) {
|
BaseAdapter.prototype.query = function (params, callback) {
|
||||||
throw new Error("The `query` method must be defined in child classes.");
|
throw new Error('The `query` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
return BaseAdapter;
|
return BaseAdapter;
|
||||||
});
|
});
|
||||||
@ -173,7 +174,7 @@ define('select2/data/select',[
|
|||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find(":selected").each(function () {
|
this.$element.find(':selected').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -187,7 +188,7 @@ define('select2/data/select',[
|
|||||||
SelectAdapter.prototype.select = function (data) {
|
SelectAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (this.$element.prop("multiple")) {
|
if (this.$element.prop('multiple')) {
|
||||||
this.current(function (currentData) {
|
this.current(function (currentData) {
|
||||||
var val = [];
|
var val = [];
|
||||||
|
|
||||||
@ -203,20 +204,20 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var val = data.id;
|
var val = data.id;
|
||||||
|
|
||||||
this.$element.val(val);
|
this.$element.val(val);
|
||||||
this.$element.trigger("change");
|
this.$element.trigger('change');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.unselect = function (data) {
|
SelectAdapter.prototype.unselect = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.$element.prop("multiple")) {
|
if (!this.$element.prop('multiple')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,27 +233,27 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.bind = function (container, $container) {
|
SelectAdapter.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
container.on("select", function (params) {
|
container.on('select', function (params) {
|
||||||
self.select(params.data);
|
self.select(params.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("unselect", function (params) {
|
container.on('unselect', function (params) {
|
||||||
self.unselect(params.data);
|
self.unselect(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.query = function (params, callback) {
|
SelectAdapter.prototype.query = function (params, callback) {
|
||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -266,7 +267,7 @@ define('select2/data/select',[
|
|||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.item = function ($option) {
|
SelectAdapter.prototype.item = function ($option) {
|
||||||
var data = $option.data("data");
|
var data = $option.data('data');
|
||||||
|
|
||||||
// If the data has already be generated, use it
|
// If the data has already be generated, use it
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@ -275,14 +276,14 @@ define('select2/data/select',[
|
|||||||
text: $option.html()
|
text: $option.html()
|
||||||
};
|
};
|
||||||
|
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.matches = function (params, data) {
|
SelectAdapter.prototype.matches = function (params, data) {
|
||||||
if ($.trim(params.term) == "") {
|
if ($.trim(params.term) === '') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,7 +292,7 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
};
|
||||||
|
|
||||||
return SelectAdapter;
|
return SelectAdapter;
|
||||||
});
|
});
|
||||||
@ -342,16 +343,16 @@ define('select2/results',[
|
|||||||
this.data.current(function (selected) {
|
this.data.current(function (selected) {
|
||||||
selected = $.map(selected, function (s) { return s.id; });
|
selected = $.map(selected, function (s) { return s.id; });
|
||||||
|
|
||||||
self.$results.find(".option.selected").removeClass("selected");
|
self.$results.find('.option.selected').removeClass('selected');
|
||||||
|
|
||||||
var $options = self.$results.find(".option");
|
var $options = self.$results.find('.option');
|
||||||
|
|
||||||
$options.each(function () {
|
$options.each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var item = $option.data("data");
|
var item = $option.data('data');
|
||||||
|
|
||||||
if (selected.indexOf(item.id) > -1) {
|
if (selected.indexOf(item.id) > -1) {
|
||||||
$option.addClass("selected");
|
$option.addClass('selected');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -363,43 +364,43 @@ define('select2/results',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
$option.html(data.text);
|
$option.html(data.text);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
Results.prototype.bind = function (container, $container) {
|
Results.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.on("results:all", function (data) {
|
this.on('results:all', function (data) {
|
||||||
self.clear();
|
self.clear();
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("results:append", function (data) {
|
this.on('results:append', function (data) {
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
})
|
});
|
||||||
|
|
||||||
this.$results.on("mouseup", ".option", function (evt) {
|
this.$results.on('mouseup', '.option', function (evt) {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
var data = $this.data("data");
|
var data = $this.data('data');
|
||||||
if ($this.hasClass("selected")) {
|
if ($this.hasClass('selected')) {
|
||||||
self.trigger("unselected", {
|
self.trigger('unselected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
})
|
});
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("selected", {
|
self.trigger('selected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
@ -407,19 +408,19 @@ define('select2/results',[
|
|||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseenter", ".option", function (evt) {
|
this.$results.on('mouseenter', '.option', function (evt) {
|
||||||
self.$results.find(".option.highlighted").removeClass("highlighted");
|
self.$results.find('.option.highlighted').removeClass('highlighted');
|
||||||
$(this).addClass("highlighted");
|
$(this).addClass('highlighted');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseleave", ".option", function (evt) {
|
this.$results.on('mouseleave', '.option', function (evt) {
|
||||||
$(this).removeClass("highlighted");
|
$(this).removeClass('highlighted');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return Results;
|
return Results;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/dropdown',[
|
define('select2/dropdown',[
|
||||||
'./utils'
|
'./utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -437,11 +438,11 @@ define('select2/dropdown',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
return $dropdown;
|
return $dropdown;
|
||||||
}
|
};
|
||||||
|
|
||||||
return Dropdown;
|
return Dropdown;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/selection/single',[
|
define('select2/selection/single',[
|
||||||
'../utils'
|
'../utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -464,7 +465,7 @@ define('select2/selection/single',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.bind = function (container, $container) {
|
SingleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -475,26 +476,26 @@ define('select2/selection/single',[
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.clear = function () {
|
SingleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.display = function (data) {
|
SingleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.update = function (data) {
|
SingleSelection.prototype.update = function (data) {
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
this.clear();
|
this.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -503,8 +504,8 @@ define('select2/selection/single',[
|
|||||||
|
|
||||||
var formatted = this.display(selection);
|
var formatted = this.display(selection);
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").html(formatted);
|
this.$selection.find('.rendered-selection').html(formatted);
|
||||||
}
|
};
|
||||||
|
|
||||||
return SingleSelection;
|
return SingleSelection;
|
||||||
});
|
});
|
||||||
@ -531,34 +532,34 @@ define('select2/selection/multiple',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.bind = function (container, $container) {
|
MultipleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$selection.on('click', function (evt) {
|
this.$selection.on('click', function (evt) {
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.clear = function () {
|
MultipleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.display = function (data) {
|
MultipleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.update = function (data) {
|
MultipleSelection.prototype.update = function (data) {
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,20 +573,20 @@ define('select2/selection/multiple',[
|
|||||||
var $selection = $('<ul class="choice"></ul>');
|
var $selection = $('<ul class="choice"></ul>');
|
||||||
|
|
||||||
$selection.text(formatted);
|
$selection.text(formatted);
|
||||||
$selection.data("data", data);
|
$selection.data('data', data);
|
||||||
|
|
||||||
$selections.push($selection);
|
$selections.push($selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").append($selections);
|
this.$selection.find('.rendered-selection').append($selections);
|
||||||
}
|
};
|
||||||
|
|
||||||
return MultipleSelection;
|
return MultipleSelection;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/array',[
|
define('select2/data/array',[
|
||||||
"./select",
|
'./select',
|
||||||
"../utils"
|
'../utils'
|
||||||
], function (SelectAdapter, Utils) {
|
], function (SelectAdapter, Utils) {
|
||||||
function ArrayAdapter ($element, options) {
|
function ArrayAdapter ($element, options) {
|
||||||
this.data = options.options.data;
|
this.data = options.options.data;
|
||||||
@ -598,7 +599,7 @@ define('select2/data/array',[
|
|||||||
ArrayAdapter.prototype.select = function (data) {
|
ArrayAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
|
|
||||||
@ -612,17 +613,17 @@ define('select2/data/array',[
|
|||||||
this.$element.append($option);
|
this.$element.append($option);
|
||||||
|
|
||||||
ArrayAdapter.__super__.select.call(this, data);
|
ArrayAdapter.__super__.select.call(this, data);
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.option = function (data) {
|
ArrayAdapter.prototype.option = function (data) {
|
||||||
var $option = $("<option></option>");
|
var $option = $('<option></option>');
|
||||||
|
|
||||||
$option.text(data.text);
|
$option.text(data.text);
|
||||||
$option.val(data.id);
|
$option.val(data.id);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.query = function (params, callback) {
|
ArrayAdapter.prototype.query = function (params, callback) {
|
||||||
var matches = [];
|
var matches = [];
|
||||||
@ -637,22 +638,22 @@ define('select2/data/array',[
|
|||||||
});
|
});
|
||||||
|
|
||||||
callback(matches);
|
callback(matches);
|
||||||
}
|
};
|
||||||
|
|
||||||
return ArrayAdapter;
|
return ArrayAdapter;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/ajax',[
|
define('select2/data/ajax',[
|
||||||
"./array",
|
'./array',
|
||||||
"../utils",
|
'../utils',
|
||||||
"jquery"
|
'jquery'
|
||||||
], function (ArrayAdapter, Utils, $) {
|
], function (ArrayAdapter, Utils, $) {
|
||||||
function AjaxAdapter ($element, options) {
|
function AjaxAdapter ($element, options) {
|
||||||
this.ajaxOptions = options.options.ajax;
|
this.ajaxOptions = options.options.ajax;
|
||||||
|
|
||||||
this.processResults = this.ajaxOptions.processResults ||
|
this.processResults = this.ajaxOptions.processResults ||
|
||||||
function (results) {
|
function (results) {
|
||||||
return results
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
||||||
@ -665,14 +666,14 @@ define('select2/data/ajax',[
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var options = $.extend({
|
var options = $.extend({
|
||||||
type: "GET",
|
type: 'GET',
|
||||||
}, this.ajaxOptions);
|
}, this.ajaxOptions);
|
||||||
|
|
||||||
if (typeof options.url === "function") {
|
if (typeof options.url === 'function') {
|
||||||
options.url = options.url(params);
|
options.url = options.url(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof options.data === "function") {
|
if (typeof options.data === 'function') {
|
||||||
options.data = options.data(params);
|
options.data = options.data(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,8 +682,6 @@ define('select2/data/ajax',[
|
|||||||
$request.success(function (data) {
|
$request.success(function (data) {
|
||||||
var results = self.processResults(data);
|
var results = self.processResults(data);
|
||||||
|
|
||||||
console.log(results)
|
|
||||||
|
|
||||||
callback(results);
|
callback(results);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -719,8 +718,8 @@ define('select2/options',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Options;
|
return Options;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/core',[
|
define('select2/core',[
|
||||||
'jquery',
|
'jquery',
|
||||||
'./options',
|
'./options',
|
||||||
@ -731,7 +730,7 @@ define('select2/core',[
|
|||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
options.multiple = options.multiple || $element.prop("multiple");
|
options.multiple = options.multiple || $element.prop('multiple');
|
||||||
|
|
||||||
this.options = new Options(options);
|
this.options = new Options(options);
|
||||||
|
|
||||||
@ -750,21 +749,22 @@ define('select2/core',[
|
|||||||
|
|
||||||
this.selection = new this.options.selectionAdapter($element, this.options);
|
this.selection = new this.options.selectionAdapter($element, this.options);
|
||||||
|
|
||||||
var $selectionContainer = $container.find(".selection");
|
var $selectionContainer = $container.find('.selection');
|
||||||
var $selection = this.selection.render();
|
var $selection = this.selection.render();
|
||||||
|
|
||||||
$selectionContainer.append($selection);
|
$selectionContainer.append($selection);
|
||||||
|
|
||||||
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
||||||
|
|
||||||
var $dropdownContainer = $container.find(".dropdown");
|
var $dropdownContainer = $container.find('.dropdown');
|
||||||
var $dropdown = this.dropdown.render();
|
var $dropdown = this.dropdown.render();
|
||||||
|
|
||||||
$dropdownContainer.append($dropdown);
|
$dropdownContainer.append($dropdown);
|
||||||
|
|
||||||
this.results = new this.options.resultsAdapter($element, this.options, this.data);
|
this.results = new this.options.resultsAdapter(
|
||||||
|
$element, this.options, this.data);
|
||||||
|
|
||||||
var $resultsContainer = $dropdown.find(".results");
|
var $resultsContainer = $dropdown.find('.results');
|
||||||
var $results = this.results.render();
|
var $results = this.results.render();
|
||||||
|
|
||||||
$resultsContainer.append($results);
|
$resultsContainer.append($results);
|
||||||
@ -777,48 +777,48 @@ define('select2/core',[
|
|||||||
this.selection.bind(this, $container);
|
this.selection.bind(this, $container);
|
||||||
this.results.bind(this, $container);
|
this.results.bind(this, $container);
|
||||||
|
|
||||||
this.$element.on("change", function () {
|
this.$element.on('change', function () {
|
||||||
self.data.current(function (data) {
|
self.data.current(function (data) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.selection.on("toggle", function () {
|
this.selection.on('toggle', function () {
|
||||||
self.toggleDropdown();
|
self.toggleDropdown();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("selected", function (params) {
|
this.results.on('selected', function (params) {
|
||||||
self.trigger("select", params);
|
self.trigger('select', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("unselected", function (params) {
|
this.results.on('unselected', function (params) {
|
||||||
self.trigger("unselect", params);
|
self.trigger('unselect', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("open", function () {
|
this.on('open', function () {
|
||||||
$container.addClass("open");
|
$container.addClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("close", function () {
|
this.on('close', function () {
|
||||||
$container.removeClass("open");
|
$container.removeClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set the initial state
|
// Set the initial state
|
||||||
|
|
||||||
this.data.current(function (initialData) {
|
this.data.current(function (initialData) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: initialData
|
data: initialData
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.data.query({}, function (data) {
|
this.data.query({}, function (data) {
|
||||||
self.results.trigger("results:all", data);
|
self.results.trigger('results:all', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Hide the original select
|
// Hide the original select
|
||||||
@ -829,12 +829,12 @@ define('select2/core',[
|
|||||||
Utils.Extend(Select2, Utils.Observable);
|
Utils.Extend(Select2, Utils.Observable);
|
||||||
|
|
||||||
Select2.prototype.toggleDropdown = function () {
|
Select2.prototype.toggleDropdown = function () {
|
||||||
if (this.$container.hasClass("open")) {
|
if (this.$container.hasClass('open')) {
|
||||||
this.trigger("close");
|
this.trigger('close');
|
||||||
} else {
|
} else {
|
||||||
this.trigger("open");
|
this.trigger('open');
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Select2.prototype.render = function () {
|
Select2.prototype.render = function () {
|
||||||
var $container = $(
|
var $container = $(
|
||||||
|
272
dist/js/select2.amd.js
vendored
272
dist/js/select2.amd.js
vendored
@ -2,7 +2,7 @@ define('select2/utils',[], function () {
|
|||||||
var Utils = {};
|
var Utils = {};
|
||||||
|
|
||||||
Utils.Extend = function (ChildClass, SuperClass) {
|
Utils.Extend = function (ChildClass, SuperClass) {
|
||||||
var __hasProp = {}.hasOwnProperty
|
var __hasProp = {}.hasOwnProperty;
|
||||||
|
|
||||||
function BaseConstructor () {
|
function BaseConstructor () {
|
||||||
this.constructor = ChildClass;
|
this.constructor = ChildClass;
|
||||||
@ -29,7 +29,7 @@ define('select2/utils',[], function () {
|
|||||||
for (var methodName in proto) {
|
for (var methodName in proto) {
|
||||||
var m = proto[methodName];
|
var m = proto[methodName];
|
||||||
|
|
||||||
if (typeof m !== "function") {
|
if (typeof m !== 'function') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,38 +68,39 @@ define('select2/utils',[], function () {
|
|||||||
DecoratedClass.prototype = new ctr();
|
DecoratedClass.prototype = new ctr();
|
||||||
|
|
||||||
for (var m = 0; m < superMethods.length; m++) {
|
for (var m = 0; m < superMethods.length; m++) {
|
||||||
var methodName = superMethods[m];
|
var superMethod = superMethods[m];
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = SuperClass.prototype[methodName];
|
DecoratedClass.prototype[superMethod] =
|
||||||
|
SuperClass.prototype[superMethod];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var m = 0; m < decoratedMethods.length; m++) {
|
var calledMethod = function (methodName) {
|
||||||
var methodName = decoratedMethods[m];
|
// Stub out the original method if it's not decorating an actual method
|
||||||
|
var originalMethod = function () {};
|
||||||
|
|
||||||
function calledMethod (methodName) {
|
if (methodName in DecoratedClass.prototype) {
|
||||||
// Stub out the original method if it's not decorating an actual method
|
originalMethod = DecoratedClass.prototype[methodName];
|
||||||
var originalMethod = function () {};
|
|
||||||
|
|
||||||
if (methodName in DecoratedClass.prototype) {
|
|
||||||
originalMethod = DecoratedClass.prototype[methodName];
|
|
||||||
}
|
|
||||||
|
|
||||||
var decoratedMethod = DecoratorClass.prototype[methodName];
|
|
||||||
|
|
||||||
return function () {
|
|
||||||
var unshift = Array.prototype.unshift;
|
|
||||||
|
|
||||||
unshift.call(arguments, originalMethod);
|
|
||||||
|
|
||||||
return decoratedMethod.apply(this, arguments);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = calledMethod(methodName);
|
var decoratedMethod = DecoratorClass.prototype[methodName];
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
var unshift = Array.prototype.unshift;
|
||||||
|
|
||||||
|
unshift.call(arguments, originalMethod);
|
||||||
|
|
||||||
|
return decoratedMethod.apply(this, arguments);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var d = 0; d < decoratedMethods.length; d++) {
|
||||||
|
var decoratedMethod = decoratedMethods[d];
|
||||||
|
|
||||||
|
DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DecoratedClass;
|
return DecoratedClass;
|
||||||
}
|
};
|
||||||
|
|
||||||
var Observable = function () {
|
var Observable = function () {
|
||||||
this.listeners = {};
|
this.listeners = {};
|
||||||
@ -120,8 +121,8 @@ define('select2/utils',[], function () {
|
|||||||
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("*" in this.listeners) {
|
if ('*' in this.listeners) {
|
||||||
this.invoke(this.listeners["*"], arguments);
|
this.invoke(this.listeners['*'], arguments);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -146,12 +147,12 @@ define('select2/data/base',[
|
|||||||
Utils.Extend(BaseAdapter, Utils.Observable);
|
Utils.Extend(BaseAdapter, Utils.Observable);
|
||||||
|
|
||||||
BaseAdapter.prototype.current = function (callback) {
|
BaseAdapter.prototype.current = function (callback) {
|
||||||
throw new Error("The `current` method must be defined in child classes.");
|
throw new Error('The `current` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
BaseAdapter.prototype.query = function (params, callback) {
|
BaseAdapter.prototype.query = function (params, callback) {
|
||||||
throw new Error("The `query` method must be defined in child classes.");
|
throw new Error('The `query` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
return BaseAdapter;
|
return BaseAdapter;
|
||||||
});
|
});
|
||||||
@ -173,7 +174,7 @@ define('select2/data/select',[
|
|||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find(":selected").each(function () {
|
this.$element.find(':selected').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -187,7 +188,7 @@ define('select2/data/select',[
|
|||||||
SelectAdapter.prototype.select = function (data) {
|
SelectAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (this.$element.prop("multiple")) {
|
if (this.$element.prop('multiple')) {
|
||||||
this.current(function (currentData) {
|
this.current(function (currentData) {
|
||||||
var val = [];
|
var val = [];
|
||||||
|
|
||||||
@ -203,20 +204,20 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var val = data.id;
|
var val = data.id;
|
||||||
|
|
||||||
this.$element.val(val);
|
this.$element.val(val);
|
||||||
this.$element.trigger("change");
|
this.$element.trigger('change');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.unselect = function (data) {
|
SelectAdapter.prototype.unselect = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.$element.prop("multiple")) {
|
if (!this.$element.prop('multiple')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,27 +233,27 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.bind = function (container, $container) {
|
SelectAdapter.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
container.on("select", function (params) {
|
container.on('select', function (params) {
|
||||||
self.select(params.data);
|
self.select(params.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("unselect", function (params) {
|
container.on('unselect', function (params) {
|
||||||
self.unselect(params.data);
|
self.unselect(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.query = function (params, callback) {
|
SelectAdapter.prototype.query = function (params, callback) {
|
||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -266,7 +267,7 @@ define('select2/data/select',[
|
|||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.item = function ($option) {
|
SelectAdapter.prototype.item = function ($option) {
|
||||||
var data = $option.data("data");
|
var data = $option.data('data');
|
||||||
|
|
||||||
// If the data has already be generated, use it
|
// If the data has already be generated, use it
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@ -275,14 +276,14 @@ define('select2/data/select',[
|
|||||||
text: $option.html()
|
text: $option.html()
|
||||||
};
|
};
|
||||||
|
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.matches = function (params, data) {
|
SelectAdapter.prototype.matches = function (params, data) {
|
||||||
if ($.trim(params.term) == "") {
|
if ($.trim(params.term) === '') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,7 +292,7 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
};
|
||||||
|
|
||||||
return SelectAdapter;
|
return SelectAdapter;
|
||||||
});
|
});
|
||||||
@ -342,16 +343,16 @@ define('select2/results',[
|
|||||||
this.data.current(function (selected) {
|
this.data.current(function (selected) {
|
||||||
selected = $.map(selected, function (s) { return s.id; });
|
selected = $.map(selected, function (s) { return s.id; });
|
||||||
|
|
||||||
self.$results.find(".option.selected").removeClass("selected");
|
self.$results.find('.option.selected').removeClass('selected');
|
||||||
|
|
||||||
var $options = self.$results.find(".option");
|
var $options = self.$results.find('.option');
|
||||||
|
|
||||||
$options.each(function () {
|
$options.each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var item = $option.data("data");
|
var item = $option.data('data');
|
||||||
|
|
||||||
if (selected.indexOf(item.id) > -1) {
|
if (selected.indexOf(item.id) > -1) {
|
||||||
$option.addClass("selected");
|
$option.addClass('selected');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -363,43 +364,43 @@ define('select2/results',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
$option.html(data.text);
|
$option.html(data.text);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
Results.prototype.bind = function (container, $container) {
|
Results.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.on("results:all", function (data) {
|
this.on('results:all', function (data) {
|
||||||
self.clear();
|
self.clear();
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("results:append", function (data) {
|
this.on('results:append', function (data) {
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
})
|
});
|
||||||
|
|
||||||
this.$results.on("mouseup", ".option", function (evt) {
|
this.$results.on('mouseup', '.option', function (evt) {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
var data = $this.data("data");
|
var data = $this.data('data');
|
||||||
if ($this.hasClass("selected")) {
|
if ($this.hasClass('selected')) {
|
||||||
self.trigger("unselected", {
|
self.trigger('unselected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
})
|
});
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("selected", {
|
self.trigger('selected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
@ -407,19 +408,19 @@ define('select2/results',[
|
|||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseenter", ".option", function (evt) {
|
this.$results.on('mouseenter', '.option', function (evt) {
|
||||||
self.$results.find(".option.highlighted").removeClass("highlighted");
|
self.$results.find('.option.highlighted').removeClass('highlighted');
|
||||||
$(this).addClass("highlighted");
|
$(this).addClass('highlighted');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseleave", ".option", function (evt) {
|
this.$results.on('mouseleave', '.option', function (evt) {
|
||||||
$(this).removeClass("highlighted");
|
$(this).removeClass('highlighted');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return Results;
|
return Results;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/dropdown',[
|
define('select2/dropdown',[
|
||||||
'./utils'
|
'./utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -437,11 +438,11 @@ define('select2/dropdown',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
return $dropdown;
|
return $dropdown;
|
||||||
}
|
};
|
||||||
|
|
||||||
return Dropdown;
|
return Dropdown;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/selection/single',[
|
define('select2/selection/single',[
|
||||||
'../utils'
|
'../utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -464,7 +465,7 @@ define('select2/selection/single',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.bind = function (container, $container) {
|
SingleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -475,26 +476,26 @@ define('select2/selection/single',[
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.clear = function () {
|
SingleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.display = function (data) {
|
SingleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.update = function (data) {
|
SingleSelection.prototype.update = function (data) {
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
this.clear();
|
this.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -503,8 +504,8 @@ define('select2/selection/single',[
|
|||||||
|
|
||||||
var formatted = this.display(selection);
|
var formatted = this.display(selection);
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").html(formatted);
|
this.$selection.find('.rendered-selection').html(formatted);
|
||||||
}
|
};
|
||||||
|
|
||||||
return SingleSelection;
|
return SingleSelection;
|
||||||
});
|
});
|
||||||
@ -531,34 +532,34 @@ define('select2/selection/multiple',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.bind = function (container, $container) {
|
MultipleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$selection.on('click', function (evt) {
|
this.$selection.on('click', function (evt) {
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.clear = function () {
|
MultipleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.display = function (data) {
|
MultipleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.update = function (data) {
|
MultipleSelection.prototype.update = function (data) {
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,20 +573,20 @@ define('select2/selection/multiple',[
|
|||||||
var $selection = $('<ul class="choice"></ul>');
|
var $selection = $('<ul class="choice"></ul>');
|
||||||
|
|
||||||
$selection.text(formatted);
|
$selection.text(formatted);
|
||||||
$selection.data("data", data);
|
$selection.data('data', data);
|
||||||
|
|
||||||
$selections.push($selection);
|
$selections.push($selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").append($selections);
|
this.$selection.find('.rendered-selection').append($selections);
|
||||||
}
|
};
|
||||||
|
|
||||||
return MultipleSelection;
|
return MultipleSelection;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/array',[
|
define('select2/data/array',[
|
||||||
"./select",
|
'./select',
|
||||||
"../utils"
|
'../utils'
|
||||||
], function (SelectAdapter, Utils) {
|
], function (SelectAdapter, Utils) {
|
||||||
function ArrayAdapter ($element, options) {
|
function ArrayAdapter ($element, options) {
|
||||||
this.data = options.options.data;
|
this.data = options.options.data;
|
||||||
@ -598,7 +599,7 @@ define('select2/data/array',[
|
|||||||
ArrayAdapter.prototype.select = function (data) {
|
ArrayAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
|
|
||||||
@ -612,17 +613,17 @@ define('select2/data/array',[
|
|||||||
this.$element.append($option);
|
this.$element.append($option);
|
||||||
|
|
||||||
ArrayAdapter.__super__.select.call(this, data);
|
ArrayAdapter.__super__.select.call(this, data);
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.option = function (data) {
|
ArrayAdapter.prototype.option = function (data) {
|
||||||
var $option = $("<option></option>");
|
var $option = $('<option></option>');
|
||||||
|
|
||||||
$option.text(data.text);
|
$option.text(data.text);
|
||||||
$option.val(data.id);
|
$option.val(data.id);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.query = function (params, callback) {
|
ArrayAdapter.prototype.query = function (params, callback) {
|
||||||
var matches = [];
|
var matches = [];
|
||||||
@ -637,22 +638,22 @@ define('select2/data/array',[
|
|||||||
});
|
});
|
||||||
|
|
||||||
callback(matches);
|
callback(matches);
|
||||||
}
|
};
|
||||||
|
|
||||||
return ArrayAdapter;
|
return ArrayAdapter;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/ajax',[
|
define('select2/data/ajax',[
|
||||||
"./array",
|
'./array',
|
||||||
"../utils",
|
'../utils',
|
||||||
"jquery"
|
'jquery'
|
||||||
], function (ArrayAdapter, Utils, $) {
|
], function (ArrayAdapter, Utils, $) {
|
||||||
function AjaxAdapter ($element, options) {
|
function AjaxAdapter ($element, options) {
|
||||||
this.ajaxOptions = options.options.ajax;
|
this.ajaxOptions = options.options.ajax;
|
||||||
|
|
||||||
this.processResults = this.ajaxOptions.processResults ||
|
this.processResults = this.ajaxOptions.processResults ||
|
||||||
function (results) {
|
function (results) {
|
||||||
return results
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
||||||
@ -665,14 +666,14 @@ define('select2/data/ajax',[
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var options = $.extend({
|
var options = $.extend({
|
||||||
type: "GET",
|
type: 'GET',
|
||||||
}, this.ajaxOptions);
|
}, this.ajaxOptions);
|
||||||
|
|
||||||
if (typeof options.url === "function") {
|
if (typeof options.url === 'function') {
|
||||||
options.url = options.url(params);
|
options.url = options.url(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof options.data === "function") {
|
if (typeof options.data === 'function') {
|
||||||
options.data = options.data(params);
|
options.data = options.data(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,8 +682,6 @@ define('select2/data/ajax',[
|
|||||||
$request.success(function (data) {
|
$request.success(function (data) {
|
||||||
var results = self.processResults(data);
|
var results = self.processResults(data);
|
||||||
|
|
||||||
console.log(results)
|
|
||||||
|
|
||||||
callback(results);
|
callback(results);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -719,8 +718,8 @@ define('select2/options',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Options;
|
return Options;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/core',[
|
define('select2/core',[
|
||||||
'jquery',
|
'jquery',
|
||||||
'./options',
|
'./options',
|
||||||
@ -731,7 +730,7 @@ define('select2/core',[
|
|||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
options.multiple = options.multiple || $element.prop("multiple");
|
options.multiple = options.multiple || $element.prop('multiple');
|
||||||
|
|
||||||
this.options = new Options(options);
|
this.options = new Options(options);
|
||||||
|
|
||||||
@ -750,21 +749,22 @@ define('select2/core',[
|
|||||||
|
|
||||||
this.selection = new this.options.selectionAdapter($element, this.options);
|
this.selection = new this.options.selectionAdapter($element, this.options);
|
||||||
|
|
||||||
var $selectionContainer = $container.find(".selection");
|
var $selectionContainer = $container.find('.selection');
|
||||||
var $selection = this.selection.render();
|
var $selection = this.selection.render();
|
||||||
|
|
||||||
$selectionContainer.append($selection);
|
$selectionContainer.append($selection);
|
||||||
|
|
||||||
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
||||||
|
|
||||||
var $dropdownContainer = $container.find(".dropdown");
|
var $dropdownContainer = $container.find('.dropdown');
|
||||||
var $dropdown = this.dropdown.render();
|
var $dropdown = this.dropdown.render();
|
||||||
|
|
||||||
$dropdownContainer.append($dropdown);
|
$dropdownContainer.append($dropdown);
|
||||||
|
|
||||||
this.results = new this.options.resultsAdapter($element, this.options, this.data);
|
this.results = new this.options.resultsAdapter(
|
||||||
|
$element, this.options, this.data);
|
||||||
|
|
||||||
var $resultsContainer = $dropdown.find(".results");
|
var $resultsContainer = $dropdown.find('.results');
|
||||||
var $results = this.results.render();
|
var $results = this.results.render();
|
||||||
|
|
||||||
$resultsContainer.append($results);
|
$resultsContainer.append($results);
|
||||||
@ -777,48 +777,48 @@ define('select2/core',[
|
|||||||
this.selection.bind(this, $container);
|
this.selection.bind(this, $container);
|
||||||
this.results.bind(this, $container);
|
this.results.bind(this, $container);
|
||||||
|
|
||||||
this.$element.on("change", function () {
|
this.$element.on('change', function () {
|
||||||
self.data.current(function (data) {
|
self.data.current(function (data) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.selection.on("toggle", function () {
|
this.selection.on('toggle', function () {
|
||||||
self.toggleDropdown();
|
self.toggleDropdown();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("selected", function (params) {
|
this.results.on('selected', function (params) {
|
||||||
self.trigger("select", params);
|
self.trigger('select', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("unselected", function (params) {
|
this.results.on('unselected', function (params) {
|
||||||
self.trigger("unselect", params);
|
self.trigger('unselect', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("open", function () {
|
this.on('open', function () {
|
||||||
$container.addClass("open");
|
$container.addClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("close", function () {
|
this.on('close', function () {
|
||||||
$container.removeClass("open");
|
$container.removeClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set the initial state
|
// Set the initial state
|
||||||
|
|
||||||
this.data.current(function (initialData) {
|
this.data.current(function (initialData) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: initialData
|
data: initialData
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.data.query({}, function (data) {
|
this.data.query({}, function (data) {
|
||||||
self.results.trigger("results:all", data);
|
self.results.trigger('results:all', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Hide the original select
|
// Hide the original select
|
||||||
@ -829,12 +829,12 @@ define('select2/core',[
|
|||||||
Utils.Extend(Select2, Utils.Observable);
|
Utils.Extend(Select2, Utils.Observable);
|
||||||
|
|
||||||
Select2.prototype.toggleDropdown = function () {
|
Select2.prototype.toggleDropdown = function () {
|
||||||
if (this.$container.hasClass("open")) {
|
if (this.$container.hasClass('open')) {
|
||||||
this.trigger("close");
|
this.trigger('close');
|
||||||
} else {
|
} else {
|
||||||
this.trigger("open");
|
this.trigger('open');
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Select2.prototype.render = function () {
|
Select2.prototype.render = function () {
|
||||||
var $container = $(
|
var $container = $(
|
||||||
|
272
dist/js/select2.full.js
vendored
272
dist/js/select2.full.js
vendored
@ -9539,7 +9539,7 @@ define('select2/utils',[], function () {
|
|||||||
var Utils = {};
|
var Utils = {};
|
||||||
|
|
||||||
Utils.Extend = function (ChildClass, SuperClass) {
|
Utils.Extend = function (ChildClass, SuperClass) {
|
||||||
var __hasProp = {}.hasOwnProperty
|
var __hasProp = {}.hasOwnProperty;
|
||||||
|
|
||||||
function BaseConstructor () {
|
function BaseConstructor () {
|
||||||
this.constructor = ChildClass;
|
this.constructor = ChildClass;
|
||||||
@ -9566,7 +9566,7 @@ define('select2/utils',[], function () {
|
|||||||
for (var methodName in proto) {
|
for (var methodName in proto) {
|
||||||
var m = proto[methodName];
|
var m = proto[methodName];
|
||||||
|
|
||||||
if (typeof m !== "function") {
|
if (typeof m !== 'function') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9605,38 +9605,39 @@ define('select2/utils',[], function () {
|
|||||||
DecoratedClass.prototype = new ctr();
|
DecoratedClass.prototype = new ctr();
|
||||||
|
|
||||||
for (var m = 0; m < superMethods.length; m++) {
|
for (var m = 0; m < superMethods.length; m++) {
|
||||||
var methodName = superMethods[m];
|
var superMethod = superMethods[m];
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = SuperClass.prototype[methodName];
|
DecoratedClass.prototype[superMethod] =
|
||||||
|
SuperClass.prototype[superMethod];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var m = 0; m < decoratedMethods.length; m++) {
|
var calledMethod = function (methodName) {
|
||||||
var methodName = decoratedMethods[m];
|
// Stub out the original method if it's not decorating an actual method
|
||||||
|
var originalMethod = function () {};
|
||||||
|
|
||||||
function calledMethod (methodName) {
|
if (methodName in DecoratedClass.prototype) {
|
||||||
// Stub out the original method if it's not decorating an actual method
|
originalMethod = DecoratedClass.prototype[methodName];
|
||||||
var originalMethod = function () {};
|
|
||||||
|
|
||||||
if (methodName in DecoratedClass.prototype) {
|
|
||||||
originalMethod = DecoratedClass.prototype[methodName];
|
|
||||||
}
|
|
||||||
|
|
||||||
var decoratedMethod = DecoratorClass.prototype[methodName];
|
|
||||||
|
|
||||||
return function () {
|
|
||||||
var unshift = Array.prototype.unshift;
|
|
||||||
|
|
||||||
unshift.call(arguments, originalMethod);
|
|
||||||
|
|
||||||
return decoratedMethod.apply(this, arguments);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = calledMethod(methodName);
|
var decoratedMethod = DecoratorClass.prototype[methodName];
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
var unshift = Array.prototype.unshift;
|
||||||
|
|
||||||
|
unshift.call(arguments, originalMethod);
|
||||||
|
|
||||||
|
return decoratedMethod.apply(this, arguments);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var d = 0; d < decoratedMethods.length; d++) {
|
||||||
|
var decoratedMethod = decoratedMethods[d];
|
||||||
|
|
||||||
|
DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DecoratedClass;
|
return DecoratedClass;
|
||||||
}
|
};
|
||||||
|
|
||||||
var Observable = function () {
|
var Observable = function () {
|
||||||
this.listeners = {};
|
this.listeners = {};
|
||||||
@ -9657,8 +9658,8 @@ define('select2/utils',[], function () {
|
|||||||
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("*" in this.listeners) {
|
if ('*' in this.listeners) {
|
||||||
this.invoke(this.listeners["*"], arguments);
|
this.invoke(this.listeners['*'], arguments);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -9683,12 +9684,12 @@ define('select2/data/base',[
|
|||||||
Utils.Extend(BaseAdapter, Utils.Observable);
|
Utils.Extend(BaseAdapter, Utils.Observable);
|
||||||
|
|
||||||
BaseAdapter.prototype.current = function (callback) {
|
BaseAdapter.prototype.current = function (callback) {
|
||||||
throw new Error("The `current` method must be defined in child classes.");
|
throw new Error('The `current` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
BaseAdapter.prototype.query = function (params, callback) {
|
BaseAdapter.prototype.query = function (params, callback) {
|
||||||
throw new Error("The `query` method must be defined in child classes.");
|
throw new Error('The `query` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
return BaseAdapter;
|
return BaseAdapter;
|
||||||
});
|
});
|
||||||
@ -9710,7 +9711,7 @@ define('select2/data/select',[
|
|||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find(":selected").each(function () {
|
this.$element.find(':selected').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -9724,7 +9725,7 @@ define('select2/data/select',[
|
|||||||
SelectAdapter.prototype.select = function (data) {
|
SelectAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (this.$element.prop("multiple")) {
|
if (this.$element.prop('multiple')) {
|
||||||
this.current(function (currentData) {
|
this.current(function (currentData) {
|
||||||
var val = [];
|
var val = [];
|
||||||
|
|
||||||
@ -9740,20 +9741,20 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var val = data.id;
|
var val = data.id;
|
||||||
|
|
||||||
this.$element.val(val);
|
this.$element.val(val);
|
||||||
this.$element.trigger("change");
|
this.$element.trigger('change');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.unselect = function (data) {
|
SelectAdapter.prototype.unselect = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.$element.prop("multiple")) {
|
if (!this.$element.prop('multiple')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9769,27 +9770,27 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.bind = function (container, $container) {
|
SelectAdapter.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
container.on("select", function (params) {
|
container.on('select', function (params) {
|
||||||
self.select(params.data);
|
self.select(params.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("unselect", function (params) {
|
container.on('unselect', function (params) {
|
||||||
self.unselect(params.data);
|
self.unselect(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.query = function (params, callback) {
|
SelectAdapter.prototype.query = function (params, callback) {
|
||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -9803,7 +9804,7 @@ define('select2/data/select',[
|
|||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.item = function ($option) {
|
SelectAdapter.prototype.item = function ($option) {
|
||||||
var data = $option.data("data");
|
var data = $option.data('data');
|
||||||
|
|
||||||
// If the data has already be generated, use it
|
// If the data has already be generated, use it
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@ -9812,14 +9813,14 @@ define('select2/data/select',[
|
|||||||
text: $option.html()
|
text: $option.html()
|
||||||
};
|
};
|
||||||
|
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.matches = function (params, data) {
|
SelectAdapter.prototype.matches = function (params, data) {
|
||||||
if ($.trim(params.term) == "") {
|
if ($.trim(params.term) === '') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9828,7 +9829,7 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
};
|
||||||
|
|
||||||
return SelectAdapter;
|
return SelectAdapter;
|
||||||
});
|
});
|
||||||
@ -9879,16 +9880,16 @@ define('select2/results',[
|
|||||||
this.data.current(function (selected) {
|
this.data.current(function (selected) {
|
||||||
selected = $.map(selected, function (s) { return s.id; });
|
selected = $.map(selected, function (s) { return s.id; });
|
||||||
|
|
||||||
self.$results.find(".option.selected").removeClass("selected");
|
self.$results.find('.option.selected').removeClass('selected');
|
||||||
|
|
||||||
var $options = self.$results.find(".option");
|
var $options = self.$results.find('.option');
|
||||||
|
|
||||||
$options.each(function () {
|
$options.each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var item = $option.data("data");
|
var item = $option.data('data');
|
||||||
|
|
||||||
if (selected.indexOf(item.id) > -1) {
|
if (selected.indexOf(item.id) > -1) {
|
||||||
$option.addClass("selected");
|
$option.addClass('selected');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -9900,43 +9901,43 @@ define('select2/results',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
$option.html(data.text);
|
$option.html(data.text);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
Results.prototype.bind = function (container, $container) {
|
Results.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.on("results:all", function (data) {
|
this.on('results:all', function (data) {
|
||||||
self.clear();
|
self.clear();
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("results:append", function (data) {
|
this.on('results:append', function (data) {
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
})
|
});
|
||||||
|
|
||||||
this.$results.on("mouseup", ".option", function (evt) {
|
this.$results.on('mouseup', '.option', function (evt) {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
var data = $this.data("data");
|
var data = $this.data('data');
|
||||||
if ($this.hasClass("selected")) {
|
if ($this.hasClass('selected')) {
|
||||||
self.trigger("unselected", {
|
self.trigger('unselected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
})
|
});
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("selected", {
|
self.trigger('selected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
@ -9944,19 +9945,19 @@ define('select2/results',[
|
|||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseenter", ".option", function (evt) {
|
this.$results.on('mouseenter', '.option', function (evt) {
|
||||||
self.$results.find(".option.highlighted").removeClass("highlighted");
|
self.$results.find('.option.highlighted').removeClass('highlighted');
|
||||||
$(this).addClass("highlighted");
|
$(this).addClass('highlighted');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseleave", ".option", function (evt) {
|
this.$results.on('mouseleave', '.option', function (evt) {
|
||||||
$(this).removeClass("highlighted");
|
$(this).removeClass('highlighted');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return Results;
|
return Results;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/dropdown',[
|
define('select2/dropdown',[
|
||||||
'./utils'
|
'./utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -9974,11 +9975,11 @@ define('select2/dropdown',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
return $dropdown;
|
return $dropdown;
|
||||||
}
|
};
|
||||||
|
|
||||||
return Dropdown;
|
return Dropdown;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/selection/single',[
|
define('select2/selection/single',[
|
||||||
'../utils'
|
'../utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -10001,7 +10002,7 @@ define('select2/selection/single',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.bind = function (container, $container) {
|
SingleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -10012,26 +10013,26 @@ define('select2/selection/single',[
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.clear = function () {
|
SingleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.display = function (data) {
|
SingleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.update = function (data) {
|
SingleSelection.prototype.update = function (data) {
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
this.clear();
|
this.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -10040,8 +10041,8 @@ define('select2/selection/single',[
|
|||||||
|
|
||||||
var formatted = this.display(selection);
|
var formatted = this.display(selection);
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").html(formatted);
|
this.$selection.find('.rendered-selection').html(formatted);
|
||||||
}
|
};
|
||||||
|
|
||||||
return SingleSelection;
|
return SingleSelection;
|
||||||
});
|
});
|
||||||
@ -10068,34 +10069,34 @@ define('select2/selection/multiple',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.bind = function (container, $container) {
|
MultipleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$selection.on('click', function (evt) {
|
this.$selection.on('click', function (evt) {
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.clear = function () {
|
MultipleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.display = function (data) {
|
MultipleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.update = function (data) {
|
MultipleSelection.prototype.update = function (data) {
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10109,20 +10110,20 @@ define('select2/selection/multiple',[
|
|||||||
var $selection = $('<ul class="choice"></ul>');
|
var $selection = $('<ul class="choice"></ul>');
|
||||||
|
|
||||||
$selection.text(formatted);
|
$selection.text(formatted);
|
||||||
$selection.data("data", data);
|
$selection.data('data', data);
|
||||||
|
|
||||||
$selections.push($selection);
|
$selections.push($selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").append($selections);
|
this.$selection.find('.rendered-selection').append($selections);
|
||||||
}
|
};
|
||||||
|
|
||||||
return MultipleSelection;
|
return MultipleSelection;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/array',[
|
define('select2/data/array',[
|
||||||
"./select",
|
'./select',
|
||||||
"../utils"
|
'../utils'
|
||||||
], function (SelectAdapter, Utils) {
|
], function (SelectAdapter, Utils) {
|
||||||
function ArrayAdapter ($element, options) {
|
function ArrayAdapter ($element, options) {
|
||||||
this.data = options.options.data;
|
this.data = options.options.data;
|
||||||
@ -10135,7 +10136,7 @@ define('select2/data/array',[
|
|||||||
ArrayAdapter.prototype.select = function (data) {
|
ArrayAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
|
|
||||||
@ -10149,17 +10150,17 @@ define('select2/data/array',[
|
|||||||
this.$element.append($option);
|
this.$element.append($option);
|
||||||
|
|
||||||
ArrayAdapter.__super__.select.call(this, data);
|
ArrayAdapter.__super__.select.call(this, data);
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.option = function (data) {
|
ArrayAdapter.prototype.option = function (data) {
|
||||||
var $option = $("<option></option>");
|
var $option = $('<option></option>');
|
||||||
|
|
||||||
$option.text(data.text);
|
$option.text(data.text);
|
||||||
$option.val(data.id);
|
$option.val(data.id);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.query = function (params, callback) {
|
ArrayAdapter.prototype.query = function (params, callback) {
|
||||||
var matches = [];
|
var matches = [];
|
||||||
@ -10174,22 +10175,22 @@ define('select2/data/array',[
|
|||||||
});
|
});
|
||||||
|
|
||||||
callback(matches);
|
callback(matches);
|
||||||
}
|
};
|
||||||
|
|
||||||
return ArrayAdapter;
|
return ArrayAdapter;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/ajax',[
|
define('select2/data/ajax',[
|
||||||
"./array",
|
'./array',
|
||||||
"../utils",
|
'../utils',
|
||||||
"jquery"
|
'jquery'
|
||||||
], function (ArrayAdapter, Utils, $) {
|
], function (ArrayAdapter, Utils, $) {
|
||||||
function AjaxAdapter ($element, options) {
|
function AjaxAdapter ($element, options) {
|
||||||
this.ajaxOptions = options.options.ajax;
|
this.ajaxOptions = options.options.ajax;
|
||||||
|
|
||||||
this.processResults = this.ajaxOptions.processResults ||
|
this.processResults = this.ajaxOptions.processResults ||
|
||||||
function (results) {
|
function (results) {
|
||||||
return results
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
||||||
@ -10202,14 +10203,14 @@ define('select2/data/ajax',[
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var options = $.extend({
|
var options = $.extend({
|
||||||
type: "GET",
|
type: 'GET',
|
||||||
}, this.ajaxOptions);
|
}, this.ajaxOptions);
|
||||||
|
|
||||||
if (typeof options.url === "function") {
|
if (typeof options.url === 'function') {
|
||||||
options.url = options.url(params);
|
options.url = options.url(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof options.data === "function") {
|
if (typeof options.data === 'function') {
|
||||||
options.data = options.data(params);
|
options.data = options.data(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10218,8 +10219,6 @@ define('select2/data/ajax',[
|
|||||||
$request.success(function (data) {
|
$request.success(function (data) {
|
||||||
var results = self.processResults(data);
|
var results = self.processResults(data);
|
||||||
|
|
||||||
console.log(results)
|
|
||||||
|
|
||||||
callback(results);
|
callback(results);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -10256,8 +10255,8 @@ define('select2/options',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Options;
|
return Options;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/core',[
|
define('select2/core',[
|
||||||
'jquery',
|
'jquery',
|
||||||
'./options',
|
'./options',
|
||||||
@ -10268,7 +10267,7 @@ define('select2/core',[
|
|||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
options.multiple = options.multiple || $element.prop("multiple");
|
options.multiple = options.multiple || $element.prop('multiple');
|
||||||
|
|
||||||
this.options = new Options(options);
|
this.options = new Options(options);
|
||||||
|
|
||||||
@ -10287,21 +10286,22 @@ define('select2/core',[
|
|||||||
|
|
||||||
this.selection = new this.options.selectionAdapter($element, this.options);
|
this.selection = new this.options.selectionAdapter($element, this.options);
|
||||||
|
|
||||||
var $selectionContainer = $container.find(".selection");
|
var $selectionContainer = $container.find('.selection');
|
||||||
var $selection = this.selection.render();
|
var $selection = this.selection.render();
|
||||||
|
|
||||||
$selectionContainer.append($selection);
|
$selectionContainer.append($selection);
|
||||||
|
|
||||||
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
||||||
|
|
||||||
var $dropdownContainer = $container.find(".dropdown");
|
var $dropdownContainer = $container.find('.dropdown');
|
||||||
var $dropdown = this.dropdown.render();
|
var $dropdown = this.dropdown.render();
|
||||||
|
|
||||||
$dropdownContainer.append($dropdown);
|
$dropdownContainer.append($dropdown);
|
||||||
|
|
||||||
this.results = new this.options.resultsAdapter($element, this.options, this.data);
|
this.results = new this.options.resultsAdapter(
|
||||||
|
$element, this.options, this.data);
|
||||||
|
|
||||||
var $resultsContainer = $dropdown.find(".results");
|
var $resultsContainer = $dropdown.find('.results');
|
||||||
var $results = this.results.render();
|
var $results = this.results.render();
|
||||||
|
|
||||||
$resultsContainer.append($results);
|
$resultsContainer.append($results);
|
||||||
@ -10314,48 +10314,48 @@ define('select2/core',[
|
|||||||
this.selection.bind(this, $container);
|
this.selection.bind(this, $container);
|
||||||
this.results.bind(this, $container);
|
this.results.bind(this, $container);
|
||||||
|
|
||||||
this.$element.on("change", function () {
|
this.$element.on('change', function () {
|
||||||
self.data.current(function (data) {
|
self.data.current(function (data) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.selection.on("toggle", function () {
|
this.selection.on('toggle', function () {
|
||||||
self.toggleDropdown();
|
self.toggleDropdown();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("selected", function (params) {
|
this.results.on('selected', function (params) {
|
||||||
self.trigger("select", params);
|
self.trigger('select', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("unselected", function (params) {
|
this.results.on('unselected', function (params) {
|
||||||
self.trigger("unselect", params);
|
self.trigger('unselect', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("open", function () {
|
this.on('open', function () {
|
||||||
$container.addClass("open");
|
$container.addClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("close", function () {
|
this.on('close', function () {
|
||||||
$container.removeClass("open");
|
$container.removeClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set the initial state
|
// Set the initial state
|
||||||
|
|
||||||
this.data.current(function (initialData) {
|
this.data.current(function (initialData) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: initialData
|
data: initialData
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.data.query({}, function (data) {
|
this.data.query({}, function (data) {
|
||||||
self.results.trigger("results:all", data);
|
self.results.trigger('results:all', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Hide the original select
|
// Hide the original select
|
||||||
@ -10366,12 +10366,12 @@ define('select2/core',[
|
|||||||
Utils.Extend(Select2, Utils.Observable);
|
Utils.Extend(Select2, Utils.Observable);
|
||||||
|
|
||||||
Select2.prototype.toggleDropdown = function () {
|
Select2.prototype.toggleDropdown = function () {
|
||||||
if (this.$container.hasClass("open")) {
|
if (this.$container.hasClass('open')) {
|
||||||
this.trigger("close");
|
this.trigger('close');
|
||||||
} else {
|
} else {
|
||||||
this.trigger("open");
|
this.trigger('open');
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Select2.prototype.render = function () {
|
Select2.prototype.render = function () {
|
||||||
var $container = $(
|
var $container = $(
|
||||||
|
276
dist/js/select2.js
vendored
276
dist/js/select2.js
vendored
@ -424,13 +424,13 @@ define("almond", function(){});
|
|||||||
|
|
||||||
define('jquery',[],function () {
|
define('jquery',[],function () {
|
||||||
return jQuery;
|
return jQuery;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/utils',[], function () {
|
define('select2/utils',[], function () {
|
||||||
var Utils = {};
|
var Utils = {};
|
||||||
|
|
||||||
Utils.Extend = function (ChildClass, SuperClass) {
|
Utils.Extend = function (ChildClass, SuperClass) {
|
||||||
var __hasProp = {}.hasOwnProperty
|
var __hasProp = {}.hasOwnProperty;
|
||||||
|
|
||||||
function BaseConstructor () {
|
function BaseConstructor () {
|
||||||
this.constructor = ChildClass;
|
this.constructor = ChildClass;
|
||||||
@ -457,7 +457,7 @@ define('select2/utils',[], function () {
|
|||||||
for (var methodName in proto) {
|
for (var methodName in proto) {
|
||||||
var m = proto[methodName];
|
var m = proto[methodName];
|
||||||
|
|
||||||
if (typeof m !== "function") {
|
if (typeof m !== 'function') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -496,38 +496,39 @@ define('select2/utils',[], function () {
|
|||||||
DecoratedClass.prototype = new ctr();
|
DecoratedClass.prototype = new ctr();
|
||||||
|
|
||||||
for (var m = 0; m < superMethods.length; m++) {
|
for (var m = 0; m < superMethods.length; m++) {
|
||||||
var methodName = superMethods[m];
|
var superMethod = superMethods[m];
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = SuperClass.prototype[methodName];
|
DecoratedClass.prototype[superMethod] =
|
||||||
|
SuperClass.prototype[superMethod];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var m = 0; m < decoratedMethods.length; m++) {
|
var calledMethod = function (methodName) {
|
||||||
var methodName = decoratedMethods[m];
|
// Stub out the original method if it's not decorating an actual method
|
||||||
|
var originalMethod = function () {};
|
||||||
|
|
||||||
function calledMethod (methodName) {
|
if (methodName in DecoratedClass.prototype) {
|
||||||
// Stub out the original method if it's not decorating an actual method
|
originalMethod = DecoratedClass.prototype[methodName];
|
||||||
var originalMethod = function () {};
|
|
||||||
|
|
||||||
if (methodName in DecoratedClass.prototype) {
|
|
||||||
originalMethod = DecoratedClass.prototype[methodName];
|
|
||||||
}
|
|
||||||
|
|
||||||
var decoratedMethod = DecoratorClass.prototype[methodName];
|
|
||||||
|
|
||||||
return function () {
|
|
||||||
var unshift = Array.prototype.unshift;
|
|
||||||
|
|
||||||
unshift.call(arguments, originalMethod);
|
|
||||||
|
|
||||||
return decoratedMethod.apply(this, arguments);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DecoratedClass.prototype[methodName] = calledMethod(methodName);
|
var decoratedMethod = DecoratorClass.prototype[methodName];
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
var unshift = Array.prototype.unshift;
|
||||||
|
|
||||||
|
unshift.call(arguments, originalMethod);
|
||||||
|
|
||||||
|
return decoratedMethod.apply(this, arguments);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var d = 0; d < decoratedMethods.length; d++) {
|
||||||
|
var decoratedMethod = decoratedMethods[d];
|
||||||
|
|
||||||
|
DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DecoratedClass;
|
return DecoratedClass;
|
||||||
}
|
};
|
||||||
|
|
||||||
var Observable = function () {
|
var Observable = function () {
|
||||||
this.listeners = {};
|
this.listeners = {};
|
||||||
@ -548,8 +549,8 @@ define('select2/utils',[], function () {
|
|||||||
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
this.invoke(this.listeners[event], slice.call(arguments, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("*" in this.listeners) {
|
if ('*' in this.listeners) {
|
||||||
this.invoke(this.listeners["*"], arguments);
|
this.invoke(this.listeners['*'], arguments);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -574,12 +575,12 @@ define('select2/data/base',[
|
|||||||
Utils.Extend(BaseAdapter, Utils.Observable);
|
Utils.Extend(BaseAdapter, Utils.Observable);
|
||||||
|
|
||||||
BaseAdapter.prototype.current = function (callback) {
|
BaseAdapter.prototype.current = function (callback) {
|
||||||
throw new Error("The `current` method must be defined in child classes.");
|
throw new Error('The `current` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
BaseAdapter.prototype.query = function (params, callback) {
|
BaseAdapter.prototype.query = function (params, callback) {
|
||||||
throw new Error("The `query` method must be defined in child classes.");
|
throw new Error('The `query` method must be defined in child classes.');
|
||||||
}
|
};
|
||||||
|
|
||||||
return BaseAdapter;
|
return BaseAdapter;
|
||||||
});
|
});
|
||||||
@ -601,7 +602,7 @@ define('select2/data/select',[
|
|||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find(":selected").each(function () {
|
this.$element.find(':selected').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -615,7 +616,7 @@ define('select2/data/select',[
|
|||||||
SelectAdapter.prototype.select = function (data) {
|
SelectAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (this.$element.prop("multiple")) {
|
if (this.$element.prop('multiple')) {
|
||||||
this.current(function (currentData) {
|
this.current(function (currentData) {
|
||||||
var val = [];
|
var val = [];
|
||||||
|
|
||||||
@ -631,20 +632,20 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var val = data.id;
|
var val = data.id;
|
||||||
|
|
||||||
this.$element.val(val);
|
this.$element.val(val);
|
||||||
this.$element.trigger("change");
|
this.$element.trigger('change');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.unselect = function (data) {
|
SelectAdapter.prototype.unselect = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!this.$element.prop("multiple")) {
|
if (!this.$element.prop('multiple')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -660,27 +661,27 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.$element.val(val);
|
self.$element.val(val);
|
||||||
self.$element.trigger("change");
|
self.$element.trigger('change');
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.bind = function (container, $container) {
|
SelectAdapter.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
container.on("select", function (params) {
|
container.on('select', function (params) {
|
||||||
self.select(params.data);
|
self.select(params.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("unselect", function (params) {
|
container.on('unselect', function (params) {
|
||||||
self.unselect(params.data);
|
self.unselect(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.query = function (params, callback) {
|
SelectAdapter.prototype.query = function (params, callback) {
|
||||||
var data = [];
|
var data = [];
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
|
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
@ -694,7 +695,7 @@ define('select2/data/select',[
|
|||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.item = function ($option) {
|
SelectAdapter.prototype.item = function ($option) {
|
||||||
var data = $option.data("data");
|
var data = $option.data('data');
|
||||||
|
|
||||||
// If the data has already be generated, use it
|
// If the data has already be generated, use it
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
@ -703,14 +704,14 @@ define('select2/data/select',[
|
|||||||
text: $option.html()
|
text: $option.html()
|
||||||
};
|
};
|
||||||
|
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectAdapter.prototype.matches = function (params, data) {
|
SelectAdapter.prototype.matches = function (params, data) {
|
||||||
if ($.trim(params.term) == "") {
|
if ($.trim(params.term) === '') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -719,7 +720,7 @@ define('select2/data/select',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
};
|
||||||
|
|
||||||
return SelectAdapter;
|
return SelectAdapter;
|
||||||
});
|
});
|
||||||
@ -770,16 +771,16 @@ define('select2/results',[
|
|||||||
this.data.current(function (selected) {
|
this.data.current(function (selected) {
|
||||||
selected = $.map(selected, function (s) { return s.id; });
|
selected = $.map(selected, function (s) { return s.id; });
|
||||||
|
|
||||||
self.$results.find(".option.selected").removeClass("selected");
|
self.$results.find('.option.selected').removeClass('selected');
|
||||||
|
|
||||||
var $options = self.$results.find(".option");
|
var $options = self.$results.find('.option');
|
||||||
|
|
||||||
$options.each(function () {
|
$options.each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var item = $option.data("data");
|
var item = $option.data('data');
|
||||||
|
|
||||||
if (selected.indexOf(item.id) > -1) {
|
if (selected.indexOf(item.id) > -1) {
|
||||||
$option.addClass("selected");
|
$option.addClass('selected');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -791,43 +792,43 @@ define('select2/results',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
$option.html(data.text);
|
$option.html(data.text);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
Results.prototype.bind = function (container, $container) {
|
Results.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.on("results:all", function (data) {
|
this.on('results:all', function (data) {
|
||||||
self.clear();
|
self.clear();
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("results:append", function (data) {
|
this.on('results:append', function (data) {
|
||||||
self.append(data);
|
self.append(data);
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
})
|
});
|
||||||
|
|
||||||
this.$results.on("mouseup", ".option", function (evt) {
|
this.$results.on('mouseup', '.option', function (evt) {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
var data = $this.data("data");
|
var data = $this.data('data');
|
||||||
if ($this.hasClass("selected")) {
|
if ($this.hasClass('selected')) {
|
||||||
self.trigger("unselected", {
|
self.trigger('unselected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
})
|
});
|
||||||
|
|
||||||
self.setClasses();
|
self.setClasses();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("selected", {
|
self.trigger('selected', {
|
||||||
originalEvent: evt,
|
originalEvent: evt,
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
@ -835,19 +836,19 @@ define('select2/results',[
|
|||||||
self.setClasses();
|
self.setClasses();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseenter", ".option", function (evt) {
|
this.$results.on('mouseenter', '.option', function (evt) {
|
||||||
self.$results.find(".option.highlighted").removeClass("highlighted");
|
self.$results.find('.option.highlighted').removeClass('highlighted');
|
||||||
$(this).addClass("highlighted");
|
$(this).addClass('highlighted');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$results.on("mouseleave", ".option", function (evt) {
|
this.$results.on('mouseleave', '.option', function (evt) {
|
||||||
$(this).removeClass("highlighted");
|
$(this).removeClass('highlighted');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return Results;
|
return Results;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/dropdown',[
|
define('select2/dropdown',[
|
||||||
'./utils'
|
'./utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -865,11 +866,11 @@ define('select2/dropdown',[
|
|||||||
);
|
);
|
||||||
|
|
||||||
return $dropdown;
|
return $dropdown;
|
||||||
}
|
};
|
||||||
|
|
||||||
return Dropdown;
|
return Dropdown;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/selection/single',[
|
define('select2/selection/single',[
|
||||||
'../utils'
|
'../utils'
|
||||||
], function (Utils) {
|
], function (Utils) {
|
||||||
@ -892,7 +893,7 @@ define('select2/selection/single',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.bind = function (container, $container) {
|
SingleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
@ -903,26 +904,26 @@ define('select2/selection/single',[
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.clear = function () {
|
SingleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.display = function (data) {
|
SingleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
SingleSelection.prototype.update = function (data) {
|
SingleSelection.prototype.update = function (data) {
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
this.clear();
|
this.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -931,8 +932,8 @@ define('select2/selection/single',[
|
|||||||
|
|
||||||
var formatted = this.display(selection);
|
var formatted = this.display(selection);
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").html(formatted);
|
this.$selection.find('.rendered-selection').html(formatted);
|
||||||
}
|
};
|
||||||
|
|
||||||
return SingleSelection;
|
return SingleSelection;
|
||||||
});
|
});
|
||||||
@ -959,34 +960,34 @@ define('select2/selection/multiple',[
|
|||||||
this.$selection = $selection;
|
this.$selection = $selection;
|
||||||
|
|
||||||
return $selection;
|
return $selection;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.bind = function (container, $container) {
|
MultipleSelection.prototype.bind = function (container, $container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$selection.on('click', function (evt) {
|
this.$selection.on('click', function (evt) {
|
||||||
self.trigger("toggle", {
|
self.trigger('toggle', {
|
||||||
originalEvent: evt
|
originalEvent: evt
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
container.on("selection:update", function (params) {
|
container.on('selection:update', function (params) {
|
||||||
self.update(params.data);
|
self.update(params.data);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.clear = function () {
|
MultipleSelection.prototype.clear = function () {
|
||||||
this.$selection.find(".rendered-selection").empty();
|
this.$selection.find('.rendered-selection').empty();
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.display = function (data) {
|
MultipleSelection.prototype.display = function (data) {
|
||||||
return data.text;
|
return data.text;
|
||||||
}
|
};
|
||||||
|
|
||||||
MultipleSelection.prototype.update = function (data) {
|
MultipleSelection.prototype.update = function (data) {
|
||||||
this.clear();
|
this.clear();
|
||||||
|
|
||||||
if (data.length == 0) {
|
if (data.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1000,20 +1001,20 @@ define('select2/selection/multiple',[
|
|||||||
var $selection = $('<ul class="choice"></ul>');
|
var $selection = $('<ul class="choice"></ul>');
|
||||||
|
|
||||||
$selection.text(formatted);
|
$selection.text(formatted);
|
||||||
$selection.data("data", data);
|
$selection.data('data', data);
|
||||||
|
|
||||||
$selections.push($selection);
|
$selections.push($selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$selection.find(".rendered-selection").append($selections);
|
this.$selection.find('.rendered-selection').append($selections);
|
||||||
}
|
};
|
||||||
|
|
||||||
return MultipleSelection;
|
return MultipleSelection;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/array',[
|
define('select2/data/array',[
|
||||||
"./select",
|
'./select',
|
||||||
"../utils"
|
'../utils'
|
||||||
], function (SelectAdapter, Utils) {
|
], function (SelectAdapter, Utils) {
|
||||||
function ArrayAdapter ($element, options) {
|
function ArrayAdapter ($element, options) {
|
||||||
this.data = options.options.data;
|
this.data = options.options.data;
|
||||||
@ -1026,7 +1027,7 @@ define('select2/data/array',[
|
|||||||
ArrayAdapter.prototype.select = function (data) {
|
ArrayAdapter.prototype.select = function (data) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
this.$element.find("option").each(function () {
|
this.$element.find('option').each(function () {
|
||||||
var $option = $(this);
|
var $option = $(this);
|
||||||
var option = self.item($option);
|
var option = self.item($option);
|
||||||
|
|
||||||
@ -1040,17 +1041,17 @@ define('select2/data/array',[
|
|||||||
this.$element.append($option);
|
this.$element.append($option);
|
||||||
|
|
||||||
ArrayAdapter.__super__.select.call(this, data);
|
ArrayAdapter.__super__.select.call(this, data);
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.option = function (data) {
|
ArrayAdapter.prototype.option = function (data) {
|
||||||
var $option = $("<option></option>");
|
var $option = $('<option></option>');
|
||||||
|
|
||||||
$option.text(data.text);
|
$option.text(data.text);
|
||||||
$option.val(data.id);
|
$option.val(data.id);
|
||||||
$option.data("data", data);
|
$option.data('data', data);
|
||||||
|
|
||||||
return $option;
|
return $option;
|
||||||
}
|
};
|
||||||
|
|
||||||
ArrayAdapter.prototype.query = function (params, callback) {
|
ArrayAdapter.prototype.query = function (params, callback) {
|
||||||
var matches = [];
|
var matches = [];
|
||||||
@ -1065,22 +1066,22 @@ define('select2/data/array',[
|
|||||||
});
|
});
|
||||||
|
|
||||||
callback(matches);
|
callback(matches);
|
||||||
}
|
};
|
||||||
|
|
||||||
return ArrayAdapter;
|
return ArrayAdapter;
|
||||||
});
|
});
|
||||||
|
|
||||||
define('select2/data/ajax',[
|
define('select2/data/ajax',[
|
||||||
"./array",
|
'./array',
|
||||||
"../utils",
|
'../utils',
|
||||||
"jquery"
|
'jquery'
|
||||||
], function (ArrayAdapter, Utils, $) {
|
], function (ArrayAdapter, Utils, $) {
|
||||||
function AjaxAdapter ($element, options) {
|
function AjaxAdapter ($element, options) {
|
||||||
this.ajaxOptions = options.options.ajax;
|
this.ajaxOptions = options.options.ajax;
|
||||||
|
|
||||||
this.processResults = this.ajaxOptions.processResults ||
|
this.processResults = this.ajaxOptions.processResults ||
|
||||||
function (results) {
|
function (results) {
|
||||||
return results
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
ArrayAdapter.__super__.constructor.call(this, $element, options);
|
||||||
@ -1093,14 +1094,14 @@ define('select2/data/ajax',[
|
|||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
var options = $.extend({
|
var options = $.extend({
|
||||||
type: "GET",
|
type: 'GET',
|
||||||
}, this.ajaxOptions);
|
}, this.ajaxOptions);
|
||||||
|
|
||||||
if (typeof options.url === "function") {
|
if (typeof options.url === 'function') {
|
||||||
options.url = options.url(params);
|
options.url = options.url(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof options.data === "function") {
|
if (typeof options.data === 'function') {
|
||||||
options.data = options.data(params);
|
options.data = options.data(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1109,8 +1110,6 @@ define('select2/data/ajax',[
|
|||||||
$request.success(function (data) {
|
$request.success(function (data) {
|
||||||
var results = self.processResults(data);
|
var results = self.processResults(data);
|
||||||
|
|
||||||
console.log(results)
|
|
||||||
|
|
||||||
callback(results);
|
callback(results);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -1147,8 +1146,8 @@ define('select2/options',[
|
|||||||
}
|
}
|
||||||
|
|
||||||
return Options;
|
return Options;
|
||||||
})
|
});
|
||||||
;
|
|
||||||
define('select2/core',[
|
define('select2/core',[
|
||||||
'jquery',
|
'jquery',
|
||||||
'./options',
|
'./options',
|
||||||
@ -1159,7 +1158,7 @@ define('select2/core',[
|
|||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
options.multiple = options.multiple || $element.prop("multiple");
|
options.multiple = options.multiple || $element.prop('multiple');
|
||||||
|
|
||||||
this.options = new Options(options);
|
this.options = new Options(options);
|
||||||
|
|
||||||
@ -1178,21 +1177,22 @@ define('select2/core',[
|
|||||||
|
|
||||||
this.selection = new this.options.selectionAdapter($element, this.options);
|
this.selection = new this.options.selectionAdapter($element, this.options);
|
||||||
|
|
||||||
var $selectionContainer = $container.find(".selection");
|
var $selectionContainer = $container.find('.selection');
|
||||||
var $selection = this.selection.render();
|
var $selection = this.selection.render();
|
||||||
|
|
||||||
$selectionContainer.append($selection);
|
$selectionContainer.append($selection);
|
||||||
|
|
||||||
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
this.dropdown = new this.options.dropdownAdapter($element, this.options);
|
||||||
|
|
||||||
var $dropdownContainer = $container.find(".dropdown");
|
var $dropdownContainer = $container.find('.dropdown');
|
||||||
var $dropdown = this.dropdown.render();
|
var $dropdown = this.dropdown.render();
|
||||||
|
|
||||||
$dropdownContainer.append($dropdown);
|
$dropdownContainer.append($dropdown);
|
||||||
|
|
||||||
this.results = new this.options.resultsAdapter($element, this.options, this.data);
|
this.results = new this.options.resultsAdapter(
|
||||||
|
$element, this.options, this.data);
|
||||||
|
|
||||||
var $resultsContainer = $dropdown.find(".results");
|
var $resultsContainer = $dropdown.find('.results');
|
||||||
var $results = this.results.render();
|
var $results = this.results.render();
|
||||||
|
|
||||||
$resultsContainer.append($results);
|
$resultsContainer.append($results);
|
||||||
@ -1205,48 +1205,48 @@ define('select2/core',[
|
|||||||
this.selection.bind(this, $container);
|
this.selection.bind(this, $container);
|
||||||
this.results.bind(this, $container);
|
this.results.bind(this, $container);
|
||||||
|
|
||||||
this.$element.on("change", function () {
|
this.$element.on('change', function () {
|
||||||
self.data.current(function (data) {
|
self.data.current(function (data) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.selection.on("toggle", function () {
|
this.selection.on('toggle', function () {
|
||||||
self.toggleDropdown();
|
self.toggleDropdown();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("selected", function (params) {
|
this.results.on('selected', function (params) {
|
||||||
self.trigger("select", params);
|
self.trigger('select', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.results.on("unselected", function (params) {
|
this.results.on('unselected', function (params) {
|
||||||
self.trigger("unselect", params);
|
self.trigger('unselect', params);
|
||||||
|
|
||||||
self.trigger("close");
|
self.trigger('close');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("open", function () {
|
this.on('open', function () {
|
||||||
$container.addClass("open");
|
$container.addClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
this.on("close", function () {
|
this.on('close', function () {
|
||||||
$container.removeClass("open");
|
$container.removeClass('open');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set the initial state
|
// Set the initial state
|
||||||
|
|
||||||
this.data.current(function (initialData) {
|
this.data.current(function (initialData) {
|
||||||
self.trigger("selection:update", {
|
self.trigger('selection:update', {
|
||||||
data: initialData
|
data: initialData
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
this.data.query({}, function (data) {
|
this.data.query({}, function (data) {
|
||||||
self.results.trigger("results:all", data);
|
self.results.trigger('results:all', data);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Hide the original select
|
// Hide the original select
|
||||||
@ -1257,12 +1257,12 @@ define('select2/core',[
|
|||||||
Utils.Extend(Select2, Utils.Observable);
|
Utils.Extend(Select2, Utils.Observable);
|
||||||
|
|
||||||
Select2.prototype.toggleDropdown = function () {
|
Select2.prototype.toggleDropdown = function () {
|
||||||
if (this.$container.hasClass("open")) {
|
if (this.$container.hasClass('open')) {
|
||||||
this.trigger("close");
|
this.trigger('close');
|
||||||
} else {
|
} else {
|
||||||
this.trigger("open");
|
this.trigger('open');
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Select2.prototype.render = function () {
|
Select2.prototype.render = function () {
|
||||||
var $container = $(
|
var $container = $(
|
||||||
|
2
src/js/select2/utils.js
vendored
2
src/js/select2/utils.js
vendored
@ -71,7 +71,7 @@ define([], function () {
|
|||||||
var superMethod = superMethods[m];
|
var superMethod = superMethods[m];
|
||||||
|
|
||||||
DecoratedClass.prototype[superMethod] =
|
DecoratedClass.prototype[superMethod] =
|
||||||
SuperClass.prototype[methodName];
|
SuperClass.prototype[superMethod];
|
||||||
}
|
}
|
||||||
|
|
||||||
var calledMethod = function (methodName) {
|
var calledMethod = function (methodName) {
|
||||||
|
Loading…
Reference in New Issue
Block a user