removed unnecessary libraries d3, and3, nvd3 and c3 from Admin UI

pull/61/MERGE
13621160019@163.com 2021-08-11 11:19:44 +08:00
parent d049269d58
commit 1ccb6bdfef
14 changed files with 0 additions and 25577 deletions

View File

@ -15,7 +15,6 @@
//'ngDragDrop', //'ngDragDrop',
'hjc.directives.dragdrop', 'hjc.directives.dragdrop',
'angular-loading-bar', 'angular-loading-bar',
'nvd3',
'thatisuday.dropzone' 'thatisuday.dropzone'
]) ])
})(); })();

View File

@ -1 +0,0 @@
.c3 svg{font:10px sans-serif;-webkit-tap-highlight-color:transparent}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:gray;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:.75}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-title{font:14px sans-serif}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777;opacity:.9}.c3-tooltip tr{border:1px solid #CCC}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#FFF}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max,.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}

4
admin/index.html vendored
View File

@ -26,7 +26,6 @@
<!-- Main Inspinia CSS files --> <!-- Main Inspinia CSS files -->
<link href="css/animate.css" rel="stylesheet"> <link href="css/animate.css" rel="stylesheet">
<link href="js/plugins/angular-loading-bar/loading-bar.css" rel="stylesheet"> <link href="js/plugins/angular-loading-bar/loading-bar.css" rel="stylesheet">
<link href="js/nvd3/nv.d3.css" rel="stylesheet">
<link href="js/dropzone/basic.css" rel="stylesheet"> <link href="js/dropzone/basic.css" rel="stylesheet">
<link href="js/dropzone/dropzone.css" rel="stylesheet"> <link href="js/dropzone/dropzone.css" rel="stylesheet">
<link id="loadBefore" href="css/style.css" rel="stylesheet"> <link id="loadBefore" href="css/style.css" rel="stylesheet">
@ -65,8 +64,6 @@
<script src="js/angular-highcharts/sankey.js" ></script> <script src="js/angular-highcharts/sankey.js" ></script>
<script src="js/angular-highcharts/solid-gauge.src.js" ></script> <script src="js/angular-highcharts/solid-gauge.src.js" ></script>
<script src="js/angular-highcharts/heatmap.src.js" ></script> <script src="js/angular-highcharts/heatmap.src.js" ></script>
<script src="js/d3/d3.js" ></script>
<script src="js/nvd3/nv.d3.js" ></script>
<!-- SlimScroll --> <!-- SlimScroll -->
<script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script> <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
@ -78,7 +75,6 @@
<script src="js/angular/angular-sanitize.js"></script> <script src="js/angular/angular-sanitize.js"></script>
<!-- <script src="js/angular/angular-dragdrop.min.js"></script> --> <!-- <script src="js/angular/angular-dragdrop.min.js"></script> -->
<script src="js/angular-highcharts/highcharts-ng.js"></script> <script src="js/angular-highcharts/highcharts-ng.js"></script>
<script src="js/and3/and3.js"></script>
<script src="js/dropzone/ng-dropzone.js"></script> <script src="js/dropzone/ng-dropzone.js"></script>
<script src="js/plugins/oclazyload/dist/ocLazyLoad.min.js"></script> <script src="js/plugins/oclazyload/dist/ocLazyLoad.min.js"></script>
<script src="js/angular-translate/angular-translate.min.js"></script> <script src="js/angular-translate/angular-translate.min.js"></script>

View File

@ -1,652 +0,0 @@
/**************************************************************************
* and3, v1.0.9; MIT
**************************************************************************/
(function(window){
'use strict';
var nv = window.nv;
// Node.js or CommonJS
if (typeof(exports) !== 'undefined') {
/* jshint -W020 */
nv = require('nvd3');
/* jshint +W020 */
}
angular.module('nvd3', [])
.directive('nvd3', ['nvd3Utils', function(nvd3Utils){
return {
restrict: 'AE',
scope: {
data: '=', //chart data, [required]
options: '=', //chart options, according to nvd3 core api, [required]
api: '=?', //directive global api, [optional]
events: '=?', //global events that directive would subscribe to, [optional]
config: '=?', //global directive configuration, [optional]
onReady: '&?' //callback function that is called with internal scope when directive is created [optional]
},
link: function(scope, element, attrs){
var defaultConfig = {
extended: false,
visible: true,
disabled: false,
refreshDataOnly: true,
deepWatchOptions: true,
deepWatchData: true,
deepWatchDataDepth: 2, // 0 - by reference (cheap), 1 - by collection item (the middle), 2 - by value (expensive)
debounce: 10, // default 10ms, time silence to prevent refresh while multiple options changes at a time
debounceImmediate: true // immediate flag for debounce function
};
//flag indicates if directive and chart is ready
scope.isReady = false;
//basic directive configuration
scope._config = angular.extend(defaultConfig, scope.config);
//directive global api
scope.api = {
// Fully refresh directive
refresh: function(){
scope.api.updateWithOptions();
scope.isReady = true;
},
// Fully refresh directive with specified timeout
refreshWithTimeout: function(t){
setTimeout(function(){
scope.api.refresh();
}, t);
},
// Update chart layout (for example if container is resized)
update: function() {
if (scope.chart && scope.svg) {
if (scope.options.chart.type === 'sunburstChart') {
scope.svg.datum(angular.copy(scope.data)).call(scope.chart);
} else {
scope.svg.datum(scope.data).call(scope.chart);
}
} else {
scope.api.refresh();
}
},
// Update chart layout with specified timeout
updateWithTimeout: function(t){
setTimeout(function(){
scope.api.update();
}, t);
},
// Update chart with new options
updateWithOptions: function(options){
// set options
if (!arguments.length) {
options = scope.options;
} else {
scope.options = options;
// return if options $watch is enabled
if (scope._config.deepWatchOptions && !scope._config.disabled) return;
}
// Clearing
scope.api.clearElement();
// Exit if options are not yet bound
if (angular.isDefined(options) === false) return;
// Exit if chart is hidden
if (!scope._config.visible) return;
// Initialize chart with specific type
scope.chart = nv.models[options.chart.type]();
// Generate random chart ID
scope.chart.id = Math.random().toString(36).substr(2, 15);
angular.forEach(scope.chart, function(value, key){
if (key[0] === '_');
else if ([
'clearHighlights',
'highlightPoint',
'id',
'options',
'resizeHandler',
'state',
'open',
'close',
'tooltipContent'
].indexOf(key) >= 0);
else if (key === 'dispatch') {
if (options.chart[key] === undefined || options.chart[key] === null) {
if (scope._config.extended) options.chart[key] = {};
}
configureEvents(scope.chart[key], options.chart[key]);
}
else if ([
'bars',
'bars1',
'bars2',
'boxplot',
'bullet',
'controls',
'discretebar',
'distX',
'distY',
'focus',
'interactiveLayer',
'legend',
'lines',
'lines1',
'lines2',
'multibar',
'pie',
'scatter',
'scatters1',
'scatters2',
'sparkline',
'stack1',
'stack2',
'sunburst',
'tooltip',
'x2Axis',
'xAxis',
'y1Axis',
'y2Axis',
'y3Axis',
'y4Axis',
'yAxis',
'yAxis1',
'yAxis2'
].indexOf(key) >= 0 ||
// stacked is a component for stackedAreaChart, but a boolean for multiBarChart and multiBarHorizontalChart
(key === 'stacked' && options.chart.type === 'stackedAreaChart')) {
if (options.chart[key] === undefined || options.chart[key] === null) {
if (scope._config.extended) options.chart[key] = {};
}
configure(scope.chart[key], options.chart[key], options.chart.type);
}
//TODO: need to fix bug in nvd3
else if ((key === 'focusHeight') && options.chart.type === 'lineChart');
else if ((key === 'focusHeight') && options.chart.type === 'lineWithFocusChart');
else if ((key === 'xTickFormat' || key === 'yTickFormat') && options.chart.type === 'lineWithFocusChart');
else if ((key === 'tooltips') && options.chart.type === 'boxPlotChart');
else if ((key === 'tooltipXContent' || key === 'tooltipYContent') && options.chart.type === 'scatterChart');
else if ((key === 'x' || key === 'y') && options.chart.type === 'forceDirectedGraph');
else if (options.chart[key] === undefined || options.chart[key] === null){
if (scope._config.extended) {
if (key==='barColor')
options.chart[key] = value()();
else
options.chart[key] = value();
}
}
else scope.chart[key](options.chart[key]);
});
// Update with data
scope.api.updateWithData();
// Configure wrappers
if (options['title'] || scope._config.extended) configureWrapper('title');
if (options['subtitle'] || scope._config.extended) configureWrapper('subtitle');
if (options['caption'] || scope._config.extended) configureWrapper('caption');
// Configure styles
if (options['styles'] || scope._config.extended) configureStyles();
nv.addGraph(function() {
if (!scope.chart) return;
// Remove resize handler. Due to async execution should be placed here, not in the clearElement
if (scope.chart.resizeHandler) scope.chart.resizeHandler.clear();
// Update the chart when window resizes
scope.chart.resizeHandler = nv.utils.windowResize(function() {
scope.chart && scope.chart.update && scope.chart.update();
});
/// Zoom feature
if (options.chart.zoom !== undefined && [
'scatterChart',
'lineChart',
'candlestickBarChart',
'cumulativeLineChart',
'historicalBarChart',
'ohlcBarChart',
'stackedAreaChart'
].indexOf(options.chart.type) > -1) {
nvd3Utils.zoom(scope, options);
}
return scope.chart;
}, options.chart['callback']);
},
// Update chart with new data
updateWithData: function (data){
// set data
if (!arguments.length) {
if (scope.options.chart.type === 'sunburstChart') {
data = angular.copy(scope.data);
} else {
data = scope.data;
}
} else {
scope.data = data;
// return if data $watch is enabled
if (scope._config.deepWatchData && !scope._config.disabled) return;
}
if (data) {
// remove whole svg element with old data
d3.select(element[0]).select('svg').remove();
var h, w;
// Select the current element to add <svg> element and to render the chart in
scope.svg = d3.select(element[0]).insert('svg', '.caption');
if (h = scope.options.chart.height) {
if (!isNaN(+h)) h += 'px'; //check if height is number
scope.svg.attr('height', h).style({height: h});
}
if (w = scope.options.chart.width) {
if (!isNaN(+w)) w += 'px'; //check if width is number
scope.svg.attr('width', w).style({width: w});
} else {
scope.svg.attr('width', '100%').style({width: '100%'});
}
scope.svg.datum(data).call(scope.chart);
// update zooming if exists
if (scope.chart && scope.chart.zoomRender) scope.chart.zoomRender();
}
},
// Fully clear directive element
clearElement: function (){
element.find('.title').remove();
element.find('.subtitle').remove();
element.find('.caption').remove();
element.empty();
// remove tooltip if exists
if (scope.chart && scope.chart.tooltip && scope.chart.tooltip.id) {
d3.select('#' + scope.chart.tooltip.id()).remove();
}
// To be compatible with old nvd3 (v1.7.1)
if (nv.graphs && scope.chart) {
for (var i = nv.graphs.length - 1; i >= 0; i--) {
if (nv.graphs[i] && (nv.graphs[i].id === scope.chart.id)) {
nv.graphs.splice(i, 1);
}
}
}
if (nv.tooltip && nv.tooltip.cleanup) {
nv.tooltip.cleanup();
}
if (scope.chart && scope.chart.resizeHandler) scope.chart.resizeHandler.clear();
scope.chart = null;
},
// Get full directive scope
getScope: function(){ return scope; },
// Get directive element
getElement: function(){ return element; }
};
// Configure the chart model with the passed options
function configure(chart, options, chartType){
if (chart && options){
angular.forEach(chart, function(value, key){
if (key[0] === '_');
else if (key === 'dispatch') {
if (options[key] === undefined || options[key] === null) {
if (scope._config.extended) options[key] = {};
}
configureEvents(value, options[key]);
}
else if (key === 'tooltip') {
if (options[key] === undefined || options[key] === null) {
if (scope._config.extended) options[key] = {};
}
configure(chart[key], options[key], chartType);
}
else if (key === 'contentGenerator') {
if (options[key]) chart[key](options[key]);
}
else if ([
'axis',
'clearHighlights',
'defined',
'highlightPoint',
'nvPointerEventsClass',
'options',
'rangeBand',
'rangeBands',
'scatter',
'open',
'close',
'node'
].indexOf(key) === -1) {
if (options[key] === undefined || options[key] === null){
if (scope._config.extended) options[key] = value();
}
else chart[key](options[key]);
}
});
}
}
// Subscribe to the chart events (contained in 'dispatch')
// and pass eventHandler functions in the 'options' parameter
function configureEvents(dispatch, options){
if (dispatch && options){
angular.forEach(dispatch, function(value, key){
if (options[key] === undefined || options[key] === null){
if (scope._config.extended) options[key] = value.on;
}
else dispatch.on(key + '._', options[key]);
});
}
}
// Configure 'title', 'subtitle', 'caption'.
// nvd3 has no sufficient models for it yet.
function configureWrapper(name){
var _ = nvd3Utils.deepExtend(defaultWrapper(name), scope.options[name] || {});
if (scope._config.extended) scope.options[name] = _;
var wrapElement = angular.element('<div></div>').html(_['html'] || '')
.addClass(name).addClass(_.className)
.removeAttr('style')
.css(_.css);
if (!_['html']) wrapElement.text(_.text);
if (_.enable) {
if (name === 'title') element.prepend(wrapElement);
else if (name === 'subtitle') angular.element(element[0].querySelector('.title')).after(wrapElement);
else if (name === 'caption') element.append(wrapElement);
}
}
// Add some styles to the whole directive element
function configureStyles(){
var _ = nvd3Utils.deepExtend(defaultStyles(), scope.options['styles'] || {});
if (scope._config.extended) scope.options['styles'] = _;
angular.forEach(_.classes, function(value, key){
value ? element.addClass(key) : element.removeClass(key);
});
element.removeAttr('style').css(_.css);
}
// Default values for 'title', 'subtitle', 'caption'
function defaultWrapper(_){
switch (_){
case 'title': return {
enable: false,
text: 'Write Your Title',
className: 'h4',
css: {
width: scope.options.chart.width + 'px',
textAlign: 'center'
}
};
case 'subtitle': return {
enable: false,
text: 'Write Your Subtitle',
css: {
width: scope.options.chart.width + 'px',
textAlign: 'center'
}
};
case 'caption': return {
enable: false,
text: 'Figure 1. Write Your Caption text.',
css: {
width: scope.options.chart.width + 'px',
textAlign: 'center'
}
};
}
}
// Default values for styles
function defaultStyles(){
return {
classes: {
'with-3d-shadow': true,
'with-transitions': true,
'gallery': false
},
css: {}
};
}
/* Event Handling */
// Watching on options changing
if (scope._config.deepWatchOptions) {
scope.$watch('options', nvd3Utils.debounce(function(newOptions){
if (!scope._config.disabled) scope.api.refresh();
}, scope._config.debounce, scope._config.debounceImmediate), true);
}
// Watching on data changing
function dataWatchFn(newData, oldData) {
if (newData !== oldData){
if (!scope._config.disabled) {
scope._config.refreshDataOnly ? scope.api.update() : scope.api.refresh(); // if wanted to refresh data only, use update method, otherwise use full refresh.
}
}
}
if (scope._config.deepWatchData) {
if (scope._config.deepWatchDataDepth === 1) {
scope.$watchCollection('data', dataWatchFn);
} else {
scope.$watch('data', dataWatchFn, scope._config.deepWatchDataDepth === 2);
}
}
// Watching on config changing
scope.$watch('config', function(newConfig, oldConfig){
if (newConfig !== oldConfig){
scope._config = angular.extend(defaultConfig, newConfig);
scope.api.refresh();
}
}, true);
// Refresh chart first time if deepWatchOptions and deepWatchData are false
if (!scope._config.deepWatchOptions && !scope._config.deepWatchData) {
scope.api.refresh();
}
//subscribe on global events
angular.forEach(scope.events, function(eventHandler, event){
scope.$on(event, function(e, args){
return eventHandler(e, scope, args);
});
});
// remove completely when directive is destroyed
element.on('$destroy', function () {
scope.api.clearElement();
});
// trigger onReady callback if directive is ready
scope.$watch('isReady', function(isReady){
if (isReady) {
if (scope.onReady && typeof scope.onReady() === 'function') scope.onReady()(scope, element);
}
});
}
};
}])
.factory('nvd3Utils', function(){
return {
debounce: function(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
},
deepExtend: function(dst){
var me = this;
angular.forEach(arguments, function(obj) {
if (obj !== dst) {
angular.forEach(obj, function(value, key) {
if (dst[key] && dst[key].constructor && dst[key].constructor === Object) {
me.deepExtend(dst[key], value);
} else {
dst[key] = value;
}
});
}
});
return dst;
},
zoom: function(scope, options) {
var zoom = options.chart.zoom;
// check if zoom enabled
var enabled = (typeof zoom.enabled === 'undefined' || zoom.enabled === null) ? true : zoom.enabled;
if (!enabled) return;
var xScale = scope.chart.xAxis.scale()
, yScale = scope.chart.yAxis.scale()
, xDomain = scope.chart.xDomain || xScale.domain
, yDomain = scope.chart.yDomain || yScale.domain
, x_boundary = xScale.domain().slice()
, y_boundary = yScale.domain().slice()
// initialize zoom options
, scale = zoom.scale || 1
, translate = zoom.translate || [0, 0]
, scaleExtent = zoom.scaleExtent || [1, 10]
, useFixedDomain = zoom.useFixedDomain || false
, useNiceScale = zoom.useNiceScale || false
, horizontalOff = zoom.horizontalOff || false
, verticalOff = zoom.verticalOff || false
, unzoomEventType = zoom.unzoomEventType || 'dblclick.zoom'
// auxiliary functions
, fixDomain
, d3zoom
, zoomed
, unzoomed
, zoomend
;
// ensure nice axis
if (useNiceScale) {
xScale.nice();
yScale.nice();
}
// fix domain
fixDomain = function (domain, boundary) {
domain[0] = Math.min(Math.max(domain[0], boundary[0]), boundary[1] - boundary[1] / scaleExtent[1]);
domain[1] = Math.max(boundary[0] + boundary[1] / scaleExtent[1], Math.min(domain[1], boundary[1]));
return domain;
};
// zoom event handler
zoomed = function () {
if (zoom.zoomed !== undefined) {
var domains = zoom.zoomed(xScale.domain(), yScale.domain());
if (!horizontalOff) xDomain([domains.x1, domains.x2]);
if (!verticalOff) yDomain([domains.y1, domains.y2]);
} else {
if (!horizontalOff) xDomain(useFixedDomain ? fixDomain(xScale.domain(), x_boundary) : xScale.domain());
if (!verticalOff) yDomain(useFixedDomain ? fixDomain(yScale.domain(), y_boundary) : yScale.domain());
}
if (scope.chart) scope.chart.update();
};
// unzoomed event handler
unzoomed = function () {
if (zoom.unzoomed !== undefined) {
var domains = zoom.unzoomed(xScale.domain(), yScale.domain());
if (!horizontalOff) xDomain([domains.x1, domains.x2]);
if (!verticalOff) yDomain([domains.y1, domains.y2]);
} else {
if (!horizontalOff) xDomain(x_boundary);
if (!verticalOff) yDomain(y_boundary);
}
d3zoom.scale(scale).translate(translate);
if (scope.chart) scope.chart.update();
};
// zoomend event handler
zoomend = function () {
if (zoom.zoomend !== undefined) {
zoom.zoomend();
}
};
// create d3 zoom handler
d3zoom = d3.behavior.zoom()
.x(xScale)
.y(yScale)
.scaleExtent(scaleExtent)
.on('zoom', zoomed)
.on('zoomend', zoomend);
if (scope.svg) {
scope.svg.call(d3zoom);
d3zoom.scale(scale).translate(translate).event(scope.svg);
if (unzoomEventType !== 'none') scope.svg.on(unzoomEventType, unzoomed);
}
if (scope.chart)
scope.chart.zoomRender = function(){
// reset zoom scale and translate
d3zoom.scale(scale).translate(translate);
// update scale
xScale = scope.chart.xAxis.scale();
yScale = scope.chart.yAxis.scale();
xDomain = scope.chart.xDomain || xScale.domain;
yDomain = scope.chart.yDomain || yScale.domain;
x_boundary = xScale.domain().slice();
y_boundary = yScale.domain().slice();
// update zoom scale
d3zoom.x(xScale).y(yScale);
scope.svg.call(d3zoom);
if (unzoomEventType !== 'none') scope.svg.on(unzoomEventType, unzoomed);
};
}
};
});
})(window);

File diff suppressed because one or more lines are too long

9504
admin/js/d3/d3.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,669 +0,0 @@
/* nvd3 version 1.8.3 (https://github.com/novus/nvd3) 2016-04-26 */
.nvd3 .nv-axis {
pointer-events:none;
opacity: 1;
}
.nvd3 .nv-axis path {
fill: none;
stroke: #000;
stroke-opacity: .75;
shape-rendering: crispEdges;
}
.nvd3 .nv-axis path.domain {
stroke-opacity: .75;
}
.nvd3 .nv-axis.nv-x path.domain {
stroke-opacity: 0;
}
.nvd3 .nv-axis line {
fill: none;
stroke: #e5e5e5;
shape-rendering: crispEdges;
}
.nvd3 .nv-axis .zero line,
/*this selector may not be necessary*/ .nvd3 .nv-axis line.zero {
stroke-opacity: .75;
}
.nvd3 .nv-axis .nv-axisMaxMin text {
font-weight: bold;
}
.nvd3 .x .nv-axis .nv-axisMaxMin text,
.nvd3 .x2 .nv-axis .nv-axisMaxMin text,
.nvd3 .x3 .nv-axis .nv-axisMaxMin text {
text-anchor: middle
}
.nvd3 .nv-axis.nv-disabled {
opacity: 0;
}
.nvd3 .nv-bars rect {
fill-opacity: .75;
transition: fill-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear;
}
.nvd3 .nv-bars rect.hover {
fill-opacity: 1;
}
.nvd3 .nv-bars .hover rect {
fill: lightblue;
}
.nvd3 .nv-bars text {
fill: rgba(0,0,0,0);
}
.nvd3 .nv-bars .hover text {
fill: rgba(0,0,0,1);
}
.nvd3 .nv-multibar .nv-groups rect,
.nvd3 .nv-multibarHorizontal .nv-groups rect,
.nvd3 .nv-discretebar .nv-groups rect {
stroke-opacity: 0;
transition: fill-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear;
}
.nvd3 .nv-multibar .nv-groups rect:hover,
.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,
.nvd3 .nv-candlestickBar .nv-ticks rect:hover,
.nvd3 .nv-discretebar .nv-groups rect:hover {
fill-opacity: 1;
}
.nvd3 .nv-discretebar .nv-groups text,
.nvd3 .nv-multibarHorizontal .nv-groups text {
font-weight: bold;
fill: rgba(0,0,0,1);
stroke: rgba(0,0,0,0);
}
/* boxplot CSS */
.nvd3 .nv-boxplot circle {
fill-opacity: 0.5;
}
.nvd3 .nv-boxplot circle:hover {
fill-opacity: 1;
}
.nvd3 .nv-boxplot rect:hover {
fill-opacity: 1;
}
.nvd3 line.nv-boxplot-median {
stroke: black;
}
.nv-boxplot-tick:hover {
stroke-width: 2.5px;
}
/* bullet */
.nvd3.nv-bullet { font: 10px sans-serif; }
.nvd3.nv-bullet .nv-measure { fill-opacity: .8; }
.nvd3.nv-bullet .nv-measure:hover { fill-opacity: 1; }
.nvd3.nv-bullet .nv-marker { stroke: #000; stroke-width: 2px; }
.nvd3.nv-bullet .nv-markerTriangle { stroke: #000; fill: #fff; stroke-width: 1.5px; }
.nvd3.nv-bullet .nv-tick line { stroke: #666; stroke-width: .5px; }
.nvd3.nv-bullet .nv-range.nv-s0 { fill: #eee; }
.nvd3.nv-bullet .nv-range.nv-s1 { fill: #ddd; }
.nvd3.nv-bullet .nv-range.nv-s2 { fill: #ccc; }
.nvd3.nv-bullet .nv-title { font-size: 14px; font-weight: bold; }
.nvd3.nv-bullet .nv-subtitle { fill: #999; }
.nvd3.nv-bullet .nv-range {
fill: #bababa;
fill-opacity: .4;
}
.nvd3.nv-bullet .nv-range:hover {
fill-opacity: .7;
}
.nvd3.nv-candlestickBar .nv-ticks .nv-tick {
stroke-width: 1px;
}
.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover {
stroke-width: 2px;
}
.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect {
stroke: #2ca02c;
fill: #2ca02c;
}
.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect {
stroke: #d62728;
fill: #d62728;
}
.with-transitions .nv-candlestickBar .nv-ticks .nv-tick {
transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-candlestickBar .nv-ticks line {
stroke: #333;
}
.nv-force-node {
stroke: #fff;
stroke-width: 1.5px;
}
.nv-force-link {
stroke: #999;
stroke-opacity: .6;
}
.nv-force-node text {
stroke-width: 0px
}
.nvd3 .nv-legend .nv-disabled rect {
/*fill-opacity: 0;*/
}
.nvd3 .nv-check-box .nv-box {
fill-opacity:0;
stroke-width:2;
}
.nvd3 .nv-check-box .nv-check {
fill-opacity:0;
stroke-width:4;
}
.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check {
fill-opacity:0;
stroke-opacity:0;
}
.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check {
opacity: 0;
}
/* line plus bar */
.nvd3.nv-linePlusBar .nv-bar rect {
fill-opacity: .75;
}
.nvd3.nv-linePlusBar .nv-bar rect:hover {
fill-opacity: 1;
}
.nvd3 .nv-groups path.nv-line {
fill: none;
}
.nvd3 .nv-groups path.nv-area {
stroke: none;
}
.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point {
fill-opacity: 0;
stroke-opacity: 0;
}
.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point {
fill-opacity: .5 !important;
stroke-opacity: .5 !important;
}
.with-transitions .nvd3 .nv-groups .nv-point {
transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-moz-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: stroke-width 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-scatter .nv-groups .nv-point.hover,
.nvd3 .nv-groups .nv-point.hover {
stroke-width: 7px;
fill-opacity: .95 !important;
stroke-opacity: .95 !important;
}
.nvd3 .nv-point-paths path {
stroke: #aaa;
stroke-opacity: 0;
fill: #eee;
fill-opacity: 0;
}
.nvd3 .nv-indexLine {
cursor: ew-resize;
}
/********************
* SVG CSS
*/
/********************
Default CSS for an svg element nvd3 used
*/
svg.nvd3-svg {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
user-select: none;
display: block;
width:100%;
height:100%;
}
/********************
Box shadow and border radius styling
*/
.nvtooltip.with-3d-shadow, .with-3d-shadow .nvtooltip {
-moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
-webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
box-shadow: 0 5px 10px rgba(0,0,0,.2);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.nvd3 text {
font: normal 12px Arial;
}
.nvd3 .title {
font: bold 14px Arial;
}
.nvd3 .nv-background {
fill: white;
fill-opacity: 0;
}
.nvd3.nv-noData {
font-size: 18px;
font-weight: bold;
}
/**********
* Brush
*/
.nv-brush .extent {
fill-opacity: .125;
shape-rendering: crispEdges;
}
.nv-brush .resize path {
fill: #eee;
stroke: #666;
}
/**********
* Legend
*/
.nvd3 .nv-legend .nv-series {
cursor: pointer;
}
.nvd3 .nv-legend .nv-disabled circle {
fill-opacity: 0;
}
/* focus */
.nvd3 .nv-brush .extent {
fill-opacity: 0 !important;
}
.nvd3 .nv-brushBackground rect {
stroke: #000;
stroke-width: .4;
fill: #fff;
fill-opacity: .7;
}
/**********
* Print
*/
@media print {
.nvd3 text {
stroke-width: 0;
fill-opacity: 1;
}
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick {
stroke-width: 1px;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover {
stroke-width: 2px;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive {
stroke: #2ca02c;
}
.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative {
stroke: #d62728;
}
.nvd3 .background path {
fill: none;
stroke: #EEE;
stroke-opacity: .4;
shape-rendering: crispEdges;
}
.nvd3 .foreground path {
fill: none;
stroke-opacity: .7;
}
.nvd3 .nv-parallelCoordinates-brush .extent
{
fill: #fff;
fill-opacity: .6;
stroke: gray;
shape-rendering: crispEdges;
}
.nvd3 .nv-parallelCoordinates .hover {
fill-opacity: 1;
stroke-width: 3px;
}
.nvd3 .missingValuesline line {
fill: none;
stroke: black;
stroke-width: 1;
stroke-opacity: 1;
stroke-dasharray: 5, 5;
}
.nvd3.nv-pie path {
stroke-opacity: 0;
transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear, stroke-width 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-pie .nv-pie-title {
font-size: 24px;
fill: rgba(19, 196, 249, 0.59);
}
.nvd3.nv-pie .nv-slice text {
stroke: #000;
stroke-width: 0;
}
.nvd3.nv-pie path {
stroke: #fff;
stroke-width: 1px;
stroke-opacity: 1;
}
.nvd3.nv-pie path {
fill-opacity: .7;
}
.nvd3.nv-pie .hover path {
fill-opacity: 1;
}
.nvd3.nv-pie .nv-label {
pointer-events: none;
}
.nvd3.nv-pie .nv-label rect {
fill-opacity: 0;
stroke-opacity: 0;
}
/* scatter */
.nvd3 .nv-groups .nv-point.hover {
stroke-width: 20px;
stroke-opacity: .5;
}
.nvd3 .nv-scatter .nv-point.hover {
fill-opacity: 1;
}
.nv-noninteractive {
pointer-events: none;
}
.nv-distx, .nv-disty {
pointer-events: none;
}
/* sparkline */
.nvd3.nv-sparkline path {
fill: none;
}
.nvd3.nv-sparklineplus g.nv-hoverValue {
pointer-events: none;
}
.nvd3.nv-sparklineplus .nv-hoverValue line {
stroke: #333;
stroke-width: 1.5px;
}
.nvd3.nv-sparklineplus,
.nvd3.nv-sparklineplus g {
pointer-events: all;
}
.nvd3 .nv-hoverArea {
fill-opacity: 0;
stroke-opacity: 0;
}
.nvd3.nv-sparklineplus .nv-xValue,
.nvd3.nv-sparklineplus .nv-yValue {
stroke-width: 0;
font-size: .9em;
font-weight: normal;
}
.nvd3.nv-sparklineplus .nv-yValue {
stroke: #f66;
}
.nvd3.nv-sparklineplus .nv-maxValue {
stroke: #2ca02c;
fill: #2ca02c;
}
.nvd3.nv-sparklineplus .nv-minValue {
stroke: #d62728;
fill: #d62728;
}
.nvd3.nv-sparklineplus .nv-currentValue {
font-weight: bold;
font-size: 1.1em;
}
/* stacked area */
.nvd3.nv-stackedarea path.nv-area {
fill-opacity: .7;
stroke-opacity: 0;
transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-moz-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
-webkit-transition: fill-opacity 250ms linear, stroke-opacity 250ms linear;
}
.nvd3.nv-stackedarea path.nv-area.hover {
fill-opacity: .9;
}
.nvd3.nv-stackedarea .nv-groups .nv-point {
stroke-opacity: 0;
fill-opacity: 0;
}
.nvtooltip {
position: absolute;
background-color: rgba(255,255,255,1.0);
color: rgba(0,0,0,1.0);
padding: 1px;
border: 1px solid rgba(0,0,0,.2);
z-index: 10000;
display: block;
font-family: Arial;
font-size: 13px;
text-align: left;
pointer-events: none;
white-space: nowrap;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.nvtooltip {
background: rgba(255,255,255, 0.8);
border: 1px solid rgba(0,0,0,0.5);
border-radius: 4px;
}
/*Give tooltips that old fade in transition by
putting a "with-transitions" class on the container div.
*/
.nvtooltip.with-transitions, .with-transitions .nvtooltip {
transition: opacity 50ms linear;
-moz-transition: opacity 50ms linear;
-webkit-transition: opacity 50ms linear;
transition-delay: 200ms;
-moz-transition-delay: 200ms;
-webkit-transition-delay: 200ms;
}
.nvtooltip.x-nvtooltip,
.nvtooltip.y-nvtooltip {
padding: 8px;
}
.nvtooltip h3 {
margin: 0;
padding: 4px 14px;
line-height: 18px;
font-weight: normal;
background-color: rgba(247,247,247,0.75);
color: rgba(0,0,0,1.0);
text-align: center;
border-bottom: 1px solid #ebebeb;
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
.nvtooltip p {
margin: 0;
padding: 5px 14px;
text-align: center;
}
.nvtooltip span {
display: inline-block;
margin: 2px 0;
}
.nvtooltip table {
margin: 6px;
border-spacing:0;
}
.nvtooltip table td {
padding: 2px 9px 2px 0;
vertical-align: middle;
}
.nvtooltip table td.key {
font-weight: normal;
}
.nvtooltip table td.key.total {
font-weight: bold;
}
.nvtooltip table td.value {
text-align: right;
font-weight: bold;
}
.nvtooltip table tr.highlight td {
padding: 1px 9px 1px 0;
border-bottom-style: solid;
border-bottom-width: 1px;
border-top-style: solid;
border-top-width: 1px;
}
.nvtooltip table td.legend-color-guide div {
width: 8px;
height: 8px;
vertical-align: middle;
}
.nvtooltip table td.legend-color-guide div {
width: 12px;
height: 12px;
border: 1px solid #999;
}
.nvtooltip .footer {
padding: 3px;
text-align: center;
}
.nvtooltip-pending-removal {
pointer-events: none;
display: none;
}
/****
Interactive Layer
*/
.nvd3 .nv-interactiveGuideLine {
pointer-events:none;
}
.nvd3 line.nv-guideline {
stroke: #ccc;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long