pageflow-chart 0.1.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.
- checksums.yaml +15 -0
- data/.gitignore +21 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +10 -0
- data/README.md +91 -0
- data/Rakefile +20 -0
- data/app/assets/images/pageflow/chart/fs_close_sprite.png +0 -0
- data/app/assets/images/pageflow/chart_pictogram.png +0 -0
- data/app/assets/images/pageflow/chart_pictogram_small.png +0 -0
- data/app/assets/images/pageflow/chart_sprite.png +0 -0
- data/app/assets/images/pageflow/ov-chart.png +0 -0
- data/app/assets/javascripts/pageflow/chart.js +5 -0
- data/app/assets/javascripts/pageflow/chart/asset_urls.js.erb +3 -0
- data/app/assets/javascripts/pageflow/chart/editor.js +9 -0
- data/app/assets/javascripts/pageflow/chart/editor/collections/scraped_sites_collection.js +23 -0
- data/app/assets/javascripts/pageflow/chart/editor/initializers/setup_collections.js +1 -0
- data/app/assets/javascripts/pageflow/chart/editor/models/scraped_site.js +55 -0
- data/app/assets/javascripts/pageflow/chart/editor/templates/scraped_site_status.jst.ejs +2 -0
- data/app/assets/javascripts/pageflow/chart/editor/templates/url_input.jst.ejs +7 -0
- data/app/assets/javascripts/pageflow/chart/editor/views/configuration_editor.js +26 -0
- data/app/assets/javascripts/pageflow/chart/editor/views/embedded/iframe_embedded_view.js +47 -0
- data/app/assets/javascripts/pageflow/chart/editor/views/inputs/scraped_url_input_view.js +49 -0
- data/app/assets/javascripts/pageflow/chart/editor/views/scraped_site_status_view.js +18 -0
- data/app/assets/javascripts/pageflow/chart/page_type.js +152 -0
- data/app/assets/stylesheets/pageflow/chart.css.scss +130 -0
- data/app/assets/stylesheets/pageflow/chart/custom.css.scss +209 -0
- data/app/assets/stylesheets/pageflow/chart/editor.css.scss +17 -0
- data/app/assets/stylesheets/pageflow/chart/themes/default.css.scss +10 -0
- data/app/controllers/pageflow/chart/application_controller.rb +6 -0
- data/app/controllers/pageflow/chart/scraped_sites_controller.rb +25 -0
- data/app/helpers/pageflow/chart/scraped_sites_helper.rb +13 -0
- data/app/jobs/pageflow/chart/scrape_site_job.rb +59 -0
- data/app/models/pageflow/chart/scraped_site.rb +51 -0
- data/app/views/pageflow/chart/page.html +41 -0
- data/app/views/pageflow/chart/page_type.json.jbuilder +2 -0
- data/bin/rails +8 -0
- data/chart.gemspec +30 -0
- data/config/locales/de.yml +40 -0
- data/config/locales/en.yml +22 -0
- data/config/routes.rb +3 -0
- data/db/migrate/20140417112724_create_pageflow_chart_scraped_sites.rb +14 -0
- data/lib/pageflow/chart.rb +21 -0
- data/lib/pageflow/chart/configuration.rb +63 -0
- data/lib/pageflow/chart/downloader.rb +53 -0
- data/lib/pageflow/chart/engine.rb +17 -0
- data/lib/pageflow/chart/page_type.rb +15 -0
- data/lib/pageflow/chart/scraper.rb +107 -0
- data/spec/controllers/pageflow/chart/scraped_sites_controller_spec.rb +35 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/images/.keep +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/controllers/concerns/.keep +0 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.keep +0 -0
- data/spec/dummy/app/models/.keep +0 -0
- data/spec/dummy/app/models/concerns/.keep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +22 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/db/schema.rb +39 -0
- data/spec/dummy/lib/assets/.keep +0 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/scraped_sites.rb +5 -0
- data/spec/fixtures/datawrapper.html +121 -0
- data/spec/jobs/pageflow/chart/scrape_site_job_spec.rb +22 -0
- data/spec/models/pageflow/chart/scraped_site_spec.rb +19 -0
- data/spec/pageflow/chart/downloader_spec.rb +90 -0
- data/spec/pageflow/chart/scraper_spec.rb +179 -0
- data/spec/requests/scraping_site_spec.rb +23 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/support/factory_girl.rb +5 -0
- data/spec/support/html_fragment.rb +13 -0
- data/spec/support/paperclip.rb +11 -0
- data/spec/support/resque.rb +20 -0
- data/spec/support/webmock.rb +11 -0
- metadata +363 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
pageflow.pageType.register('chart', _.extend({
|
|
2
|
+
|
|
3
|
+
prepareNextPageTimeout: 0,
|
|
4
|
+
|
|
5
|
+
enhance: function(pageElement, configuration) {
|
|
6
|
+
var scroller = pageElement.find('.scroller');
|
|
7
|
+
|
|
8
|
+
pageElement.find('.bigscreen_toggler').on('click', function() {
|
|
9
|
+
$('body').toggleClass('bigScreen');
|
|
10
|
+
scroller.scroller('refresh');
|
|
11
|
+
});
|
|
12
|
+
$('body').keydown(function(event) {
|
|
13
|
+
if(event.keyCode == 27) {
|
|
14
|
+
$(this).removeClass('bigScreen');
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
resize: function(pageElement, configuration) {
|
|
20
|
+
var iframeWrapper = pageElement.find('.iframeWrapper'),
|
|
21
|
+
pageHeader = pageElement.find('.page_header'),
|
|
22
|
+
scroller = pageElement.find('.scroller');
|
|
23
|
+
|
|
24
|
+
var widescreened = pageElement.width() > 1430;
|
|
25
|
+
|
|
26
|
+
iframeWrapper.toggleClass('widescreened', widescreened);
|
|
27
|
+
|
|
28
|
+
if (widescreened) {
|
|
29
|
+
iframeWrapper.insertAfter(scroller);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
iframeWrapper.insertAfter(pageHeader);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
customizeLayout: function(pageElement, configuration) {
|
|
37
|
+
if(!this.layoutCustomized) {
|
|
38
|
+
var iframe = pageElement.find('iframe'),
|
|
39
|
+
scroller = pageElement.find('.scroller'),
|
|
40
|
+
iframeOverlay = pageElement.find('.iframe_overlay');
|
|
41
|
+
|
|
42
|
+
iframe.load(function() {
|
|
43
|
+
$(this).contents().find('.fs-btn').css('display','none');
|
|
44
|
+
$(this).contents().find('head').append('<link rel="stylesheet" type="text/css" href="' + pageflow.chart.assetUrls.customStylesheet + '">');
|
|
45
|
+
$(this).contents().find('body').addClass($("[data-theme]").attr('data-theme'));
|
|
46
|
+
|
|
47
|
+
if(pageflow.features.has('mobile platform')) {
|
|
48
|
+
setTimeout(function() {
|
|
49
|
+
if(iframe) {
|
|
50
|
+
iframe.attr("height", iframe.contents().height() + "px");
|
|
51
|
+
pageElement.find('.iframeWrapper').height(iframe.contents().height());
|
|
52
|
+
scroller.scroller('refresh');
|
|
53
|
+
}
|
|
54
|
+
}, 1000);
|
|
55
|
+
}
|
|
56
|
+
scroller.scroller('refresh');
|
|
57
|
+
pageElement.find('.iframeWrapper').addClass('active');
|
|
58
|
+
});
|
|
59
|
+
this.layoutCustomized = true;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
_initEventSimulation: function(element, iframe, wrapper) {
|
|
64
|
+
var propagatedEvents = 'click mousemove mouseup mouseover mousedown';
|
|
65
|
+
var lastElement;
|
|
66
|
+
element.on(propagatedEvents, function(event) {
|
|
67
|
+
var contentElement = iframe.contents()[0];
|
|
68
|
+
element.css('display','none');
|
|
69
|
+
if (contentElement && event) {
|
|
70
|
+
lastElement = $(contentElement.elementFromPoint(event.pageX-iframe.offset().left, event.pageY-iframe.offset().top));
|
|
71
|
+
lastElement.simulate("mousedown", event);
|
|
72
|
+
lastElement.simulate("mousemove", event);
|
|
73
|
+
lastElement.simulate("click", event);
|
|
74
|
+
|
|
75
|
+
element.css('cursor', lastElement.css('cursor'));
|
|
76
|
+
}
|
|
77
|
+
element.css('display','block');
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
event.stopPropagation();
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
iframe.load(function() {
|
|
83
|
+
iframe.contents().find('*').on('mousemove', function() {
|
|
84
|
+
wrapper.addClass('hovering');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
iframe.contents().on('mouseout', function() {
|
|
88
|
+
wrapper.removeClass('hovering');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
prepare: function(pageElement, configuration) {
|
|
94
|
+
this._loadIframe(pageElement);
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
preload: function(pageElement, configuration) {
|
|
98
|
+
return pageflow.preload.backgroundImage(pageElement.find('.background_image'));
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
activating: function(pageElement, configuration) {
|
|
102
|
+
this._loadIframe(pageElement);
|
|
103
|
+
this.resize(pageElement, configuration);
|
|
104
|
+
this.customizeLayout(pageElement, configuration);
|
|
105
|
+
this._initEventSimulation(pageElement.find('.iframe_overlay'), pageElement.find('iframe'), pageElement.find('.iframeWrapper'));
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
activated: function(pageElement, configuration) {},
|
|
109
|
+
|
|
110
|
+
deactivating: function(pageElement, configuration) {
|
|
111
|
+
$('body').removeClass('bigScreen');
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
deactivated: function(pageElement, configuration) {},
|
|
115
|
+
|
|
116
|
+
update: function(pageElement, configuration) {
|
|
117
|
+
pageElement.find('h2 .tagline').text(configuration.get('tagline') || '');
|
|
118
|
+
pageElement.find('h2 .title').text(configuration.get('title') || '');
|
|
119
|
+
pageElement.find('h2 .subtitle').text(configuration.get('subtitle') || '');
|
|
120
|
+
pageElement.find('p').html(configuration.get('text') || '');
|
|
121
|
+
|
|
122
|
+
this.updateCommonPageCssClasses(pageElement, configuration);
|
|
123
|
+
|
|
124
|
+
pageElement.find('.shadow').css({
|
|
125
|
+
opacity: configuration.get('gradient_opacity') / 100
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
embeddedEditorViews: function() {
|
|
130
|
+
return {
|
|
131
|
+
'.background_image': {
|
|
132
|
+
view: pageflow.BackgroundImageEmbeddedView,
|
|
133
|
+
options: {propertyName: 'background_image_id'}
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
'iframe': {
|
|
137
|
+
view: pageflow.chart.IframeEmbeddedView,
|
|
138
|
+
options: {propertyName: 'scraped_site_id'}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
_loadIframe: function(pageElement) {
|
|
144
|
+
pageElement.find('iframe[data-src]').each(function() {
|
|
145
|
+
var iframe = $(this);
|
|
146
|
+
|
|
147
|
+
if (!iframe.attr('src')) {
|
|
148
|
+
iframe.attr('src', iframe.data('src'));
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}, pageflow.commonPageCssClasses));
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
@include pageflow-page-type(chart);
|
|
2
|
+
|
|
3
|
+
.chart_page {
|
|
4
|
+
.iframeWrapper {
|
|
5
|
+
margin-bottom: 40px;
|
|
6
|
+
pointer-events: all;
|
|
7
|
+
height: 400px;
|
|
8
|
+
position: relative;
|
|
9
|
+
|
|
10
|
+
.hidden &, .hideText & {
|
|
11
|
+
@include transition(0.7s ease);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
iframe {
|
|
15
|
+
visibility: hidden;
|
|
16
|
+
opacity: 0;
|
|
17
|
+
@include transition(0.7s ease);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
&.widescreened {
|
|
22
|
+
position: absolute;
|
|
23
|
+
width: 45%;
|
|
24
|
+
height: 95%;
|
|
25
|
+
max-height: 600px;
|
|
26
|
+
right: 10%;
|
|
27
|
+
margin-top: 16%;
|
|
28
|
+
margin-bottom: 0;
|
|
29
|
+
z-index: 1;
|
|
30
|
+
|
|
31
|
+
@media (max-height: 870px) {
|
|
32
|
+
height: 90%;
|
|
33
|
+
top: 5%;
|
|
34
|
+
margin-top: 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.hideText & {
|
|
39
|
+
visibility: hidden;
|
|
40
|
+
opacity: 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&:before {
|
|
44
|
+
padding: 15px;
|
|
45
|
+
background-color: #191919;
|
|
46
|
+
background-color: rgba(25,25,25, 0.9);
|
|
47
|
+
box-shadow: rgba(0,0,0,0.5) 0 0 3px 0px;
|
|
48
|
+
content: "";
|
|
49
|
+
position: absolute;
|
|
50
|
+
top: -15px;
|
|
51
|
+
left: -15px;
|
|
52
|
+
width: 100%;
|
|
53
|
+
z-index: -1;
|
|
54
|
+
height: 100%;
|
|
55
|
+
|
|
56
|
+
@include phone {
|
|
57
|
+
padding: 15px 0;
|
|
58
|
+
left: 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.iframe_overlay {
|
|
63
|
+
.has_mobile_platform & {
|
|
64
|
+
position: absolute;
|
|
65
|
+
top: 0;
|
|
66
|
+
left: 0;
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 100%;
|
|
69
|
+
pointer-events: all;
|
|
70
|
+
background-color: transparent;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.text_position_right &.widescreened {
|
|
75
|
+
right: auto;
|
|
76
|
+
left: 8%;
|
|
77
|
+
width: 42%;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.bigscreen_toggler {
|
|
81
|
+
width: 24px;
|
|
82
|
+
height: 24px;
|
|
83
|
+
background-image: image-url('pageflow/chart/fs_close_sprite.png');
|
|
84
|
+
background-position: 0 0;
|
|
85
|
+
background-repeat: no-repeat;
|
|
86
|
+
position: absolute;
|
|
87
|
+
top: 3px;
|
|
88
|
+
right: 18px;
|
|
89
|
+
color: transparent;
|
|
90
|
+
text-indent: -4000px;
|
|
91
|
+
opacity: 0;
|
|
92
|
+
cursor: pointer;
|
|
93
|
+
display: none;
|
|
94
|
+
@include transition(opacity 0.5s ease);
|
|
95
|
+
|
|
96
|
+
.has_mobile_platform & {
|
|
97
|
+
display: none !important;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:hover .bigscreen_toggler, &.hovering .bigscreen_toggler {
|
|
102
|
+
opacity: 1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.bigScreen & {
|
|
106
|
+
position: absolute;
|
|
107
|
+
width: 86% !important;
|
|
108
|
+
height: 87%;
|
|
109
|
+
top: 10%;
|
|
110
|
+
left: 5% !important;
|
|
111
|
+
z-index: 201;
|
|
112
|
+
margin-top: 0 !important;
|
|
113
|
+
max-height: none !important;
|
|
114
|
+
|
|
115
|
+
.bigscreen_toggler {
|
|
116
|
+
background-position: -25px 0;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&.active {
|
|
121
|
+
iframe {
|
|
122
|
+
visibility: visible;
|
|
123
|
+
opacity: 1;
|
|
124
|
+
}
|
|
125
|
+
.bigscreen_toggler {
|
|
126
|
+
display: block;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Noir Theme Customized
|
|
3
|
+
* ----------
|
|
4
|
+
*
|
|
5
|
+
* based on http://bootswatch.com/slate/
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
body.chart {
|
|
9
|
+
font-size: 13px;
|
|
10
|
+
overflow: visible;
|
|
11
|
+
overflow-x: hidden;
|
|
12
|
+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
|
13
|
+
line-height: 18px;
|
|
14
|
+
padding: 0 10px;
|
|
15
|
+
font-weight: 400;
|
|
16
|
+
background: #191919;
|
|
17
|
+
background: rgba(0,0,0,0);
|
|
18
|
+
color: white;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
a {
|
|
22
|
+
color: #fff;
|
|
23
|
+
text-decoration: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
div, span {
|
|
27
|
+
border-bottom-color: gray !important;
|
|
28
|
+
border-right-color: gray !important;
|
|
29
|
+
border-left-color: gray !important;
|
|
30
|
+
border-top-color: gray !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
a:hover {
|
|
34
|
+
color: #fff;
|
|
35
|
+
text-decoration: underline;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
h1 {
|
|
39
|
+
font-size: 24px;
|
|
40
|
+
font-weight: 400;
|
|
41
|
+
margin: 0 0 15px;
|
|
42
|
+
text-align: left;
|
|
43
|
+
line-height: initial;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.chart p { margin: 15px 0; line-height: 19px;}
|
|
47
|
+
|
|
48
|
+
#chart {
|
|
49
|
+
margin-top: 25px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.label span {
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
color: #fff;
|
|
55
|
+
text-shadow: 0 0 2px #000;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.line-chart .label span {
|
|
59
|
+
background: #272B30!important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
html .line-chart .label.tooltip span {
|
|
63
|
+
background: none!important;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
html .line-chart .label.tooltip.inverted span {
|
|
67
|
+
color: #fff!important;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.label.highlighted, .label.axis {
|
|
71
|
+
font-size: 12px;
|
|
72
|
+
z-index: 100;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.label.hover {
|
|
76
|
+
font-weight: bold;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.pie-chart .label.hover span,
|
|
80
|
+
.donut-chart .label.hover span {
|
|
81
|
+
color: #fff;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.label.inverted span {
|
|
85
|
+
color: #000!important;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.label.highlighted {
|
|
89
|
+
font-weight: bold;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.label.value span {
|
|
93
|
+
font-size: 12px;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.label.series span {
|
|
97
|
+
font-size: 12px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
.tooltip {
|
|
102
|
+
z-index: 200;
|
|
103
|
+
padding-bottom: 0px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.tooltip .content {
|
|
107
|
+
background-color: #202328;
|
|
108
|
+
border: 1px solid #101214;
|
|
109
|
+
border-radius: 4px 4px 4px 4px;
|
|
110
|
+
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5) inset;
|
|
111
|
+
padding: 5px 8px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.tooltip label {
|
|
115
|
+
font-weight: 700;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.tooltip label:after {
|
|
119
|
+
content: ": ";
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#footer {
|
|
123
|
+
margin: 0px 0px 0px;
|
|
124
|
+
padding-top: 5px;
|
|
125
|
+
padding-bottom: 5px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.footer-left {
|
|
129
|
+
float: left;
|
|
130
|
+
}
|
|
131
|
+
.footer-right {
|
|
132
|
+
float: right;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.clearfix:after {
|
|
136
|
+
content: ".";
|
|
137
|
+
display: block;
|
|
138
|
+
clear: both;
|
|
139
|
+
visibility: hidden;
|
|
140
|
+
line-height: 0;
|
|
141
|
+
height: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.clearfix {
|
|
145
|
+
display: inline-block;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
html[xmlns] .clearfix {
|
|
149
|
+
display: block;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
* html .clearfix {
|
|
153
|
+
height: 1%;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
svg .axis, svg .tick, svg .grid, svg rect {
|
|
157
|
+
shape-rendering: crispEdges;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.label.rotate90 {
|
|
161
|
+
-moz-transform: rotate(-90deg);
|
|
162
|
+
-webkit-transform: rotate(-90deg);
|
|
163
|
+
-ms-transform: rotate(-90deg);
|
|
164
|
+
-o-transform: rotate(-90deg);
|
|
165
|
+
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.label.smaller span {
|
|
169
|
+
font-size: 80%;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.chart .chartMenu {
|
|
173
|
+
background: #272B30;
|
|
174
|
+
box-shadow: 0 0 5px #444;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.chart .chartMenu a {
|
|
178
|
+
color: #bbb;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.chart .chartMenu a:hover {
|
|
182
|
+
color: #fff;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
.chart .icon-fullscreen { background-position: 0 -15px; }
|
|
187
|
+
.chart .icon-share { background-position: -32px -15px; }
|
|
188
|
+
.chart .icon-download { background-position: -17px -15px; }
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
/* New rules */
|
|
192
|
+
|
|
193
|
+
html {
|
|
194
|
+
height: 100%;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.filter-select {
|
|
198
|
+
max-width: 400px;
|
|
199
|
+
@media screen and (max-width: 400px) {
|
|
200
|
+
max-width: 220px;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.filter-ui div span {
|
|
205
|
+
color: gray;
|
|
206
|
+
}
|
|
207
|
+
.label.outline span {
|
|
208
|
+
text-shadow: 0 0 2px #000;
|
|
209
|
+
}
|