rails_notebook 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +22 -0
  4. data/app/assets/javascripts/rails_notebook/application.js +13 -0
  5. data/app/assets/stylesheets/rails_notebook/application.css +15 -0
  6. data/app/controllers/rails_notebook/application_controller.rb +4 -0
  7. data/app/helpers/rails_notebook/application_helper.rb +4 -0
  8. data/app/views/layouts/rails_notebook/application.html.erb +14 -0
  9. data/config/routes.rb +2 -0
  10. data/lib/rails_notebook.rb +14 -0
  11. data/lib/rails_notebook/assets/d3.js +9553 -0
  12. data/lib/rails_notebook/assets/dagre-d3.js +17572 -0
  13. data/lib/rails_notebook/assets/jquery.jsonview.css +52 -0
  14. data/lib/rails_notebook/assets/jquery.jsonview.js +284 -0
  15. data/lib/rails_notebook/assets/jquery.qtip.min.css +2 -0
  16. data/lib/rails_notebook/assets/jquery.qtip.min.js +3 -0
  17. data/lib/rails_notebook/assets/jquery.tipsy.js +288 -0
  18. data/lib/rails_notebook/assets/kernel.css +7 -0
  19. data/lib/rails_notebook/assets/kernel.js +18 -0
  20. data/lib/rails_notebook/assets/kernel.json +1 -0
  21. data/lib/rails_notebook/assets/logo-32x32.png +0 -0
  22. data/lib/rails_notebook/assets/logo-64x64.png +0 -0
  23. data/lib/rails_notebook/assets/nv.d3.css +641 -0
  24. data/lib/rails_notebook/assets/nv.d3.js +13298 -0
  25. data/lib/rails_notebook/assets/rails_notebook.css +136 -0
  26. data/lib/rails_notebook/assets/rails_notebook.js +548 -0
  27. data/lib/rails_notebook/assets/tipsy.css +25 -0
  28. data/lib/rails_notebook/command.rb +104 -0
  29. data/lib/rails_notebook/engine.rb +9 -0
  30. data/lib/rails_notebook/profiler.rb +111 -0
  31. data/lib/rails_notebook/renderers.rb +121 -0
  32. data/lib/rails_notebook/route.rb +121 -0
  33. data/lib/rails_notebook/schemaTable.rb +27 -0
  34. data/lib/rails_notebook/serializers.rb +92 -0
  35. data/lib/rails_notebook/table.rb +28 -0
  36. data/lib/rails_notebook/version.rb +3 -0
  37. data/lib/tasks/rails_notebook_tasks.rake +8 -0
  38. metadata +196 -0
@@ -0,0 +1,7 @@
1
+ /* Placeholder for Ruby kernel.css */
2
+
3
+ @import url("jquery.qtip.min.css");
4
+ @import url("nv.d3.css");
5
+ @import url("jquery.jsonview.css");
6
+ @import url("rails_notebook.css");
7
+ @import url("tipsy.css");
@@ -0,0 +1,18 @@
1
+ // Ruby kernel.js
2
+
3
+ define(['base/js/namespace'], function (IPython) {
4
+ "use strict";
5
+
6
+ debugger;
7
+
8
+ var onload = function () {
9
+ IPython.CodeCell.options_default['cm_config']['indentUnit'] = 2;
10
+ var cells = IPython.notebook.get_cells();
11
+ for (var i in cells) {
12
+ var c = cells[i];
13
+ if (c.cell_type === 'code')
14
+ c.code_mirror.setOption('indentUnit', 2);
15
+ }
16
+ };
17
+ return {onload: onload};
18
+ });
@@ -0,0 +1 @@
1
+ {"argv":["/Users/brendon/rubyfuza/2016/rails_notebook/spec/test_app/bin/rake","rails_notebook_kernel","connection_file={connection_file}"],"display_name":"Rails TestApp::Application","language":"ruby"}
@@ -0,0 +1,641 @@
1
+ /* nvd3 version 1.8.1 (https://github.com/novus/nvd3) 2015-06-15 */
2
+ .nvd3 .nv-axis {
3
+ pointer-events:none;
4
+ opacity: 1;
5
+ }
6
+
7
+ .nvd3 .nv-axis path {
8
+ fill: none;
9
+ stroke: #000;
10
+ stroke-opacity: .75;
11
+ shape-rendering: crispEdges;
12
+ }
13
+
14
+ .nvd3 .nv-axis path.domain {
15
+ stroke-opacity: .75;
16
+ }
17
+
18
+ .nvd3 .nv-axis.nv-x path.domain {
19
+ stroke-opacity: 0;
20
+ }
21
+
22
+ .nvd3 .nv-axis line {
23
+ fill: none;
24
+ stroke: #e5e5e5;
25
+ shape-rendering: crispEdges;
26
+ }
27
+
28
+ .nvd3 .nv-axis .zero line,
29
+ /*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
30
+ stroke-opacity: .75;
31
+ }
32
+
33
+ .nvd3 .nv-axis .nv-axisMaxMin text {
34
+ font-weight: bold;
35
+ }
36
+
37
+ .nvd3 .x .nv-axis .nv-axisMaxMin text,
38
+ .nvd3 .x2 .nv-axis .nv-axisMaxMin text,
39
+ .nvd3 .x3 .nv-axis .nv-axisMaxMin text {
40
+ text-anchor: middle
41
+ }
42
+
43
+ .nvd3 .nv-axis.nv-disabled {
44
+ opacity: 0;
45
+ }
46
+
47
+ .nvd3 .nv-bars rect {
48
+ fill-opacity: .75;
49
+
50
+ transition: fill-opacity 250ms linear;
51
+ -moz-transition: fill-opacity 250ms linear;
52
+ -webkit-transition: fill-opacity 250ms linear;
53
+ }
54
+
55
+ .nvd3 .nv-bars rect.hover {
56
+ fill-opacity: 1;
57
+ }
58
+
59
+ .nvd3 .nv-bars .hover rect {
60
+ fill: lightblue;
61
+ }
62
+
63
+ .nvd3 .nv-bars text {
64
+ fill: rgba(0,0,0,0);
65
+ }
66
+
67
+ .nvd3 .nv-bars .hover text {
68
+ fill: rgba(0,0,0,1);
69
+ }
70
+
71
+ .nvd3 .nv-multibar .nv-groups rect,
72
+ .nvd3 .nv-multibarHorizontal .nv-groups rect,
73
+ .nvd3 .nv-discretebar .nv-groups rect {
74
+ stroke-opacity: 0;
75
+
76
+ transition: fill-opacity 250ms linear;
77
+ -moz-transition: fill-opacity 250ms linear;
78
+ -webkit-transition: fill-opacity 250ms linear;
79
+ }
80
+
81
+ .nvd3 .nv-multibar .nv-groups rect:hover,
82
+ .nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
83
+ .nvd3 .nv-candlestickBar .nv-ticks rect:hover,
84
+ .nvd3 .nv-discretebar .nv-groups rect:hover {
85
+ fill-opacity: 1;
86
+ }
87
+
88
+ .nvd3 .nv-discretebar .nv-groups text,
89
+ .nvd3 .nv-multibarHorizontal .nv-groups text {
90
+ font-weight: bold;
91
+ fill: rgba(0,0,0,1);
92
+ stroke: rgba(0,0,0,0);
93
+ }
94
+
95
+ /* boxplot CSS */
96
+ .nvd3 .nv-boxplot circle {
97
+ fill-opacity: 0.5;
98
+ }
99
+
100
+ .nvd3 .nv-boxplot circle:hover {
101
+ fill-opacity: 1;
102
+ }
103
+
104
+ .nvd3 .nv-boxplot rect:hover {
105
+ fill-opacity: 1;
106
+ }
107
+
108
+ .nvd3 line.nv-boxplot-median {
109
+ stroke: black;
110
+ }
111
+
112
+ .nv-boxplot-tick:hover {
113
+ stroke-width: 2.5px;
114
+ }
115
+ /* bullet */
116
+ .nvd3.nv-bullet { font: 10px sans-serif; }
117
+ .nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
118
+ .nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
119
+ .nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
120
+ .nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
121
+ .nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
122
+ .nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
123
+ .nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
124
+ .nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
125
+ .nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
126
+ .nvd3.nv-bullet .nv-subtitle { fill: #999; }
127
+
128
+
129
+ .nvd3.nv-bullet .nv-range {
130
+ fill: #bababa;
131
+ fill-opacity: .4;
132
+ }
133
+ .nvd3.nv-bullet .nv-range:hover {
134
+ fill-opacity: .7;
135
+ }
136
+
137
+ .nvd3.nv-candlestickBar .nv-ticks .nv-tick {
138
+ stroke-width: 1px;
139
+ }
140
+
141
+ .nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover {
142
+ stroke-width: 2px;
143
+ }
144
+
145
+ .nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect {
146
+ stroke: #2ca02c;
147
+ fill: #2ca02c;
148
+ }
149
+
150
+ .nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect {
151
+ stroke: #d62728;
152
+ fill: #d62728;
153
+ }
154
+
155
+ .with-transitions .nv-candlestickBar .nv-ticks .nv-tick {
156
+ transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
157
+ -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
158
+ -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
159
+
160
+ }
161
+
162
+ .nvd3.nv-candlestickBar .nv-ticks line {
163
+ stroke: #333;
164
+ }
165
+
166
+
167
+ .nvd3 .nv-legend .nv-disabled rect {
168
+ /*fill-opacity: 0;*/
169
+ }
170
+
171
+ .nvd3 .nv-check-box .nv-box {
172
+ fill-opacity:0;
173
+ stroke-width:2;
174
+ }
175
+
176
+ .nvd3 .nv-check-box .nv-check {
177
+ fill-opacity:0;
178
+ stroke-width:4;
179
+ }
180
+
181
+ .nvd3 .nv-series.nv-disabled .nv-check-box .nv-check {
182
+ fill-opacity:0;
183
+ stroke-opacity:0;
184
+ }
185
+
186
+ .nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check {
187
+ opacity: 0;
188
+ }
189
+
190
+ /* line plus bar */
191
+ .nvd3.nv-linePlusBar .nv-bar rect {
192
+ fill-opacity: .75;
193
+ }
194
+
195
+ .nvd3.nv-linePlusBar .nv-bar rect:hover {
196
+ fill-opacity: 1;
197
+ }
198
+ .nvd3 .nv-groups path.nv-line {
199
+ fill: none;
200
+ }
201
+
202
+ .nvd3 .nv-groups path.nv-area {
203
+ stroke: none;
204
+ }
205
+
206
+ .nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
207
+ fill-opacity: 0;
208
+ stroke-opacity: 0;
209
+ }
210
+
211
+ .nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
212
+ fill-opacity: .5 !important;
213
+ stroke-opacity: .5 !important;
214
+ }
215
+
216
+
217
+ .with-transitions .nvd3 .nv-groups .nv-point {
218
+ transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
219
+ -moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
220
+ -webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
221
+
222
+ }
223
+
224
+ .nvd3.nv-scatter .nv-groups .nv-point.hover,
225
+ .nvd3 .nv-groups .nv-point.hover {
226
+ stroke-width: 7px;
227
+ fill-opacity: .95 !important;
228
+ stroke-opacity: .95 !important;
229
+ }
230
+
231
+
232
+ .nvd3 .nv-point-paths path {
233
+ stroke: #aaa;
234
+ stroke-opacity: 0;
235
+ fill: #eee;
236
+ fill-opacity: 0;
237
+ }
238
+
239
+
240
+
241
+ .nvd3 .nv-indexLine {
242
+ cursor: ew-resize;
243
+ }
244
+
245
+ /********************
246
+ * SVG CSS
247
+ */
248
+
249
+ /********************
250
+ Default CSS for an svg element nvd3 used
251
+ */
252
+ svg.nvd3-svg {
253
+ -webkit-touch-callout: none;
254
+ -webkit-user-select: none;
255
+ -khtml-user-select: none;
256
+ -ms-user-select: none;
257
+ -moz-user-select: none;
258
+ user-select: none;
259
+ display: block;
260
+ width:100%;
261
+ height:100%;
262
+ }
263
+
264
+ /********************
265
+ Box shadow and border radius styling
266
+ */
267
+ .nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
268
+ -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
269
+ -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
270
+ box-shadow: 0 5px 10px rgba(0,0,0,.2);
271
+
272
+ -webkit-border-radius: 5px;
273
+ -moz-border-radius: 5px;
274
+ border-radius: 5px;
275
+ }
276
+
277
+
278
+ .nvd3 text {
279
+ font: normal 12px Arial;
280
+ }
281
+
282
+ .nvd3 .title {
283
+ font: bold 14px Arial;
284
+ }
285
+
286
+ .nvd3 .nv-background {
287
+ fill: white;
288
+ fill-opacity: 0;
289
+ }
290
+
291
+ .nvd3.nv-noData {
292
+ font-size: 18px;
293
+ font-weight: bold;
294
+ }
295
+
296
+
297
+ /**********
298
+ * Brush
299
+ */
300
+
301
+ .nv-brush .extent {
302
+ fill-opacity: .125;
303
+ shape-rendering: crispEdges;
304
+ }
305
+
306
+ .nv-brush .resize path {
307
+ fill: #eee;
308
+ stroke: #666;
309
+ }
310
+
311
+
312
+ /**********
313
+ * Legend
314
+ */
315
+
316
+ .nvd3 .nv-legend .nv-series {
317
+ cursor: pointer;
318
+ }
319
+
320
+ .nvd3 .nv-legend .nv-disabled circle {
321
+ fill-opacity: 0;
322
+ }
323
+
324
+ /* focus */
325
+ .nvd3 .nv-brush .extent {
326
+ fill-opacity: 0 !important;
327
+ }
328
+
329
+ .nvd3 .nv-brushBackground rect {
330
+ stroke: #000;
331
+ stroke-width: .4;
332
+ fill: #fff;
333
+ fill-opacity: .7;
334
+ }
335
+
336
+
337
+ .nvd3.nv-ohlcBar .nv-ticks .nv-tick {
338
+ stroke-width: 1px;
339
+ }
340
+
341
+ .nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
342
+ stroke-width: 2px;
343
+ }
344
+
345
+ .nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
346
+ stroke: #2ca02c;
347
+ }
348
+
349
+ .nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
350
+ stroke: #d62728;
351
+ }
352
+
353
+
354
+ .nvd3 .background path {
355
+ fill: none;
356
+ stroke: #EEE;
357
+ stroke-opacity: .4;
358
+ shape-rendering: crispEdges;
359
+ }
360
+
361
+ .nvd3 .foreground path {
362
+ fill: none;
363
+ stroke-opacity: .7;
364
+ }
365
+
366
+ .nvd3 .nv-parallelCoordinates-brush .extent
367
+ {
368
+ fill: #fff;
369
+ fill-opacity: .6;
370
+ stroke: gray;
371
+ shape-rendering: crispEdges;
372
+ }
373
+
374
+ .nvd3 .nv-parallelCoordinates .hover {
375
+ fill-opacity: 1;
376
+ stroke-width: 3px;
377
+ }
378
+
379
+
380
+ .nvd3 .missingValuesline line {
381
+ fill: none;
382
+ stroke: black;
383
+ stroke-width: 1;
384
+ stroke-opacity: 1;
385
+ stroke-dasharray: 5, 5;
386
+ }
387
+ .nvd3.nv-pie path {
388
+ stroke-opacity: 0;
389
+ transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
390
+ -moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
391
+ -webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
392
+
393
+ }
394
+
395
+ .nvd3.nv-pie .nv-pie-title {
396
+ font-size: 24px;
397
+ fill: rgba(19, 196, 249, 0.59);
398
+ }
399
+
400
+ .nvd3.nv-pie .nv-slice text {
401
+ stroke: #000;
402
+ stroke-width: 0;
403
+ }
404
+
405
+ .nvd3.nv-pie path {
406
+ stroke: #fff;
407
+ stroke-width: 1px;
408
+ stroke-opacity: 1;
409
+ }
410
+
411
+ .nvd3.nv-pie .hover path {
412
+ fill-opacity: .7;
413
+ }
414
+ .nvd3.nv-pie .nv-label {
415
+ pointer-events: none;
416
+ }
417
+ .nvd3.nv-pie .nv-label rect {
418
+ fill-opacity: 0;
419
+ stroke-opacity: 0;
420
+ }
421
+
422
+ /* scatter */
423
+ .nvd3 .nv-groups .nv-point.hover {
424
+ stroke-width: 20px;
425
+ stroke-opacity: .5;
426
+ }
427
+
428
+ .nvd3 .nv-scatter .nv-point.hover {
429
+ fill-opacity: 1;
430
+ }
431
+ .nv-noninteractive {
432
+ pointer-events: none;
433
+ }
434
+
435
+ .nv-distx, .nv-disty {
436
+ pointer-events: none;
437
+ }
438
+
439
+ /* sparkline */
440
+ .nvd3.nv-sparkline path {
441
+ fill: none;
442
+ }
443
+
444
+ .nvd3.nv-sparklineplus g.nv-hoverValue {
445
+ pointer-events: none;
446
+ }
447
+
448
+ .nvd3.nv-sparklineplus .nv-hoverValue line {
449
+ stroke: #333;
450
+ stroke-width: 1.5px;
451
+ }
452
+
453
+ .nvd3.nv-sparklineplus,
454
+ .nvd3.nv-sparklineplus g {
455
+ pointer-events: all;
456
+ }
457
+
458
+ .nvd3 .nv-hoverArea {
459
+ fill-opacity: 0;
460
+ stroke-opacity: 0;
461
+ }
462
+
463
+ .nvd3.nv-sparklineplus .nv-xValue,
464
+ .nvd3.nv-sparklineplus .nv-yValue {
465
+ stroke-width: 0;
466
+ font-size: .9em;
467
+ font-weight: normal;
468
+ }
469
+
470
+ .nvd3.nv-sparklineplus .nv-yValue {
471
+ stroke: #f66;
472
+ }
473
+
474
+ .nvd3.nv-sparklineplus .nv-maxValue {
475
+ stroke: #2ca02c;
476
+ fill: #2ca02c;
477
+ }
478
+
479
+ .nvd3.nv-sparklineplus .nv-minValue {
480
+ stroke: #d62728;
481
+ fill: #d62728;
482
+ }
483
+
484
+ .nvd3.nv-sparklineplus .nv-currentValue {
485
+ font-weight: bold;
486
+ font-size: 1.1em;
487
+ }
488
+ /* stacked area */
489
+ .nvd3.nv-stackedarea path.nv-area {
490
+ fill-opacity: .7;
491
+ stroke-opacity: 0;
492
+ transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
493
+ -moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
494
+ -webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
495
+ }
496
+
497
+ .nvd3.nv-stackedarea path.nv-area.hover {
498
+ fill-opacity: .9;
499
+ }
500
+
501
+
502
+ .nvd3.nv-stackedarea .nv-groups .nv-point {
503
+ stroke-opacity: 0;
504
+ fill-opacity: 0;
505
+ }
506
+
507
+
508
+ .nvtooltip {
509
+ position: absolute;
510
+ background-color: rgba(255,255,255,1.0);
511
+ color: rgba(0,0,0,1.0);
512
+ padding: 1px;
513
+ border: 1px solid rgba(0,0,0,.2);
514
+ z-index: 10000;
515
+ display: block;
516
+
517
+ font-family: Arial;
518
+ font-size: 13px;
519
+ text-align: left;
520
+ pointer-events: none;
521
+
522
+ white-space: nowrap;
523
+
524
+ -webkit-touch-callout: none;
525
+ -webkit-user-select: none;
526
+ -khtml-user-select: none;
527
+ -moz-user-select: none;
528
+ -ms-user-select: none;
529
+ user-select: none;
530
+ }
531
+
532
+ .nvtooltip {
533
+ background: rgba(255,255,255, 0.8);
534
+ border: 1px solid rgba(0,0,0,0.5);
535
+ border-radius: 4px;
536
+ }
537
+
538
+ /*Give tooltips that old fade in transition by
539
+ putting a "with-transitions" class on the container div.
540
+ */
541
+ .nvtooltip.with-transitions, .with-transitions .nvtooltip {
542
+ transition: opacity 50ms linear;
543
+ -moz-transition: opacity 50ms linear;
544
+ -webkit-transition: opacity 50ms linear;
545
+
546
+ transition-delay: 200ms;
547
+ -moz-transition-delay: 200ms;
548
+ -webkit-transition-delay: 200ms;
549
+ }
550
+
551
+ .nvtooltip.x-nvtooltip,
552
+ .nvtooltip.y-nvtooltip {
553
+ padding: 8px;
554
+ }
555
+
556
+ .nvtooltip h3 {
557
+ margin: 0;
558
+ padding: 4px 14px;
559
+ line-height: 18px;
560
+ font-weight: normal;
561
+ background-color: rgba(247,247,247,0.75);
562
+ color: rgba(0,0,0,1.0);
563
+ text-align: center;
564
+
565
+ border-bottom: 1px solid #ebebeb;
566
+
567
+ -webkit-border-radius: 5px 5px 0 0;
568
+ -moz-border-radius: 5px 5px 0 0;
569
+ border-radius: 5px 5px 0 0;
570
+ }
571
+
572
+ .nvtooltip p {
573
+ margin: 0;
574
+ padding: 5px 14px;
575
+ text-align: center;
576
+ }
577
+
578
+ .nvtooltip span {
579
+ display: inline-block;
580
+ margin: 2px 0;
581
+ }
582
+
583
+ .nvtooltip table {
584
+ margin: 6px;
585
+ border-spacing:0;
586
+ }
587
+
588
+
589
+ .nvtooltip table td {
590
+ padding: 2px 9px 2px 0;
591
+ vertical-align: middle;
592
+ }
593
+
594
+ .nvtooltip table td.key {
595
+ font-weight:normal;
596
+ }
597
+ .nvtooltip table td.value {
598
+ text-align: right;
599
+ font-weight: bold;
600
+ }
601
+
602
+ .nvtooltip table tr.highlight td {
603
+ padding: 1px 9px 1px 0;
604
+ border-bottom-style: solid;
605
+ border-bottom-width: 1px;
606
+ border-top-style: solid;
607
+ border-top-width: 1px;
608
+ }
609
+
610
+ .nvtooltip table td.legend-color-guide div {
611
+ width: 8px;
612
+ height: 8px;
613
+ vertical-align: middle;
614
+ }
615
+
616
+ .nvtooltip table td.legend-color-guide div {
617
+ width: 12px;
618
+ height: 12px;
619
+ border: 1px solid #999;
620
+ }
621
+
622
+ .nvtooltip .footer {
623
+ padding: 3px;
624
+ text-align: center;
625
+ }
626
+
627
+ .nvtooltip-pending-removal {
628
+ pointer-events: none;
629
+ display: none;
630
+ }
631
+
632
+
633
+ /****
634
+ Interactive Layer
635
+ */
636
+ .nvd3 .nv-interactiveGuideLine {
637
+ pointer-events:none;
638
+ }
639
+ .nvd3 line.nv-guideline {
640
+ stroke: #ccc;
641
+ }