UNPKG

universal-transition

Version:
107 lines (87 loc) 2.71 kB
"use strict"; exports.__esModule = true; exports.default = transition; var _process = require("../../process"); var _universalUnitTool = require("universal-unit-tool"); var __read = void 0 && (void 0).__read || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); } } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = void 0 && (void 0).__spread || function () { for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read(arguments[i])); } return ar; }; function parseTransform(transformValue) { var keyValueMap = {}; if (!transformValue || transformValue.length < 1) { return keyValueMap; } var functionList = transformValue.match(/\w+\(.+?\)/g); if (functionList) { functionList.forEach(function (functionString) { var functionArray = functionString.match(/(\w+)\((.+?)\)/); if (functionArray && functionArray.length === 3) { keyValueMap[functionArray[1]] = functionArray[2].replace('deg', '').split(','); } }); } return keyValueMap; } function transition(node, styles, options, callback) { var _a; _a = __read((0, _process.processParams)(options, callback), 2), options = _a[0], callback = _a[1]; // eslint-disable-next-line no-undef var animation = tt.createAnimation(Object.assign({}, options, { timeFunction: options.timingFunction || 'ease' })); var properties = Object.keys(styles); properties.map(function (property) { if (animation[property]) { animation = animation[property](styles[property]); } if (property === 'transform') { var transformList_1 = parseTransform(styles[property]); // WeChat does not support translate rpx units Object.keys(transformList_1).forEach(function (key) { if (Array.isArray(transformList_1[key])) { transformList_1[key] = transformList_1[key].map(function (v) { if (/rpx$/.test(v)) { return (0, _universalUnitTool.rpx2px)(parseFloat(v)); } return v; }); } }); Object.keys(transformList_1).forEach(function (key) { if (animation[key]) { animation = animation[key].apply(animation, __spread(transformList_1[key])); } }); } }); return { export: function _export() { return animation.step().export(); } }; }