code: function(el, mixer, data) {
              var self = this,
                  id   = '';
  
              self.callActions('beforeInit', arguments);
  
              self.mixer = mixer;
  
              if (!el) {
                  // If no element is provided, render it
  
                  el = self.render(data);
              }
  
              self.cacheDom(el);
  
              self.bindEvents();
  
              if (self.dom.el.style.display !== 'none') {
                  self.isShown = true;
              }
  
              if (data && mixer.config.data.uidKey) {
                  if (typeof (id = data[mixer.config.data.uidKey]) === 'undefined' || id.toString().length < 1) {
                      throw new TypeError(mixitup.messages.errorDatasetInvalidUidKey({
                          uidKey: mixer.config.data.uidKey
                      }));
                  }
  
                  self.id     = id;
                  self.data   = data;
  
                  mixer.cache[id] = self;
              }
  
              self.callActions('afterInit', arguments);
          }
docs: Initialises a newly instantiated Target.
  
  @private
  @instance
  @since   3.0.0
  @param   {(Element|null)}    el
  @param   {object}            mixer
  @param   {object}            [data]
  @return  {void}