docs: function searchObject(object, filter, maxDepth, depth) {
          if (maxDepth === void 0) { maxDepth = -1; }
          if (depth === void 0) { depth = 0; }
          // avoid inifinite recursion...
          if ((maxDepth > 0 && depth >= maxDepth) || depth > 50) {
              return false;
          }
          var f = filter.toLowerCase();
          var answer = false;
          if (angular.isString(object)) {
              answer = object.toLowerCase().indexOf(f) !== -1;
          }
          else if (angular.isNumber(object)) {
              answer = ("" + object).toLowerCase().indexOf(f) !== -1;
          }
          else if (angular.isArray(object)) {
              answer = _.some(object, function (item) { return searchObject(item, f, maxDepth, depth + 1); });
          }
          else if (angular.isObject(object)) {
              answer = searchObject(_.values(object), f, maxDepth, depth);
          }
          return answer;
      }