1
0
mirror of synced 2024-11-22 21:16:10 +03:00
select2/dist/js/select2.amd.full.js
Kevin Brown 06e195b025 Work on the AMD scaffolding
This will make it far easier to ensure that components are in their
own modules as well as make it possible to have custom builds of
Select2.
2014-10-21 21:43:56 -04:00

98 lines
2.0 KiB
JavaScript

define('select2/utils',[], function () {
var Utils = {};
Utils.Extend = function (ChildClass, SuperClass) {
var __hasProp = {}.hasOwnProperty
function BaseConstructor () {
this.constructor = ChildClass;
}
for (var key in SuperClass) {
if (__hasProp.call(SuperClass, key)) {
ChildClass[key] = SuperClass[key];
}
}
BaseConstructor.prototype = SuperClass.prototype;
ChildClass.prototype = new BaseConstructor();
ChildClass.__super__ = SuperClass.prototype;
return ChildClass;
};
var Observable = function () {
this.listeners = {};
};
Observable.prototype.on = function (event, callback) {
if (event in this.listeners) {
this.listeners[event].push(callback);
} else {
this.listeners[event] = [callback];
}
};
Observable.prototype.trigger = function (event) {
if (event in this.listeners) {
this.invoke(this.listeners[event], util.shift(arguments));
}
if ("*" in this.listeners) {
this.invoke(this.listeners["*"], arguments);
}
};
Observable.prototype.invoke = function (listeners, params) {
for (var i = 0, len = listeners.length; i < len; i++) {
listeners[i].apply(this, params);
}
};
Utils.Observable = Observable;
return Utils;
});
define('select2/adapters/select',[
"../utils"
], function (Utils) {
function SelectAdapter (element, options) {
this.element = element;
}
Utils.Extend(SelectAdapter, Utils.Observable);
return SelectAdapter;
});
define('select2/options',[
"./adapters/select"
], function (SelectAdapter) {
function Options (options) {
this.options = options;
this.DataAdapter = SelectAdapter;
}
return Options;
})
;
define('select2/core',[
"jquery",
"./options",
"./utils"
], function ($, Options, Utils) {
var Select2 = function (element, options) {
this.element = element;
this.options = new Options(options);
this.adapter = new this.options.DataAdapter(element, options);
};
Utils.Extend(Select2, Utils.Observable);
return Select2;
});