function evaluateInteractionItems(chart, axis, position, handler, intersect) {
  const metasets = chart.getSortedVisibleDatasetMetas();
  const value = position[axis];
  for (let i = 0, ilen = metasets.length; i < ilen; ++i) {
    const {index, data} = metasets[i];
    const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);
    for (let j = lo; j <= hi; ++j) {
      const element = data[j];
      if (!element.skip) {
        handler(element, index, j);
      }
    }
  }
}
Helper function to select candidate elements for interaction
@param {Chart} chart - the chart
@param {string} axis - the axis mode. x|y|xy|r
@param {Point} position - the point to be nearest to, in relative coordinates
@param {function} handler - the callback to execute for each visible item
@param {boolean} [intersect] - consider intersecting items