{"code":"import { listen } from 'popmotion';\r\nvar makeUIEventApplicator = function (_a) {\r\n    var startEvents = _a.startEvents, endEvents = _a.endEvents, startPose = _a.startPose, endPose = _a.endPose, startCallback = _a.startCallback, endCallback = _a.endCallback, useDocumentToEnd = _a.useDocumentToEnd, preventDefault = _a.preventDefault;\r\n    return function (element, activeActions, poser, config) {\r\n        var startListener = startPose + 'Start';\r\n        var endListener = startPose + 'End';\r\n        var eventStartListener = listen(element, startEvents).start(function (startEvent) {\r\n            var shouldPreventDefault = typeof preventDefault === 'function'\r\n                ? preventDefault(config)\r\n                : preventDefault === true;\r\n            if (shouldPreventDefault)\r\n                startEvent.preventDefault();\r\n            poser.set(startPose);\r\n            if (startCallback && config[startCallback])\r\n                config[startCallback](startEvent);\r\n            var eventEndListener = listen(useDocumentToEnd ? document.documentElement : element, endEvents + (useDocumentToEnd ? ' mouseenter' : '')).start(function (endEvent) {\r\n                if (useDocumentToEnd &&\r\n                    endEvent.type === 'mouseenter' &&\r\n                    endEvent.buttons === 1) {\r\n                    return;\r\n                }\r\n                if (preventDefault)\r\n                    endEvent.preventDefault();\r\n                activeActions.get(endListener).stop();\r\n                poser.unset(startPose);\r\n                poser.set(endPose);\r\n                if (endCallback && config[endCallback])\r\n                    config[endCallback](endEvent);\r\n            });\r\n            activeActions.set(endListener, eventEndListener);\r\n        });\r\n        activeActions.set(startListener, eventStartListener);\r\n    };\r\n};\r\nvar events = {\r\n    draggable: makeUIEventApplicator({\r\n        startEvents: 'mousedown touchstart',\r\n        endEvents: 'mouseup touchend',\r\n        startPose: 'drag',\r\n        endPose: 'dragEnd',\r\n        startCallback: 'onDragStart',\r\n        endCallback: 'onDragEnd',\r\n        useDocumentToEnd: true,\r\n        preventDefault: function (_a) {\r\n            var scrollUntilDragDirection = _a.scrollUntilDragDirection;\r\n            return !scrollUntilDragDirection;\r\n        }\r\n    }),\r\n    hoverable: makeUIEventApplicator({\r\n        startEvents: 'mouseenter',\r\n        endEvents: 'mouseleave',\r\n        startPose: 'hover',\r\n        endPose: 'hoverEnd'\r\n    }),\r\n    focusable: makeUIEventApplicator({\r\n        startEvents: 'focus',\r\n        endEvents: 'blur',\r\n        startPose: 'focus',\r\n        endPose: 'blur'\r\n    }),\r\n    pressable: makeUIEventApplicator({\r\n        startEvents: 'mousedown touchstart',\r\n        endEvents: 'mouseup touchend',\r\n        startPose: 'press',\r\n        endPose: 'pressEnd',\r\n        startCallback: 'onPressStart',\r\n        endCallback: 'onPressEnd',\r\n        useDocumentToEnd: true\r\n    })\r\n};\r\nvar eventKeys = Object.keys(events);\r\nexport default (function (element, activeActions, poser, _a) {\r\n    var props = _a.props;\r\n    return eventKeys.forEach(function (key) {\r\n        if (props[key])\r\n            events[key](element, activeActions, poser, props);\r\n    });\r\n});\r\n//# sourceMappingURL=events.js.map","map":"{\"version\":3,\"file\":\"events.js\",\"sourceRoot\":\"\",\"sources\":[\"../src/dom/events.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/mattperry/Sites/popmotion/packages/popmotion-pose/dom/events.d.ts","text":"import { ColdSubscription } from 'popmotion';\r\nimport { DomPopmotionConfig, DomPopmotionPoser } from '../types';\r\ndeclare const _default: (element: Element, activeActions: Map<string, ColdSubscription>, poser: DomPopmotionPoser, { props }: DomPopmotionConfig) => void;\r\nexport default _default;\r\n"}}
