pyk 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/app/assets/javascripts/lib/chardinjs.min.js +2 -0
- data/app/assets/javascripts/lib/crossfilter.js +1383 -1
- data/app/assets/javascripts/lib/{d3.js → d3.v3.js} +0 -0
- data/app/assets/javascripts/lib/dc.js +3492 -757
- data/app/assets/javascripts/lib/jquery.gridster.js +2 -3621
- data/app/assets/javascripts/lib/markermanager.js +2 -980
- data/app/assets/javascripts/lib/underscore.js +1276 -0
- data/app/assets/javascripts/nvd3/lib/colorbrewer.js +302 -0
- data/app/assets/javascripts/nvd3/lib/crossfilter.js +1180 -0
- data/app/assets/javascripts/nvd3/lib/crossfilter.min.js +1 -0
- data/app/assets/javascripts/nvd3/lib/d3.v2.js +7033 -0
- data/app/assets/javascripts/nvd3/lib/d3.v2.min.js +4 -0
- data/app/assets/javascripts/nvd3/lib/d3.v3.js +8436 -0
- data/app/assets/javascripts/nvd3/lib/fisheye.js +86 -0
- data/app/assets/javascripts/nvd3/lib/hive.js +80 -0
- data/app/assets/javascripts/nvd3/lib/horizon.js +192 -0
- data/app/assets/javascripts/nvd3/lib/sankey.js +292 -0
- data/app/assets/javascripts/nvd3/nv.d3.js +14312 -0
- data/app/assets/javascripts/nvd3/nv.d3.min.js +6 -0
- data/app/assets/javascripts/nvd3/src/core.js +122 -0
- data/app/assets/javascripts/nvd3/src/interactiveLayer.js +251 -0
- data/app/assets/javascripts/nvd3/src/models/axis.js +405 -0
- data/app/assets/javascripts/nvd3/src/models/backup/bullet.js +250 -0
- data/app/assets/javascripts/nvd3/src/models/backup/bulletChart.js +349 -0
- data/app/assets/javascripts/nvd3/src/models/boilerplate.js +104 -0
- data/app/assets/javascripts/nvd3/src/models/bullet.js +385 -0
- data/app/assets/javascripts/nvd3/src/models/bulletChart.js +343 -0
- data/app/assets/javascripts/nvd3/src/models/cumulativeLineChart.js +782 -0
- data/app/assets/javascripts/nvd3/src/models/discreteBar.js +349 -0
- data/app/assets/javascripts/nvd3/src/models/discreteBarChart.js +333 -0
- data/app/assets/javascripts/nvd3/src/models/distribution.js +148 -0
- data/app/assets/javascripts/nvd3/src/models/historicalBar.js +331 -0
- data/app/assets/javascripts/nvd3/src/models/historicalBarChart.js +419 -0
- data/app/assets/javascripts/nvd3/src/models/indentedTree.js +337 -0
- data/app/assets/javascripts/nvd3/src/models/legend.js +270 -0
- data/app/assets/javascripts/nvd3/src/models/line.js +284 -0
- data/app/assets/javascripts/nvd3/src/models/lineChart.js +465 -0
- data/app/assets/javascripts/nvd3/src/models/linePlusBarChart.js +433 -0
- data/app/assets/javascripts/nvd3/src/models/linePlusBarWithFocusChart.js +658 -0
- data/app/assets/javascripts/nvd3/src/models/lineWithFisheye.js +200 -0
- data/app/assets/javascripts/nvd3/src/models/lineWithFisheyeChart.js +297 -0
- data/app/assets/javascripts/nvd3/src/models/lineWithFocusChart.js +574 -0
- data/app/assets/javascripts/nvd3/src/models/multiBar.js +461 -0
- data/app/assets/javascripts/nvd3/src/models/multiBarChart.js +524 -0
- data/app/assets/javascripts/nvd3/src/models/multiBarHorizontal.js +424 -0
- data/app/assets/javascripts/nvd3/src/models/multiBarHorizontalChart.js +434 -0
- data/app/assets/javascripts/nvd3/src/models/multiBarTimeSeries.js +384 -0
- data/app/assets/javascripts/nvd3/src/models/multiBarTimeSeriesChart.js +405 -0
- data/app/assets/javascripts/nvd3/src/models/multiChart.js +452 -0
- data/app/assets/javascripts/nvd3/src/models/ohlcBar.js +380 -0
- data/app/assets/javascripts/nvd3/src/models/parallelCoordinates.js +239 -0
- data/app/assets/javascripts/nvd3/src/models/pie.js +398 -0
- data/app/assets/javascripts/nvd3/src/models/pieChart.js +292 -0
- data/app/assets/javascripts/nvd3/src/models/scatter.js +674 -0
- data/app/assets/javascripts/nvd3/src/models/scatterChart.js +628 -0
- data/app/assets/javascripts/nvd3/src/models/scatterPlusLineChart.js +620 -0
- data/app/assets/javascripts/nvd3/src/models/sparkline.js +194 -0
- data/app/assets/javascripts/nvd3/src/models/sparklinePlus.js +295 -0
- data/app/assets/javascripts/nvd3/src/models/stackedArea.js +368 -0
- data/app/assets/javascripts/nvd3/src/models/stackedAreaChart.js +629 -0
- data/app/assets/javascripts/nvd3/src/tooltip.js +490 -0
- data/app/assets/javascripts/nvd3/src/utils.js +152 -0
- data/app/assets/javascripts/pyk.js +1 -0
- data/app/assets/stylesheets/lib/chardinjs.css +82 -0
- data/app/assets/stylesheets/nvd3/nv.d3.css +769 -0
- data/app/assets/stylesheets/pyk.css.scss +1 -0
- metadata +61 -2
@@ -0,0 +1,152 @@
|
|
1
|
+
|
2
|
+
nv.utils.windowSize = function() {
|
3
|
+
// Sane defaults
|
4
|
+
var size = {width: 640, height: 480};
|
5
|
+
|
6
|
+
// Earlier IE uses Doc.body
|
7
|
+
if (document.body && document.body.offsetWidth) {
|
8
|
+
size.width = document.body.offsetWidth;
|
9
|
+
size.height = document.body.offsetHeight;
|
10
|
+
}
|
11
|
+
|
12
|
+
// IE can use depending on mode it is in
|
13
|
+
if (document.compatMode=='CSS1Compat' &&
|
14
|
+
document.documentElement &&
|
15
|
+
document.documentElement.offsetWidth ) {
|
16
|
+
size.width = document.documentElement.offsetWidth;
|
17
|
+
size.height = document.documentElement.offsetHeight;
|
18
|
+
}
|
19
|
+
|
20
|
+
// Most recent browsers use
|
21
|
+
if (window.innerWidth && window.innerHeight) {
|
22
|
+
size.width = window.innerWidth;
|
23
|
+
size.height = window.innerHeight;
|
24
|
+
}
|
25
|
+
return (size);
|
26
|
+
};
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
// Easy way to bind multiple functions to window.onresize
|
31
|
+
// TODO: give a way to remove a function after its bound, other than removing all of them
|
32
|
+
nv.utils.windowResize = function(fun){
|
33
|
+
if (fun === undefined) return;
|
34
|
+
var oldresize = window.onresize;
|
35
|
+
|
36
|
+
window.onresize = function(e) {
|
37
|
+
if (typeof oldresize == 'function') oldresize(e);
|
38
|
+
fun(e);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
// Backwards compatible way to implement more d3-like coloring of graphs.
|
43
|
+
// If passed an array, wrap it in a function which implements the old default
|
44
|
+
// behavior
|
45
|
+
nv.utils.getColor = function(color) {
|
46
|
+
if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
|
47
|
+
|
48
|
+
if( Object.prototype.toString.call( color ) === '[object Array]' )
|
49
|
+
return function(d, i) { return d.color || color[i % color.length]; };
|
50
|
+
else
|
51
|
+
return color;
|
52
|
+
//can't really help it if someone passes rubbish as color
|
53
|
+
}
|
54
|
+
|
55
|
+
// Default color chooser uses the index of an object as before.
|
56
|
+
nv.utils.defaultColor = function() {
|
57
|
+
var colors = d3.scale.category20().range();
|
58
|
+
return function(d, i) { return d.color || colors[i % colors.length] };
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
// Returns a color function that takes the result of 'getKey' for each series and
|
63
|
+
// looks for a corresponding color from the dictionary,
|
64
|
+
nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
|
65
|
+
getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
|
66
|
+
defaultColors = defaultColors || d3.scale.category20().range(); //default color function
|
67
|
+
|
68
|
+
var defIndex = defaultColors.length; //current default color (going in reverse)
|
69
|
+
|
70
|
+
return function(series, index) {
|
71
|
+
var key = getKey(series);
|
72
|
+
|
73
|
+
if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
|
74
|
+
|
75
|
+
if (typeof dictionary[key] !== "undefined")
|
76
|
+
return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
|
77
|
+
else
|
78
|
+
return defaultColors[--defIndex]; // no match in dictionary, use default color
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
// From the PJAX example on d3js.org, while this is not really directly needed
|
85
|
+
// it's a very cool method for doing pjax, I may expand upon it a little bit,
|
86
|
+
// open to suggestions on anything that may be useful
|
87
|
+
nv.utils.pjax = function(links, content) {
|
88
|
+
d3.selectAll(links).on("click", function() {
|
89
|
+
history.pushState(this.href, this.textContent, this.href);
|
90
|
+
load(this.href);
|
91
|
+
d3.event.preventDefault();
|
92
|
+
});
|
93
|
+
|
94
|
+
function load(href) {
|
95
|
+
d3.html(href, function(fragment) {
|
96
|
+
var target = d3.select(content).node();
|
97
|
+
target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
|
98
|
+
nv.utils.pjax(links, content);
|
99
|
+
});
|
100
|
+
}
|
101
|
+
|
102
|
+
d3.select(window).on("popstate", function() {
|
103
|
+
if (d3.event.state) load(d3.event.state);
|
104
|
+
});
|
105
|
+
}
|
106
|
+
|
107
|
+
/* For situations where we want to approximate the width in pixels for an SVG:text element.
|
108
|
+
Most common instance is when the element is in a display:none; container.
|
109
|
+
Forumla is : text.length * font-size * constant_factor
|
110
|
+
*/
|
111
|
+
nv.utils.calcApproxTextWidth = function (svgTextElem) {
|
112
|
+
if (svgTextElem instanceof d3.selection) {
|
113
|
+
var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
|
114
|
+
var textLength = svgTextElem.text().length;
|
115
|
+
|
116
|
+
return textLength * fontSize * 0.5;
|
117
|
+
}
|
118
|
+
return 0;
|
119
|
+
};
|
120
|
+
|
121
|
+
/* Numbers that are undefined, null or NaN, convert them to zeros.
|
122
|
+
*/
|
123
|
+
nv.utils.NaNtoZero = function(n) {
|
124
|
+
if (typeof n !== 'number'
|
125
|
+
|| isNaN(n)
|
126
|
+
|| n === null
|
127
|
+
|| n === Infinity) return 0;
|
128
|
+
|
129
|
+
return n;
|
130
|
+
};
|
131
|
+
|
132
|
+
/*
|
133
|
+
Snippet of code you can insert into each nv.models.* to give you the ability to
|
134
|
+
do things like:
|
135
|
+
chart.options({
|
136
|
+
showXAxis: true,
|
137
|
+
tooltips: true
|
138
|
+
});
|
139
|
+
|
140
|
+
To enable in the chart:
|
141
|
+
chart.options = nv.utils.optionsFunc.bind(chart);
|
142
|
+
*/
|
143
|
+
nv.utils.optionsFunc = function(args) {
|
144
|
+
if (args) {
|
145
|
+
d3.map(args).forEach((function(key,value) {
|
146
|
+
if (typeof this[key] === "function") {
|
147
|
+
this[key](value);
|
148
|
+
}
|
149
|
+
}).bind(this));
|
150
|
+
}
|
151
|
+
return this;
|
152
|
+
};
|
@@ -0,0 +1,82 @@
|
|
1
|
+
.chardinjs-overlay {
|
2
|
+
position: absolute;
|
3
|
+
z-index: 999999;
|
4
|
+
background-color: #000;
|
5
|
+
opacity: 0;
|
6
|
+
-webkit-transition: all 0.3s ease-out;
|
7
|
+
-moz-transition: all 0.3s ease-out;
|
8
|
+
-ms-transition: all 0.3s ease-out;
|
9
|
+
-o-transition: all 0.3s ease-out;
|
10
|
+
transition: all 0.3s ease-out; }
|
11
|
+
|
12
|
+
.chardinjs-helper-layer {
|
13
|
+
position: absolute;
|
14
|
+
z-index: 9999998;
|
15
|
+
color: white;
|
16
|
+
-webkit-transition: all 0.3s ease-out;
|
17
|
+
-moz-transition: all 0.3s ease-out;
|
18
|
+
-ms-transition: all 0.3s ease-out;
|
19
|
+
-o-transition: all 0.3s ease-out;
|
20
|
+
transition: all 0.3s ease-out; }
|
21
|
+
.chardinjs-helper-layer.chardinjs-left {
|
22
|
+
border-left: solid white 1px;
|
23
|
+
margin-left: -10px; }
|
24
|
+
.chardinjs-helper-layer.chardinjs-right {
|
25
|
+
border-right: solid white 1px;
|
26
|
+
padding-right: 10px; }
|
27
|
+
.chardinjs-helper-layer.chardinjs-bottom {
|
28
|
+
border-bottom: solid white 1px;
|
29
|
+
padding-bottom: 10px; }
|
30
|
+
.chardinjs-helper-layer.chardinjs-top {
|
31
|
+
border-top: solid white 1px;
|
32
|
+
padding-top: 10px; }
|
33
|
+
|
34
|
+
.chardinjs-tooltip {
|
35
|
+
position: absolute;
|
36
|
+
-webkit-transition: opacity 0.1s ease-out;
|
37
|
+
-moz-transition: opacity 0.1s ease-out;
|
38
|
+
-ms-transition: opacity 0.1s ease-out;
|
39
|
+
-o-transition: opacity 0.1s ease-out;
|
40
|
+
transition: opacity 0.1s ease-out;
|
41
|
+
max-width: 200px; }
|
42
|
+
.chardinjs-tooltip.chardinjs-left {
|
43
|
+
margin-left: -135px;
|
44
|
+
padding-right: 10px; }
|
45
|
+
.chardinjs-tooltip.chardinjs-right {
|
46
|
+
margin-right: -135px;
|
47
|
+
padding-left: 10px; }
|
48
|
+
.chardinjs-tooltip.chardinjs-bottom {
|
49
|
+
margin-bottom: -50px;
|
50
|
+
padding-top: 10px; }
|
51
|
+
.chardinjs-tooltip.chardinjs-top {
|
52
|
+
margin-top: -50px;
|
53
|
+
padding-bottom: 10px; }
|
54
|
+
.chardinjs-tooltip.chardinjs-right:before, .chardinjs-tooltip.chardinjs-left:after, .chardinjs-tooltip.chardinjs-bottom:before, .chardinjs-tooltip.chardinjs-top:after {
|
55
|
+
content: ".";
|
56
|
+
display: inline-block;
|
57
|
+
background-color: white;
|
58
|
+
height: 1px;
|
59
|
+
overflow: hidden;
|
60
|
+
position: absolute; }
|
61
|
+
.chardinjs-tooltip.chardinjs-right:before, .chardinjs-tooltip.chardinjs-left:after {
|
62
|
+
width: 100px;
|
63
|
+
top: 50%; }
|
64
|
+
.chardinjs-tooltip.chardinjs-bottom:before, .chardinjs-tooltip.chardinjs-top:after {
|
65
|
+
width: 1px;
|
66
|
+
height: 50px;
|
67
|
+
left: 50%; }
|
68
|
+
.chardinjs-tooltip.chardinjs-bottom:before {
|
69
|
+
top: -50px; }
|
70
|
+
.chardinjs-tooltip.chardinjs-top:after {
|
71
|
+
bottom: -50px; }
|
72
|
+
.chardinjs-tooltip.chardinjs-right:before {
|
73
|
+
left: -100px; }
|
74
|
+
.chardinjs-tooltip.chardinjs-left:after {
|
75
|
+
right: -100px; }
|
76
|
+
|
77
|
+
.chardinjs-show-element {
|
78
|
+
z-index: 9999999;
|
79
|
+
opacity: 0.8; }
|
80
|
+
|
81
|
+
.chardinjs-relative-position {
|
82
|
+
position: relative; }
|
@@ -0,0 +1,769 @@
|
|
1
|
+
|
2
|
+
/********************
|
3
|
+
* HTML CSS
|
4
|
+
*/
|
5
|
+
|
6
|
+
|
7
|
+
.chartWrap {
|
8
|
+
margin: 0;
|
9
|
+
padding: 0;
|
10
|
+
overflow: hidden;
|
11
|
+
}
|
12
|
+
|
13
|
+
/********************
|
14
|
+
Box shadow and border radius styling
|
15
|
+
*/
|
16
|
+
.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
|
17
|
+
-moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
|
18
|
+
-webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
|
19
|
+
box-shadow: 0 5px 10px rgba(0,0,0,.2);
|
20
|
+
|
21
|
+
-webkit-border-radius: 6px;
|
22
|
+
-moz-border-radius: 6px;
|
23
|
+
border-radius: 6px;
|
24
|
+
}
|
25
|
+
|
26
|
+
/********************
|
27
|
+
* TOOLTIP CSS
|
28
|
+
*/
|
29
|
+
|
30
|
+
.nvtooltip {
|
31
|
+
position: absolute;
|
32
|
+
background-color: rgba(255,255,255,1.0);
|
33
|
+
padding: 1px;
|
34
|
+
border: 1px solid rgba(0,0,0,.2);
|
35
|
+
z-index: 10000;
|
36
|
+
|
37
|
+
font-family: Arial;
|
38
|
+
font-size: 13px;
|
39
|
+
text-align: left;
|
40
|
+
pointer-events: none;
|
41
|
+
|
42
|
+
white-space: nowrap;
|
43
|
+
|
44
|
+
-webkit-touch-callout: none;
|
45
|
+
-webkit-user-select: none;
|
46
|
+
-khtml-user-select: none;
|
47
|
+
-moz-user-select: none;
|
48
|
+
-ms-user-select: none;
|
49
|
+
user-select: none;
|
50
|
+
}
|
51
|
+
|
52
|
+
/*Give tooltips that old fade in transition by
|
53
|
+
putting a "with-transitions" class on the container div.
|
54
|
+
*/
|
55
|
+
.nvtooltip.with-transitions, .with-transitions .nvtooltip {
|
56
|
+
transition: opacity 250ms linear;
|
57
|
+
-moz-transition: opacity 250ms linear;
|
58
|
+
-webkit-transition: opacity 250ms linear;
|
59
|
+
|
60
|
+
transition-delay: 250ms;
|
61
|
+
-moz-transition-delay: 250ms;
|
62
|
+
-webkit-transition-delay: 250ms;
|
63
|
+
}
|
64
|
+
|
65
|
+
.nvtooltip.x-nvtooltip,
|
66
|
+
.nvtooltip.y-nvtooltip {
|
67
|
+
padding: 8px;
|
68
|
+
}
|
69
|
+
|
70
|
+
.nvtooltip h3 {
|
71
|
+
margin: 0;
|
72
|
+
padding: 4px 14px;
|
73
|
+
line-height: 18px;
|
74
|
+
font-weight: normal;
|
75
|
+
background-color: rgba(247,247,247,0.75);
|
76
|
+
text-align: center;
|
77
|
+
|
78
|
+
border-bottom: 1px solid #ebebeb;
|
79
|
+
|
80
|
+
-webkit-border-radius: 5px 5px 0 0;
|
81
|
+
-moz-border-radius: 5px 5px 0 0;
|
82
|
+
border-radius: 5px 5px 0 0;
|
83
|
+
}
|
84
|
+
|
85
|
+
.nvtooltip p {
|
86
|
+
margin: 0;
|
87
|
+
padding: 5px 14px;
|
88
|
+
text-align: center;
|
89
|
+
}
|
90
|
+
|
91
|
+
.nvtooltip span {
|
92
|
+
display: inline-block;
|
93
|
+
margin: 2px 0;
|
94
|
+
}
|
95
|
+
|
96
|
+
.nvtooltip table {
|
97
|
+
margin: 6px;
|
98
|
+
border-spacing:0;
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
.nvtooltip table td {
|
103
|
+
padding: 2px 9px 2px 0;
|
104
|
+
vertical-align: middle;
|
105
|
+
}
|
106
|
+
|
107
|
+
.nvtooltip table td.key {
|
108
|
+
font-weight:normal;
|
109
|
+
}
|
110
|
+
.nvtooltip table td.value {
|
111
|
+
text-align: right;
|
112
|
+
font-weight: bold;
|
113
|
+
}
|
114
|
+
|
115
|
+
.nvtooltip table tr.highlight td {
|
116
|
+
padding: 1px 9px 1px 0;
|
117
|
+
border-bottom-style: solid;
|
118
|
+
border-bottom-width: 1px;
|
119
|
+
border-top-style: solid;
|
120
|
+
border-top-width: 1px;
|
121
|
+
}
|
122
|
+
|
123
|
+
.nvtooltip table td.legend-color-guide div {
|
124
|
+
width: 8px;
|
125
|
+
height: 8px;
|
126
|
+
vertical-align: middle;
|
127
|
+
}
|
128
|
+
|
129
|
+
.nvtooltip .footer {
|
130
|
+
padding: 3px;
|
131
|
+
text-align: center;
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
.nvtooltip-pending-removal {
|
136
|
+
position: absolute;
|
137
|
+
pointer-events: none;
|
138
|
+
}
|
139
|
+
|
140
|
+
|
141
|
+
/********************
|
142
|
+
* SVG CSS
|
143
|
+
*/
|
144
|
+
|
145
|
+
|
146
|
+
svg {
|
147
|
+
-webkit-touch-callout: none;
|
148
|
+
-webkit-user-select: none;
|
149
|
+
-khtml-user-select: none;
|
150
|
+
-moz-user-select: none;
|
151
|
+
-ms-user-select: none;
|
152
|
+
user-select: none;
|
153
|
+
/* Trying to get SVG to act like a greedy block in all browsers */
|
154
|
+
display: block;
|
155
|
+
width:100%;
|
156
|
+
height:100%;
|
157
|
+
}
|
158
|
+
|
159
|
+
|
160
|
+
svg text {
|
161
|
+
font: normal 12px Arial;
|
162
|
+
}
|
163
|
+
|
164
|
+
svg .title {
|
165
|
+
font: bold 14px Arial;
|
166
|
+
}
|
167
|
+
|
168
|
+
.nvd3 .nv-background {
|
169
|
+
fill: white;
|
170
|
+
fill-opacity: 0;
|
171
|
+
/*
|
172
|
+
pointer-events: none;
|
173
|
+
*/
|
174
|
+
}
|
175
|
+
|
176
|
+
.nvd3.nv-noData {
|
177
|
+
font-size: 18px;
|
178
|
+
font-weight: bold;
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
/**********
|
183
|
+
* Brush
|
184
|
+
*/
|
185
|
+
|
186
|
+
.nv-brush .extent {
|
187
|
+
fill-opacity: .125;
|
188
|
+
shape-rendering: crispEdges;
|
189
|
+
}
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
/**********
|
194
|
+
* Legend
|
195
|
+
*/
|
196
|
+
|
197
|
+
.nvd3 .nv-legend .nv-series {
|
198
|
+
cursor: pointer;
|
199
|
+
}
|
200
|
+
|
201
|
+
.nvd3 .nv-legend .disabled circle {
|
202
|
+
fill-opacity: 0;
|
203
|
+
}
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
/**********
|
208
|
+
* Axes
|
209
|
+
*/
|
210
|
+
.nvd3 .nv-axis {
|
211
|
+
pointer-events:none;
|
212
|
+
}
|
213
|
+
|
214
|
+
.nvd3 .nv-axis path {
|
215
|
+
fill: none;
|
216
|
+
stroke: #000;
|
217
|
+
stroke-opacity: .75;
|
218
|
+
shape-rendering: crispEdges;
|
219
|
+
}
|
220
|
+
|
221
|
+
.nvd3 .nv-axis path.domain {
|
222
|
+
stroke-opacity: .75;
|
223
|
+
}
|
224
|
+
|
225
|
+
.nvd3 .nv-axis.nv-x path.domain {
|
226
|
+
stroke-opacity: 0;
|
227
|
+
}
|
228
|
+
|
229
|
+
.nvd3 .nv-axis line {
|
230
|
+
fill: none;
|
231
|
+
stroke: #e5e5e5;
|
232
|
+
shape-rendering: crispEdges;
|
233
|
+
}
|
234
|
+
|
235
|
+
.nvd3 .nv-axis .zero line,
|
236
|
+
/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
|
237
|
+
stroke-opacity: .75;
|
238
|
+
}
|
239
|
+
|
240
|
+
.nvd3 .nv-axis .nv-axisMaxMin text {
|
241
|
+
font-weight: bold;
|
242
|
+
}
|
243
|
+
|
244
|
+
.nvd3 .x .nv-axis .nv-axisMaxMin text,
|
245
|
+
.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
|
246
|
+
.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
|
247
|
+
text-anchor: middle
|
248
|
+
}
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
/**********
|
253
|
+
* Brush
|
254
|
+
*/
|
255
|
+
|
256
|
+
.nv-brush .resize path {
|
257
|
+
fill: #eee;
|
258
|
+
stroke: #666;
|
259
|
+
}
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
/**********
|
264
|
+
* Bars
|
265
|
+
*/
|
266
|
+
|
267
|
+
.nvd3 .nv-bars .negative rect {
|
268
|
+
zfill: brown;
|
269
|
+
}
|
270
|
+
|
271
|
+
.nvd3 .nv-bars rect {
|
272
|
+
zfill: steelblue;
|
273
|
+
fill-opacity: .75;
|
274
|
+
|
275
|
+
transition: fill-opacity 250ms linear;
|
276
|
+
-moz-transition: fill-opacity 250ms linear;
|
277
|
+
-webkit-transition: fill-opacity 250ms linear;
|
278
|
+
}
|
279
|
+
|
280
|
+
.nvd3 .nv-bars rect.hover {
|
281
|
+
fill-opacity: 1;
|
282
|
+
}
|
283
|
+
|
284
|
+
.nvd3 .nv-bars .hover rect {
|
285
|
+
fill: lightblue;
|
286
|
+
}
|
287
|
+
|
288
|
+
.nvd3 .nv-bars text {
|
289
|
+
fill: rgba(0,0,0,0);
|
290
|
+
}
|
291
|
+
|
292
|
+
.nvd3 .nv-bars .hover text {
|
293
|
+
fill: rgba(0,0,0,1);
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
/**********
|
298
|
+
* Bars
|
299
|
+
*/
|
300
|
+
|
301
|
+
.nvd3 .nv-multibar .nv-groups rect,
|
302
|
+
.nvd3 .nv-multibarHorizontal .nv-groups rect,
|
303
|
+
.nvd3 .nv-discretebar .nv-groups rect {
|
304
|
+
stroke-opacity: 0;
|
305
|
+
|
306
|
+
transition: fill-opacity 250ms linear;
|
307
|
+
-moz-transition: fill-opacity 250ms linear;
|
308
|
+
-webkit-transition: fill-opacity 250ms linear;
|
309
|
+
}
|
310
|
+
|
311
|
+
.nvd3 .nv-multibar .nv-groups rect:hover,
|
312
|
+
.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
|
313
|
+
.nvd3 .nv-discretebar .nv-groups rect:hover {
|
314
|
+
fill-opacity: 1;
|
315
|
+
}
|
316
|
+
|
317
|
+
.nvd3 .nv-discretebar .nv-groups text,
|
318
|
+
.nvd3 .nv-multibarHorizontal .nv-groups text {
|
319
|
+
font-weight: bold;
|
320
|
+
fill: rgba(0,0,0,1);
|
321
|
+
stroke: rgba(0,0,0,0);
|
322
|
+
}
|
323
|
+
|
324
|
+
/***********
|
325
|
+
* Pie Chart
|
326
|
+
*/
|
327
|
+
|
328
|
+
.nvd3.nv-pie path {
|
329
|
+
stroke-opacity: 0;
|
330
|
+
transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
|
331
|
+
-moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
|
332
|
+
-webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
|
333
|
+
|
334
|
+
}
|
335
|
+
|
336
|
+
.nvd3.nv-pie .nv-slice text {
|
337
|
+
stroke: #000;
|
338
|
+
stroke-width: 0;
|
339
|
+
}
|
340
|
+
|
341
|
+
.nvd3.nv-pie path {
|
342
|
+
stroke: #fff;
|
343
|
+
stroke-width: 1px;
|
344
|
+
stroke-opacity: 1;
|
345
|
+
}
|
346
|
+
|
347
|
+
.nvd3.nv-pie .hover path {
|
348
|
+
fill-opacity: .7;
|
349
|
+
}
|
350
|
+
.nvd3.nv-pie .nv-label {
|
351
|
+
pointer-events: none;
|
352
|
+
}
|
353
|
+
.nvd3.nv-pie .nv-label rect {
|
354
|
+
fill-opacity: 0;
|
355
|
+
stroke-opacity: 0;
|
356
|
+
}
|
357
|
+
|
358
|
+
/**********
|
359
|
+
* Lines
|
360
|
+
*/
|
361
|
+
|
362
|
+
.nvd3 .nv-groups path.nv-line {
|
363
|
+
fill: none;
|
364
|
+
stroke-width: 1.5px;
|
365
|
+
/*
|
366
|
+
stroke-linecap: round;
|
367
|
+
shape-rendering: geometricPrecision;
|
368
|
+
|
369
|
+
transition: stroke-width 250ms linear;
|
370
|
+
-moz-transition: stroke-width 250ms linear;
|
371
|
+
-webkit-transition: stroke-width 250ms linear;
|
372
|
+
|
373
|
+
transition-delay: 250ms
|
374
|
+
-moz-transition-delay: 250ms;
|
375
|
+
-webkit-transition-delay: 250ms;
|
376
|
+
*/
|
377
|
+
}
|
378
|
+
|
379
|
+
.nvd3 .nv-groups path.nv-line.nv-thin-line {
|
380
|
+
stroke-width: 1px;
|
381
|
+
}
|
382
|
+
|
383
|
+
|
384
|
+
.nvd3 .nv-groups path.nv-area {
|
385
|
+
stroke: none;
|
386
|
+
/*
|
387
|
+
stroke-linecap: round;
|
388
|
+
shape-rendering: geometricPrecision;
|
389
|
+
|
390
|
+
stroke-width: 2.5px;
|
391
|
+
transition: stroke-width 250ms linear;
|
392
|
+
-moz-transition: stroke-width 250ms linear;
|
393
|
+
-webkit-transition: stroke-width 250ms linear;
|
394
|
+
|
395
|
+
transition-delay: 250ms
|
396
|
+
-moz-transition-delay: 250ms;
|
397
|
+
-webkit-transition-delay: 250ms;
|
398
|
+
*/
|
399
|
+
}
|
400
|
+
|
401
|
+
.nvd3 .nv-line.hover path {
|
402
|
+
stroke-width: 6px;
|
403
|
+
}
|
404
|
+
|
405
|
+
/*
|
406
|
+
.nvd3.scatter .groups .point {
|
407
|
+
fill-opacity: 0.1;
|
408
|
+
stroke-opacity: 0.1;
|
409
|
+
}
|
410
|
+
*/
|
411
|
+
|
412
|
+
.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
|
413
|
+
fill-opacity: 0;
|
414
|
+
stroke-opacity: 0;
|
415
|
+
}
|
416
|
+
|
417
|
+
.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
|
418
|
+
fill-opacity: .5 !important;
|
419
|
+
stroke-opacity: .5 !important;
|
420
|
+
}
|
421
|
+
|
422
|
+
|
423
|
+
.with-transitions .nvd3 .nv-groups .nv-point {
|
424
|
+
transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
|
425
|
+
-moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
|
426
|
+
-webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
|
427
|
+
|
428
|
+
}
|
429
|
+
|
430
|
+
.nvd3.nv-scatter .nv-groups .nv-point.hover,
|
431
|
+
.nvd3 .nv-groups .nv-point.hover {
|
432
|
+
stroke-width: 7px;
|
433
|
+
fill-opacity: .95 !important;
|
434
|
+
stroke-opacity: .95 !important;
|
435
|
+
}
|
436
|
+
|
437
|
+
|
438
|
+
.nvd3 .nv-point-paths path {
|
439
|
+
stroke: #aaa;
|
440
|
+
stroke-opacity: 0;
|
441
|
+
fill: #eee;
|
442
|
+
fill-opacity: 0;
|
443
|
+
}
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
.nvd3 .nv-indexLine {
|
448
|
+
cursor: ew-resize;
|
449
|
+
}
|
450
|
+
|
451
|
+
|
452
|
+
/**********
|
453
|
+
* Distribution
|
454
|
+
*/
|
455
|
+
|
456
|
+
.nvd3 .nv-distribution {
|
457
|
+
pointer-events: none;
|
458
|
+
}
|
459
|
+
|
460
|
+
|
461
|
+
|
462
|
+
/**********
|
463
|
+
* Scatter
|
464
|
+
*/
|
465
|
+
|
466
|
+
/* **Attempting to remove this for useVoronoi(false), need to see if it's required anywhere
|
467
|
+
.nvd3 .nv-groups .nv-point {
|
468
|
+
pointer-events: none;
|
469
|
+
}
|
470
|
+
*/
|
471
|
+
|
472
|
+
.nvd3 .nv-groups .nv-point.hover {
|
473
|
+
stroke-width: 20px;
|
474
|
+
stroke-opacity: .5;
|
475
|
+
}
|
476
|
+
|
477
|
+
.nvd3 .nv-scatter .nv-point.hover {
|
478
|
+
fill-opacity: 1;
|
479
|
+
}
|
480
|
+
|
481
|
+
/*
|
482
|
+
.nv-group.hover .nv-point {
|
483
|
+
fill-opacity: 1;
|
484
|
+
}
|
485
|
+
*/
|
486
|
+
|
487
|
+
|
488
|
+
/**********
|
489
|
+
* Stacked Area
|
490
|
+
*/
|
491
|
+
|
492
|
+
.nvd3.nv-stackedarea path.nv-area {
|
493
|
+
fill-opacity: .7;
|
494
|
+
/*
|
495
|
+
stroke-opacity: .65;
|
496
|
+
fill-opacity: 1;
|
497
|
+
*/
|
498
|
+
stroke-opacity: 0;
|
499
|
+
|
500
|
+
transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
|
501
|
+
-moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
|
502
|
+
-webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
|
503
|
+
|
504
|
+
/*
|
505
|
+
transition-delay: 500ms;
|
506
|
+
-moz-transition-delay: 500ms;
|
507
|
+
-webkit-transition-delay: 500ms;
|
508
|
+
*/
|
509
|
+
|
510
|
+
}
|
511
|
+
|
512
|
+
.nvd3.nv-stackedarea path.nv-area.hover {
|
513
|
+
fill-opacity: .9;
|
514
|
+
/*
|
515
|
+
stroke-opacity: .85;
|
516
|
+
*/
|
517
|
+
}
|
518
|
+
/*
|
519
|
+
.d3stackedarea .groups path {
|
520
|
+
stroke-opacity: 0;
|
521
|
+
}
|
522
|
+
*/
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
.nvd3.nv-stackedarea .nv-groups .nv-point {
|
527
|
+
stroke-opacity: 0;
|
528
|
+
fill-opacity: 0;
|
529
|
+
}
|
530
|
+
|
531
|
+
/*
|
532
|
+
.nvd3.nv-stackedarea .nv-groups .nv-point.hover {
|
533
|
+
stroke-width: 20px;
|
534
|
+
stroke-opacity: .75;
|
535
|
+
fill-opacity: 1;
|
536
|
+
}*/
|
537
|
+
|
538
|
+
|
539
|
+
|
540
|
+
/**********
|
541
|
+
* Line Plus Bar
|
542
|
+
*/
|
543
|
+
|
544
|
+
.nvd3.nv-linePlusBar .nv-bar rect {
|
545
|
+
fill-opacity: .75;
|
546
|
+
}
|
547
|
+
|
548
|
+
.nvd3.nv-linePlusBar .nv-bar rect:hover {
|
549
|
+
fill-opacity: 1;
|
550
|
+
}
|
551
|
+
|
552
|
+
|
553
|
+
/**********
|
554
|
+
* Bullet
|
555
|
+
*/
|
556
|
+
|
557
|
+
.nvd3.nv-bullet { font: 10px sans-serif; }
|
558
|
+
.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
|
559
|
+
.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
|
560
|
+
.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
|
561
|
+
.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
|
562
|
+
.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
|
563
|
+
.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
|
564
|
+
.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
|
565
|
+
.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
|
566
|
+
.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
|
567
|
+
.nvd3.nv-bullet .nv-subtitle { fill: #999; }
|
568
|
+
|
569
|
+
|
570
|
+
.nvd3.nv-bullet .nv-range {
|
571
|
+
fill: #bababa;
|
572
|
+
fill-opacity: .4;
|
573
|
+
}
|
574
|
+
.nvd3.nv-bullet .nv-range:hover {
|
575
|
+
fill-opacity: .7;
|
576
|
+
}
|
577
|
+
|
578
|
+
|
579
|
+
|
580
|
+
/**********
|
581
|
+
* Sparkline
|
582
|
+
*/
|
583
|
+
|
584
|
+
.nvd3.nv-sparkline path {
|
585
|
+
fill: none;
|
586
|
+
}
|
587
|
+
|
588
|
+
.nvd3.nv-sparklineplus g.nv-hoverValue {
|
589
|
+
pointer-events: none;
|
590
|
+
}
|
591
|
+
|
592
|
+
.nvd3.nv-sparklineplus .nv-hoverValue line {
|
593
|
+
stroke: #333;
|
594
|
+
stroke-width: 1.5px;
|
595
|
+
}
|
596
|
+
|
597
|
+
.nvd3.nv-sparklineplus,
|
598
|
+
.nvd3.nv-sparklineplus g {
|
599
|
+
pointer-events: all;
|
600
|
+
}
|
601
|
+
|
602
|
+
.nvd3 .nv-hoverArea {
|
603
|
+
fill-opacity: 0;
|
604
|
+
stroke-opacity: 0;
|
605
|
+
}
|
606
|
+
|
607
|
+
.nvd3.nv-sparklineplus .nv-xValue,
|
608
|
+
.nvd3.nv-sparklineplus .nv-yValue {
|
609
|
+
/*
|
610
|
+
stroke: #666;
|
611
|
+
*/
|
612
|
+
stroke-width: 0;
|
613
|
+
font-size: .9em;
|
614
|
+
font-weight: normal;
|
615
|
+
}
|
616
|
+
|
617
|
+
.nvd3.nv-sparklineplus .nv-yValue {
|
618
|
+
stroke: #f66;
|
619
|
+
}
|
620
|
+
|
621
|
+
.nvd3.nv-sparklineplus .nv-maxValue {
|
622
|
+
stroke: #2ca02c;
|
623
|
+
fill: #2ca02c;
|
624
|
+
}
|
625
|
+
|
626
|
+
.nvd3.nv-sparklineplus .nv-minValue {
|
627
|
+
stroke: #d62728;
|
628
|
+
fill: #d62728;
|
629
|
+
}
|
630
|
+
|
631
|
+
.nvd3.nv-sparklineplus .nv-currentValue {
|
632
|
+
/*
|
633
|
+
stroke: #444;
|
634
|
+
fill: #000;
|
635
|
+
*/
|
636
|
+
font-weight: bold;
|
637
|
+
font-size: 1.1em;
|
638
|
+
}
|
639
|
+
|
640
|
+
/**********
|
641
|
+
* historical stock
|
642
|
+
*/
|
643
|
+
|
644
|
+
.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
|
645
|
+
stroke-width: 2px;
|
646
|
+
}
|
647
|
+
|
648
|
+
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
|
649
|
+
stroke-width: 4px;
|
650
|
+
}
|
651
|
+
|
652
|
+
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
|
653
|
+
stroke: #2ca02c;
|
654
|
+
}
|
655
|
+
|
656
|
+
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
|
657
|
+
stroke: #d62728;
|
658
|
+
}
|
659
|
+
|
660
|
+
.nvd3.nv-historicalStockChart .nv-axis .nv-axislabel {
|
661
|
+
font-weight: bold;
|
662
|
+
}
|
663
|
+
|
664
|
+
.nvd3.nv-historicalStockChart .nv-dragTarget {
|
665
|
+
fill-opacity: 0;
|
666
|
+
stroke: none;
|
667
|
+
cursor: move;
|
668
|
+
}
|
669
|
+
|
670
|
+
.nvd3 .nv-brush .extent {
|
671
|
+
/*
|
672
|
+
cursor: ew-resize !important;
|
673
|
+
*/
|
674
|
+
fill-opacity: 0 !important;
|
675
|
+
}
|
676
|
+
|
677
|
+
.nvd3 .nv-brushBackground rect {
|
678
|
+
stroke: #000;
|
679
|
+
stroke-width: .4;
|
680
|
+
fill: #fff;
|
681
|
+
fill-opacity: .7;
|
682
|
+
}
|
683
|
+
|
684
|
+
|
685
|
+
|
686
|
+
/**********
|
687
|
+
* Indented Tree
|
688
|
+
*/
|
689
|
+
|
690
|
+
|
691
|
+
/**
|
692
|
+
* TODO: the following 3 selectors are based on classes used in the example. I should either make them standard and leave them here, or move to a CSS file not included in the library
|
693
|
+
*/
|
694
|
+
.nvd3.nv-indentedtree .name {
|
695
|
+
margin-left: 5px;
|
696
|
+
}
|
697
|
+
|
698
|
+
.nvd3.nv-indentedtree .clickable {
|
699
|
+
color: #08C;
|
700
|
+
cursor: pointer;
|
701
|
+
}
|
702
|
+
|
703
|
+
.nvd3.nv-indentedtree span.clickable:hover {
|
704
|
+
color: #005580;
|
705
|
+
text-decoration: underline;
|
706
|
+
}
|
707
|
+
|
708
|
+
|
709
|
+
.nvd3.nv-indentedtree .nv-childrenCount {
|
710
|
+
display: inline-block;
|
711
|
+
margin-left: 5px;
|
712
|
+
}
|
713
|
+
|
714
|
+
.nvd3.nv-indentedtree .nv-treeicon {
|
715
|
+
cursor: pointer;
|
716
|
+
/*
|
717
|
+
cursor: n-resize;
|
718
|
+
*/
|
719
|
+
}
|
720
|
+
|
721
|
+
.nvd3.nv-indentedtree .nv-treeicon.nv-folded {
|
722
|
+
cursor: pointer;
|
723
|
+
/*
|
724
|
+
cursor: s-resize;
|
725
|
+
*/
|
726
|
+
}
|
727
|
+
|
728
|
+
/**********
|
729
|
+
* Parallel Coordinates
|
730
|
+
*/
|
731
|
+
|
732
|
+
.nvd3 .background path {
|
733
|
+
fill: none;
|
734
|
+
stroke: #ccc;
|
735
|
+
stroke-opacity: .4;
|
736
|
+
shape-rendering: crispEdges;
|
737
|
+
}
|
738
|
+
|
739
|
+
.nvd3 .foreground path {
|
740
|
+
fill: none;
|
741
|
+
stroke: steelblue;
|
742
|
+
stroke-opacity: .7;
|
743
|
+
}
|
744
|
+
|
745
|
+
.nvd3 .brush .extent {
|
746
|
+
fill-opacity: .3;
|
747
|
+
stroke: #fff;
|
748
|
+
shape-rendering: crispEdges;
|
749
|
+
}
|
750
|
+
|
751
|
+
.nvd3 .axis line, .axis path {
|
752
|
+
fill: none;
|
753
|
+
stroke: #000;
|
754
|
+
shape-rendering: crispEdges;
|
755
|
+
}
|
756
|
+
|
757
|
+
.nvd3 .axis text {
|
758
|
+
text-shadow: 0 1px 0 #fff;
|
759
|
+
}
|
760
|
+
|
761
|
+
/****
|
762
|
+
Interactive Layer
|
763
|
+
*/
|
764
|
+
.nvd3 .nv-interactiveGuideLine {
|
765
|
+
pointer-events:none;
|
766
|
+
}
|
767
|
+
.nvd3 line.nv-guideline {
|
768
|
+
stroke: #ccc;
|
769
|
+
}
|