UNPKG

react-vis

Version:

Data visualization library based on React and d3.

387 lines (386 loc) 13.8 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for dist/lib/utils/animation-utils.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../../prettify.css" /> <link rel="stylesheet" href="../../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../../index.html">all files</a> / <a href="index.html">dist/lib/utils/</a> animation-utils.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">44.74% </span> <span class="quiet">Statements</span> <span class='fraction'>17/38</span> </div> <div class='fl pad1y space-right2'> <span class="strong">33.33% </span> <span class="quiet">Branches</span> <span class='fraction'>6/18</span> </div> <div class='fl pad1y space-right2'> <span class="strong">33.33% </span> <span class="quiet">Functions</span> <span class='fraction'>2/6</span> </div> <div class='fl pad1y space-right2'> <span class="strong">51.61% </span> <span class="quiet">Lines</span> <span class='fraction'>16/31</span> </div> </div> </div> <div class='status-line low'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes"></span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'; &nbsp; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_ANIMATION = exports.AnimationPropType = undefined; &nbsp; var _extends = Object.assign || <span class="fstat-no" title="function not covered" >function (target) {</span> for (<span class="cstat-no" title="statement not covered" >var i = 1; i &lt; arguments.length; i++) { var <span class="cstat-no" title="statement not covered" >source = arguments[i]; <span class="cstat-no" title="statement not covered" >f</span>or (var key in source) { if (<span class="cstat-no" title="statement not covered" >Object.prototype.hasOwnProperty.call(source, key)) { target[<span class="cstat-no" title="statement not covered" >key] = source[key]; } } } <span class="cstat-no" title="statement not covered" >r</span>eturn target; }; // Copyright (c) 2016 Uber Technologies, Inc.</span></span></span></span> // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. &nbsp; // Not obvious: d3-transition adds .transition() method to the selection // prototype (!!!). Do not remove this import. &nbsp; &nbsp; exports.applyTransition = applyTransition; exports.getCSSAnimation = getCSSAnimation; &nbsp; var _react = require('react'); &nbsp; var _react2 = _interopRequireDefault(_react); &nbsp; require('d3-transition'); &nbsp; function _interopRequireDefault(obj) { return o</span>bj &amp;&amp; obj.__esModule ? <span class="branch-0 cbranch-no" title="branch not covered" >obj : { default: obj }; } &nbsp; /** * Property type for the animation. */ var AnimationPropType = exports.AnimationPropType = _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.shape({ duration: _react2.default.PropTypes.number }), _react2.default.PropTypes.bool]); &nbsp; /** * Object with default settings for the lib's animation. * @const */ var DEFAULT_ANIMATION = exports.DEFAULT_ANIMATION = { duration: 100 }; &nbsp; /** * Applies d3.transition to the given selection if transition is set in props. * @param {{animation:*}} props The object with the component's props. * @param {d3.selection} elements D3's selection of elements that should be * animated. * @returns {d3.selection} The new d3 selection with the animation applied. */ function applyTransition(props, elements) { var animation = props.animation; &nbsp; if (<span class="missing-if-branch" title="if path not taken" >I</span>Boolean(animation)) { if (<span class="cstat-no" title="statement not covered" >!(animation instanceof Object)) {</span> animation = <span class="cstat-no" title="statement not covered" >DEFAULT_ANIMATION;</span> } return <span class="cstat-no" title="statement not covered" >elements.transition().duration(animation.duration);</span> } return elements; } &nbsp; /** * Transforms a regular CSS object into an object with CSS animation (e. g. adds * the `transition` property for all keys of an object). * @param {{animation: *}} props The object of component's props. * @param {Object} style A style object to apply animation to. * @returns {Object} New style object with CSS animation applied. */ <span class="fstat-no" title="function not covered" >function getCSSAnimation(props, style) {</span> var <span class="cstat-no" title="statement not covered" >animation = props.animation;</span> &nbsp; var <span class="cstat-no" title="statement not covered" >transition = 'none';</span> if (<span class="cstat-no" title="statement not covered" >animation) {</span> // Fallback to default animation if no animation is passed. if (<span class="cstat-no" title="statement not covered" >!(animation instanceof Object)) {</span> animation = <span class="cstat-no" title="statement not covered" >DEFAULT_ANIMATION;</span> } var <span class="cstat-no" title="statement not covered" >keys = Object.keys(style);</span> // Create a string of visualized parameters and filter out those, which // don't have values. var <span class="cstat-no" title="statement not covered" >animationKeys = keys.filter(<span class="fstat-no" title="function not covered" >function (key) {</span></span> return <span class="cstat-no" title="statement not covered" >Boolean(style[key]);</span> }).map(<span class="fstat-no" title="function not covered" >function (key) {</span> return <span class="cstat-no" title="statement not covered" >key + ' ' + animation.duration / 1000 + 's';</span> }); if (<span class="cstat-no" title="statement not covered" >animationKeys.length) {</span> transition = <span class="cstat-no" title="statement not covered" >animationKeys.join(',');</span> } } return <span class="cstat-no" title="statement not covered" >_extends({</span> transition: transition }, style); }</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri May 20 2016 11:46:43 GMT-0700 (PDT) </div> </div> <script src="../../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../../sorter.js"></script> </body> </html>