diff --git a/.babelrc b/.babelrc index 34a1108..2f01e1d 100644 --- a/.babelrc +++ b/.babelrc @@ -1,9 +1,3 @@ { - "presets": ["env"], - "plugins": [ - "transform-es2015-destructuring", - "transform-object-rest-spread", - "transform-runtime", - "syntax-trailing-function-commas" - ] + "presets": ["env"] } \ No newline at end of file diff --git a/bundle.js b/bundle.js new file mode 100644 index 0000000..e69de29 diff --git a/dist/config-constants.js b/dist/config-constants.js new file mode 100644 index 0000000..57d8121 --- /dev/null +++ b/dist/config-constants.js @@ -0,0 +1,109 @@ +"use strict"; + +import constants from './constants.js'; + +const curves = { + [constants.PROPERTY_MOVE]:{ + [constants.MOMENT_EXPRESSIVE]:{ + "easeInOut":"cubic-bezier(0.4, 0.14, 0.3, 1)", + "easeIn":"cubic-bezier(0.4, 0.14, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_PRODUCTIVE]:{ + "easeInOut":"cubic-bezier(0.2, 0.2, 0.38, 0.9)", + "easeIn":"cubic-bezier(0.2, 0, 1, 0.9)", + "easeOut":"cubic-bezier(0, 0, 0.38, 0.9)", + }, + [constants.MOMENT_NARRATIVE]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_CELEBRATORY]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + } + }, + [constants.PROPERTY_SCALE]:{ + [constants.MOMENT_EXPRESSIVE]:{ + "easeInOut":"cubic-bezier(0.4, 0.14, 0.3, 1)", + "easeIn":"cubic-bezier(0.4, 0.14, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_PRODUCTIVE]:{ + "easeInOut":"cubic-bezier(0.2, 0.2, 0.38, 0.9)", + "easeIn":"cubic-bezier(0.2, 0, 1, 0.9)", + "easeOut":"cubic-bezier(0, 0, 0.38, 0.9)", + }, + [constants.MOMENT_NARRATIVE]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_CELEBRATORY]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + } + }, + [constants.PROPERTY_FADE]:{ + [constants.MOMENT_EXPRESSIVE]:{ + "easeInOut":"cubic-bezier(0.4, 0.14, 0.3, 1)", + "easeIn":"cubic-bezier(0.4, 0.14, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_PRODUCTIVE]:{ + "easeInOut":"cubic-bezier(0.2, 0.2, 0.38, 0.9)", + "easeIn":"cubic-bezier(0.2, 0, 1, 0.9)", + "easeOut":"cubic-bezier(0, 0, 0.38, 0.9)", + }, + [constants.MOMENT_NARRATIVE]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_CELEBRATORY]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + } + }, + [constants.PROPERTY_ROTATE]:{ + [constants.MOMENT_EXPRESSIVE]:{ + "easeInOut":"cubic-bezier(0.4, 0.14, 0.3, 1)", + "easeIn":"cubic-bezier(0.4, 0.14, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_PRODUCTIVE]:{ + "easeInOut":"cubic-bezier(0.2, 0.2, 0.38, 0.9)", + "easeIn":"cubic-bezier(0.2, 0, 1, 0.9)", + "easeOut":"cubic-bezier(0, 0, 0.38, 0.9)", + }, + [constants.MOMENT_NARRATIVE]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + }, + [constants.MOMENT_CELEBRATORY]:{ + "easeInOut":"cubic-bezier(0.29, 0.04, 0.23, 1)", + "easeIn":"cubic-bezier(0.39, .06, 1, 1)", + "easeOut":"cubic-bezier(0, 0, 0.3, 1)", + } + } +}; + +const motionModes = [constants.MOMENT_EXPRESSIVE, constants.MOMENT_PRODUCTIVE, constants.MOMENT_NARRATIVE, constants.MOMENT_CELEBRATORY]; + +const distances = { + [constants.PROPERTY_MOVE]:[10, 25, 50, 75, 100, 200, 400, 800, 1600, 3200], + [constants.PROPERTY_SCALE]:[100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800], + [constants.PROPERTY_FADE]:[25, 50, 75, 100], + [constants.PROPERTY_ROTATE]:[30, 60, 90, 120, 150, 180, 270, 360] +}; + +const sizes = '123456789'.split('').reduce( (prev, curr, i) => [...prev, prev[prev.length-1] * 4], [8*8]); + +module.exports = { + curves, distances, sizes, motionModes +} diff --git a/dist/constants.js b/dist/constants.js new file mode 100644 index 0000000..49e10f6 --- /dev/null +++ b/dist/constants.js @@ -0,0 +1,14 @@ +export default { + MOMENT_EXPRESSIVE:"expr", + MOMENT_PRODUCTIVE:"prod", + MOMENT_NARRATIVE:"narr", + MOMENT_CELEBRATORY:"celeb", + SIZE_BASE:20, + PROPERTY_MOVE:"move", + PROPERTY_SCALE:"scale", + PROPERTY_FADE:"fade", + PROPERTY_ROTATE:"rotate", + EASE_IN_OUT:"easeInOut", + EASE_IN:"easeIn", + EASE_OUT:"easeOut" +} \ No newline at end of file diff --git a/dist/getCurve.js b/dist/getCurve.js new file mode 100644 index 0000000..2ef3b2f --- /dev/null +++ b/dist/getCurve.js @@ -0,0 +1,151 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.getCurve = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : 100; + + var _size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16; + + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PROPERTY_MOVE; + var motionMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants2.default.MOMENT_PRODUCTIVE; + var easing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants2.default.EASE_IN_OUT; + var unit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'rem'; + var remSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 16; + + return _configConstants2.default.curves[property][motionMode][easing]; +}; + +exports.default = getCurve; + +},{"./config-constants.js":1,"./constants.js":2}]},{},[3])(3) +}); + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvY29uZmlnLWNvbnN0YW50cy5qcyIsInNyYy9jb25zdGFudHMuanMiLCJzcmMvZ2V0Q3VydmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTs7OztBQUVBOzs7Ozs7Ozs7O0FBRUEsSUFBTSxpREFDSixvQkFBVSxhQUROLHNFQUVILG9CQUFVLGlCQUZQLEVBRTBCO0FBQzdCLGNBQVksaUNBRGlCO0FBRTdCLFdBQVMsK0JBRm9CO0FBRzdCLFlBQVU7QUFIbUIsQ0FGMUIsMENBT0gsb0JBQVUsaUJBUFAsRUFPMEI7QUFDN0IsY0FBWSxtQ0FEaUI7QUFFN0IsV0FBUyw4QkFGb0I7QUFHN0IsWUFBVTtBQUhtQixDQVAxQiwwQ0FZSCxvQkFBVSxnQkFaUCxFQVl5QjtBQUM1QixjQUFZLG1DQURnQjtBQUU1QixXQUFTLCtCQUZtQjtBQUc1QixZQUFVO0FBSGtCLENBWnpCLDBDQWlCSCxvQkFBVSxrQkFqQlAsRUFpQjJCO0FBQzlCLGNBQVksbUNBRGtCO0FBRTlCLFdBQVMsK0JBRnFCO0FBRzlCLFlBQVU7QUFIb0IsQ0FqQjNCLHFEQXVCSixvQkFBVSxjQXZCTixzRUF3Qkgsb0JBQVUsaUJBeEJQLEVBd0IwQjtBQUM3QixjQUFZLGlDQURpQjtBQUU3QixXQUFTLCtCQUZvQjtBQUc3QixZQUFVO0FBSG1CLENBeEIxQiwwQ0E2Qkgsb0JBQVUsaUJBN0JQLEVBNkIwQjtBQUM3QixjQUFZLG1DQURpQjtBQUU3QixXQUFTLDhCQUZvQjtBQUc3QixZQUFVO0FBSG1CLENBN0IxQiwwQ0FrQ0gsb0JBQVUsZ0JBbENQLEVBa0N5QjtBQUM1QixjQUFZLG1DQURnQjtBQUU1QixXQUFTLCtCQUZtQjtBQUc1QixZQUFVO0FBSGtCLENBbEN6QiwwQ0F1Q0gsb0JBQVUsa0JBdkNQLEVBdUMyQjtBQUM5QixjQUFZLG1DQURrQjtBQUU5QixXQUFTLCtCQUZxQjtBQUc5QixZQUFVO0FBSG9C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QUFRLFFBWE07QUFZZCxXQUFTO0FBWkssQzs7Ozs7Ozs7O0FDQWY7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTSxXQUNMLFNBREssUUFDTCxHQU9LO0FBQUEsS0FOSixTQU1JLHVFQU5RLEdBTVI7O0FBQUEsS0FMSixLQUtJLHVFQUxJLEVBS0o7O0FBQUEsS0FKSixRQUlJLHVFQUpPLG9CQUFVLGFBSWpCO0FBQUEsS0FISixVQUdJLHVFQUhTLG9CQUFVLGlCQUduQjtBQUFBLEtBRkosTUFFSSx1RUFGSyxvQkFBVSxXQUVmO0FBQUEsS0FESixJQUNJLHVFQURHLEtBQ0g7QUFBQSxLQURVLE9BQ1YsdUVBRG9CLEVBQ3BCOztBQUNKLFFBQU8sMEJBQWdCLE1BQWhCLENBQXVCLFFBQXZCLEVBQWlDLFVBQWpDLEVBQTZDLE1BQTdDLENBQVA7QUFDQSxDQVZGOztrQkFhZSxRIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5jb25zdCBjdXJ2ZXMgPSB7XG5cdFtjb25zdGFudHMuUFJPUEVSVFlfTU9WRV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9TQ0FMRV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9GQURFXTp7XG5cdFx0W2NvbnN0YW50cy5NT01FTlRfRVhQUkVTU0lWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfUFJPRFVDVElWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjIsIDAuMiwgMC4zOCwgMC45KVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjIsIDAsIDEsIDAuOSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzgsIDAuOSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX05BUlJBVElWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjI5LCAwLjA0LCAwLjIzLCAxKVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjM5LCAuMDYsIDEsIDEpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjMsIDEpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9DRUxFQlJBVE9SWV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjI5LCAwLjA0LCAwLjIzLCAxKVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjM5LCAuMDYsIDEsIDEpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjMsIDEpXCIsXG5cdFx0fVxuXHR9LFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX1JPVEFURV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fVxufTtcblxuY29uc3QgbW90aW9uTW9kZXMgPSBbY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFLCBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkUsIGNvbnN0YW50cy5NT01FTlRfTkFSUkFUSVZFLCBjb25zdGFudHMuTU9NRU5UX0NFTEVCUkFUT1JZXTtcblxuY29uc3QgZGlzdGFuY2VzID0ge1xuXHRbY29uc3RhbnRzLlBST1BFUlRZX01PVkVdOlsxMCwgMjUsIDUwLCA3NSwgMTAwLCAyMDAsIDQwMCwgODAwLCAxNjAwLCAzMjAwXSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9TQ0FMRV06WzEwMCwgMjAwLCA0MDAsIDgwMCwgMTYwMCwgMzIwMCwgNjQwMCwgMTI4MDAsIDI1NjAwLCA1MTIwMCwgMTAyNDAwLCAyMDQ4MDBdLFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX0ZBREVdOlsyNSwgNTAsIDc1LCAxMDBdLFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX1JPVEFURV06WzMwLCA2MCwgOTAsIDEyMCwgMTUwLCAxODAsIDI3MCwgMzYwXVxufTtcblxuY29uc3Qgc2l6ZXMgPSAnMTIzNDU2Nzg5Jy5zcGxpdCgnJykucmVkdWNlKCAocHJldiwgY3VyciwgaSkgPT4gWy4uLnByZXYsIHByZXZbcHJldi5sZW5ndGgtMV0gKiA0XSwgWzgqOF0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0Y3VydmVzLCBkaXN0YW5jZXMsIHNpemVzLCBtb3Rpb25Nb2Rlc1xufVxuIiwiZXhwb3J0IGRlZmF1bHQge1xuXHRNT01FTlRfRVhQUkVTU0lWRTpcImV4cHJcIixcblx0TU9NRU5UX1BST0RVQ1RJVkU6XCJwcm9kXCIsXG5cdE1PTUVOVF9OQVJSQVRJVkU6XCJuYXJyXCIsXG5cdE1PTUVOVF9DRUxFQlJBVE9SWTpcImNlbGViXCIsXG5cdFNJWkVfQkFTRToyMCxcblx0UFJPUEVSVFlfTU9WRTpcIm1vdmVcIixcblx0UFJPUEVSVFlfU0NBTEU6XCJzY2FsZVwiLFxuXHRQUk9QRVJUWV9GQURFOlwiZmFkZVwiLFxuXHRQUk9QRVJUWV9ST1RBVEU6XCJyb3RhdGVcIixcblx0RUFTRV9JTl9PVVQ6XCJlYXNlSW5PdXRcIixcblx0RUFTRV9JTjpcImVhc2VJblwiLFxuXHRFQVNFX09VVDpcImVhc2VPdXRcIlxufSIsImltcG9ydCBjb25maWdDb25zdG5hdHMgZnJvbSAnLi9jb25maWctY29uc3RhbnRzLmpzJztcbmltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5jb25zdCBnZXRDdXJ2ZSA9IFxuXHQoXG5cdFx0X2Rpc3RhbmNlID0gMTAwLCBcblx0XHRfc2l6ZSA9IDE2LCBcblx0XHRwcm9wZXJ0eSA9IGNvbnN0YW50cy5QUk9QRVJUWV9NT1ZFLCBcblx0XHRtb3Rpb25Nb2RlID0gY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFLCBcblx0XHRlYXNpbmcgPSBjb25zdGFudHMuRUFTRV9JTl9PVVQsIFxuXHRcdHVuaXQgPSAncmVtJywgcmVtU2l6ZSA9IDE2LFxuXHQpID0+IHtcblx0XHRyZXR1cm4gY29uZmlnQ29uc3RuYXRzLmN1cnZlc1twcm9wZXJ0eV1bbW90aW9uTW9kZV1bZWFzaW5nXVxuXHR9XG47XG5cbmV4cG9ydCBkZWZhdWx0IGdldEN1cnZlO1xuIl19 diff --git a/dist/getDuration.js b/dist/getDuration.js new file mode 100644 index 0000000..2efcfe4 --- /dev/null +++ b/dist/getDuration.js @@ -0,0 +1,379 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.getDuration = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : 100; + + var _size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16; + + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PROPERTY_MOVE; + var motionMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants2.default.MOMENT_PRODUCTIVE; + var easing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants2.default.EASE_IN_OUT; + var unit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'rem'; + var remSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 16; + + + if (unit === 'rem') { + if (property === _constants2.default.PROPERTY_MOVE || property === _constants2.default.PROPERTY_SCALE) _distance *= remSize; + _size *= remSize * remSize; + } + + var distance = Math.max(10, parseFloat(_distance)); + var size = Math.max(unit === 'rem' ? 1 : 16, parseFloat(_size)); + + var SIZE_BASE = _constants2.default.SIZE_BASE; + + var ret = void 0, + sizeFactorNatural = _helpers2.default.getSizeFactor(distance, size, _constants2.default.MOMENT_EXPRESSIVE, 1), + sizeFactorMechanical = _helpers2.default.getSizeFactor(distance, size, _constants2.default.MOMENT_PRODUCTIVE, 1); + + switch (property) { + + case _constants2.default.PROPERTY_FADE: + { + + var SIZE1 = 48 * 48; + var SIZE2 = 400 * 400; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var DUR1 = 310; + var DUR2 = 438; + + var SLOPE = (DUR2 - DUR1) / (SIZE2 - SIZE1); + var DISPLACEMENT = DUR1 - SLOPE * SIZE1; + + ret = Math.max(310, SLOPE * size + DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR = 228; + var _DUR2 = 344; + + var _SLOPE = (_DUR2 - _DUR) / (SIZE2 - SIZE1); + var _DISPLACEMENT = _DUR - _SLOPE * SIZE1; + + ret = Math.max(230, _SLOPE * size + _DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR3 = 146; + var _DUR4 = 240; + + var _SLOPE2 = (_DUR4 - _DUR3) / (SIZE2 - SIZE1); + var _DISPLACEMENT2 = _DUR3 - _SLOPE2 * SIZE1; + + ret = Math.max(150, _SLOPE2 * size + _DISPLACEMENT2); + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR5 = 108; + var _DUR6 = 160; + + var _SLOPE3 = (_DUR6 - _DUR5) / (SIZE2 - SIZE1); + var _DISPLACEMENT3 = _DUR5 - _SLOPE3 * SIZE1; + + ret = Math.max(110, _SLOPE3 * size + _DISPLACEMENT3); + + break; + } + } + ret = ret / 100 * distance; + console.log('fade:ret===' + ret); + break; + } + + case _constants2.default.PROPERTY_ROTATE: + { + + var _SIZE = 16 * 10; + var _SIZE2 = 400 * 400; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR7 = 360; + var _DUR8 = 480; + + var _SLOPE4 = (_DUR8 - _DUR7) / (_SIZE2 - _SIZE); + var _DISPLACEMENT4 = _DUR7 - _SLOPE4 * _SIZE; + + ret = _SLOPE4 * size + _DISPLACEMENT4; + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR9 = 268; + var _DUR10 = 394; + + var _SLOPE5 = (_DUR10 - _DUR9) / (_SIZE2 - _SIZE); + var _DISPLACEMENT5 = _DUR9 - _SLOPE5 * _SIZE; + + ret = _SLOPE5 * size + _DISPLACEMENT5; + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR11 = 188; + var _DUR12 = 280; + + var _SLOPE6 = (_DUR12 - _DUR11) / (_SIZE2 - _SIZE); + var _DISPLACEMENT6 = _DUR11 - _SLOPE6 * _SIZE; + + ret = _SLOPE6 * size + _DISPLACEMENT6; + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR13 = 128; + var _DUR14 = 190; + + var _SLOPE7 = (_DUR14 - _DUR13) / (_SIZE2 - _SIZE); + var _DISPLACEMENT7 = _DUR13 - _SLOPE7 * _SIZE; + + ret = _SLOPE7 * size + _DISPLACEMENT7; + + break; + } + } + ret = ret / 180 * distance; + break; + } + + case _constants2.default.PROPERTY_SCALE: + { + + var AREA_DELTA_1 = 100 * 200 - 100 * 100; + var AREA_DELTA_2 = 400 * 400 - 100 * 100; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR15 = 268; + var _DUR16 = 392; + + var _SLOPE8 = (_DUR16 - _DUR15) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT8 = _DUR15 - _SLOPE8 * AREA_DELTA_1; + + ret = _SLOPE8 * size + _DISPLACEMENT8; + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR17 = 208; + var _DUR18 = 260; + + var _SLOPE9 = (_DUR18 - _DUR17) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT9 = _DUR17 - _SLOPE9 * AREA_DELTA_1; + + ret = _SLOPE9 * size + _DISPLACEMENT9; + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR19 = 128; + var _DUR20 = 168; + + var _SLOPE10 = (_DUR20 - _DUR19) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT10 = _DUR19 - _SLOPE10 * AREA_DELTA_1; + + ret = _SLOPE10 * size + _DISPLACEMENT10; + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR21 = 94; + var _DUR22 = 143; + + var _SLOPE11 = (_DUR22 - _DUR21) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT11 = _DUR21 - _SLOPE11 * AREA_DELTA_1; + + ret = _SLOPE11 * size + _DISPLACEMENT11; + + break; + } + } + break; + } + + case _constants2.default.PROPERTY_MOVE: + default: + { + + var DISTANCE1 = 100; + var DISTANCE2 = 1400; + + var SIZE_DUR1 = 200; + var SIZE_DUR2 = 208; + var SIZE_DISTANCE1 = 100 * 100; + var SIZE_DISTANCE2 = 400 * 400; + var SIZE_SLOPE = (SIZE_DUR2 - SIZE_DUR1) / (SIZE_DISTANCE2 - SIZE_DISTANCE1) / SIZE_DUR1; + var SIZE_DISPLACEMENT = (SIZE_DUR2 - SIZE_DISTANCE2 * SIZE_SLOPE) / SIZE_DUR1; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR23 = 276; + var _DUR24 = 466; + + var _SLOPE12 = (_DUR24 - _DUR23) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT12 = _DUR23 - _SLOPE12 * DISTANCE1; + + ret = _SLOPE12 * distance + _DISPLACEMENT12; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR25 = 201; + var _DUR26 = 369; + + var _SLOPE13 = (_DUR26 - _DUR25) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT13 = _DUR25 - _SLOPE13 * DISTANCE1; + + ret = _SLOPE13 * distance + _DISPLACEMENT13; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR27 = 128; + var _DUR28 = 268; + + var _SLOPE14 = (_DUR28 - _DUR27) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT14 = _DUR27 - _SLOPE14 * DISTANCE1; + + ret = _SLOPE14 * distance + _DISPLACEMENT14; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR29 = 90; + var _DUR30 = 190; + + var _SLOPE15 = (_DUR30 - _DUR29) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT15 = _DUR29 - _SLOPE15 * DISTANCE1; + + ret = _SLOPE15 * distance + _DISPLACEMENT15; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + } + break; + } + } + + return ret; +}; + +exports.default = getDuration; + +},{"./constants":1,"./helpers":3}],3:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _constants = require('./constants.js'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var getSizeFactor = function getSizeFactor() { + var distance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100; + var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20; + var motionMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PRODUCTIVE_MOTION; + var adjustmentFactor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + return Math.min(1.5, Math.pow(_constants2.default.SIZE_BASE / size, (motionMode === _constants2.default.PRODUCTIVE_MOTION ? 0.05 : 0.1) * adjustmentFactor || 1)); +}; + +exports.default = { + getSizeFactor: getSizeFactor +}; + +},{"./constants.js":1}]},{},[2])(2) +}); + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvY29uc3RhbnRzLmpzIiwic3JjL2dldER1cmF0aW9uLmpzIiwic3JjL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztrQkNBZTtBQUNkLG9CQUFrQixNQURKO0FBRWQsb0JBQWtCLE1BRko7QUFHZCxtQkFBaUIsTUFISDtBQUlkLHFCQUFtQixPQUpMO0FBS2QsWUFBVSxFQUxJO0FBTWQsZ0JBQWMsTUFOQTtBQU9kLGlCQUFlLE9BUEQ7QUFRZCxnQkFBYyxNQVJBO0FBU2Qsa0JBQWdCLFFBVEY7QUFVZCxjQUFZLFdBVkU7QUFXZCxVQUFRLFFBWE07QUFZZCxXQUFTO0FBWkssQzs7Ozs7Ozs7O0FDQWY7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTSxjQUFjLFNBQWQsV0FBYyxHQU9mO0FBQUEsS0FOSixTQU1JLHVFQU5RLEdBTVI7O0FBQUEsS0FMSixLQUtJLHVFQUxJLEVBS0o7O0FBQUEsS0FKSixRQUlJLHVFQUpPLG9CQUFVLGFBSWpCO0FBQUEsS0FISixVQUdJLHVFQUhTLG9CQUFVLGlCQUduQjtBQUFBLEtBRkosTUFFSSx1RUFGSyxvQkFBVSxXQUVmO0FBQUEsS0FESixJQUNJLHVFQURHLEtBQ0g7QUFBQSxLQURVLE9BQ1YsdUVBRG9CLEVBQ3BCOzs7QUFFSixLQUFHLFNBQVMsS0FBWixFQUFrQjtBQUNqQixNQUFHLGFBQWEsb0JBQVUsYUFBdkIsSUFBd0MsYUFBYSxvQkFBVSxjQUFsRSxFQUFrRixhQUFhLE9BQWI7QUFDbEYsV0FBVSxVQUFVLE9BQXBCO0FBQ0E7O0FBRUQsS0FBSSxXQUFXLEtBQUssR0FBTCxDQUFTLEVBQVQsRUFBYSxXQUFXLFNBQVgsQ0FBYixDQUFmO0FBQ0EsS0FBSSxPQUFPLEtBQUssR0FBTCxDQUFTLFNBQVMsS0FBVCxHQUFpQixDQUFqQixHQUFxQixFQUE5QixFQUFrQyxXQUFXLEtBQVgsQ0FBbEMsQ0FBWDs7QUFFQSxL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O0FBQ0E7QUE5UUY7O0FBaVJBLFFBQU8sR0FBUDtBQUNBLENBN1NEOztrQkErU2UsVzs7Ozs7Ozs7O0FDbFRmOzs7Ozs7QUFFQSxJQUFNLGdCQUFnQixTQUFoQixhQUFnQjtBQUFBLEtBQ3JCLFFBRHFCLHVFQUNWLEdBRFU7QUFBQSxLQUVyQixJQUZxQix1RUFFZCxFQUZjO0FBQUEsS0FHckIsVUFIcUIsdUVBR1Isb0JBQVUsaUJBSEY7QUFBQSxLQUlyQixnQkFKcUIsdUVBSUYsQ0FKRTtBQUFBLFFBS2pCLEtBQUssR0FBTCxDQUNILEdBREcsRUFFSCxLQUFLLEdBQUwsQ0FDQyxvQkFBVSxTQUFWLEdBQXFCLElBRHRCLEVBRUMsQ0FBQyxlQUFlLG9CQUFVLGlCQUF6QixHQUE2QyxJQUE3QyxHQUFvRCxHQUFyRCxJQUEyRCxnQkFBM0QsSUFBK0UsQ0FGaEYsQ0FGRyxDQUxpQjtBQUFBLENBQXRCOztrQkFjZTtBQUNkO0FBRGMsQyIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsImV4cG9ydCBkZWZhdWx0IHtcblx0TU9NRU5UX0VYUFJFU1NJVkU6XCJleHByXCIsXG5cdE1PTUVOVF9QUk9EVUNUSVZFOlwicHJvZFwiLFxuXHRNT01FTlRfTkFSUkFUSVZFOlwibmFyclwiLFxuXHRNT01FTlRfQ0VMRUJSQVRPUlk6XCJjZWxlYlwiLFxuXHRTSVpFX0JBU0U6MjAsXG5cdFBST1BFUlRZX01PVkU6XCJtb3ZlXCIsXG5cdFBST1BFUlRZX1NDQUxFOlwic2NhbGVcIixcblx0UFJPUEVSVFlfRkFERTpcImZhZGVcIixcblx0UFJPUEVSVFlfUk9UQVRFOlwicm90YXRlXCIsXG5cdEVBU0VfSU5fT1VUOlwiZWFzZUluT3V0XCIsXG5cdEVBU0VfSU46XCJlYXNlSW5cIixcblx0RUFTRV9PVVQ6XCJlYXNlT3V0XCJcbn0iLCJpbXBvcnQgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IGhlbHBlcnMgZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgZ2V0RHVyYXRpb24gPSAoXG5cdF9kaXN0YW5jZSA9IDEwMCwgXG5cdF9zaXplID0gMTYsIFxuXHRwcm9wZXJ0eSA9IGNvbnN0YW50cy5QUk9QRVJUWV9NT1ZFLCBcblx0bW90aW9uTW9kZSA9IGNvbnN0YW50cy5NT01FTlRfUFJPRFVDVElWRSwgXG5cdGVhc2luZyA9IGNvbnN0YW50cy5FQVNFX0lOX09VVCwgXG5cdHVuaXQgPSAncmVtJywgcmVtU2l6ZSA9IDE2LFxuKSA9PiB7XG5cblx0aWYodW5pdCA9PT0gJ3JlbScpe1xuXHRcdGlmKHByb3BlcnR5ID09PSBjb25zdGFudHMuUFJPUEVSVFlfTU9WRSB8fCBwcm9wZXJ0eSA9PT0gY29uc3RhbnRzLlBST1BFUlRZX1NDQUxFKSBfZGlzdGFuY2UgKj0gcmVtU2l6ZTtcblx0XHRfc2l6ZSAqPSAocmVtU2l6ZSAqIHJlbVNpemUpO1xuXHR9XG5cblx0bGV0IGRpc3RhbmNlID0gTWF0aC5tYXgoMTAsIHBhcnNlRmxvYXQoX2Rpc3RhbmNlKSk7XG5cdGxldCBzaXplID0gTWF0aC5tYXgodW5pdCA9PT0gJ3JlbScgPyAxIDogMTYsIHBhcnNlRmxvYXQoX3NpemUpKTtcblxuXHRjb25zdCBcblx0XHRTSVpFX0JBU0UgPSBjb25zdGFudHMuU0laRV9CQVNFXG5cdDtcblxuXHRsZXQgXG5cdFx0cmV0LFxuXHRcdHNpemVGYWN0b3JOYXR1cmFsID0gaGVscGVycy5nZXRTaXplRmFjdG9yKGRpc3RhbmNlLCBzaXplLCBjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkUsIDEpLFxuXHRcdHNpemVGYWN0b3JNZWNoYW5pY2FsID0gaGVscGVycy5nZXRTaXplRmFjdG9yKGRpc3RhbmNlLCBzaXplLCBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkUsIDEpXG5cdDtcblxuXHRzd2l0Y2gocHJvcGVydHkpe1xuXG5cdFx0Y2FzZSBjb25zdGFudHMuUFJPUEVSVFlfRkFERTp7XG5cblx0XHRcdGNvbnN0IFNJWkUxID0gNDggKiA0ODtcblx0XHRcdGNvbnN0IFNJWkUyID0gNDAwICogNDAwO1xuXHRcdFx0XG5cdFx0XHRzd2l0Y2gobW90aW9uTW9kZSl7XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0NFTEVCUkFUT1JZOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAzMTA7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDQzODtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoU0laRTIgLSBTSVpFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogU0laRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBNYXRoLm1heChcblx0XHRcdFx0XHRcdDMxMCxcblx0XHRcdFx0XHRcdFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfTkFSUkFUSVZFOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAyMjg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDM0NDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoU0laRTIgLSBTSVpFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogU0laRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBNYXRoLm1heChcblx0XHRcdFx0XHRcdDIzMCxcblx0XHRcdFx0XHRcdFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfRVhQUkVTU0lWRTp7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDE0Njtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMjQwO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChTSVpFMiAtIFNJWkUxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBTSVpFMTtcblxuXHRcdFx0XHRcdHJldCA9IE1hdGgubWF4KFxuXHRcdFx0XHRcdFx0MTUwLFxuXHRcdFx0XHRcdFx0U0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UXG5cdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAxMDg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDE2MDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoU0laRTIgLSBTSVpFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogU0laRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBNYXRoLm1heChcblx0XHRcdFx0XHRcdDExMCxcblx0XHRcdFx0XHRcdFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVFxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0ID0gcmV0IC8gMTAwICogZGlzdGFuY2U7XG5cdFx0XHRjb25zb2xlLmxvZygnZmFkZTpyZXQ9PT0nK3JldCk7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRjYXNlIGNvbnN0YW50cy5QUk9QRVJUWV9ST1RBVEU6e1xuXG5cdFx0XHRjb25zdCBTSVpFMSA9IDE2ICogMTA7XG5cdFx0XHRjb25zdCBTSVpFMiA9IDQwMCAqIDQwMDtcblx0XHRcdFxuXHRcdFx0c3dpdGNoKG1vdGlvbk1vZGUpe1xuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9DRUxFQlJBVE9SWTp7XG5cblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMzYwO1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSA0ODA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX05BUlJBVElWRTp7XG5cblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMjY4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAzOTQ7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAxODg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDI4MDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoU0laRTIgLSBTSVpFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogU0laRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlQ7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMTI4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAxOTA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldCA9IHJldCAvIDE4MCAqIGRpc3RhbmNlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0Y2FzZSBjb25zdGFudHMuUFJPUEVSVFlfU0NBTEU6e1xuXG5cdFx0XHRjb25zdCBBUkVBX0RFTFRBXzEgPSAxMDAgKiAyMDAgLSAxMDAgKiAxMDA7XG5cdFx0XHRjb25zdCBBUkVBX0RFTFRBXzIgPSA0MDAgKiA0MDAgLSAxMDAgKiAxMDA7XG5cdFx0XHRcblx0XHRcdHN3aXRjaChtb3Rpb25Nb2RlKXtcblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlk6e1xuXG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDI2ODtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMzkyO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChBUkVBX0RFTFRBXzIgLSBBUkVBX0RFTFRBXzEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIEFSRUFfREVMVEFfMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkU6e1xuXG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDIwODtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMjYwO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChBUkVBX0RFTFRBXzIgLSBBUkVBX0RFTFRBXzEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIEFSRUFfREVMVEFfMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMTI4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAxNjg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKEFSRUFfREVMVEFfMiAtIEFSRUFfREVMVEFfMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogQVJFQV9ERUxUQV8xO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfUFJPRFVDVElWRTp7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDk0O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAxNDM7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKEFSRUFfREVMVEFfMiAtIEFSRUFfREVMVEFfMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogQVJFQV9ERUxUQV8xO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNhc2UgY29uc3RhbnRzLlBST1BFUlRZX01PVkU6XG5cdFx0ZGVmYXVsdDp7XG5cblx0XHRcdGNvbnN0IERJU1RBTkNFMSA9IDEwMDtcblx0XHRcdGNvbnN0IERJU1RBTkNFMiA9IDE0MDA7XG5cblx0XHRcdGNvbnN0IFNJWkVfRFVSMSA9IDIwMDtcblx0XHRcdGNvbnN0IFNJWkVfRFVSMiA9IDIwODtcblx0XHRcdGNvbnN0IFNJWkVfRElTVEFOQ0UxID0gMTAwICogMTAwO1xuXHRcdFx0Y29uc3QgU0laRV9ESVNUQU5DRTIgPSA0MDAgKiA0MDA7XG5cdFx0XHRjb25zdCBTSVpFX1NMT1BFID0gKFNJWkVfRFVSMiAtIFNJWkVfRFVSMSkgLyAoU0laRV9ESVNUQU5DRTIgLSBTSVpFX0RJU1RBTkNFMSkgLyBTSVpFX0RVUjE7XG5cdFx0XHRjb25zdCBTSVpFX0RJU1BMQUNFTUVOVCA9IChTSVpFX0RVUjIgLSBTSVpFX0RJU1RBTkNFMiAqIFNJWkVfU0xPUEUpIC8gU0laRV9EVVIxO1xuXG5cdFx0XHRzd2l0Y2gobW90aW9uTW9kZSl7XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0NFTEVCUkFUT1JZOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAyNzY7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDQ2Njtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoRElTVEFOQ0UyIC0gRElTVEFOQ0UxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBESVNUQU5DRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIGRpc3RhbmNlICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdHJldCA9IHJldCAqIChzaXplICogU0laRV9TTE9QRSArIFNJWkVfRElTUExBQ0VNRU5UKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkU6e1xuXG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDIwMTtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMzY5O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChESVNUQU5DRTIgLSBESVNUQU5DRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIERJU1RBTkNFMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogZGlzdGFuY2UgKyBESVNQTEFDRU1FTlQ7XG5cdFx0XHRcdFx0cmV0ID0gcmV0ICogKHNpemUgKiBTSVpFX1NMT1BFICsgU0laRV9ESVNQTEFDRU1FTlQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAxMjg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDI2ODtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoRElTVEFOQ0UyIC0gRElTVEFOQ0UxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBESVNUQU5DRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIGRpc3RhbmNlICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdHJldCA9IHJldCAqIChzaXplICogU0laRV9TTE9QRSArIFNJWkVfRElTUExBQ0VNRU5UKTtcblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSA5MDtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMTkwO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChESVNUQU5DRTIgLSBESVNUQU5DRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIERJU1RBTkNFMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogZGlzdGFuY2UgKyBESVNQTEFDRU1FTlQ7XG5cdFx0XHRcdFx0cmV0ID0gcmV0ICogKHNpemUgKiBTSVpFX1NMT1BFICsgU0laRV9ESVNQTEFDRU1FTlQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXREdXJhdGlvbjtcbiIsImltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5jb25zdCBnZXRTaXplRmFjdG9yID0gKFxuXHRkaXN0YW5jZSA9IDEwMCwgXG5cdHNpemUgPSAyMCwgXG5cdG1vdGlvbk1vZGUgPSBjb25zdGFudHMuUFJPRFVDVElWRV9NT1RJT04sIFxuXHRhZGp1c3RtZW50RmFjdG9yID0gMVxuKSA9PiBNYXRoLm1pbihcblx0XHQxLjUsIFxuXHRcdE1hdGgucG93KFxuXHRcdFx0Y29uc3RhbnRzLlNJWkVfQkFTRSAvc2l6ZSwgXG5cdFx0XHQobW90aW9uTW9kZSA9PT0gY29uc3RhbnRzLlBST0RVQ1RJVkVfTU9USU9OID8gMC4wNSA6IDAuMSkgKmFkanVzdG1lbnRGYWN0b3IgfHwgMVxuXHRcdClcblx0KVxuO1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdGdldFNpemVGYWN0b3IsXG59OyJdfQ== diff --git a/dist/helpers.js b/dist/helpers.js new file mode 100644 index 0000000..4f31692 --- /dev/null +++ b/dist/helpers.js @@ -0,0 +1,19 @@ +import constants from './constants.js'; + +const getSizeFactor = ( + distance = 100, + size = 20, + motionMode = constants.PRODUCTIVE_MOTION, + adjustmentFactor = 1 +) => Math.min( + 1.5, + Math.pow( + constants.SIZE_BASE /size, + (motionMode === constants.PRODUCTIVE_MOTION ? 0.05 : 0.1) *adjustmentFactor || 1 + ) + ) +; + +export default { + getSizeFactor, +}; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..682348e --- /dev/null +++ b/dist/index.js @@ -0,0 +1,534 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.motion = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : 100; + + var _size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16; + + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PROPERTY_MOVE; + var motionMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants2.default.MOMENT_PRODUCTIVE; + var easing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants2.default.EASE_IN_OUT; + var unit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'rem'; + var remSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 16; + + return _configConstants2.default.curves[property][motionMode][easing]; +}; + +exports.default = getCurve; + +},{"./config-constants.js":1,"./constants.js":2}],4:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _constants = require('./constants'); + +var _constants2 = _interopRequireDefault(_constants); + +var _helpers = require('./helpers'); + +var _helpers2 = _interopRequireDefault(_helpers); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var getDuration = function getDuration() { + var _distance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100; + + var _size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16; + + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PROPERTY_MOVE; + var motionMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants2.default.MOMENT_PRODUCTIVE; + var easing = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _constants2.default.EASE_IN_OUT; + var unit = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'rem'; + var remSize = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 16; + + + if (unit === 'rem') { + if (property === _constants2.default.PROPERTY_MOVE || property === _constants2.default.PROPERTY_SCALE) _distance *= remSize; + _size *= remSize * remSize; + } + + var distance = Math.max(10, parseFloat(_distance)); + var size = Math.max(unit === 'rem' ? 1 : 16, parseFloat(_size)); + + var SIZE_BASE = _constants2.default.SIZE_BASE; + + var ret = void 0, + sizeFactorNatural = _helpers2.default.getSizeFactor(distance, size, _constants2.default.MOMENT_EXPRESSIVE, 1), + sizeFactorMechanical = _helpers2.default.getSizeFactor(distance, size, _constants2.default.MOMENT_PRODUCTIVE, 1); + + switch (property) { + + case _constants2.default.PROPERTY_FADE: + { + + var SIZE1 = 48 * 48; + var SIZE2 = 400 * 400; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var DUR1 = 310; + var DUR2 = 438; + + var SLOPE = (DUR2 - DUR1) / (SIZE2 - SIZE1); + var DISPLACEMENT = DUR1 - SLOPE * SIZE1; + + ret = Math.max(310, SLOPE * size + DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR = 228; + var _DUR2 = 344; + + var _SLOPE = (_DUR2 - _DUR) / (SIZE2 - SIZE1); + var _DISPLACEMENT = _DUR - _SLOPE * SIZE1; + + ret = Math.max(230, _SLOPE * size + _DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR3 = 146; + var _DUR4 = 240; + + var _SLOPE2 = (_DUR4 - _DUR3) / (SIZE2 - SIZE1); + var _DISPLACEMENT2 = _DUR3 - _SLOPE2 * SIZE1; + + ret = Math.max(150, _SLOPE2 * size + _DISPLACEMENT2); + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR5 = 108; + var _DUR6 = 160; + + var _SLOPE3 = (_DUR6 - _DUR5) / (SIZE2 - SIZE1); + var _DISPLACEMENT3 = _DUR5 - _SLOPE3 * SIZE1; + + ret = Math.max(110, _SLOPE3 * size + _DISPLACEMENT3); + + break; + } + } + ret = ret / 100 * distance; + console.log('fade:ret===' + ret); + break; + } + + case _constants2.default.PROPERTY_ROTATE: + { + + var _SIZE = 16 * 10; + var _SIZE2 = 400 * 400; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR7 = 360; + var _DUR8 = 480; + + var _SLOPE4 = (_DUR8 - _DUR7) / (_SIZE2 - _SIZE); + var _DISPLACEMENT4 = _DUR7 - _SLOPE4 * _SIZE; + + ret = _SLOPE4 * size + _DISPLACEMENT4; + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR9 = 268; + var _DUR10 = 394; + + var _SLOPE5 = (_DUR10 - _DUR9) / (_SIZE2 - _SIZE); + var _DISPLACEMENT5 = _DUR9 - _SLOPE5 * _SIZE; + + ret = _SLOPE5 * size + _DISPLACEMENT5; + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR11 = 188; + var _DUR12 = 280; + + var _SLOPE6 = (_DUR12 - _DUR11) / (_SIZE2 - _SIZE); + var _DISPLACEMENT6 = _DUR11 - _SLOPE6 * _SIZE; + + ret = _SLOPE6 * size + _DISPLACEMENT6; + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR13 = 128; + var _DUR14 = 190; + + var _SLOPE7 = (_DUR14 - _DUR13) / (_SIZE2 - _SIZE); + var _DISPLACEMENT7 = _DUR13 - _SLOPE7 * _SIZE; + + ret = _SLOPE7 * size + _DISPLACEMENT7; + + break; + } + } + ret = ret / 180 * distance; + break; + } + + case _constants2.default.PROPERTY_SCALE: + { + + var AREA_DELTA_1 = 100 * 200 - 100 * 100; + var AREA_DELTA_2 = 400 * 400 - 100 * 100; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR15 = 268; + var _DUR16 = 392; + + var _SLOPE8 = (_DUR16 - _DUR15) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT8 = _DUR15 - _SLOPE8 * AREA_DELTA_1; + + ret = _SLOPE8 * size + _DISPLACEMENT8; + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR17 = 208; + var _DUR18 = 260; + + var _SLOPE9 = (_DUR18 - _DUR17) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT9 = _DUR17 - _SLOPE9 * AREA_DELTA_1; + + ret = _SLOPE9 * size + _DISPLACEMENT9; + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR19 = 128; + var _DUR20 = 168; + + var _SLOPE10 = (_DUR20 - _DUR19) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT10 = _DUR19 - _SLOPE10 * AREA_DELTA_1; + + ret = _SLOPE10 * size + _DISPLACEMENT10; + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR21 = 94; + var _DUR22 = 143; + + var _SLOPE11 = (_DUR22 - _DUR21) / (AREA_DELTA_2 - AREA_DELTA_1); + var _DISPLACEMENT11 = _DUR21 - _SLOPE11 * AREA_DELTA_1; + + ret = _SLOPE11 * size + _DISPLACEMENT11; + + break; + } + } + break; + } + + case _constants2.default.PROPERTY_MOVE: + default: + { + + var DISTANCE1 = 100; + var DISTANCE2 = 1400; + + var SIZE_DUR1 = 200; + var SIZE_DUR2 = 208; + var SIZE_DISTANCE1 = 100 * 100; + var SIZE_DISTANCE2 = 400 * 400; + var SIZE_SLOPE = (SIZE_DUR2 - SIZE_DUR1) / (SIZE_DISTANCE2 - SIZE_DISTANCE1) / SIZE_DUR1; + var SIZE_DISPLACEMENT = (SIZE_DUR2 - SIZE_DISTANCE2 * SIZE_SLOPE) / SIZE_DUR1; + + switch (motionMode) { + + case _constants2.default.MOMENT_CELEBRATORY: + { + + var _DUR23 = 276; + var _DUR24 = 466; + + var _SLOPE12 = (_DUR24 - _DUR23) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT12 = _DUR23 - _SLOPE12 * DISTANCE1; + + ret = _SLOPE12 * distance + _DISPLACEMENT12; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_NARRATIVE: + { + + var _DUR25 = 201; + var _DUR26 = 369; + + var _SLOPE13 = (_DUR26 - _DUR25) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT13 = _DUR25 - _SLOPE13 * DISTANCE1; + + ret = _SLOPE13 * distance + _DISPLACEMENT13; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + + case _constants2.default.MOMENT_EXPRESSIVE: + { + + var _DUR27 = 128; + var _DUR28 = 268; + + var _SLOPE14 = (_DUR28 - _DUR27) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT14 = _DUR27 - _SLOPE14 * DISTANCE1; + + ret = _SLOPE14 * distance + _DISPLACEMENT14; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + + break; + } + + default: + case _constants2.default.MOMENT_PRODUCTIVE: + { + + var _DUR29 = 90; + var _DUR30 = 190; + + var _SLOPE15 = (_DUR30 - _DUR29) / (DISTANCE2 - DISTANCE1); + var _DISPLACEMENT15 = _DUR29 - _SLOPE15 * DISTANCE1; + + ret = _SLOPE15 * distance + _DISPLACEMENT15; + ret = ret * (size * SIZE_SLOPE + SIZE_DISPLACEMENT); + break; + } + } + break; + } + } + + return ret; +}; + +exports.default = getDuration; + +},{"./constants":2,"./helpers":5}],5:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _constants = require('./constants.js'); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var getSizeFactor = function getSizeFactor() { + var distance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100; + var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20; + var motionMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants2.default.PRODUCTIVE_MOTION; + var adjustmentFactor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + return Math.min(1.5, Math.pow(_constants2.default.SIZE_BASE / size, (motionMode === _constants2.default.PRODUCTIVE_MOTION ? 0.05 : 0.1) * adjustmentFactor || 1)); +}; + +exports.default = { + getSizeFactor: getSizeFactor +}; + +},{"./constants.js":2}],6:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getCurve = require("./getCurve.js"); + +var _getCurve2 = _interopRequireDefault(_getCurve); + +var _getDuration = require("./getDuration.js"); + +var _getDuration2 = _interopRequireDefault(_getDuration); + +var _constants = require("./constants.js"); + +var _constants2 = _interopRequireDefault(_constants); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ret = { + getCurve: _getCurve2.default, + getDuration: _getDuration2.default, + constants: _constants2.default +}; + +exports.default = ret; + +},{"./constants.js":2,"./getCurve.js":3,"./getDuration.js":4}]},{},[6])(6) +}); + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvY29uZmlnLWNvbnN0YW50cy5qcyIsInNyYy9jb25zdGFudHMuanMiLCJzcmMvZ2V0Q3VydmUuanMiLCJzcmMvZ2V0RHVyYXRpb24uanMiLCJzcmMvaGVscGVycy5qcyIsInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBOzs7O0FBRUE7Ozs7Ozs7Ozs7QUFFQSxJQUFNLGlEQUNKLG9CQUFVLGFBRE4sc0VBRUgsb0JBQVUsaUJBRlAsRUFFMEI7QUFDN0IsY0FBWSxpQ0FEaUI7QUFFN0IsV0FBUywrQkFGb0I7QUFHN0IsWUFBVTtBQUhtQixDQUYxQiwwQ0FPSCxvQkFBVSxpQkFQUCxFQU8wQjtBQUM3QixjQUFZLG1DQURpQjtBQUU3QixXQUFTLDhCQUZvQjtBQUc3QixZQUFVO0FBSG1CLENBUDFCLDBDQVlILG9CQUFVLGdCQVpQLEVBWXlCO0FBQzVCLGNBQVksbUNBRGdCO0FBRTVCLFdBQVMsK0JBRm1CO0FBRzVCLFlBQVU7QUFIa0IsQ0FaekIsMENBaUJILG9CQUFVLGtCQWpCUCxFQWlCMkI7QUFDOUIsY0FBWSxtQ0FEa0I7QUFFOUIsV0FBUywrQkFGcUI7QUFHOUIsWUFBVTtBQUhvQixDQWpCM0IscURBdUJKLG9CQUFVLGNBdkJOLHNFQXdCSCxvQkFBVSxpQkF4QlAsRUF3QjBCO0FBQzdCLGNBQVksaUNBRGlCO0FBRTdCLFdBQVMsK0JBRm9CO0FBRzdCLFlBQVU7QUFIbUIsQ0F4QjFCLDBDQTZCSCxvQkFBVSxpQkE3QlAsRUE2QjBCO0FBQzdCLGNBQVksbUNBRGlCO0FBRTdCLFdBQVMsOEJBRm9CO0FBRzdCLFlBQVU7QUFIbUIsQ0E3QjFCLDBDQWtDSCxvQkFBVSxnQkFsQ1AsRUFrQ3lCO0FBQzVCLGNBQVksbUNBRGdCO0FBRTVCLFdBQVMsK0JBRm1CO0FBRzVCLFlBQVU7QUFIa0IsQ0FsQ3pCLDBDQXVDSCxvQkFBVSxrQkF2Q1AsRUF1QzJC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LGVBQXpCO0FBQ0EsYUFBTSxPQUFPLE9BQU8sVUFBUCxHQUFvQixpQkFBM0IsQ0FBTjtBQUNBO0FBQ0E7QUF0REY7QUF3REE7QUFDQTtBQTlRRjs7QUFpUkEsUUFBTyxHQUFQO0FBQ0EsQ0E3U0Q7O2tCQStTZSxXOzs7Ozs7Ozs7QUNsVGY7Ozs7OztBQUVBLElBQU0sZ0JBQWdCLFNBQWhCLGFBQWdCO0FBQUEsS0FDckIsUUFEcUIsdUVBQ1YsR0FEVTtBQUFBLEtBRXJCLElBRnFCLHVFQUVkLEVBRmM7QUFBQSxLQUdyQixVQUhxQix1RUFHUixvQkFBVSxpQkFIRjtBQUFBLEtBSXJCLGdCQUpxQix1RUFJRixDQUpFO0FBQUEsUUFLakIsS0FBSyxHQUFMLENBQ0gsR0FERyxFQUVILEtBQUssR0FBTCxDQUNDLG9CQUFVLFNBQVYsR0FBcUIsSUFEdEIsRUFFQyxDQUFDLGVBQWUsb0JBQVUsaUJBQXpCLEdBQTZDLElBQTdDLEdBQW9ELEdBQXJELElBQTJELGdCQUEzRCxJQUErRSxDQUZoRixDQUZHLENBTGlCO0FBQUEsQ0FBdEI7O2tCQWNlO0FBQ2Q7QUFEYyxDOzs7Ozs7Ozs7QUNoQmY7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNLE1BQU07QUFDWCxXQUFTLGtCQURFO0FBRVgsY0FBWSxxQkFGRDtBQUdYLFlBQVU7QUFIQyxDQUFaOztrQkFNZSxHIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5jb25zdCBjdXJ2ZXMgPSB7XG5cdFtjb25zdGFudHMuUFJPUEVSVFlfTU9WRV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9TQ0FMRV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9GQURFXTp7XG5cdFx0W2NvbnN0YW50cy5NT01FTlRfRVhQUkVTU0lWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjQsIDAuMTQsIDAuMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfUFJPRFVDVElWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjIsIDAuMiwgMC4zOCwgMC45KVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjIsIDAsIDEsIDAuOSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMzgsIDAuOSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX05BUlJBVElWRV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjI5LCAwLjA0LCAwLjIzLCAxKVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjM5LCAuMDYsIDEsIDEpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjMsIDEpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9DRUxFQlJBVE9SWV06e1xuXHRcdFx0XCJlYXNlSW5PdXRcIjpcImN1YmljLWJlemllcigwLjI5LCAwLjA0LCAwLjIzLCAxKVwiLFxuXHRcdFx0XCJlYXNlSW5cIjpcImN1YmljLWJlemllcigwLjM5LCAuMDYsIDEsIDEpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjMsIDEpXCIsXG5cdFx0fVxuXHR9LFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX1JPVEFURV06e1xuXHRcdFtjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC40LCAwLjE0LCAwLjMsIDEpXCIsXG5cdFx0XHRcImVhc2VJblwiOlwiY3ViaWMtYmV6aWVyKDAuNCwgMC4xNCwgMSwgMSlcIixcblx0XHRcdFwiZWFzZU91dFwiOlwiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMywgMSlcIixcblx0XHR9LFxuXHRcdFtjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLjIsIDAuMzgsIDAuOSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4yLCAwLCAxLCAwLjkpXCIsXG5cdFx0XHRcImVhc2VPdXRcIjpcImN1YmljLWJlemllcigwLCAwLCAwLjM4LCAwLjkpXCIsXG5cdFx0fSxcblx0XHRbY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkVdOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH0sXG5cdFx0W2NvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlldOntcblx0XHRcdFwiZWFzZUluT3V0XCI6XCJjdWJpYy1iZXppZXIoMC4yOSwgMC4wNCwgMC4yMywgMSlcIixcblx0XHRcdFwiZWFzZUluXCI6XCJjdWJpYy1iZXppZXIoMC4zOSwgLjA2LCAxLCAxKVwiLFxuXHRcdFx0XCJlYXNlT3V0XCI6XCJjdWJpYy1iZXppZXIoMCwgMCwgMC4zLCAxKVwiLFxuXHRcdH1cblx0fVxufTtcblxuY29uc3QgbW90aW9uTW9kZXMgPSBbY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFLCBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkUsIGNvbnN0YW50cy5NT01FTlRfTkFSUkFUSVZFLCBjb25zdGFudHMuTU9NRU5UX0NFTEVCUkFUT1JZXTtcblxuY29uc3QgZGlzdGFuY2VzID0ge1xuXHRbY29uc3RhbnRzLlBST1BFUlRZX01PVkVdOlsxMCwgMjUsIDUwLCA3NSwgMTAwLCAyMDAsIDQwMCwgODAwLCAxNjAwLCAzMjAwXSxcblx0W2NvbnN0YW50cy5QUk9QRVJUWV9TQ0FMRV06WzEwMCwgMjAwLCA0MDAsIDgwMCwgMTYwMCwgMzIwMCwgNjQwMCwgMTI4MDAsIDI1NjAwLCA1MTIwMCwgMTAyNDAwLCAyMDQ4MDBdLFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX0ZBREVdOlsyNSwgNTAsIDc1LCAxMDBdLFxuXHRbY29uc3RhbnRzLlBST1BFUlRZX1JPVEFURV06WzMwLCA2MCwgOTAsIDEyMCwgMTUwLCAxODAsIDI3MCwgMzYwXVxufTtcblxuY29uc3Qgc2l6ZXMgPSAnMTIzNDU2Nzg5Jy5zcGxpdCgnJykucmVkdWNlKCAocHJldiwgY3VyciwgaSkgPT4gWy4uLnByZXYsIHByZXZbcHJldi5sZW5ndGgtMV0gKiA0XSwgWzgqOF0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0Y3VydmVzLCBkaXN0YW5jZXMsIHNpemVzLCBtb3Rpb25Nb2Rlc1xufVxuIiwiZXhwb3J0IGRlZmF1bHQge1xuXHRNT01FTlRfRVhQUkVTU0lWRTpcImV4cHJcIixcblx0TU9NRU5UX1BST0RVQ1RJVkU6XCJwcm9kXCIsXG5cdE1PTUVOVF9OQVJSQVRJVkU6XCJuYXJyXCIsXG5cdE1PTUVOVF9DRUxFQlJBVE9SWTpcImNlbGViXCIsXG5cdFNJWkVfQkFTRToyMCxcblx0UFJPUEVSVFlfTU9WRTpcIm1vdmVcIixcblx0UFJPUEVSVFlfU0NBTEU6XCJzY2FsZVwiLFxuXHRQUk9QRVJUWV9GQURFOlwiZmFkZVwiLFxuXHRQUk9QRVJUWV9ST1RBVEU6XCJyb3RhdGVcIixcblx0RUFTRV9JTl9PVVQ6XCJlYXNlSW5PdXRcIixcblx0RUFTRV9JTjpcImVhc2VJblwiLFxuXHRFQVNFX09VVDpcImVhc2VPdXRcIlxufSIsImltcG9ydCBjb25maWdDb25zdG5hdHMgZnJvbSAnLi9jb25maWctY29uc3RhbnRzLmpzJztcbmltcG9ydCBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5jb25zdCBnZXRDdXJ2ZSA9IFxuXHQoXG5cdFx0X2Rpc3RhbmNlID0gMTAwLCBcblx0XHRfc2l6ZSA9IDE2LCBcblx0XHRwcm9wZXJ0eSA9IGNvbnN0YW50cy5QUk9QRVJUWV9NT1ZFLCBcblx0XHRtb3Rpb25Nb2RlID0gY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFLCBcblx0XHRlYXNpbmcgPSBjb25zdGFudHMuRUFTRV9JTl9PVVQsIFxuXHRcdHVuaXQgPSAncmVtJywgcmVtU2l6ZSA9IDE2LFxuXHQpID0+IHtcblx0XHRyZXR1cm4gY29uZmlnQ29uc3RuYXRzLmN1cnZlc1twcm9wZXJ0eV1bbW90aW9uTW9kZV1bZWFzaW5nXVxuXHR9XG47XG5cbmV4cG9ydCBkZWZhdWx0IGdldEN1cnZlO1xuIiwiaW1wb3J0IGNvbnN0YW50cyBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCBoZWxwZXJzIGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IGdldER1cmF0aW9uID0gKFxuXHRfZGlzdGFuY2UgPSAxMDAsIFxuXHRfc2l6ZSA9IDE2LCBcblx0cHJvcGVydHkgPSBjb25zdGFudHMuUFJPUEVSVFlfTU9WRSwgXG5cdG1vdGlvbk1vZGUgPSBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkUsIFxuXHRlYXNpbmcgPSBjb25zdGFudHMuRUFTRV9JTl9PVVQsIFxuXHR1bml0ID0gJ3JlbScsIHJlbVNpemUgPSAxNixcbikgPT4ge1xuXG5cdGlmKHVuaXQgPT09ICdyZW0nKXtcblx0XHRpZihwcm9wZXJ0eSA9PT0gY29uc3RhbnRzLlBST1BFUlRZX01PVkUgfHwgcHJvcGVydHkgPT09IGNvbnN0YW50cy5QUk9QRVJUWV9TQ0FMRSkgX2Rpc3RhbmNlICo9IHJlbVNpemU7XG5cdFx0X3NpemUgKj0gKHJlbVNpemUgKiByZW1TaXplKTtcblx0fVxuXG5cdGxldCBkaXN0YW5jZSA9IE1hdGgubWF4KDEwLCBwYXJzZUZsb2F0KF9kaXN0YW5jZSkpO1xuXHRsZXQgc2l6ZSA9IE1hdGgubWF4KHVuaXQgPT09ICdyZW0nID8gMSA6IDE2LCBwYXJzZUZsb2F0KF9zaXplKSk7XG5cblx0Y29uc3QgXG5cdFx0U0laRV9CQVNFID0gY29uc3RhbnRzLlNJWkVfQkFTRVxuXHQ7XG5cblx0bGV0IFxuXHRcdHJldCxcblx0XHRzaXplRmFjdG9yTmF0dXJhbCA9IGhlbHBlcnMuZ2V0U2l6ZUZhY3RvcihkaXN0YW5jZSwgc2l6ZSwgY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFLCAxKSxcblx0XHRzaXplRmFjdG9yTWVjaGFuaWNhbCA9IGhlbHBlcnMuZ2V0U2l6ZUZhY3RvcihkaXN0YW5jZSwgc2l6ZSwgY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFLCAxKVxuXHQ7XG5cblx0c3dpdGNoKHByb3BlcnR5KXtcblxuXHRcdGNhc2UgY29uc3RhbnRzLlBST1BFUlRZX0ZBREU6e1xuXG5cdFx0XHRjb25zdCBTSVpFMSA9IDQ4ICogNDg7XG5cdFx0XHRjb25zdCBTSVpFMiA9IDQwMCAqIDQwMDtcblx0XHRcdFxuXHRcdFx0c3dpdGNoKG1vdGlvbk1vZGUpe1xuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9DRUxFQlJBVE9SWTp7XG5cblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMzEwO1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSA0Mzg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHQzMTAsXG5cdFx0XHRcdFx0XHRTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX05BUlJBVElWRTp7XG5cblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMjI4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAzNDQ7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHQyMzAsXG5cdFx0XHRcdFx0XHRTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0VYUFJFU1NJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAxNDY7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDI0MDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoU0laRTIgLSBTSVpFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogU0laRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBNYXRoLm1heChcblx0XHRcdFx0XHRcdDE1MCxcblx0XHRcdFx0XHRcdFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVFxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMTA4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAxNjA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHQxMTAsXG5cdFx0XHRcdFx0XHRTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlRcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldCA9IHJldCAvIDEwMCAqIGRpc3RhbmNlO1xuXHRcdFx0Y29uc29sZS5sb2coJ2ZhZGU6cmV0PT09JytyZXQpO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0Y2FzZSBjb25zdGFudHMuUFJPUEVSVFlfUk9UQVRFOntcblxuXHRcdFx0Y29uc3QgU0laRTEgPSAxNiAqIDEwO1xuXHRcdFx0Y29uc3QgU0laRTIgPSA0MDAgKiA0MDA7XG5cdFx0XHRcblx0XHRcdHN3aXRjaChtb3Rpb25Nb2RlKXtcblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfQ0VMRUJSQVRPUlk6e1xuXG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDM2MDtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gNDgwO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChTSVpFMiAtIFNJWkUxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBTSVpFMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9OQVJSQVRJVkU6e1xuXG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDI2ODtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMzk0O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChTSVpFMiAtIFNJWkUxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBTSVpFMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMTg4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAyODA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKFNJWkUyIC0gU0laRTEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIFNJWkUxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBzaXplICsgRElTUExBQ0VNRU5UO1xuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfUFJPRFVDVElWRTp7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDEyODtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMTkwO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChTSVpFMiAtIFNJWkUxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBTSVpFMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXQgPSByZXQgLyAxODAgKiBkaXN0YW5jZTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNhc2UgY29uc3RhbnRzLlBST1BFUlRZX1NDQUxFOntcblxuXHRcdFx0Y29uc3QgQVJFQV9ERUxUQV8xID0gMTAwICogMjAwIC0gMTAwICogMTAwO1xuXHRcdFx0Y29uc3QgQVJFQV9ERUxUQV8yID0gNDAwICogNDAwIC0gMTAwICogMTAwO1xuXHRcdFx0XG5cdFx0XHRzd2l0Y2gobW90aW9uTW9kZSl7XG5cblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX0NFTEVCUkFUT1JZOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAyNjg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDM5Mjtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoQVJFQV9ERUxUQV8yIC0gQVJFQV9ERUxUQV8xKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBBUkVBX0RFTFRBXzE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlQ7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfTkFSUkFUSVZFOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAyMDg7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDI2MDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoQVJFQV9ERUxUQV8yIC0gQVJFQV9ERUxUQV8xKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBBUkVBX0RFTFRBXzE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIHNpemUgKyBESVNQTEFDRU1FTlQ7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfRVhQUkVTU0lWRTp7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgRFVSMSA9IDEyODtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMTY4O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChBUkVBX0RFTFRBXzIgLSBBUkVBX0RFTFRBXzEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIEFSRUFfREVMVEFfMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y2FzZSBjb25zdGFudHMuTU9NRU5UX1BST0RVQ1RJVkU6e1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSA5NDtcblx0XHRcdFx0XHRjb25zdCBEVVIyID0gMTQzO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGNvbnN0IFNMT1BFID0gKERVUjIgLSBEVVIxKSAvIChBUkVBX0RFTFRBXzIgLSBBUkVBX0RFTFRBXzEpO1xuXHRcdFx0XHRcdGNvbnN0IERJU1BMQUNFTUVOVCA9IERVUjEgLSBTTE9QRSAqIEFSRUFfREVMVEFfMTtcblxuXHRcdFx0XHRcdHJldCA9IFNMT1BFICogc2l6ZSArIERJU1BMQUNFTUVOVDtcblxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRjYXNlIGNvbnN0YW50cy5QUk9QRVJUWV9NT1ZFOlxuXHRcdGRlZmF1bHQ6e1xuXG5cdFx0XHRjb25zdCBESVNUQU5DRTEgPSAxMDA7XG5cdFx0XHRjb25zdCBESVNUQU5DRTIgPSAxNDAwO1xuXG5cdFx0XHRjb25zdCBTSVpFX0RVUjEgPSAyMDA7XG5cdFx0XHRjb25zdCBTSVpFX0RVUjIgPSAyMDg7XG5cdFx0XHRjb25zdCBTSVpFX0RJU1RBTkNFMSA9IDEwMCAqIDEwMDtcblx0XHRcdGNvbnN0IFNJWkVfRElTVEFOQ0UyID0gNDAwICogNDAwO1xuXHRcdFx0Y29uc3QgU0laRV9TTE9QRSA9IChTSVpFX0RVUjIgLSBTSVpFX0RVUjEpIC8gKFNJWkVfRElTVEFOQ0UyIC0gU0laRV9ESVNUQU5DRTEpIC8gU0laRV9EVVIxO1xuXHRcdFx0Y29uc3QgU0laRV9ESVNQTEFDRU1FTlQgPSAoU0laRV9EVVIyIC0gU0laRV9ESVNUQU5DRTIgKiBTSVpFX1NMT1BFKSAvIFNJWkVfRFVSMTtcblxuXHRcdFx0c3dpdGNoKG1vdGlvbk1vZGUpe1xuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9DRUxFQlJBVE9SWTp7XG5cblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMjc2O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSA0NjY7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKERJU1RBTkNFMiAtIERJU1RBTkNFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogRElTVEFOQ0UxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBkaXN0YW5jZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRyZXQgPSByZXQgKiAoc2l6ZSAqIFNJWkVfU0xPUEUgKyBTSVpFX0RJU1BMQUNFTUVOVCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIGNvbnN0YW50cy5NT01FTlRfTkFSUkFUSVZFOntcblxuXHRcdFx0XHRcdGNvbnN0IERVUjEgPSAyMDE7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDM2OTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoRElTVEFOQ0UyIC0gRElTVEFOQ0UxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBESVNUQU5DRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIGRpc3RhbmNlICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdHJldCA9IHJldCAqIChzaXplICogU0laRV9TTE9QRSArIFNJWkVfRElTUExBQ0VNRU5UKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9FWFBSRVNTSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gMTI4O1xuXHRcdFx0XHRcdGNvbnN0IERVUjIgPSAyNjg7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y29uc3QgU0xPUEUgPSAoRFVSMiAtIERVUjEpIC8gKERJU1RBTkNFMiAtIERJU1RBTkNFMSk7XG5cdFx0XHRcdFx0Y29uc3QgRElTUExBQ0VNRU5UID0gRFVSMSAtIFNMT1BFICogRElTVEFOQ0UxO1xuXG5cdFx0XHRcdFx0cmV0ID0gU0xPUEUgKiBkaXN0YW5jZSArIERJU1BMQUNFTUVOVDtcblx0XHRcdFx0XHRyZXQgPSByZXQgKiAoc2l6ZSAqIFNJWkVfU0xPUEUgKyBTSVpFX0RJU1BMQUNFTUVOVCk7XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNhc2UgY29uc3RhbnRzLk1PTUVOVF9QUk9EVUNUSVZFOntcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBEVVIxID0gOTA7XG5cdFx0XHRcdFx0Y29uc3QgRFVSMiA9IDE5MDtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRjb25zdCBTTE9QRSA9IChEVVIyIC0gRFVSMSkgLyAoRElTVEFOQ0UyIC0gRElTVEFOQ0UxKTtcblx0XHRcdFx0XHRjb25zdCBESVNQTEFDRU1FTlQgPSBEVVIxIC0gU0xPUEUgKiBESVNUQU5DRTE7XG5cblx0XHRcdFx0XHRyZXQgPSBTTE9QRSAqIGRpc3RhbmNlICsgRElTUExBQ0VNRU5UO1xuXHRcdFx0XHRcdHJldCA9IHJldCAqIChzaXplICogU0laRV9TTE9QRSArIFNJWkVfRElTUExBQ0VNRU5UKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0RHVyYXRpb247XG4iLCJpbXBvcnQgY29uc3RhbnRzIGZyb20gJy4vY29uc3RhbnRzLmpzJztcblxuY29uc3QgZ2V0U2l6ZUZhY3RvciA9IChcblx0ZGlzdGFuY2UgPSAxMDAsIFxuXHRzaXplID0gMjAsIFxuXHRtb3Rpb25Nb2RlID0gY29uc3RhbnRzLlBST0RVQ1RJVkVfTU9USU9OLCBcblx0YWRqdXN0bWVudEZhY3RvciA9IDFcbikgPT4gTWF0aC5taW4oXG5cdFx0MS41LCBcblx0XHRNYXRoLnBvdyhcblx0XHRcdGNvbnN0YW50cy5TSVpFX0JBU0UgL3NpemUsIFxuXHRcdFx0KG1vdGlvbk1vZGUgPT09IGNvbnN0YW50cy5QUk9EVUNUSVZFX01PVElPTiA/IDAuMDUgOiAwLjEpICphZGp1c3RtZW50RmFjdG9yIHx8IDFcblx0XHQpXG5cdClcbjtcblxuZXhwb3J0IGRlZmF1bHQge1xuXHRnZXRTaXplRmFjdG9yLFxufTsiLCJpbXBvcnQgZ2V0Q3VydmUgZnJvbSBcIi4vZ2V0Q3VydmUuanNcIjtcbmltcG9ydCBnZXREdXJhdGlvbiBmcm9tIFwiLi9nZXREdXJhdGlvbi5qc1wiO1xuaW1wb3J0IGNvbnN0YW50cyBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcblxuY29uc3QgcmV0ID0ge1xuXHRnZXRDdXJ2ZTpnZXRDdXJ2ZSxcblx0Z2V0RHVyYXRpb246Z2V0RHVyYXRpb24sXG5cdGNvbnN0YW50czpjb25zdGFudHMsXG59O1xuXG5leHBvcnQgZGVmYXVsdCByZXQ7Il19 diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 9a3fc02..6add853 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -1,86 +1,87 @@ -const gulp = require('gulp'); +'use strict'; const browserify = require('browserify'); -const babelify = require('babelify'); +const gulp = require('gulp'); const source = require('vinyl-source-stream'); - const buffer = require('vinyl-buffer'); +const gutil = require('gulp-util'); const uglify = require('gulp-uglify'); +const sourcemaps = require('gulp-sourcemaps'); +const babelify = require('babelify'); const sass = require('gulp-sass'); -const sourcemaps = require("gulp-sourcemaps"); -const babel = require("gulp-babel"); +const gulpFn = require('gulp-fn'); const rename = require('gulp-rename'); const cleanCSS = require('gulp-clean-css'); const fs = require('fs'); -const motionConstants = require('./src/config-constants.js'); -var gulpFn = require('gulp-fn'); -import getDuration from './src/getDuration.js'; const autoprefixer = require('gulp-autoprefixer'); const gulpCopy = require('gulp-copy'); -const base64 = require('gulp-base64'); -var watchify = require('watchify'); -/* -gulp.task('build-script-index', () => { - // return compile('src/index.js', 'index.js', false); - return - browserify({ - entries:'./src/index.js', - debug:true - }) - .transform("babelify", { presets: ["env"] }) +const motionConstants = require('./src/config-constants.js'); +import getDuration from './src/getDuration.js'; + +gulp.task('build-script-index', function () { + + browserify({entries: './src/index.js', extensions: ['.js'], debug: true, standalone:'motion'}) + .transform(babelify) .bundle() .pipe(source('index.js')) - .pipe(buffer()) - .pipe(sourcemaps.init()) - .pipe(uglify()) - .pipe(sourcemaps.write('./dist/maps')) - .pipe(gulp.dest('./dist')) + .pipe(gulp.dest('dist')) ; -}); -*/ -gulp.task('build-script-index', () => { - return - gulp.src("./src/index.js") - .pipe(babel()) - .pipe(gulp.dest("dist")); - ; }); +gulp.task('build-script-getDuration', function () { - -gulp.task('build-script-getduration', () => { - return - browserify({ - entries: './src/getDuration.js', - debug: true - }) - .transform("babelify", { presets: ["env"] }) + browserify({entries: './src/getDuration.js', extensions: ['.js'], debug: true, standalone:'getDuration'}) + .transform(babelify) .bundle() - // .pipe(buffer()) - // .pipe(sourcemaps.init()) - // .pipe(uglify()) - // .pipe(sourcemaps.write('./dist/maps')) - .pipe(gulp.dest('./dist')) - ; + .pipe(source('getDuration.js')) + .pipe(gulp.dest('dist')) + ; + }); -gulp.task('build-demo-script', () => { - return browserify({entries: './src-demo/app.js', debug: true}) - .transform("babelify", { presets: ["env", "react"] }) - .on('error', err => console.log(err)) +gulp.task('build-script-getCurve', function () { + + browserify({entries: './src/getCurve.js', extensions: ['.js'], debug: true, standalone:'getCurve'}) + .transform(babelify) .bundle() - .on('error', err => console.log(err)) - .pipe(source('app.js')) - .pipe(buffer()) - .pipe(sourcemaps.init()) - .pipe(uglify()) - .pipe(sourcemaps.write('./dist-demo/maps')) - .pipe(gulp.dest('./dist-demo')) - ; + .pipe(source('getCurve.js')) + .pipe(gulp.dest('dist')) + ; + +}); +/* +gulp.task('copy-config-constants', () => { + return gulp + .src('./src/config-constants.js') + .pipe(gulp.dest('dist')) + ; +}); + +gulp.task('copy-constants', () => { + return gulp + .src('./src/constants.js') + .pipe(gulp.dest('dist')) + ; }); +gulp.task('copy-helpers', () => { + return gulp + .src('./src/helpers.js') + .pipe(gulp.dest('dist')) + ; +}); +*/ +gulp.task('build-script', [ + 'build-script-index', + 'build-script-getDuration', + 'build-script-getCurve', + // 'copy-config-constants', + // 'copy-constants', + // 'copy-helpers' +]); + function buildSassFiles(){ //----------------------------------------------------- @@ -157,16 +158,6 @@ gulp.task('sass', () => { .pipe(gulp.dest('./dist/css')) ; }); -gulp.task('sass:watch', function () { - gulp.watch('src/scss/**/*.scss', ['sass']); -}); -gulp.task('demo-sass:watch', function () { - gulp.watch('src-demo/styles/**/*.scss', ['demo-sass']); -}); - -gulp.task('script:watch', function(){ - gulp.watch(['src/**/*', 'src-demo/**/*'], ['build-script', 'build-demo-script']); -}); gulp.task('copy-ibm-type-files', () => { return gulp @@ -175,9 +166,4 @@ gulp.task('copy-ibm-type-files', () => { ; }); -gulp.task('build-script', ['build-script-index']); - -gulp.task('watch', ['default', 'script:watch', 'sass:watch', 'demo-sass:watch']); - -gulp.task('default', ['build-script', 'build-demo-script', 'sass', 'demo-sass', 'copy-ibm-type-files']); - +gulp.task('default', ['build-script', 'sass', 'copy-ibm-type-files']); \ No newline at end of file diff --git a/package.json b/package.json index 3c945c4..f7ad2d2 100644 --- a/package.json +++ b/package.json @@ -24,22 +24,11 @@ "homepage": "https://github.com/IBM/motion#readme", "devDependencies": { "@ibm/type": "^0.1.4", - "babel": "^6.23.0", - "babel-cli": "^6.24.1", - "babel-loader": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-plugin-transform-runtime": "^6.23.0", - "babel-preset-env": "^1.6.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-react": "^6.24.1", - "babel-preset-stage-0": "^6.24.1", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.7.0", "babelify": "^8.0.0", "body-parser": "^1.16.1", - "browserify": "^14.5.0", + "browserify": "^16.2.2", "copy-webpack-plugin": "^4.1.0", "css-loader": "^0.28.0", "document-ready-promise": "^3.0.1", @@ -48,16 +37,14 @@ "express": "^4.14.1", "file-loader": "^0.11.2", "gulp": "^3.9.1", - "gulp-autoprefixer": "^4.1.0", - "gulp-babel": "^7.0.0", - "gulp-base64": "^0.1.3", - "gulp-clean-css": "^3.9.0", + "gulp-autoprefixer": "^5.0.0", + "gulp-babel": "^7.0.1", + "gulp-clean-css": "^3.9.4", + "gulp-cli": "^2.0.1", "gulp-copy": "^1.1.0", - "gulp-fn": "0.0.0", + "gulp-fn": "0.0.2", "gulp-rename": "^1.2.2", - "gulp-sass": "^3.1.0", - "gulp-sass-import": "^1.0.0", - "gulp-sourcemaps": "^2.6.1", + "gulp-sass": "^4.0.1", "gulp-uglify": "^3.0.0", "html-loader": "^0.5.1", "http-server": "^0.10.0", @@ -74,7 +61,7 @@ "url-loader": "^0.5.9", "vinyl-buffer": "^1.0.0", "vinyl-source-stream": "^1.1.0", - "watchify": "^3.11.0", + "vinyl-transform": "^1.0.0", "webpack": "^3.6.0", "webpack-build-notifier": "^0.1.16" }, diff --git a/src/config-constants.js b/src/config-constants.js index df87aba..57d8121 100644 --- a/src/config-constants.js +++ b/src/config-constants.js @@ -1,3 +1,5 @@ +"use strict"; + import constants from './constants.js'; const curves = { diff --git a/src/index.js b/src/index.js index 9732263..7904030 100644 --- a/src/index.js +++ b/src/index.js @@ -1,15 +1,11 @@ import getCurve from "./getCurve.js"; import getDuration from "./getDuration.js"; -import getMotion from "./getMotion.js"; import constants from "./constants.js"; const ret = { - test:'test message', getCurve:getCurve, getDuration:getDuration, constants:constants, }; -console.log('exporting @ibm/motion/index.js', ret); - export default ret; \ No newline at end of file diff --git a/src/motion.js b/src/motion.js deleted file mode 100644 index 520dd9b..0000000 --- a/src/motion.js +++ /dev/null @@ -1,12 +0,0 @@ -import getCurve from './getCurve.js'; -import getDuration from './getDuration.js'; - -const ret = { - getCurve, - getDuration -}; - -console.log('exporting @ibm/motion/motion.js', ret); - -window.IBM = window.IBM || {}; -window.IBM.motion = ret;