{"code":"import * as tslib_1 from \"tslib\";\r\nimport { setValue } from './flip';\r\nimport { resolveProp } from './utils';\r\nimport { getValueType } from '../inc/value-types';\r\nvar getPosFromMatrix = function (matrix, pos) {\r\n    return parseFloat(matrix.split(', ')[pos]);\r\n};\r\nvar getTranslateFromMatrix = function (pos2, pos3) { return function (element, bbox, _a) {\r\n    var transform = _a.transform;\r\n    if (transform === 'none')\r\n        return 0;\r\n    var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\r\n    if (matrix3d)\r\n        return getPosFromMatrix(matrix3d[1], pos3);\r\n    return getPosFromMatrix(transform.match(/^matrix\\((.+)\\)$/)[1], pos2);\r\n}; };\r\nvar positionalValues = {\r\n    width: function (element, _a) {\r\n        var width = _a.width;\r\n        return width;\r\n    },\r\n    height: function (element, _a) {\r\n        var height = _a.height;\r\n        return height;\r\n    },\r\n    top: function (element, bbox, _a) {\r\n        var top = _a.top;\r\n        return parseFloat(top);\r\n    },\r\n    left: function (element, bbox, _a) {\r\n        var left = _a.left;\r\n        return parseFloat(left);\r\n    },\r\n    bottom: function (element, _a, _b) {\r\n        var height = _a.height;\r\n        var top = _b.top;\r\n        return parseFloat(top) + height;\r\n    },\r\n    right: function (element, _a, _b) {\r\n        var width = _a.width;\r\n        var left = _b.left;\r\n        return parseFloat(left) + width;\r\n    },\r\n    x: getTranslateFromMatrix(4, 13),\r\n    y: getTranslateFromMatrix(5, 14)\r\n};\r\nvar isPositionalKey = function (v) { return positionalValues[v] !== undefined; };\r\nexport var isPositional = function (pose) {\r\n    return Object.keys(pose).some(isPositionalKey);\r\n};\r\nexport var convertPositionalUnits = function (state, nextPose) {\r\n    var values = state.values, props = state.props;\r\n    var element = props.element, elementStyler = props.elementStyler;\r\n    var positionalPoseKeys = Object.keys(nextPose).filter(isPositionalKey);\r\n    var changedPositionalKeys = [];\r\n    var elementComputedStyle = getComputedStyle(element);\r\n    var applyAtEndHasBeenCopied = false;\r\n    positionalPoseKeys.forEach(function (key) {\r\n        var value = values.get(key);\r\n        var fromValueType = getValueType(value.raw.get());\r\n        var to = resolveProp(nextPose[key], props);\r\n        var toValueType = getValueType(to);\r\n        if (fromValueType !== toValueType) {\r\n            changedPositionalKeys.push(key);\r\n            if (!applyAtEndHasBeenCopied) {\r\n                applyAtEndHasBeenCopied = true;\r\n                nextPose.applyAtEnd = nextPose.applyAtEnd\r\n                    ? tslib_1.__assign({}, nextPose.applyAtEnd) : {};\r\n            }\r\n            nextPose.applyAtEnd[key] = nextPose.applyAtEnd[key] || nextPose[key];\r\n            setValue(state, key, to);\r\n        }\r\n    });\r\n    if (!changedPositionalKeys.length)\r\n        return nextPose;\r\n    var originBbox = element.getBoundingClientRect();\r\n    var top = elementComputedStyle.top, left = elementComputedStyle.left, bottom = elementComputedStyle.bottom, right = elementComputedStyle.right, transform = elementComputedStyle.transform;\r\n    var originComputedStyle = { top: top, left: left, bottom: bottom, right: right, transform: transform };\r\n    elementStyler.render();\r\n    var targetBbox = element.getBoundingClientRect();\r\n    changedPositionalKeys.forEach(function (key) {\r\n        setValue(state, key, positionalValues[key](element, originBbox, originComputedStyle));\r\n        nextPose[key] = positionalValues[key](element, targetBbox, elementComputedStyle);\r\n    });\r\n    elementStyler.render();\r\n    return nextPose;\r\n};\r\n//# sourceMappingURL=unit-conversion.js.map","map":"{\"version\":3,\"file\":\"unit-conversion.js\",\"sourceRoot\":\"\",\"sources\":[\"../src/dom/unit-conversion.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/mattperry/Sites/popmotion/packages/popmotion-pose/dom/unit-conversion.d.ts","text":"export declare const isPositional: (pose: import(\"pose-core/lib/types\").Pose<import(\"popmotion/lib/action\").Action, import(\"popmotion-pose/src/types\").TransitionDefinition>) => boolean;\r\nexport declare const convertPositionalUnits: (state: import(\"pose-core/lib/types\").PoserState<import(\"popmotion-pose/src/types\").Value, import(\"popmotion/lib/action\").Action, import(\"popmotion/lib/action/types\").ColdSubscription, import(\"popmotion-pose/src/types\").DomPopmotionPoser>, nextPose: import(\"pose-core/lib/types\").Pose<import(\"popmotion/lib/action\").Action, import(\"popmotion-pose/src/types\").TransitionDefinition>) => import(\"pose-core/lib/types\").Pose<import(\"popmotion/lib/action\").Action, import(\"popmotion-pose/src/types\").TransitionDefinition>;\r\n"}}
