class Selenium::WebDriver::Interactions::PointerInput

def assert_kind(pointer)

def assert_kind(pointer)
  raise TypeError, "#{pointer.inspect} is not a valid pointer type" unless KIND.key? pointer
  KIND[pointer]
end

def create_pointer_cancel

def create_pointer_cancel
  add_action(PointerCancel.new(self))
end

def create_pointer_down(button, **opts)

def create_pointer_down(button, **opts)
  add_action(PointerPress.new(self, :down, button, **opts))
end

def create_pointer_move(duration: 0, x: 0, y: 0, origin: nil, **opts)

def create_pointer_move(duration: 0, x: 0, y: 0, origin: nil, **opts)
  add_action(PointerMove.new(self, duration, x, y, origin: origin, **opts))
end

def create_pointer_up(button, **opts)

def create_pointer_up(button, **opts)
  add_action(PointerPress.new(self, :up, button, **opts))
end

def encode

def encode
  output = super
  output[:parameters] = {pointerType: kind} if output
  output
end

def initialize(kind, name: nil)

def initialize(kind, name: nil)
  super(name)
  @kind = assert_kind(kind)
  @type = Interactions::POINTER
end