text: import $ from 'jquery';
  import 'selectize';
  import '../../utils/selectize-required-fix';
  
  export default class SelectizeField {
      constructor(options = {}) {
          this.options = Object.assign({}, options);
          this.elements = [];
  
          $('[data-grav-selectize]').each((index, element) => this.add(element));
          $('body').on('mutation._grav', this._onAddedNodes.bind(this));
      }
  
      add(element) {
          element = $(element);
          let tag = element.prop('tagName').toLowerCase();
          let isInput = tag === 'input' || tag === 'select';
  
          let data = (isInput ? element.closest('[data-grav-selectize]') : element).data('grav-selectize') || {};
          let field = (isInput ? element : element.find('input, select'));
  
          if (!field.length || field.get(0).selectize) { return; }
          field.selectize($.extend({}, data, {
              plugins: ['required-fix']
          }));
  
          this.elements.push(field.data('selectize'));
      }
  
      _onAddedNodes(event, target/* , record, instance */) {
          let fields = $(target).find('select.fancy, input.fancy, [data-grav-selectize]');
          if (!fields.length) { return; }
  
          fields.each((index, field) => this.add(field));
      }
  }
  
  export let Instance = new SelectizeField();
  