import { Controller } from "@hotwired/stimulus"
|
|
import TomSelect from "tom-select";
|
|
|
|
export default class extends Controller {
|
|
|
|
connect() {
|
|
this.initializeTomSelect();
|
|
}
|
|
|
|
// Triggered when the Stimulus controller is removed from the DOM.
|
|
disconnect() {
|
|
this.destroyTomSelect();
|
|
}
|
|
|
|
|
|
// Initialize the TomSelect dropdown with the desired configurations.
|
|
initializeTomSelect() {
|
|
// Return early if no element is associated with the controller.
|
|
if (!this.element) return;
|
|
|
|
this.select = new TomSelect(this.element, {
|
|
create: this.element.getAttribute('data-tags') == 'true'
|
|
});
|
|
}
|
|
|
|
destroyTomSelect() {
|
|
if (this.select) {
|
|
this.select.destroy();
|
|
}
|
|
}
|
|
}
|