@atlassian/aui
Version:
Atlassian User Interface Framework
66 lines (57 loc) • 2.47 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['./jquery', '../../js-vendor/jquery/plugins/jquery.select2'], factory);
} else if (typeof exports !== "undefined") {
factory(require('./jquery'), require('../../js-vendor/jquery/plugins/jquery.select2'));
} else {
var mod = {
exports: {}
};
factory(global.jquery, global.jquery);
global.select2 = mod.exports;
}
})(this, function (_jquery) {
'use strict';
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* Wraps a vanilla Select2 with ADG _style_, as an auiSelect2 method on jQuery objects.
*
* @since 5.2
*/
/**
* We make a copy of the original select2 so that later we might re-specify $.fn.auiSelect2 as $.fn.select2. That
* way, calling code will be able to call $thing.select2() as if they were calling the original library,
* and ADG styling will just magically happen.
*/
var originalSelect2 = _jquery2.default.fn.select2;
// AUI-specific classes
var auiContainer = 'aui-select2-container';
var auiDropdown = 'aui-select2-drop aui-dropdown2 aui-style-default';
var auiHasAvatar = 'aui-has-avatar';
_jquery2.default.fn.auiSelect2 = function (first) {
var updatedArgs;
if (_jquery2.default.isPlainObject(first)) {
var auiOpts = _jquery2.default.extend({}, first);
var auiAvatarClass = auiOpts.hasAvatar ? ' ' + auiHasAvatar : '';
//add our classes in addition to those the caller specified
auiOpts.containerCssClass = auiContainer + auiAvatarClass + (auiOpts.containerCssClass ? ' ' + auiOpts.containerCssClass : '');
auiOpts.dropdownCssClass = auiDropdown + auiAvatarClass + (auiOpts.dropdownCssClass ? ' ' + auiOpts.dropdownCssClass : '');
updatedArgs = Array.prototype.slice.call(arguments, 1);
updatedArgs.unshift(auiOpts);
} else if (!arguments.length) {
updatedArgs = [{
containerCssClass: auiContainer,
dropdownCssClass: auiDropdown
}];
} else {
updatedArgs = arguments;
}
return originalSelect2.apply(this, updatedArgs);
};
});
//# sourceMappingURL=select2.js.map