Select JS ('Slim Select 2')

GIT: Link
NPM: Link
Web Site: Link

import SlimSelect from "slim-select";
import "slim-select/styles";

new SlimSelect({
    select: ".my-select",

    settings: {
        showSearch: false,
    },

    events: {
        afterChange: () => {},
    },
}); 
                

If selected value === 'all' -> clear another values


let newOptions = [];
const select = new SlimSelect({
    select: '.selector',
    settings: {
        showSearch: false,
        allowDeselect: true,
    },
    events: {
        afterChange: function() {
            select.setSelected(newOptions.map(item => item.value))
        },
        beforeChange: (newVal, oldVal) => {
            if(oldVal.some(item => item.value === "all")){
                newOptions = newVal.filter(item => item.value !== 'all')
            } else {
                if (newVal.some(item => item.value === "all")) {
                    newOptions = newVal.filter(item => item.value === 'all')
                } else {
                    newOptions = newVal
                }
            }

            if(newVal.length === 0){
                newOptions = [{value: 'all'}]
            }
        },
    },
});