Comparing version 0.4.16 to 0.4.17
@@ -7,2 +7,3 @@ <!-- | ||
C3 version: The c3 version number which is available from `c3.version`. | ||
D3 version: The d3 version number. | ||
Browser: The browser version. | ||
@@ -16,3 +17,4 @@ OS: The operating system. | ||
* **C3 version**: | ||
* **D3 version**: | ||
* **Browser**: | ||
* **OS**: |
@@ -5,3 +5,3 @@ { | ||
"description": "A D3-based reusable chart library", | ||
"version": "0.4.16", | ||
"version": "0.4.17", | ||
"keywords": [], | ||
@@ -8,0 +8,0 @@ "dependencies": { |
{ | ||
"name": "c3", | ||
"version": "0.4.16", | ||
"version": "0.4.17", | ||
"description": "D3-based reusable chart library", | ||
@@ -5,0 +5,0 @@ "main": "c3.js", |
@@ -177,2 +177,154 @@ var setMouseEvent = window.setMouseEvent; | ||
describe('bar spacing', function() { | ||
var createArgs = function(spacing) { | ||
return { | ||
size: { | ||
width: 500 | ||
}, | ||
data: { | ||
columns: [ | ||
['data1', 30, 200, 100], | ||
['data2', 50, 20, 10], | ||
['data3', 150, 120, 110], | ||
['data4', 12, 24, 20 ] | ||
], | ||
type: 'bar', | ||
groups: [ | ||
[ 'data1', 'data4' ] | ||
] | ||
}, | ||
bar: { | ||
space: spacing | ||
} | ||
}; | ||
}; | ||
var getBBox = function(selector) { | ||
return d3.select(selector).node().getBBox(); | ||
}; | ||
var getBarContainerWidth = function() { | ||
return parseInt(getBBox('.c3-chart-bars').width); | ||
}; | ||
var getBarContainerOffset = function() { | ||
return parseInt(getBBox('.c3-chart-bars').x); | ||
}; | ||
var getBarBBox = function(name, idx) { | ||
return getBBox('.c3-target-' + name + ' .c3-bar-' + (idx || 0)); | ||
}; | ||
var getBarWidth = function(name, idx) { | ||
return parseInt(getBarBBox(name, idx).width); | ||
}; | ||
var getBarOffset = function(name1, name2, idx) { | ||
var bbox1 = getBarBBox(name1, idx); | ||
var bbox2 = getBarBBox(name2, idx); | ||
return parseInt(bbox2.x - (bbox1.x + bbox1.width)); | ||
}; | ||
it('should set bar spacing to 0', function () { | ||
args = createArgs(0); | ||
expect(true).toBeTruthy(); | ||
}); | ||
it('should display the bars without any spacing', function () { | ||
// all bars should have the same width | ||
expect(getBarWidth('data1', 0)).toEqual(30); | ||
expect(getBarWidth('data2', 0)).toEqual(30); | ||
expect(getBarWidth('data3', 0)).toEqual(30); | ||
expect(getBarWidth('data1', 1)).toEqual(30); | ||
expect(getBarWidth('data2', 1)).toEqual(30); | ||
expect(getBarWidth('data3', 1)).toEqual(30); | ||
expect(getBarWidth('data1', 2)).toEqual(30); | ||
expect(getBarWidth('data2', 2)).toEqual(30); | ||
expect(getBarWidth('data3', 2)).toEqual(30); | ||
// all offsets should be the same | ||
expect(getBarOffset('data1', 'data2', 0)).toEqual(0); | ||
expect(getBarOffset('data2', 'data3', 0)).toEqual(0); | ||
expect(getBarOffset('data1', 'data2', 1)).toEqual(0); | ||
expect(getBarOffset('data2', 'data3', 1)).toEqual(0); | ||
expect(getBarOffset('data1', 'data2', 2)).toEqual(0); | ||
expect(getBarOffset('data2', 'data3', 2)).toEqual(0); | ||
// default width/offset of the container for this chart | ||
expect(getBarContainerWidth()).toEqual(396); | ||
expect(getBarContainerOffset()).toEqual(31); | ||
}); | ||
it('should set bar spacing to 0.25', function () { | ||
args = createArgs(0.25); | ||
expect(true).toBeTruthy(); | ||
}); | ||
it('should display the bars with a spacing ratio of 0.25', function () { | ||
// with bar_space of 0.25, the space between bars is | ||
// expected to be 25% of the original bar's width | ||
// which is ~7 | ||
// expect all bars to be the same width | ||
expect(getBarWidth('data1', 0)).toEqual(22); | ||
expect(getBarWidth('data2', 0)).toEqual(22); | ||
expect(getBarWidth('data3', 0)).toEqual(22); | ||
expect(getBarWidth('data1', 1)).toEqual(22); | ||
expect(getBarWidth('data2', 1)).toEqual(22); | ||
expect(getBarWidth('data3', 1)).toEqual(22); | ||
expect(getBarWidth('data1', 2)).toEqual(22); | ||
expect(getBarWidth('data2', 2)).toEqual(22); | ||
expect(getBarWidth('data3', 2)).toEqual(22); | ||
// all offsets should be the same | ||
expect(getBarOffset('data1', 'data2', 0)).toEqual(7); | ||
expect(getBarOffset('data2', 'data3', 0)).toEqual(7); | ||
expect(getBarOffset('data1', 'data2', 1)).toEqual(7); | ||
expect(getBarOffset('data2', 'data3', 1)).toEqual(7); | ||
expect(getBarOffset('data1', 'data2', 2)).toEqual(7); | ||
expect(getBarOffset('data2', 'data3', 2)).toEqual(7); | ||
// expect the container to shrink a little because of | ||
// the offsets from the first/last chart | ||
// we add/subtract 1 because of approximation due to rounded values | ||
expect(getBarContainerWidth()).toEqual(396 - 7 - 1); | ||
expect(getBarContainerOffset()).toEqual(31 + (parseInt(7 / 2) + 1)); | ||
}); | ||
it('should set bar spacing to 0.5', function () { | ||
args = createArgs(0.5); | ||
expect(true).toBeTruthy(); | ||
}); | ||
it('should display the bars with a spacing ratio of 0.5', function () { | ||
// with bar_space of 0.5, the space between bars is | ||
// expected to be 50% of the original bar's width | ||
// which is ~15 | ||
// expect all bars to be the same width | ||
expect(getBarWidth('data1', 0)).toEqual(15); | ||
expect(getBarWidth('data2', 0)).toEqual(15); | ||
expect(getBarWidth('data3', 0)).toEqual(15); | ||
expect(getBarWidth('data1', 1)).toEqual(15); | ||
expect(getBarWidth('data2', 1)).toEqual(15); | ||
expect(getBarWidth('data3', 1)).toEqual(15); | ||
expect(getBarWidth('data1', 2)).toEqual(15); | ||
expect(getBarWidth('data2', 2)).toEqual(15); | ||
expect(getBarWidth('data3', 2)).toEqual(15); | ||
// all offsets should be the same | ||
expect(getBarOffset('data1', 'data2', 0)).toEqual(15); | ||
expect(getBarOffset('data2', 'data3', 0)).toEqual(15); | ||
expect(getBarOffset('data1', 'data2', 1)).toEqual(15); | ||
expect(getBarOffset('data2', 'data3', 1)).toEqual(15); | ||
expect(getBarOffset('data1', 'data2', 2)).toEqual(15); | ||
expect(getBarOffset('data2', 'data3', 2)).toEqual(15); | ||
// expect the container to shrink a little because of | ||
// the offsets from the first/last chart | ||
expect(getBarContainerWidth()).toEqual(396 - 15); | ||
expect(getBarContainerOffset()).toEqual(31 + parseInt(15 / 2)); | ||
}); | ||
}); | ||
}); |
@@ -173,2 +173,3 @@ import { c3_chart_internal_fn } from './core'; | ||
bar_zerobased: true, | ||
bar_space: 0, | ||
// area | ||
@@ -175,0 +176,0 @@ area_zerobased: true, |
@@ -5,3 +5,3 @@ import Axis from './axis'; | ||
export var c3 = { version: "0.4.16" }; | ||
export var c3 = { version: "0.4.17" }; | ||
@@ -8,0 +8,0 @@ export var c3_chart_fn; |
@@ -100,2 +100,3 @@ import CLASS from './class'; | ||
barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub), | ||
barSpaceOffset = barW * ($$.config.bar_space / 2), | ||
yScale = isSub ? $$.getSubYScale : $$.getYScale; | ||
@@ -112,6 +113,6 @@ return function (d, i) { | ||
return [ | ||
[posX, offset], | ||
[posX, posY - (y0 - offset)], | ||
[posX + barW, posY - (y0 - offset)], | ||
[posX + barW, offset] | ||
[posX + barSpaceOffset, offset], | ||
[posX + barSpaceOffset, posY - (y0 - offset)], | ||
[posX + barW - barSpaceOffset, posY - (y0 - offset)], | ||
[posX + barW - barSpaceOffset, offset] | ||
]; | ||
@@ -118,0 +119,0 @@ }; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1466998
232
22891