getItemBoundingClientRect(item) {
      const el = this.canvas();
      if (!el) return;
      const rect = el.getBoundingClientRect(),
        origin = this._origin,
        bounds = item.bounds,
        width = bounds.width(),
        height = bounds.height();
      let x = bounds.x1 + origin[0] + rect.left,
        y = bounds.y1 + origin[1] + rect.top;

      // translate coordinate for each parent group
      while (item.mark && (item = item.mark.group)) {
        x += item.x || 0;
        y += item.y || 0;
      }

      // return DOMRect-compatible bounding box
      return {
        x,
        y,
        width,
        height,
        left: x,
        top: y,
        right: x + width,
        bottom: y + height
      };
    }
Returns the size of a scenegraph item and its position relative
to the viewport.
@param {Item} item - The scenegraph item.
@return {object} - A bounding box object (compatible with the
  DOMRect type) consisting of x, y, width, heigh, top, left,
  right, and bottom properties.