rails_notebook 1.0.0

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