c3-rails 0.4.4 → 0.4.8
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 +4 -4
- data/lib/c3/rails/version.rb +1 -1
- data/vendor/assets/javascripts/c3.js +126 -75
- data/vendor/assets/stylesheets/c3.css +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b146b2e0a20b08790e02bfdc97eee99a0fee7dd8
|
4
|
+
data.tar.gz: 55b59236f5d3579ea71bafc84848ece8ad68eb6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f44857897edfcc2c2347b2fa25eea5afd357c566ac38e71538cf7a75d43f160fb5ef52a100ad209e9843e7e6ce0760def5c6bece2295f3c0e6a0f6f2dfa8477
|
7
|
+
data.tar.gz: b3f81b4d90d21b114439b433bbfbceaca3bd99d8a1e3c2923499728d8a1b0855b96e870c08ed31aef9f550ecc91764596f4ef661e1bdbbfbfa22f10c32d55c05
|
data/lib/c3/rails/version.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
/*global define, module, exports, require */
|
5
5
|
|
6
|
-
var c3 = { version: "0.4.
|
6
|
+
var c3 = { version: "0.4.8" };
|
7
7
|
|
8
8
|
var c3_chart_fn, c3_chart_internal_fn;
|
9
9
|
|
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
$$.xOrient = config.axis_rotated ? "left" : "bottom";
|
116
116
|
$$.yOrient = config.axis_rotated ? (config.axis_y_inner ? "top" : "bottom") : (config.axis_y_inner ? "right" : "left");
|
117
|
-
$$.y2Orient = config.axis_rotated ? (config.
|
117
|
+
$$.y2Orient = config.axis_rotated ? (config.axis_y2_inner ? "bottom" : "top") : (config.axis_y2_inner ? "left" : "right");
|
118
118
|
$$.subXOrient = config.axis_rotated ? "left" : "bottom";
|
119
119
|
|
120
120
|
$$.isLegendRight = config.legend_position === 'right';
|
@@ -124,7 +124,6 @@
|
|
124
124
|
$$.legendStep = 0;
|
125
125
|
$$.legendItemWidth = 0;
|
126
126
|
$$.legendItemHeight = 0;
|
127
|
-
$$.legendOpacityForHidden = 0.15;
|
128
127
|
|
129
128
|
$$.currentMaxTickWidths = {
|
130
129
|
x: 0,
|
@@ -428,7 +427,9 @@
|
|
428
427
|
c3_chart_internal_fn.redraw = function (options, transitions) {
|
429
428
|
var $$ = this, main = $$.main, d3 = $$.d3, config = $$.config;
|
430
429
|
var areaIndices = $$.getShapeIndices($$.isAreaType), barIndices = $$.getShapeIndices($$.isBarType), lineIndices = $$.getShapeIndices($$.isLineType);
|
431
|
-
var withY, withSubchart, withTransition, withTransitionForExit, withTransitionForAxis,
|
430
|
+
var withY, withSubchart, withTransition, withTransitionForExit, withTransitionForAxis,
|
431
|
+
withTransform, withUpdateXDomain, withUpdateOrgXDomain, withTrimXDomain, withLegend,
|
432
|
+
withEventRect, withDimension, withUpdateXAxis;
|
432
433
|
var hideAxis = $$.hasArcType();
|
433
434
|
var drawArea, drawBar, drawLine, xForText, yForText;
|
434
435
|
var duration, durationForExit, durationForAxis;
|
@@ -444,6 +445,7 @@
|
|
444
445
|
withUpdateXDomain = getOption(options, "withUpdateXDomain", false);
|
445
446
|
withUpdateOrgXDomain = getOption(options, "withUpdateOrgXDomain", false);
|
446
447
|
withTrimXDomain = getOption(options, "withTrimXDomain", true);
|
448
|
+
withUpdateXAxis = getOption(options, "withUpdateXAxis", withUpdateXDomain);
|
447
449
|
withLegend = getOption(options, "withLegend", false);
|
448
450
|
withEventRect = getOption(options, "withEventRect", true);
|
449
451
|
withDimension = getOption(options, "withDimension", true);
|
@@ -507,7 +509,7 @@
|
|
507
509
|
$$.updateAxisLabels(withTransition);
|
508
510
|
|
509
511
|
// show/hide if manual culling needed
|
510
|
-
if (withUpdateXDomain && targetsToShow.length) {
|
512
|
+
if ((withUpdateXDomain || withUpdateXAxis) && targetsToShow.length) {
|
511
513
|
if (config.axis_x_tick_culling && tickValues) {
|
512
514
|
for (i = 1; i < tickValues.length; i++) {
|
513
515
|
if (tickValues.length / i < config.axis_x_tick_culling_max) {
|
@@ -736,8 +738,14 @@
|
|
736
738
|
return d ? this.x(d.x) : null;
|
737
739
|
};
|
738
740
|
c3_chart_internal_fn.xv = function (d) {
|
739
|
-
var $$ = this;
|
740
|
-
|
741
|
+
var $$ = this, value = d.value;
|
742
|
+
if ($$.isTimeSeries()) {
|
743
|
+
value = $$.parseDate(d.value);
|
744
|
+
}
|
745
|
+
else if ($$.isCategorized() && typeof d.value === 'string') {
|
746
|
+
value = $$.config.axis_x_categories.indexOf(d.value);
|
747
|
+
}
|
748
|
+
return Math.ceil($$.x(value));
|
741
749
|
};
|
742
750
|
c3_chart_internal_fn.yv = function (d) {
|
743
751
|
var $$ = this,
|
@@ -910,8 +918,8 @@
|
|
910
918
|
var $$ = this, parsedDate;
|
911
919
|
if (date instanceof Date) {
|
912
920
|
parsedDate = date;
|
913
|
-
} else if (typeof date === 'number') {
|
914
|
-
parsedDate = new Date(date);
|
921
|
+
} else if (typeof date === 'number' || !isNaN(date)) {
|
922
|
+
parsedDate = new Date(+date);
|
915
923
|
} else {
|
916
924
|
parsedDate = $$.dataTimeFormat($$.config.data_xFormat).parse(date);
|
917
925
|
}
|
@@ -1353,9 +1361,9 @@
|
|
1353
1361
|
domainLength = Math.abs(yDomainMax - yDomainMin);
|
1354
1362
|
padding = padding_top = padding_bottom = domainLength * 0.1;
|
1355
1363
|
|
1356
|
-
if (center) {
|
1364
|
+
if (typeof center !== 'undefined') {
|
1357
1365
|
yDomainAbs = Math.max(Math.abs(yDomainMin), Math.abs(yDomainMax));
|
1358
|
-
yDomainMax =
|
1366
|
+
yDomainMax = center + yDomainAbs;
|
1359
1367
|
yDomainMin = center - yDomainAbs;
|
1360
1368
|
}
|
1361
1369
|
// add padding for data label
|
@@ -1367,16 +1375,16 @@
|
|
1367
1375
|
padding_bottom += domainLength * (ratio[0] / (1 - ratio[0] - ratio[1]));
|
1368
1376
|
} else if (showVerticalDataLabel) {
|
1369
1377
|
lengths = $$.getDataLabelLength(yDomainMin, yDomainMax, axisId, 'height');
|
1370
|
-
padding_top += lengths[1];
|
1371
|
-
padding_bottom += lengths[0];
|
1378
|
+
padding_top += this.convertPixelsToAxisPadding(lengths[1], domainLength);
|
1379
|
+
padding_bottom += this.convertPixelsToAxisPadding(lengths[0], domainLength);
|
1372
1380
|
}
|
1373
1381
|
if (axisId === 'y' && notEmpty(config.axis_y_padding)) {
|
1374
|
-
padding_top = $$.getAxisPadding(config.axis_y_padding, 'top',
|
1375
|
-
padding_bottom = $$.getAxisPadding(config.axis_y_padding, 'bottom',
|
1382
|
+
padding_top = $$.getAxisPadding(config.axis_y_padding, 'top', padding_top, domainLength);
|
1383
|
+
padding_bottom = $$.getAxisPadding(config.axis_y_padding, 'bottom', padding_bottom, domainLength);
|
1376
1384
|
}
|
1377
1385
|
if (axisId === 'y2' && notEmpty(config.axis_y2_padding)) {
|
1378
|
-
padding_top = $$.getAxisPadding(config.axis_y2_padding, 'top',
|
1379
|
-
padding_bottom = $$.getAxisPadding(config.axis_y2_padding, 'bottom',
|
1386
|
+
padding_top = $$.getAxisPadding(config.axis_y2_padding, 'top', padding_top, domainLength);
|
1387
|
+
padding_bottom = $$.getAxisPadding(config.axis_y2_padding, 'bottom', padding_bottom, domainLength);
|
1380
1388
|
}
|
1381
1389
|
// Bar/Area chart should be 0-based if all positive|negative
|
1382
1390
|
if (isZeroBased) {
|
@@ -1787,8 +1795,8 @@
|
|
1787
1795
|
|
1788
1796
|
// find mouseovering bar
|
1789
1797
|
values.filter(function (v) { return v && $$.isBarType(v.id); }).forEach(function (v) {
|
1790
|
-
var shape = $$.
|
1791
|
-
if ($$.isWithinBar(shape)) {
|
1798
|
+
var shape = $$.main.select('.' + CLASS.bars + $$.getTargetSelectorSuffix(v.id) + ' .' + CLASS.bar + '-' + v.index).node();
|
1799
|
+
if (!closest && $$.isWithinBar(shape)) {
|
1792
1800
|
closest = v;
|
1793
1801
|
}
|
1794
1802
|
});
|
@@ -2271,7 +2279,7 @@
|
|
2271
2279
|
|
2272
2280
|
// Call event handler
|
2273
2281
|
$$.main.selectAll('.' + CLASS.shape + '-' + index).each(function (d) {
|
2274
|
-
config.data_onmouseover.call(
|
2282
|
+
config.data_onmouseover.call($$.api, d);
|
2275
2283
|
});
|
2276
2284
|
})
|
2277
2285
|
.on('mouseout', function (d) {
|
@@ -2284,7 +2292,7 @@
|
|
2284
2292
|
$$.unexpandBars();
|
2285
2293
|
// Call event handler
|
2286
2294
|
$$.main.selectAll('.' + CLASS.shape + '-' + index).each(function (d) {
|
2287
|
-
config.data_onmouseout.call(
|
2295
|
+
config.data_onmouseout.call($$.api, d);
|
2288
2296
|
});
|
2289
2297
|
})
|
2290
2298
|
.on('mousemove', function (d) {
|
@@ -2399,7 +2407,7 @@
|
|
2399
2407
|
closest = $$.findClosestFromTargets(targetsToShow, mouse);
|
2400
2408
|
|
2401
2409
|
if ($$.mouseover && (!closest || closest.id !== $$.mouseover.id)) {
|
2402
|
-
config.data_onmouseout.call(
|
2410
|
+
config.data_onmouseout.call($$.api, $$.mouseover);
|
2403
2411
|
$$.mouseover = undefined;
|
2404
2412
|
}
|
2405
2413
|
|
@@ -2433,7 +2441,7 @@
|
|
2433
2441
|
if ($$.isBarType(closest.id) || $$.dist(closest, mouse) < 100) {
|
2434
2442
|
$$.svg.select('.' + CLASS.eventRect).style('cursor', 'pointer');
|
2435
2443
|
if (!$$.mouseover) {
|
2436
|
-
config.data_onmouseover.call(
|
2444
|
+
config.data_onmouseover.call($$.api, closest);
|
2437
2445
|
$$.mouseover = closest;
|
2438
2446
|
}
|
2439
2447
|
}
|
@@ -2517,7 +2525,7 @@
|
|
2517
2525
|
} else if (config.axis_rotated) {
|
2518
2526
|
return defaultPadding + legendWidthOnRight;
|
2519
2527
|
} else if (!config.axis_y2_show || config.axis_y2_inner) { // && !config.axis_rotated
|
2520
|
-
return
|
2528
|
+
return 2 + legendWidthOnRight + ($$.getY2AxisLabelPosition().isOuter ? 20 : 0);
|
2521
2529
|
} else {
|
2522
2530
|
return ceil10($$.getAxisWidthByAxisId('y2')) + legendWidthOnRight;
|
2523
2531
|
}
|
@@ -2545,9 +2553,10 @@
|
|
2545
2553
|
|
2546
2554
|
c3_chart_internal_fn.getSvgLeft = function (withoutRecompute) {
|
2547
2555
|
var $$ = this, config = $$.config,
|
2556
|
+
hasLeftAxisRect = config.axis_rotated || (!config.axis_rotated && !config.axis_y_inner),
|
2548
2557
|
leftAxisClass = config.axis_rotated ? CLASS.axisX : CLASS.axisY,
|
2549
2558
|
leftAxis = $$.main.select('.' + leftAxisClass).node(),
|
2550
|
-
svgRect = leftAxis ? leftAxis.getBoundingClientRect() : {right: 0},
|
2559
|
+
svgRect = leftAxis && hasLeftAxisRect ? leftAxis.getBoundingClientRect() : {right: 0},
|
2551
2560
|
chartRect = $$.selectChart.node().getBoundingClientRect(),
|
2552
2561
|
hasArc = $$.hasArcType(),
|
2553
2562
|
svgLeft = svgRect.right - chartRect.left - (hasArc ? 0 : $$.getCurrentPaddingLeft(withoutRecompute));
|
@@ -3230,7 +3239,15 @@
|
|
3230
3239
|
} else {
|
3231
3240
|
xPos = $$.hasType('bar') ? (points[2][0] + points[0][0]) / 2 : points[0][0];
|
3232
3241
|
}
|
3233
|
-
|
3242
|
+
// show labels regardless of the domain if value is null
|
3243
|
+
if (d.value === null) {
|
3244
|
+
if (xPos > $$.width) {
|
3245
|
+
xPos = $$.width - box.width;
|
3246
|
+
} else if (xPos < 0) {
|
3247
|
+
xPos = 4;
|
3248
|
+
}
|
3249
|
+
}
|
3250
|
+
return xPos;
|
3234
3251
|
};
|
3235
3252
|
c3_chart_internal_fn.getYForText = function (points, d, textElement) {
|
3236
3253
|
var $$ = this,
|
@@ -3240,7 +3257,15 @@
|
|
3240
3257
|
} else {
|
3241
3258
|
yPos = points[2][1] + (d.value < 0 ? box.height : $$.isBarType(d) ? -3 : -6);
|
3242
3259
|
}
|
3243
|
-
|
3260
|
+
// show labels regardless of the domain if value is null
|
3261
|
+
if (d.value === null && !$$.config.axis_rotated) {
|
3262
|
+
if (yPos < box.height) {
|
3263
|
+
yPos = box.height;
|
3264
|
+
} else if (yPos > this.height) {
|
3265
|
+
yPos = this.height - 4;
|
3266
|
+
}
|
3267
|
+
}
|
3268
|
+
return yPos;
|
3244
3269
|
};
|
3245
3270
|
|
3246
3271
|
c3_chart_internal_fn.setTargetType = function (targetIds, type) {
|
@@ -3263,10 +3288,12 @@
|
|
3263
3288
|
has = true;
|
3264
3289
|
}
|
3265
3290
|
});
|
3266
|
-
} else {
|
3291
|
+
} else if (Object.keys(types).length) {
|
3267
3292
|
Object.keys(types).forEach(function (id) {
|
3268
3293
|
if (types[id] === type) { has = true; }
|
3269
3294
|
});
|
3295
|
+
} else {
|
3296
|
+
has = $$.config.data_type === type;
|
3270
3297
|
}
|
3271
3298
|
return has;
|
3272
3299
|
};
|
@@ -3662,13 +3689,19 @@
|
|
3662
3689
|
|
3663
3690
|
c3_chart_internal_fn.initLegend = function () {
|
3664
3691
|
var $$ = this;
|
3692
|
+
$$.legendHasRendered = false;
|
3665
3693
|
$$.legend = $$.svg.append("g").attr("transform", $$.getTranslate('legend'));
|
3666
3694
|
if (!$$.config.legend_show) {
|
3667
3695
|
$$.legend.style('visibility', 'hidden');
|
3668
3696
|
$$.hiddenLegendIds = $$.mapToIds($$.data.targets);
|
3697
|
+
return;
|
3669
3698
|
}
|
3670
3699
|
// MEMO: call here to update legend box and tranlate for all
|
3671
3700
|
// MEMO: translate will be upated by this, so transform not needed in updateLegend()
|
3701
|
+
$$.updateLegendWithDefaults();
|
3702
|
+
};
|
3703
|
+
c3_chart_internal_fn.updateLegendWithDefaults = function () {
|
3704
|
+
var $$ = this;
|
3672
3705
|
$$.updateLegend($$.mapToIds($$.data.targets), {withTransform: false, withTransitionForTransform: false, withTransition: false});
|
3673
3706
|
};
|
3674
3707
|
c3_chart_internal_fn.updateSizeForLegend = function (legendHeight, legendWidth) {
|
@@ -3713,23 +3746,20 @@
|
|
3713
3746
|
return h;
|
3714
3747
|
};
|
3715
3748
|
c3_chart_internal_fn.opacityForLegend = function (legendItem) {
|
3716
|
-
|
3717
|
-
return legendItem.classed(CLASS.legendItemHidden) ? $$.legendOpacityForHidden : 1;
|
3749
|
+
return legendItem.classed(CLASS.legendItemHidden) ? null : 1;
|
3718
3750
|
};
|
3719
3751
|
c3_chart_internal_fn.opacityForUnfocusedLegend = function (legendItem) {
|
3720
|
-
|
3721
|
-
return legendItem.classed(CLASS.legendItemHidden) ? $$.legendOpacityForHidden : 0.3;
|
3752
|
+
return legendItem.classed(CLASS.legendItemHidden) ? null : 0.3;
|
3722
3753
|
};
|
3723
3754
|
c3_chart_internal_fn.toggleFocusLegend = function (targetIds, focus) {
|
3724
3755
|
var $$ = this;
|
3725
3756
|
targetIds = $$.mapToTargetIds(targetIds);
|
3726
3757
|
$$.legend.selectAll('.' + CLASS.legendItem)
|
3727
|
-
.
|
3728
|
-
|
3729
|
-
|
3730
|
-
.
|
3731
|
-
|
3732
|
-
var opacity = targetIds.indexOf(id) >= 0 && focus ? $$.opacityForLegend : $$.opacityForUnfocusedLegend;
|
3758
|
+
.filter(function (id) { return targetIds.indexOf(id) >= 0; })
|
3759
|
+
.classed(CLASS.legendItemFocused, focus)
|
3760
|
+
.transition().duration(100)
|
3761
|
+
.style('opacity', function () {
|
3762
|
+
var opacity = focus ? $$.opacityForLegend : $$.opacityForUnfocusedLegend;
|
3733
3763
|
return opacity.call($$, $$.d3.select(this));
|
3734
3764
|
});
|
3735
3765
|
};
|
@@ -3745,6 +3775,9 @@
|
|
3745
3775
|
if (!config.legend_show) {
|
3746
3776
|
config.legend_show = true;
|
3747
3777
|
$$.legend.style('visibility', 'visible');
|
3778
|
+
if (!$$.legendHasRendered) {
|
3779
|
+
$$.updateLegendWithDefaults();
|
3780
|
+
}
|
3748
3781
|
}
|
3749
3782
|
$$.removeHiddenLegendIds(targetIds);
|
3750
3783
|
$$.legend.selectAll($$.selectorLegends(targetIds))
|
@@ -3764,6 +3797,9 @@
|
|
3764
3797
|
.style('visibility', 'hidden');
|
3765
3798
|
};
|
3766
3799
|
var legendItemTextBox = {};
|
3800
|
+
c3_chart_internal_fn.clearLegendItemTextBoxCache = function () {
|
3801
|
+
legendItemTextBox = {};
|
3802
|
+
};
|
3767
3803
|
c3_chart_internal_fn.updateLegend = function (targetIds, options, transitions) {
|
3768
3804
|
var $$ = this, config = $$.config;
|
3769
3805
|
var xForLegend, xForLegendText, xForLegendRect, yForLegend, yForLegendText, yForLegendRect;
|
@@ -3967,7 +4003,7 @@
|
|
3967
4003
|
if ($$.isTargetToShow(id)) {
|
3968
4004
|
return !hasFocused || This.classed(CLASS.legendItemFocused) ? $$.opacityForLegend(This) : $$.opacityForUnfocusedLegend(This);
|
3969
4005
|
} else {
|
3970
|
-
return
|
4006
|
+
return null; // c3-legend-item-hidden will be applied
|
3971
4007
|
}
|
3972
4008
|
});
|
3973
4009
|
|
@@ -3981,6 +4017,7 @@
|
|
3981
4017
|
$$.updateSvgSize();
|
3982
4018
|
// Update g positions
|
3983
4019
|
$$.transformAll(withTransitionForTransform, transitions);
|
4020
|
+
$$.legendHasRendered = true;
|
3984
4021
|
};
|
3985
4022
|
|
3986
4023
|
c3_chart_internal_fn.initAxis = function () {
|
@@ -4300,9 +4337,19 @@
|
|
4300
4337
|
.text($$.textForY2AxisLabel.bind($$));
|
4301
4338
|
};
|
4302
4339
|
|
4303
|
-
c3_chart_internal_fn.getAxisPadding = function (padding, key, defaultValue,
|
4304
|
-
|
4305
|
-
|
4340
|
+
c3_chart_internal_fn.getAxisPadding = function (padding, key, defaultValue, domainLength) {
|
4341
|
+
if (!isValue(padding[key])) {
|
4342
|
+
return defaultValue;
|
4343
|
+
}
|
4344
|
+
if (padding.unit === 'ratio') {
|
4345
|
+
return padding[key] * domainLength;
|
4346
|
+
}
|
4347
|
+
// assume padding is pixels if unit is not specified
|
4348
|
+
return this.convertPixelsToAxisPadding(padding[key], domainLength);
|
4349
|
+
};
|
4350
|
+
c3_chart_internal_fn.convertPixelsToAxisPadding = function (pixels, domainLength) {
|
4351
|
+
var length = this.config.axis_rotated ? this.width : this.height;
|
4352
|
+
return domainLength * (pixels / length);
|
4306
4353
|
};
|
4307
4354
|
|
4308
4355
|
c3_chart_internal_fn.generateTickValues = function (values, tickCount, forTimeSeries) {
|
@@ -4353,6 +4400,7 @@
|
|
4353
4400
|
// rotate tick text if needed
|
4354
4401
|
if (!config.axis_rotated && config.axis_x_tick_rotate) {
|
4355
4402
|
$$.rotateTickText($$.axes.x, transitions.axisX, config.axis_x_tick_rotate);
|
4403
|
+
$$.rotateTickText($$.axes.subx, transitions.axisSubX, config.axis_x_tick_rotate);
|
4356
4404
|
}
|
4357
4405
|
};
|
4358
4406
|
|
@@ -4395,7 +4443,8 @@
|
|
4395
4443
|
return forHorizontal ? $$.width + 2 + left + right : $$.margin.left + 20;
|
4396
4444
|
};
|
4397
4445
|
c3_chart_internal_fn.getAxisClipHeight = function (forHorizontal) {
|
4398
|
-
|
4446
|
+
// less than 20 is not enough to show the axis label 'outer' without legend
|
4447
|
+
return (forHorizontal ? this.margin.bottom : (this.margin.top + this.height)) + 20;
|
4399
4448
|
};
|
4400
4449
|
c3_chart_internal_fn.getXAxisClipWidth = function () {
|
4401
4450
|
var $$ = this;
|
@@ -4661,15 +4710,18 @@
|
|
4661
4710
|
mainArc.enter().append('path')
|
4662
4711
|
.attr("class", $$.classArc.bind($$))
|
4663
4712
|
.style("fill", function (d) { return $$.color(d.data); })
|
4664
|
-
.style("cursor", function (d) { return config.data_selection_isselectable(d) ? "pointer" : null; })
|
4713
|
+
.style("cursor", function (d) { return config.interaction_enabled && config.data_selection_isselectable(d) ? "pointer" : null; })
|
4665
4714
|
.style("opacity", 0)
|
4666
4715
|
.each(function (d) {
|
4667
4716
|
if ($$.isGaugeType(d.data)) {
|
4668
4717
|
d.startAngle = d.endAngle = -1 * (Math.PI / 2);
|
4669
4718
|
}
|
4670
4719
|
this._current = d;
|
4671
|
-
})
|
4672
|
-
|
4720
|
+
});
|
4721
|
+
mainArc
|
4722
|
+
.attr("transform", function (d) { return !$$.isGaugeType(d.data) && withTransform ? "scale(0)" : ""; })
|
4723
|
+
.style("opacity", function (d) { return d === this._current ? 0 : 1; })
|
4724
|
+
.on('mouseover', config.interaction_enabled ? function (d) {
|
4673
4725
|
var updated, arcData;
|
4674
4726
|
if ($$.transiting) { // skip while transiting
|
4675
4727
|
return;
|
@@ -4681,14 +4733,14 @@
|
|
4681
4733
|
$$.api.focus(updated.data.id);
|
4682
4734
|
$$.toggleFocusLegend(updated.data.id, true);
|
4683
4735
|
$$.config.data_onmouseover(arcData, this);
|
4684
|
-
})
|
4685
|
-
.on('mousemove', function (d) {
|
4736
|
+
} : null)
|
4737
|
+
.on('mousemove', config.interaction_enabled ? function (d) {
|
4686
4738
|
var updated = $$.updateAngle(d),
|
4687
4739
|
arcData = $$.convertToArcData(updated),
|
4688
4740
|
selectedData = [arcData];
|
4689
4741
|
$$.showTooltip(selectedData, d3.mouse(this));
|
4690
|
-
})
|
4691
|
-
.on('mouseout', function (d) {
|
4742
|
+
} : null)
|
4743
|
+
.on('mouseout', config.interaction_enabled ? function (d) {
|
4692
4744
|
var updated, arcData;
|
4693
4745
|
if ($$.transiting) { // skip while transiting
|
4694
4746
|
return;
|
@@ -4701,16 +4753,13 @@
|
|
4701
4753
|
$$.revertLegend();
|
4702
4754
|
$$.hideTooltip();
|
4703
4755
|
$$.config.data_onmouseout(arcData, this);
|
4704
|
-
})
|
4705
|
-
.on('click', function (d, i) {
|
4756
|
+
} : null)
|
4757
|
+
.on('click', config.interaction_enabled ? function (d, i) {
|
4706
4758
|
var updated = $$.updateAngle(d),
|
4707
4759
|
arcData = $$.convertToArcData(updated);
|
4708
4760
|
if ($$.toggleShape) { $$.toggleShape(this, arcData, i); }
|
4709
4761
|
$$.config.data_onclick.call($$.api, arcData, this);
|
4710
|
-
})
|
4711
|
-
mainArc
|
4712
|
-
.attr("transform", function (d) { return !$$.isGaugeType(d.data) && withTransform ? "scale(0)" : ""; })
|
4713
|
-
.style("opacity", function (d) { return d === this._current ? 0 : 1; })
|
4762
|
+
} : null)
|
4714
4763
|
.each(function () { $$.transiting = true; })
|
4715
4764
|
.transition().duration(duration)
|
4716
4765
|
.attrTween("d", function (d) {
|
@@ -4949,7 +4998,7 @@
|
|
4949
4998
|
.attr('class', CLASS.dragarea)
|
4950
4999
|
.style('opacity', 0.1);
|
4951
5000
|
$$.dragging = true;
|
4952
|
-
$$.config.data_ondragstart();
|
5001
|
+
$$.config.data_ondragstart.call($$.api);
|
4953
5002
|
};
|
4954
5003
|
|
4955
5004
|
c3_chart_internal_fn.dragend = function () {
|
@@ -4963,7 +5012,7 @@
|
|
4963
5012
|
$$.main.selectAll('.' + CLASS.shape)
|
4964
5013
|
.classed(CLASS.INCLUDED, false);
|
4965
5014
|
$$.dragging = false;
|
4966
|
-
$$.config.data_ondragend();
|
5015
|
+
$$.config.data_ondragend.call($$.api);
|
4967
5016
|
};
|
4968
5017
|
|
4969
5018
|
|
@@ -5144,11 +5193,6 @@
|
|
5144
5193
|
// update subchart elements if needed
|
5145
5194
|
if (withSubchart) {
|
5146
5195
|
|
5147
|
-
// rotate tick text if needed
|
5148
|
-
if (!config.axis_rotated && config.axis_x_tick_rotate) {
|
5149
|
-
$$.rotateTickText($$.axes.subx, transitions.axisSubX, config.axis_x_tick_rotate);
|
5150
|
-
}
|
5151
|
-
|
5152
5196
|
// extent rect
|
5153
5197
|
if (!$$.brush.empty()) {
|
5154
5198
|
$$.brush.extent($$.x.orgDomain()).update();
|
@@ -5251,7 +5295,7 @@
|
|
5251
5295
|
.on('zoomend', function () {
|
5252
5296
|
var event = d3.event.sourceEvent;
|
5253
5297
|
// if click, do nothing. otherwise, click interaction will be canceled.
|
5254
|
-
if (event && startEvent.
|
5298
|
+
if (event && startEvent.clientX === event.clientX && startEvent.clientY === event.clientY) {
|
5255
5299
|
return;
|
5256
5300
|
}
|
5257
5301
|
$$.redrawEventRect();
|
@@ -5581,7 +5625,7 @@
|
|
5581
5625
|
};
|
5582
5626
|
c3_chart_internal_fn.selectorLegends = function (ids) {
|
5583
5627
|
var $$ = this;
|
5584
|
-
return ids.length ? ids.map(function (id) { return $$.selectorLegend(id); }) : null;
|
5628
|
+
return ids && ids.length ? ids.map(function (id) { return $$.selectorLegend(id); }) : null;
|
5585
5629
|
};
|
5586
5630
|
|
5587
5631
|
var isValue = c3_chart_internal_fn.isValue = function (v) {
|
@@ -5680,7 +5724,9 @@
|
|
5680
5724
|
if ($$.hasArcType()) {
|
5681
5725
|
$$.unexpandArc(targetIds);
|
5682
5726
|
}
|
5683
|
-
$$.
|
5727
|
+
if ($$.config.legend_show) {
|
5728
|
+
$$.showLegend(targetIds.filter($$.isLegendToShow.bind($$)));
|
5729
|
+
}
|
5684
5730
|
|
5685
5731
|
$$.focusedTargetIds = [];
|
5686
5732
|
$$.defocusedTargetIds = [];
|
@@ -5730,9 +5776,11 @@
|
|
5730
5776
|
$$.redraw({withUpdateOrgXDomain: true, withUpdateXDomain: true, withLegend: true});
|
5731
5777
|
};
|
5732
5778
|
|
5733
|
-
c3_chart_fn.toggle = function (
|
5734
|
-
var $$ = this.internal;
|
5735
|
-
$$.
|
5779
|
+
c3_chart_fn.toggle = function (targetIds) {
|
5780
|
+
var that = this, $$ = this.internal;
|
5781
|
+
$$.mapToTargetIds(targetIds).forEach(function (targetId) {
|
5782
|
+
$$.isTargetToShow(targetId) ? that.hide(targetId) : that.show(targetId);
|
5783
|
+
});
|
5736
5784
|
};
|
5737
5785
|
|
5738
5786
|
c3_chart_fn.zoom = function (domain) {
|
@@ -5948,7 +5996,8 @@
|
|
5948
5996
|
},
|
5949
5997
|
withLegend: true,
|
5950
5998
|
withTransition: orgDataCount > 1,
|
5951
|
-
withTrimXDomain: false
|
5999
|
+
withTrimXDomain: false,
|
6000
|
+
withUpdateXAxis: true,
|
5952
6001
|
});
|
5953
6002
|
};
|
5954
6003
|
|
@@ -6274,6 +6323,7 @@
|
|
6274
6323
|
return values;
|
6275
6324
|
};
|
6276
6325
|
c3_chart_fn.data.names = function (names) {
|
6326
|
+
this.internal.clearLegendItemTextBoxCache();
|
6277
6327
|
return this.internal.updateDataAttributes('names', names);
|
6278
6328
|
};
|
6279
6329
|
c3_chart_fn.data.colors = function (colors) {
|
@@ -6600,7 +6650,7 @@
|
|
6600
6650
|
var dy = sizeFor1Char.h;
|
6601
6651
|
if (i === 0) {
|
6602
6652
|
if (orient === 'left' || orient === 'right') {
|
6603
|
-
dy = -((counts[d.index] - 1) * (sizeFor1Char.h / 2) -
|
6653
|
+
dy = -((counts[d.index] - 1) * (sizeFor1Char.h / 2) - 3);
|
6604
6654
|
} else {
|
6605
6655
|
dy = ".71em";
|
6606
6656
|
}
|
@@ -6609,7 +6659,7 @@
|
|
6609
6659
|
}
|
6610
6660
|
|
6611
6661
|
function tickSize(d) {
|
6612
|
-
var tickPosition = scale(d) + tickOffset;
|
6662
|
+
var tickPosition = scale(d) + (tickCentered ? 0 : tickOffset);
|
6613
6663
|
return range[0] < tickPosition && tickPosition < range[1] ? innerTickSize : 0;
|
6614
6664
|
}
|
6615
6665
|
|
@@ -6621,9 +6671,10 @@
|
|
6621
6671
|
return splitted.map(function (s) {
|
6622
6672
|
return { index: i, splitted: s };
|
6623
6673
|
});
|
6624
|
-
})
|
6625
|
-
|
6626
|
-
|
6674
|
+
});
|
6675
|
+
tspan.enter().append('tspan');
|
6676
|
+
tspan.exit().remove();
|
6677
|
+
tspan.text(function (d) { return d.splitted; });
|
6627
6678
|
|
6628
6679
|
switch (orient) {
|
6629
6680
|
case "bottom":
|
@@ -99,6 +99,7 @@
|
|
99
99
|
/*-- Arc --*/
|
100
100
|
|
101
101
|
.c3-chart-arcs-title {
|
102
|
+
dominant-baseline: middle;
|
102
103
|
font-size: 1.3em;
|
103
104
|
}
|
104
105
|
|
@@ -138,6 +139,9 @@
|
|
138
139
|
.c3-legend-item {
|
139
140
|
font-size: 12px;
|
140
141
|
}
|
142
|
+
.c3-legend-item-hidden {
|
143
|
+
opacity: 0.15;
|
144
|
+
}
|
141
145
|
|
142
146
|
.c3-legend-background {
|
143
147
|
opacity: 0.75;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c3-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sunny Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This gem provides "c3 - A D3-based reusable chart library" for Rails
|
14
14
|
email:
|