"use strict";
{
    const $ = django.jQuery;

    $.fn.djangoAdminSelect2 = function () {
        $.each(this, function (i, element) {
            $(element).select2({
                ajax: {
                    data: (params) => {
                        return {
                            term: params.term,
                            page: params.page,
                            app_label: element.dataset.appLabel,
                            model_name: element.dataset.modelName,
                            field_name: element.dataset.fieldName,
                        };
                    },
                },
            });
        });
        return this;
    };

    $(function () {
        // Initialize all autocomplete widgets except the one in the template
        // form used when a new formset is added.
        $(".admin-autocomplete").not("[name*=__prefix__]").djangoAdminSelect2();
    });

    document.addEventListener("formset:added", (event) => {
        $(event.target).find(".admin-autocomplete").djangoAdminSelect2();
    });
}
