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.
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
+ }