docs: function focusout(e) {
      var self = this, name = self.pending_name, text = self.el.value;
      if (name) {
          if (!self.update && text !== name) {
              removeClass(self.el.parentElement, 'suggested');
          }
          else if (name === self.pojo_[self.fk]) {
              self.el.value = name; // redundant on non update
              addClass(self.el.parentElement, 'suggested');
          }
          else if ((self.flags & 32 /* CBFN_AFTER_SET */) && self.cbfn) {
              self.pojo_[self.fk] = name;
              self.pojo[self.field] = self.pending_value;
              self.cbfn(self.field, self.pending_value, self.selected);
          }
          else if (!self.cbfn || self.cbfn(self.field, self.pending_value, self.selected)) {
              self.pojo_[self.fk] = name;
              self.pojo[self.field] = self.pending_value;
          }
          self.pending_name = null;
          hidePopup(getPopup());
      }
      else if (text === (name = self.pojo_[self.fk])) {
          text && self.pojo[self.field] && addClass(self.el.parentElement, 'suggested'); // redundant
      }
      else if (self.update) {
          self.el.value = name;
          addClass(self.el.parentElement, 'suggested');
      }
      else if (text) {
          removeClass(self.el.parentElement, 'suggested');
          self.pojo[self.field] = null;
      }
      else if (name) {
          // unset
          self.pojo_[self.fk] = null;
          self.pojo[self.field] = null;
          0 !== (self.flags & 64 /* CBFN_ON_UNSET */) && self.cbfn(self.field, null, null);
      }
      //if (self === suggest.opts)
      //    window.setTimeout(self.hideSuggestNT, 100)
  }