30 lines
937 B
JavaScript
30 lines
937 B
JavaScript
import $ from 'jquery';
|
|
import { loadCSSFile } from '../lib/utils/css_utils';
|
|
|
|
export default () => {
|
|
const $select2Elements = $('select.select2');
|
|
if ($select2Elements.length) {
|
|
import(/* webpackChunkName: 'select2' */ 'select2/select2')
|
|
.then(() => {
|
|
// eslint-disable-next-line promise/no-nesting
|
|
loadCSSFile(gon.select2_css_path)
|
|
.then(() => {
|
|
$select2Elements.select2({
|
|
width: 'resolve',
|
|
minimumResultsForSearch: 10,
|
|
dropdownAutoWidth: true,
|
|
});
|
|
|
|
// Close select2 on escape
|
|
$('.js-select2').on('select2-close', () => {
|
|
requestAnimationFrame(() => {
|
|
$('.select2-container-active').removeClass('select2-container-active');
|
|
$(':focus').blur();
|
|
});
|
|
});
|
|
})
|
|
.catch(() => {});
|
|
})
|
|
.catch(() => {});
|
|
}
|
|
};
|