• Public
  • Public/Protected
  • All

Namespace @swim/gesture


package documentation chat

@swim/gesture implements multitouch gesture recognizers, with kinematic surface modeling. @swim/gesture is part of the @swim/ui framework.



For an npm-managed project, npm install @swim/gesture to make it a dependency. TypeScript sources will be installed into node_modules/@swim/gesture/main. Transpiled JavaScript and TypeScript definition files install into node_modules/@swim/gesture/lib/main. And a pre-built UMD script can be found in node_modules/@swim/gesture/dist/main/swim-gesture.js.


Browser applications can load swim-ui.js—which bundles the @swim/gesture library—along with its swim-core.js dependency, directly from the SwimOS CDN.

<!-- Development -->
<script src="https://cdn.swimos.org/js/latest/swim-core.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-ui.js"></script>

<!-- Production -->
<script src="https://cdn.swimos.org/js/latest/swim-core.min.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-ui.min.js"></script>

Alternatively, the swim-toolkit.js script may be loaded, along with its swim-system.js dependency, from the SwimOS CDN. The swim-toolkit.js script bundles @swim/gesture together with all other @swim/toolkit frameworks.

<!-- Development -->
<script src="https://cdn.swimos.org/js/latest/swim-system.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-toolkit.js"></script>

<!-- Production -->
<script src="https://cdn.swimos.org/js/latest/swim-system.min.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-toolkit.min.js"></script>



@swim/gesture can be imported as an ES6 module from TypeScript and other ES6-compatible environments.

import * as gesture from "@swim/gesture";


@swim/gesture can also be used as a CommonJS module in Node.js applications.

var gesture = require("@swim/gesture");


When loaded by a web browser, the swim-ui.js script adds all @swim/gesture library exports to the global swim namespace. The swim-ui.js script requires that swim-core.js has already been loaded.

The swim-toolkit.js script also adds all @swim/gesture library exports to the global swim namespace, making it a drop-in replacement for swim-ui.js and swim-gesture.js when additional @swim/toolkit frameworks are needed.


Type aliases


GestureView: BaseGestureView


GestureViewPointerType: "mouse" | "touch" | "pen" | "unknown"


Const GestureView

GestureView: typeof BaseGestureView = typeof PointerEvent !== "undefined" ? PointerGestureView :typeof TouchEvent !== "undefined" ? TouchGestureView :MouseGestureView

Const MultitouchEvent

MultitouchEvent: MultitouchEventClass = function (this: MultitouchEvent, type: string, init: MultitouchEventInit): MultitouchEvent {const event = document.createEvent("CustomEvent") as MultitouchEvent;event.initCustomEvent(type, init.bubbles || false, init.cancelable || false, init.detail);(event as any).points = init.points;(event as any).originalEvent = init.originalEvent || null;(event as any).__proto__ = (this as any).__proto__;return event;} as unknown as MultitouchEventClass

Const ScaleGestureEvent

ScaleGestureEvent: ScaleGestureEventClass = function <D>(this: ScaleGestureEvent<D>, type: string, init: ScaleGestureEventInit<D>): ScaleGestureEvent<D> {const event = document.createEvent("CustomEvent") as ScaleGestureEvent<D>;event.initCustomEvent(type, init.bubbles || false, init.cancelable || false, init.detail);event.gesture = init.gesture;event.multitouch = init.multitouch;event.ruler = init.ruler;event.scale = init.scale;(event as any).originalEvent = init.originalEvent || null;(event as any).__proto__ = (this as any).__proto__;return event;} as unknown as ScaleGestureEventClass