pyk 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/lib/chardinjs.min.js +2 -0
  3. data/app/assets/javascripts/lib/crossfilter.js +1383 -1
  4. data/app/assets/javascripts/lib/{d3.js → d3.v3.js} +0 -0
  5. data/app/assets/javascripts/lib/dc.js +3492 -757
  6. data/app/assets/javascripts/lib/jquery.gridster.js +2 -3621
  7. data/app/assets/javascripts/lib/markermanager.js +2 -980
  8. data/app/assets/javascripts/lib/underscore.js +1276 -0
  9. data/app/assets/javascripts/nvd3/lib/colorbrewer.js +302 -0
  10. data/app/assets/javascripts/nvd3/lib/crossfilter.js +1180 -0
  11. data/app/assets/javascripts/nvd3/lib/crossfilter.min.js +1 -0
  12. data/app/assets/javascripts/nvd3/lib/d3.v2.js +7033 -0
  13. data/app/assets/javascripts/nvd3/lib/d3.v2.min.js +4 -0
  14. data/app/assets/javascripts/nvd3/lib/d3.v3.js +8436 -0
  15. data/app/assets/javascripts/nvd3/lib/fisheye.js +86 -0
  16. data/app/assets/javascripts/nvd3/lib/hive.js +80 -0
  17. data/app/assets/javascripts/nvd3/lib/horizon.js +192 -0
  18. data/app/assets/javascripts/nvd3/lib/sankey.js +292 -0
  19. data/app/assets/javascripts/nvd3/nv.d3.js +14312 -0
  20. data/app/assets/javascripts/nvd3/nv.d3.min.js +6 -0
  21. data/app/assets/javascripts/nvd3/src/core.js +122 -0
  22. data/app/assets/javascripts/nvd3/src/interactiveLayer.js +251 -0
  23. data/app/assets/javascripts/nvd3/src/models/axis.js +405 -0
  24. data/app/assets/javascripts/nvd3/src/models/backup/bullet.js +250 -0
  25. data/app/assets/javascripts/nvd3/src/models/backup/bulletChart.js +349 -0
  26. data/app/assets/javascripts/nvd3/src/models/boilerplate.js +104 -0
  27. data/app/assets/javascripts/nvd3/src/models/bullet.js +385 -0
  28. data/app/assets/javascripts/nvd3/src/models/bulletChart.js +343 -0
  29. data/app/assets/javascripts/nvd3/src/models/cumulativeLineChart.js +782 -0
  30. data/app/assets/javascripts/nvd3/src/models/discreteBar.js +349 -0
  31. data/app/assets/javascripts/nvd3/src/models/discreteBarChart.js +333 -0
  32. data/app/assets/javascripts/nvd3/src/models/distribution.js +148 -0
  33. data/app/assets/javascripts/nvd3/src/models/historicalBar.js +331 -0
  34. data/app/assets/javascripts/nvd3/src/models/historicalBarChart.js +419 -0
  35. data/app/assets/javascripts/nvd3/src/models/indentedTree.js +337 -0
  36. data/app/assets/javascripts/nvd3/src/models/legend.js +270 -0
  37. data/app/assets/javascripts/nvd3/src/models/line.js +284 -0
  38. data/app/assets/javascripts/nvd3/src/models/lineChart.js +465 -0
  39. data/app/assets/javascripts/nvd3/src/models/linePlusBarChart.js +433 -0
  40. data/app/assets/javascripts/nvd3/src/models/linePlusBarWithFocusChart.js +658 -0
  41. data/app/assets/javascripts/nvd3/src/models/lineWithFisheye.js +200 -0
  42. data/app/assets/javascripts/nvd3/src/models/lineWithFisheyeChart.js +297 -0
  43. data/app/assets/javascripts/nvd3/src/models/lineWithFocusChart.js +574 -0
  44. data/app/assets/javascripts/nvd3/src/models/multiBar.js +461 -0
  45. data/app/assets/javascripts/nvd3/src/models/multiBarChart.js +524 -0
  46. data/app/assets/javascripts/nvd3/src/models/multiBarHorizontal.js +424 -0
  47. data/app/assets/javascripts/nvd3/src/models/multiBarHorizontalChart.js +434 -0
  48. data/app/assets/javascripts/nvd3/src/models/multiBarTimeSeries.js +384 -0
  49. data/app/assets/javascripts/nvd3/src/models/multiBarTimeSeriesChart.js +405 -0
  50. data/app/assets/javascripts/nvd3/src/models/multiChart.js +452 -0
  51. data/app/assets/javascripts/nvd3/src/models/ohlcBar.js +380 -0
  52. data/app/assets/javascripts/nvd3/src/models/parallelCoordinates.js +239 -0
  53. data/app/assets/javascripts/nvd3/src/models/pie.js +398 -0
  54. data/app/assets/javascripts/nvd3/src/models/pieChart.js +292 -0
  55. data/app/assets/javascripts/nvd3/src/models/scatter.js +674 -0
  56. data/app/assets/javascripts/nvd3/src/models/scatterChart.js +628 -0
  57. data/app/assets/javascripts/nvd3/src/models/scatterPlusLineChart.js +620 -0
  58. data/app/assets/javascripts/nvd3/src/models/sparkline.js +194 -0
  59. data/app/assets/javascripts/nvd3/src/models/sparklinePlus.js +295 -0
  60. data/app/assets/javascripts/nvd3/src/models/stackedArea.js +368 -0
  61. data/app/assets/javascripts/nvd3/src/models/stackedAreaChart.js +629 -0
  62. data/app/assets/javascripts/nvd3/src/tooltip.js +490 -0
  63. data/app/assets/javascripts/nvd3/src/utils.js +152 -0
  64. data/app/assets/javascripts/pyk.js +1 -0
  65. data/app/assets/stylesheets/lib/chardinjs.css +82 -0
  66. data/app/assets/stylesheets/nvd3/nv.d3.css +769 -0
  67. data/app/assets/stylesheets/pyk.css.scss +1 -0
  68. 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
+ };
@@ -1,5 +1,6 @@
1
1
  //= require jquery
2
2
  //= require jquery_ujs
3
+ //= require_tree ./nvd3/
3
4
  //= require_tree ./lib/
4
5
  //= require highcharts/highstock
5
6
  //= require chosen-jquery
@@ -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
+ }