{"code":"import * as tslib_1 from \"tslib\";\r\nimport poseFactory from '../factories/pose';\r\nimport createDimensions from './dimensions';\r\nimport appendEventListeners from './events';\r\nimport { flipPose, isFlipPose } from './flip';\r\nimport { getValueType } from '../inc/value-types';\r\nimport { styler, Action, ValueReaction } from 'popmotion';\r\nimport { isPositional, convertPositionalUnits } from './unit-conversion';\r\nexport { Action, ValueReaction };\r\nvar dragPoses = function (draggable) {\r\n    var drag = {\r\n        preTransition: function (_a) {\r\n            var dimensions = _a.dimensions;\r\n            return dimensions.measure();\r\n        }\r\n    };\r\n    var dragEnd = {};\r\n    if (draggable === true || draggable === 'x')\r\n        drag.x = dragEnd.x = 0;\r\n    if (draggable === true || draggable === 'y')\r\n        drag.y = dragEnd.y = 0;\r\n    return { drag: drag, dragEnd: dragEnd };\r\n};\r\nvar createPoseConfig = function (element, _a) {\r\n    var onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, onPressStart = _a.onPressStart, onPressEnd = _a.onPressEnd, draggable = _a.draggable, hoverable = _a.hoverable, focusable = _a.focusable, pressable = _a.pressable, dragBounds = _a.dragBounds, config = tslib_1.__rest(_a, [\"onDragStart\", \"onDragEnd\", \"onPressStart\", \"onPressEnd\", \"draggable\", \"hoverable\", \"focusable\", \"pressable\", \"dragBounds\"]);\r\n    var poseConfig = tslib_1.__assign({ flip: {} }, config, { props: tslib_1.__assign({}, config.props, { onDragStart: onDragStart,\r\n            onDragEnd: onDragEnd,\r\n            onPressStart: onPressStart,\r\n            onPressEnd: onPressEnd,\r\n            dragBounds: dragBounds,\r\n            draggable: draggable,\r\n            hoverable: hoverable,\r\n            focusable: focusable,\r\n            pressable: pressable,\r\n            element: element, elementStyler: styler(element, { preparseOutput: false }), dimensions: createDimensions(element) }) });\r\n    if (draggable) {\r\n        var _b = dragPoses(draggable), drag = _b.drag, dragEnd = _b.dragEnd;\r\n        poseConfig.drag = tslib_1.__assign({}, poseConfig.drag, drag);\r\n        poseConfig.dragEnd = tslib_1.__assign({}, poseConfig.dragEnd, dragEnd);\r\n    }\r\n    return poseConfig;\r\n};\r\nvar domPose = poseFactory({\r\n    posePriority: ['drag', 'press', 'focus', 'hover'],\r\n    transformPose: function (_a, name, state) {\r\n        var flip = _a.flip, pose = tslib_1.__rest(_a, [\"flip\"]);\r\n        if (isFlipPose(flip, name, state)) {\r\n            return flipPose(state, pose);\r\n        }\r\n        else if (isPositional(pose)) {\r\n            return convertPositionalUnits(state, pose);\r\n        }\r\n        return pose;\r\n    },\r\n    addListenerToValue: function (key, elementStyler) { return function (v) { return elementStyler.set(key, v); }; },\r\n    readValueFromSource: function (key, _a) {\r\n        var elementStyler = _a.elementStyler, dragBounds = _a.dragBounds;\r\n        var value = elementStyler.get(key);\r\n        if (dragBounds && (key === 'x' || key === 'y')) {\r\n            var bound = key === 'x'\r\n                ? dragBounds.left || dragBounds.right\r\n                : dragBounds.top || dragBounds.bottom;\r\n            if (bound) {\r\n                var boundType = getValueType(bound);\r\n                value = boundType.transform(value);\r\n            }\r\n        }\r\n        return isNaN(value) ? value : parseFloat(value);\r\n    },\r\n    setValueNative: function (key, to, _a) {\r\n        var elementStyler = _a.elementStyler;\r\n        return elementStyler.set(key, to);\r\n    },\r\n    extendAPI: function (api, _a, config) {\r\n        var props = _a.props, activeActions = _a.activeActions;\r\n        var measure = props.dimensions.measure;\r\n        var poserApi = tslib_1.__assign({}, api, { addChild: function (element, childConfig) {\r\n                return api._addChild(createPoseConfig(element, childConfig), domPose);\r\n            }, measure: measure, flip: function (op) {\r\n                if (op) {\r\n                    measure();\r\n                    op();\r\n                }\r\n                return api.set('flip');\r\n            } });\r\n        props.elementStyler.render();\r\n        appendEventListeners(props.element, activeActions, poserApi, config);\r\n        return poserApi;\r\n    }\r\n});\r\nexport default (function (element, config) {\r\n    return domPose(createPoseConfig(element, config));\r\n});\r\n//# sourceMappingURL=pose.js.map","map":"{\"version\":3,\"file\":\"pose.js\",\"sourceRoot\":\"\",\"sources\":[\"../src/dom/pose.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/mattperry/Sites/popmotion/packages/popmotion-pose/dom/pose.d.ts","text":"import { Action, ValueReaction, ColdSubscription } from 'popmotion';\r\nimport { Poser } from 'pose-core';\r\nimport { DomPopmotionPoser, DomPopmotionConfig } from '../types';\r\nexport { Action, Poser, ValueReaction, ColdSubscription };\r\ndeclare const _default: (element: Element, config: DomPopmotionConfig) => DomPopmotionPoser;\r\nexport default _default;\r\n"}}
