| define([
], function () {
  function HidePlaceholder (decorated, $element, options, dataAdapter) {
    this.placeholder = this.normalizePlaceholder(options.get('placeholder'));
    decorated.call(this, $element, options, dataAdapter);
  }
  HidePlaceholder.prototype.append = function (decorated, data) {
    data.results = this.removePlaceholder(data.results);
    decorated.call(this, data);
  };
  HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {
    if (typeof placeholder === 'string') {
      placeholder = {
        id: '',
        text: placeholder
      };
    }
    return placeholder;
  };
  HidePlaceholder.prototype.removePlaceholder = function (_, data) {
    var modifiedData = data.slice(0);
    for (var d = data.length - 1; d >= 0; d--) {
      var item = data[d];
      if (this.placeholder.id === item.id) {
        modifiedData.splice(d, 1);
      }
    }
    return modifiedData;
  };
  return HidePlaceholder;
});
 |