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>&hellip;</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 &hellip;</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

Version Path
headmin-0.3.4 app/assets/javascripts/headmin/controllers/select_controller.js
headmin-0.3.3 app/assets/javascripts/headmin/controllers/select_controller.js
headmin-0.3.2 app/assets/javascripts/headmin/controllers/select_controller.js
headmin-0.3.1 app/assets/javascripts/headmin/controllers/select_controller.js