{"code":"import * as tslib_1 from \"tslib\";\r\nimport { value, chain, easing, delay as delayAction } from 'popmotion';\r\nimport poseFactory from 'pose-core';\r\nimport defaultTransitions, { just } from '../inc/default-transitions';\r\nimport { animationLookup, easingLookup } from '../inc/lookups';\r\nimport { getValueType } from '../inc/value-types';\r\nimport { invariant } from 'hey-listen';\r\nvar createPassiveValue = function (init, parent, transform) {\r\n    var raw = value(transform(init));\r\n    parent.raw.subscribe(function (v) { return raw.update(transform(v)); });\r\n    return { raw: raw };\r\n};\r\nvar createValue = function (init) {\r\n    var type = getValueType(init);\r\n    var raw = value(init);\r\n    return { raw: raw, type: type };\r\n};\r\nvar addActionDelay = function (delay, transition) {\r\n    if (delay === void 0) { delay = 0; }\r\n    return chain(delayAction(delay), transition);\r\n};\r\nvar isCubicBezierArgs = function (args) { return typeof args[0] === 'number'; };\r\nvar getAction = function (v, _a, _b) {\r\n    var from = _b.from, to = _b.to, velocity = _b.velocity;\r\n    var _c = _a.type, type = _c === void 0 ? 'tween' : _c, definedEase = _a.ease, def = tslib_1.__rest(_a, [\"type\", \"ease\"]);\r\n    invariant(animationLookup[type] !== undefined, \"Invalid transition type '\" + type + \"'. Valid transition types are: tween, spring, decay, physics and keyframes.\");\r\n    var ease;\r\n    if (type === 'tween') {\r\n        if (typeof definedEase !== 'function') {\r\n            if (typeof definedEase === 'string') {\r\n                invariant(easingLookup[definedEase] !== undefined, \"Invalid easing type '\" + definedEase + \"'. popmotion.io/pose/api/config\");\r\n                ease = easingLookup[definedEase];\r\n            }\r\n            else if (Array.isArray(definedEase) && isCubicBezierArgs(definedEase)) {\r\n                invariant(definedEase.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\r\n                var x1 = definedEase[0], y1 = definedEase[1], x2 = definedEase[2], y2 = definedEase[3];\r\n                ease = easing.cubicBezier(x1, y1, x2, y2);\r\n            }\r\n        }\r\n    }\r\n    ease = ease || definedEase;\r\n    var baseProps = type !== 'keyframes'\r\n        ? {\r\n            from: from,\r\n            to: to,\r\n            velocity: velocity,\r\n            ease: ease\r\n        }\r\n        : { ease: ease };\r\n    return animationLookup[type](tslib_1.__assign({}, baseProps, def));\r\n};\r\nvar isAction = function (action) {\r\n    return typeof action.start !== 'undefined';\r\n};\r\nvar pose = function (_a) {\r\n    var transformPose = _a.transformPose, addListenerToValue = _a.addListenerToValue, extendAPI = _a.extendAPI, readValueFromSource = _a.readValueFromSource, posePriority = _a.posePriority, setValueNative = _a.setValueNative;\r\n    return poseFactory({\r\n        bindOnChange: function (values, onChange) { return function (key) {\r\n            if (!values.has(key))\r\n                return;\r\n            var raw = values.get(key).raw;\r\n            raw.subscribe(onChange[key]);\r\n        }; },\r\n        readValue: function (_a) {\r\n            var raw = _a.raw;\r\n            return raw.get();\r\n        },\r\n        setValue: function (_a, to) {\r\n            var raw = _a.raw;\r\n            return raw.update(to);\r\n        },\r\n        createValue: function (init, key, _a, _b) {\r\n            var elementStyler = _a.elementStyler;\r\n            var _c = _b === void 0 ? {} : _b, passiveParent = _c.passiveParent, passiveProps = _c.passiveProps;\r\n            var val = passiveParent\r\n                ? createPassiveValue(init, passiveParent, passiveProps)\r\n                : createValue(init);\r\n            if (addListenerToValue) {\r\n                val.raw.subscribe(addListenerToValue(key, elementStyler));\r\n            }\r\n            return val;\r\n        },\r\n        convertValue: function (raw, key, _a) {\r\n            var elementStyler = _a.elementStyler;\r\n            if (addListenerToValue) {\r\n                raw.subscribe(addListenerToValue(key, elementStyler));\r\n            }\r\n            return {\r\n                raw: raw,\r\n                type: getValueType(raw.get())\r\n            };\r\n        },\r\n        getTransitionProps: function (_a, to) {\r\n            var raw = _a.raw, type = _a.type;\r\n            return ({\r\n                from: raw.get(),\r\n                velocity: raw.getVelocity(),\r\n                to: to,\r\n                type: type\r\n            });\r\n        },\r\n        resolveTarget: function (_, to) { return to; },\r\n        selectValueToRead: function (_a) {\r\n            var raw = _a.raw;\r\n            return raw;\r\n        },\r\n        startAction: function (_a, action, complete) {\r\n            var raw = _a.raw;\r\n            var reaction = {\r\n                update: function (v) { return raw.update(v); },\r\n                complete: complete\r\n            };\r\n            return action.start(reaction);\r\n        },\r\n        stopAction: function (action) { return action.stop(); },\r\n        getInstantTransition: function (_, _a) {\r\n            var to = _a.to;\r\n            return just(to);\r\n        },\r\n        convertTransitionDefinition: function (val, def, props) {\r\n            if (isAction(def))\r\n                return def;\r\n            var delay = def.delay, min = def.min, max = def.max, round = def.round, remainingDef = tslib_1.__rest(def, [\"delay\", \"min\", \"max\", \"round\"]);\r\n            var action = getAction(val, remainingDef, props);\r\n            var outputPipe = [];\r\n            if (delay)\r\n                action = addActionDelay(delay, action);\r\n            if (min !== undefined)\r\n                outputPipe.push(function (v) { return Math.max(v, min); });\r\n            if (max !== undefined)\r\n                outputPipe.push(function (v) { return Math.min(v, max); });\r\n            if (round)\r\n                outputPipe.push(Math.round);\r\n            return outputPipe.length ? action.pipe.apply(action, outputPipe) : action;\r\n        },\r\n        setValueNative: setValueNative,\r\n        addActionDelay: addActionDelay,\r\n        defaultTransitions: defaultTransitions,\r\n        transformPose: transformPose,\r\n        readValueFromSource: readValueFromSource,\r\n        posePriority: posePriority,\r\n        extendAPI: extendAPI\r\n    });\r\n};\r\nexport default pose;\r\n//# sourceMappingURL=pose.js.map","map":"{\"version\":3,\"file\":\"pose.js\",\"sourceRoot\":\"\",\"sources\":[\"../src/factories/pose.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/mattperry/Sites/popmotion/packages/popmotion-pose/factories/pose.d.ts","text":"import { Action, ColdSubscription } from 'popmotion';\r\nimport { Poser } from 'pose-core';\r\nimport { Value, PopmotionPoserFactoryConfig, TransitionDefinition } from '../types';\r\nexport { Poser };\r\ndeclare const pose: <P>({ transformPose, addListenerToValue, extendAPI, readValueFromSource, posePriority, setValueNative }: PopmotionPoserFactoryConfig<P, TransitionDefinition>) => (config: import(\"pose-core/lib/types\").PoserConfig<Value>) => Poser<Value, Action, ColdSubscription, P>;\r\nexport default pose;\r\n"}}
