32 lines
779 B
JavaScript
32 lines
779 B
JavaScript
import Events from '../_events'
|
|
|
|
import Choices from "choices.js";
|
|
import "choices.js/src/styles/choices.scss";
|
|
|
|
const SelectUI = ((window) => {
|
|
const NAME = 'js-select'
|
|
|
|
const init = () => {
|
|
console.log(`${NAME}: init`)
|
|
document.querySelector('select:not([readonly],.no-select2)')
|
|
|
|
document.querySelectorAll(`.${NAME},select:not([readonly],.no-select2)`).forEach((el) => {
|
|
if(el.classList.contains(`${NAME}-active`)){
|
|
return
|
|
}
|
|
|
|
new Choices(el, {
|
|
allowHTML: true,
|
|
shouldSort: (el.dataset.shouldSort === 'true'),
|
|
});
|
|
|
|
el.classList.add(`${NAME}-active`)
|
|
})
|
|
}
|
|
|
|
window.addEventListener(`${Events.LODEDANDREADY}`, init)
|
|
window.addEventListener(`${Events.AJAX}`, init)
|
|
})(window)
|
|
|
|
export default SelectUI
|