whole_func_string: function findAxisComponents(childComponents, predicate) {
    predicate = predicate || identity;
    const findAxes = (children) => {
      return children.reduce((memo, child) => {
        if (child.type && child.type.role === "axis" && predicate(child)) {
          return memo.concat(child);
        } else if (child.props && child.props.children) {
          return memo.concat(findAxes(React.Children.toArray(child.props.children)));
        }
        return memo;
      }, []);
    };
  
    return findAxes(childComponents);
  }
func_code_string: function findAxisComponents(childComponents, predicate) {
    predicate = predicate || identity;
    const findAxes = (children) => {
      return children.reduce((memo, child) => {
        if (child.type && child.type.role === "axis" && predicate(child)) {
          return memo.concat(child);
        } else if (child.props && child.props.children) {
          return memo.concat(findAxes(React.Children.toArray(child.props.children)));
        }
        return memo;
      }, []);
    };
  
    return findAxes(childComponents);
  }
func_documentation_string: Returns all axis components that pass a given predicate
  @param {Array} childComponents: an array of children
  @param {Function} predicate: a predicate function that will be called with each
  @returns {Array} all axis components that pass the given predicate or []