Files
ai-course/node_modules/.cache/babel-loader/58128e264d400b005a011871f9b9522c7eddd7fdb44735f6aed18319c78fc44d.json

1 line
9.7 KiB
JSON
Raw Normal View History

{"ast":null,"code":"import { isHTMLElement } from '../../utils/is-html-element.mjs';\nimport { isDragActive } from '../drag/state/is-active.mjs';\nimport { isNodeOrChild } from '../utils/is-node-or-child.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { setupGesture } from '../utils/setup.mjs';\nimport { isElementKeyboardAccessible } from './utils/is-keyboard-accessible.mjs';\nimport { enableKeyboardPress } from './utils/keyboard.mjs';\nimport { isPressing } from './utils/state.mjs';\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return isPrimaryPointer(event) && !isDragActive();\n}\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);\n const startPress = startEvent => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent)) return;\n isPressing.add(target);\n const onPressEnd = onPressStart(target, startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (isPressing.has(target)) {\n isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, {\n success\n });\n }\n };\n const onPointerUp = upEvent => {\n onPointerEnd(upEvent, target === window || target === document || options.useGlobalTarget || isNodeOrChild(target, upEvent.target));\n };\n const onPointerCancel = cancelEvent => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n targets.forEach(target => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if (isHTMLElement(target)) {\n target.addEventListener(\"focus\", event => enableKeyboardPress(event, eventOptions));\n if (!isElementKeyboardAccessible(target) && !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\nexport { press };","map":{"version":3,"names":["isHTMLElement","isDragActive","isNodeOrChild","isPrimaryPointer","setupGesture","isElementKeyboardAccessible","enableKeyboardPress","isPressing","isValidPressEvent","event","press","targetOrSelector","onPressStart","options","arguments","length","undefined","targets","eventOptions","cancelEvents","startPress","startEvent","target","currentTarget","add","onPressEnd","onPointerEnd","endEvent","success","window","removeEventListener","onPointerUp","onPointerCancel","has","delete","upEvent","document","useGlobalTarget","cancelEvent","addEventListener","forEach","pointerDownTarget","hasAttribute","tabIndex"],"sources":["/Users/apple/Documents/cursor/Web/AI/education_web_Agent/node_modules/motion-dom/dist/es/gesture