react-vis
Version:
Data visualization library based on React and d3.
387 lines (386 loc) • 13.8 kB
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"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">6×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">6×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">6×</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DEFAULT_ANIMATION = exports.AnimationPropType = undefined;
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 < 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.
// Not obvious: d3-transition adds .transition() method to the selection
// prototype (!!!). Do not remove this import.
exports.applyTransition = applyTransition;
exports.getCSSAnimation = getCSSAnimation;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
require('d3-transition');
function _interopRequireDefault(obj) { return o</span>bj && obj.__esModule ? <span class="branch-0 cbranch-no" title="branch not covered" >obj : { default: obj }; }
/**
* 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]);
/**
* Object with default settings for the lib's animation.
* @const
*/
var DEFAULT_ANIMATION = exports.DEFAULT_ANIMATION = {
duration: 100
};
/**
* 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;
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;
}
/**
* 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>
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>