mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-04 20:17:09 +00:00
feat(spec): add LongPress and Scroll authoring surface
This commit is contained in:
1 parent
a6a629a6bc
commit
66b2877f9f
2 files changed
+42
-1
No files matched your search
+25
-1
@@ -2,12 +2,15 @@ import type {
|
|||||||
AccessibilityElement,
|
AccessibilityElement,
|
||||||
Action,
|
Action,
|
||||||
ActionGenerator,
|
ActionGenerator,
|
||||||
|
Direction,
|
||||||
DoubleTapAction,
|
DoubleTapAction,
|
||||||
InputTextAction,
|
InputTextAction,
|
||||||
Key,
|
Key,
|
||||||
|
LongPressAction,
|
||||||
Point,
|
Point,
|
||||||
PressKeyAction,
|
PressKeyAction,
|
||||||
Sampler,
|
Sampler,
|
||||||
|
ScrollAction,
|
||||||
SwipeAction,
|
SwipeAction,
|
||||||
TapAction,
|
TapAction,
|
||||||
WaitAction,
|
WaitAction,
|
||||||
@@ -47,6 +50,17 @@ export function DoubleTap(parameters: { on: string | AccessibilityElement }): Do
|
|||||||
return globalThis.__sanderling__.doubleTap(parameters);
|
return globalThis.__sanderling__.doubleTap(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function LongPress(parameters: { on: string | AccessibilityElement }): LongPressAction {
|
||||||
|
return globalThis.__sanderling__.longPress(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function Scroll(parameters: {
|
||||||
|
direction: Direction;
|
||||||
|
in?: string | AccessibilityElement;
|
||||||
|
}): ScrollAction {
|
||||||
|
return globalThis.__sanderling__.scroll(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
export function InputText(parameters: {
|
export function InputText(parameters: {
|
||||||
into: string | AccessibilityElement;
|
into: string | AccessibilityElement;
|
||||||
text: string;
|
text: string;
|
||||||
@@ -71,7 +85,15 @@ export function Wait(parameters: { durationMillis: number }): WaitAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function builtinGenerator(
|
function builtinGenerator(
|
||||||
name: "taps" | "doubleTaps" | "typing" | "swipes" | "waitOnce" | "pressKeys",
|
name:
|
||||||
|
| "taps"
|
||||||
|
| "doubleTaps"
|
||||||
|
| "longPresses"
|
||||||
|
| "scrolls"
|
||||||
|
| "typing"
|
||||||
|
| "swipes"
|
||||||
|
| "waitOnce"
|
||||||
|
| "pressKeys",
|
||||||
): ActionGenerator {
|
): ActionGenerator {
|
||||||
return new Proxy({} as ActionGenerator, {
|
return new Proxy({} as ActionGenerator, {
|
||||||
get(_target, property) {
|
get(_target, property) {
|
||||||
@@ -86,6 +108,8 @@ function builtinGenerator(
|
|||||||
|
|
||||||
export const taps: ActionGenerator = builtinGenerator("taps");
|
export const taps: ActionGenerator = builtinGenerator("taps");
|
||||||
export const doubleTaps: ActionGenerator = builtinGenerator("doubleTaps");
|
export const doubleTaps: ActionGenerator = builtinGenerator("doubleTaps");
|
||||||
|
export const longPresses: ActionGenerator = builtinGenerator("longPresses");
|
||||||
|
export const scrolls: ActionGenerator = builtinGenerator("scrolls");
|
||||||
export const typing: ActionGenerator = builtinGenerator("typing");
|
export const typing: ActionGenerator = builtinGenerator("typing");
|
||||||
export const swipes: ActionGenerator = builtinGenerator("swipes");
|
export const swipes: ActionGenerator = builtinGenerator("swipes");
|
||||||
export const waitOnce: ActionGenerator = builtinGenerator("waitOnce");
|
export const waitOnce: ActionGenerator = builtinGenerator("waitOnce");
|
||||||
|
|||||||
@@ -132,8 +132,16 @@ export interface Point {
|
|||||||
y: number;
|
y: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type Direction = "up" | "down" | "left" | "right";
|
||||||
|
|
||||||
export type TapAction = { kind: "Tap"; on: string | AccessibilityElement };
|
export type TapAction = { kind: "Tap"; on: string | AccessibilityElement };
|
||||||
export type DoubleTapAction = { kind: "DoubleTap"; on: string | AccessibilityElement };
|
export type DoubleTapAction = { kind: "DoubleTap"; on: string | AccessibilityElement };
|
||||||
|
export type LongPressAction = { kind: "LongPress"; on: string | AccessibilityElement };
|
||||||
|
export type ScrollAction = {
|
||||||
|
kind: "Scroll";
|
||||||
|
direction: Direction;
|
||||||
|
in?: string | AccessibilityElement;
|
||||||
|
};
|
||||||
export type InputTextAction = {
|
export type InputTextAction = {
|
||||||
kind: "InputText";
|
kind: "InputText";
|
||||||
into: string | AccessibilityElement;
|
into: string | AccessibilityElement;
|
||||||
@@ -150,6 +158,8 @@ export type WaitAction = { kind: "Wait"; durationMillis: number };
|
|||||||
export type Action =
|
export type Action =
|
||||||
| TapAction
|
| TapAction
|
||||||
| DoubleTapAction
|
| DoubleTapAction
|
||||||
|
| LongPressAction
|
||||||
|
| ScrollAction
|
||||||
| InputTextAction
|
| InputTextAction
|
||||||
| SwipeAction
|
| SwipeAction
|
||||||
| PressKeyAction
|
| PressKeyAction
|
||||||
@@ -197,6 +207,11 @@ export interface SanderlingRuntime {
|
|||||||
from: <T>(items: readonly T[]) => Sampler<T>;
|
from: <T>(items: readonly T[]) => Sampler<T>;
|
||||||
tap: (parameters: { on: string | AccessibilityElement }) => TapAction;
|
tap: (parameters: { on: string | AccessibilityElement }) => TapAction;
|
||||||
doubleTap: (parameters: { on: string | AccessibilityElement }) => DoubleTapAction;
|
doubleTap: (parameters: { on: string | AccessibilityElement }) => DoubleTapAction;
|
||||||
|
longPress: (parameters: { on: string | AccessibilityElement }) => LongPressAction;
|
||||||
|
scroll: (parameters: {
|
||||||
|
direction: Direction;
|
||||||
|
in?: string | AccessibilityElement;
|
||||||
|
}) => ScrollAction;
|
||||||
inputText: (parameters: {
|
inputText: (parameters: {
|
||||||
into: string | AccessibilityElement;
|
into: string | AccessibilityElement;
|
||||||
text: string;
|
text: string;
|
||||||
@@ -210,6 +225,8 @@ export interface SanderlingRuntime {
|
|||||||
wait: (parameters: { durationMillis: number }) => WaitAction;
|
wait: (parameters: { durationMillis: number }) => WaitAction;
|
||||||
taps: ActionGenerator;
|
taps: ActionGenerator;
|
||||||
doubleTaps: ActionGenerator;
|
doubleTaps: ActionGenerator;
|
||||||
|
longPresses: ActionGenerator;
|
||||||
|
scrolls: ActionGenerator;
|
||||||
typing: ActionGenerator;
|
typing: ActionGenerator;
|
||||||
swipes: ActionGenerator;
|
swipes: ActionGenerator;
|
||||||
waitOnce: ActionGenerator;
|
waitOnce: ActionGenerator;
|
||||||
|
|||||||
Reference in new issue
Block a user