            language: this.getConfiguration('locale').replace('_', '-'),
            theme: "bootstrap",
            matcher: matcher
        }};

        const templateResultFunc = function (state) {
            console.log(state);
            return jQuery('<span><span style="background-color:'+state.id+'; width: 20px; height: 20px; display: inline-block; margin-right: 10px;">&nbsp;</span>' + state.text + '</span>');
        };

        let optionsColor = {...options, ...{
            templateSelection: templateResultFunc,
            templateResult: templateResultFunc
        }};

        jQuery(selector + ' ' + elementSelector + ':not([data-renderer=color])').select2(options);
        jQuery(selector + ' ' + elementSelector + '[data-renderer=color]').select2(optionsColor);

        jQuery('body').on('reset', 'form', function(event){
            setTimeout(function() {
                jQuery(event.target).find(elementSelector).trigger('change');
            }, 10);
        });
    }
The software saves user-provided information into a Comma-Separated Value (CSV) file, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as a command when the file is opened by spreadsheet software.