| define([
], function () {
  function MaximumInputLength (decorated, $e, options) {
    this.maximumInputLength = options.get('maximumInputLength');
    decorated.call(this, $e, options);
  }
  MaximumInputLength.prototype.query = function (decorated, params, callback) {
    params.term = params.term || '';
    if (this.maximumInputLength > 0 &&
        params.term.length > this.maximumInputLength) {
      this.trigger('results:message', {
        message: 'inputTooLong',
        args: {
          maximum: this.maximumInputLength,
          input: params.term,
          params: params
        }
      });
      return;
    }
    decorated.call(this, params, callback);
  };
  return MaximumInputLength;
});
 |