export function inicializarSelector(
  selector = $('select'),
  configuracionSelector = {

    language: {
        noResults: () => { return "" },
        searching: () => { return "Buscando..." },
        loadingMore: () => { return "Cargando más resultados..." },
    },
  
    minimumResultsForSearch: null,
  
    templateResult: function (data, opcion) {
  
      !data.id && (
        data.text = ' '
      );
  
      if (data.id === 'crearRegistro') {

        data.text = $("<div>")
          .addClass("row justify-content-between").append(`
  
            <div class="col-auto">
              <span class="text-decoration-underline">
                Crear nuevo registro
              </span>
            </div>
  
            <div
              class="col-auto"
              style="
                width: 15px;
                height: 15px;
                border: 1px solid #fff;
                border-radius: 1em;
                background-color: var(--bs-success);
                font-size: 9px;
                text-align: center;
                color: #fff
              "
            >
              +
            </div>
  
        `)
  
      }
  
      $(opcion, '.select2-results__options').click(function() {
  
        $(this).parent().parent().parent().css('z-index', '1040') &&
        $('#ventanaDialogoCreacion').modal('show')
  
      });
  
      return data.text
  
    },

  }
) {

  $(selector).select2(configuracionSelector);

  $(selector).map(function(indice, elemento) {

    // $(elemento).on('change', function() {

    //   console.log(this.value)

    // });

    // elemento.disabled = elemento.options.length <= 1;

    // elemento.selectedIndex = Number(
    //   elemento.options.length <= 1
    // );

    $('form').has(elemento).on('reset', function() {

      setTimeout(() => {

        $(elemento).prop({
          disabled: elemento.getAttribute('disabled') === '' || elemento.options.length <= 1,
          selectedIndex: Number(
            elemento.options.length &&
            elemento.options[0].value === 'crearRegistro'
          )
        });
  
        elemento.options.length && (
          elemento.options[0].disabled = elemento.options[0].value === 'crearRegistro'
        )

      }, 1);

      // $(elemento).children().first().val() === 'crearRegistro' &&
      // $(elemento).children().first().attr('disabled', 'disabled')

    });

  })

  // $(selector).change(function() {

  //   $(select).select2('trigger', 'select', {
  //     data: {
  //       id: 4
  //     }
  //   })

  // })

}