Sha256: 4381bb6889ab1e85e65dd7f7f25871384c65e6a16d16095b27579d82498a8ec5
Contents?: true
Size: 1.53 KB
Versions: 4
Compression:
Stored size: 1.53 KB
Contents
import {Controller} from "@hotwired/stimulus" import TomSelect from "tom-select"; import I18n from "../config/i18n"; export default class extends Controller { connect() { if (this.element.hasAttribute('multiple')) { this.initTomSelect() } } defaultOptions(locale) { const defaultOptions = { en: { render: { option_create: function (data, escape) { return '<div class="create">Add <strong>' + escape(data.input) + '</strong>…</div>' }, no_results: function (data, escape) { return '<div class="no-results">No results found</div>' } } }, nl: { render: { option_create: function (data, escape) { return '<div class="create">Voeg <strong>' + escape(data.input) + '</strong> toe …</div>' }, no_results: function (data, escape) { return '<div class="no-results">Geen resultaten gevonden</div>' } } } } return defaultOptions[locale] } hasTags() { return this.element.dataset['tags'] === "true" } initTomSelect() { const defaultOptions = this.defaultOptions(I18n.locale) const options = {create: this.hasTags()} new TomSelect(this.element, {...defaultOptions, ...options}) } }
Version data entries
4 entries across 4 versions & 1 rubygems