UNPKG

react-tween

Version:

Tween animation for React components

34 lines (32 loc) 981 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = mergeDiff; // Merge newKeys and oldKeys based on shared pivot keys // By convention, oldKeys precede newKeys // // Example // oldKeys [1] 2 [3 4] 6 [8] // newKeys 2 5 6 7 // mergedKeys 1 2 3 4 5 6 8 7 function mergeDiff(oldStyles, newStyles) { var prefixSlice = []; var slice = prefixSlice; var slices = Object.keys(oldStyles).reduce(function (result, k) { if (Object.prototype.hasOwnProperty.call(newStyles, k)) { slice = []; result[k] = slice; // eslint-disable-line no-param-reassign } else { slice.push(k); } return result; }, {}); return Object.keys(newStyles).reduce(function (result, k) { result.push(k); if (Object.prototype.hasOwnProperty.call(slices, k)) { result = result.concat(slices[k]); // eslint-disable-line no-param-reassign } return result; }, prefixSlice.slice()); }