overlaps (other, strict) {
    if (other.isNull()) return false
    if (other.isContainerSelection()) {
      // console.log('PropertySelection.overlaps: delegating to ContainerSelection.overlaps...')
      return other.overlaps(this)
    }
    if (!isArrayEqual(this.path, other.path)) return false
    if (strict) {
      return (!(this.start.offset >= other.end.offset || this.end.offset <= other.start.offset))
    } else {
      return (!(this.start.offset > other.end.offset || this.end.offset < other.start.offset))
    }
  }
Checks if this selection overlaps another one.

@param {Selection} other
@param {Boolean} [strict] true if should check that it is strictly overlaps the other
@returns {Boolean}