UNPKG

lisn.js

Version:

Simply handle user gestures and actions. Includes widgets.

1 lines 5.65 kB
{"version":3,"file":"gesture.cjs","names":["MC","_interopRequireWildcard","require","MH","_validation","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isValidInputDevice","device","includes","DEVICES","exports","isValidIntent","intent","INTENTS","isValidInputDeviceList","devices","isValidStrList","isValidIntentList","intents","addDeltaZ","current","increment","max","MIN_DELTA_Z","S_KEY","S_POINTER","S_TOUCH","S_WHEEL","S_SCROLL","S_ZOOM","S_DRAG","S_UNKNOWN"],"sources":["../../../src/ts/utils/gesture.ts"],"sourcesContent":["/**\n * @module Utils\n */\n\nimport * as MC from \"@lisn/globals/minification-constants\";\nimport * as MH from \"@lisn/globals/minification-helpers\";\n\nimport { Direction, GestureDevice, GestureIntent } from \"@lisn/globals/types\";\n\nimport { isValidStrList } from \"@lisn/utils/validation\";\n\n/**\n * `deltaX` and `deltaY` together specify the precise direction in the XY plane\n * of the move if relevant (i.e. other than zoom intent). The direction\n * specifies the effective X (\"left\"/\"right\"), Y (\"up\"/\"down\") or Z (\"in\"/\"out\")\n * direction, or \"none\"/\"ambiguous\".\n *\n * `deltaZ` specifies relative zoom in or out for zoom intents.\n * For zoom in, deltaZ is always > 1, and for zoom out it is < 1.\n * For non-zoom events it is 1.\n *\n * For zoom intents, `direction` would be either in, out or none.\n * For other intents, it would be up, down, left, right, none or ambiguous.\n *\n * For important notes on the delta values see\n * - {@link Utils.getKeyGestureFragment | getKeyGestureFragment}\n * - {@link Utils.getTouchGestureFragment | getTouchGestureFragment}\n * - {@link Utils.getWheelGestureFragment | getWheelGestureFragment}\n *\n * @category Gestures\n */\nexport type GestureFragment = {\n device: GestureDevice;\n direction: Direction;\n intent: GestureIntent;\n deltaX: number;\n deltaY: number;\n deltaZ: number;\n};\n\n/**\n * Returns true if the given string is a valid gesture device.\n *\n * @category Validation\n */\nexport const isValidInputDevice = (device: string): device is GestureDevice =>\n MH.includes(DEVICES, device);\n\n/**\n * Returns true if the given string is a valid gesture intent.\n *\n * @category Validation\n */\nexport const isValidIntent = (intent: string): intent is GestureIntent =>\n MH.includes(INTENTS, intent);\n\n/**\n * Returns true if the given string or array is a list of valid gesture\n * devices.\n *\n * @category Validation\n */\nexport const isValidInputDeviceList = (devices: string | string[]) =>\n isValidStrList(devices, isValidInputDevice, false);\n\n/**\n * Returns true if the given string or array is a list of valid gesture\n * intents.\n *\n * @category Validation\n */\nexport const isValidIntentList = (intents: string | string[]) =>\n isValidStrList(intents, isValidIntent, false);\n\n/**\n * @ignore\n * @internal\n */\nexport const addDeltaZ = (current: number, increment: number) =>\n MH.max(MIN_DELTA_Z, current * increment);\n\n/**\n * @ignore\n * @internal\n */\nexport const DEVICES: GestureDevice[] = [\n MC.S_KEY,\n MC.S_POINTER,\n MC.S_TOUCH,\n MC.S_WHEEL,\n] as const;\n\n/**\n * @ignore\n * @internal\n */\nexport const INTENTS: GestureIntent[] = [\n MC.S_SCROLL,\n MC.S_ZOOM,\n MC.S_DRAG,\n MC.S_UNKNOWN,\n] as const;\n\n// Do not allow zooming out more than this value\nconst MIN_DELTA_Z = 0.1;\n"],"mappings":"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","ignoreList":[]}