chartkick 5.1.5 → 5.2.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/chartkick/version.rb +1 -1
- data/vendor/assets/javascripts/Chart.bundle.js +287 -155
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a5f1633a78d2567d005d45366a1d13e85c98feb784220658270ac32b0bd666e
|
4
|
+
data.tar.gz: b317306658b5e4f557c1acf9a6c1055acf1dff9e284f3927ebf25a60bb8c87f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83675f87191af965cdee382091eb73206f48614ba4b668619e7d396664f4695def489cccfd824d84b22d7ea1ca0fae0e866c5ecc467829115faf2e329d7538df
|
7
|
+
data.tar.gz: 73e8abf43cf9f35221610e20f5c18e0804496aa7c7197b648314e0b74a95e70106cb400511cbae9eb83b8b173d04b260991f1aee43f07a6569b37076e8fc5887
|
data/CHANGELOG.md
CHANGED
data/lib/chartkick/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Chart.js v4.
|
2
|
+
* Chart.js v4.5.0
|
3
3
|
* https://www.chartjs.org
|
4
4
|
* (c) 2025 Chart.js Contributors
|
5
5
|
* Released under the MIT License
|
@@ -5786,6 +5786,39 @@
|
|
5786
5786
|
value: function _getStackCount(index) {
|
5787
5787
|
return this._getStacks(undefined, index).length;
|
5788
5788
|
}
|
5789
|
+
}, {
|
5790
|
+
key: "_getAxisCount",
|
5791
|
+
value: function _getAxisCount() {
|
5792
|
+
return this._getAxis().length;
|
5793
|
+
}
|
5794
|
+
}, {
|
5795
|
+
key: "getFirstScaleIdForIndexAxis",
|
5796
|
+
value: function getFirstScaleIdForIndexAxis() {
|
5797
|
+
var scales = this.chart.scales;
|
5798
|
+
var indexScaleId = this.chart.options.indexAxis;
|
5799
|
+
return Object.keys(scales).filter(function (key) {
|
5800
|
+
return scales[key].axis === indexScaleId;
|
5801
|
+
}).shift();
|
5802
|
+
}
|
5803
|
+
}, {
|
5804
|
+
key: "_getAxis",
|
5805
|
+
value: function _getAxis() {
|
5806
|
+
var axis = {};
|
5807
|
+
var firstScaleAxisId = this.getFirstScaleIdForIndexAxis();
|
5808
|
+
var _iterator5 = _createForOfIteratorHelper$1(this.chart.data.datasets),
|
5809
|
+
_step5;
|
5810
|
+
try {
|
5811
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
5812
|
+
var dataset = _step5.value;
|
5813
|
+
axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;
|
5814
|
+
}
|
5815
|
+
} catch (err) {
|
5816
|
+
_iterator5.e(err);
|
5817
|
+
} finally {
|
5818
|
+
_iterator5.f();
|
5819
|
+
}
|
5820
|
+
return Object.keys(axis);
|
5821
|
+
}
|
5789
5822
|
}, {
|
5790
5823
|
key: "_getStackIndex",
|
5791
5824
|
value: function _getStackIndex(datasetIndex, name, dataIndex) {
|
@@ -5890,10 +5923,13 @@
|
|
5890
5923
|
var skipNull = options.skipNull;
|
5891
5924
|
var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);
|
5892
5925
|
var center, size;
|
5926
|
+
var axisCount = this._getAxisCount();
|
5893
5927
|
if (ruler.grouped) {
|
5894
5928
|
var stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;
|
5895
|
-
var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);
|
5896
|
-
var
|
5929
|
+
var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);
|
5930
|
+
var axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;
|
5931
|
+
var axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));
|
5932
|
+
var stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;
|
5897
5933
|
center = range.start + range.chunk * stackIndex + range.chunk / 2;
|
5898
5934
|
size = Math.min(maxBarThickness, range.chunk * range.ratio);
|
5899
5935
|
} else {
|
@@ -7398,11 +7434,11 @@
|
|
7398
7434
|
}
|
7399
7435
|
function buildStacks(layouts) {
|
7400
7436
|
var stacks = {};
|
7401
|
-
var
|
7402
|
-
|
7437
|
+
var _iterator6 = _createForOfIteratorHelper$1(layouts),
|
7438
|
+
_step6;
|
7403
7439
|
try {
|
7404
|
-
for (
|
7405
|
-
var wrap =
|
7440
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
7441
|
+
var wrap = _step6.value;
|
7406
7442
|
var stack = wrap.stack,
|
7407
7443
|
pos = wrap.pos,
|
7408
7444
|
stackWeight = wrap.stackWeight;
|
@@ -7419,9 +7455,9 @@
|
|
7419
7455
|
_stack.weight += stackWeight;
|
7420
7456
|
}
|
7421
7457
|
} catch (err) {
|
7422
|
-
|
7458
|
+
_iterator6.e(err);
|
7423
7459
|
} finally {
|
7424
|
-
|
7460
|
+
_iterator6.f();
|
7425
7461
|
}
|
7426
7462
|
return stacks;
|
7427
7463
|
}
|
@@ -7565,11 +7601,11 @@
|
|
7565
7601
|
var userPadding = params.padding;
|
7566
7602
|
var x = chartArea.x,
|
7567
7603
|
y = chartArea.y;
|
7568
|
-
var
|
7569
|
-
|
7604
|
+
var _iterator7 = _createForOfIteratorHelper$1(boxes),
|
7605
|
+
_step7;
|
7570
7606
|
try {
|
7571
|
-
for (
|
7572
|
-
var layout =
|
7607
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
7608
|
+
var layout = _step7.value;
|
7573
7609
|
var box = layout.box;
|
7574
7610
|
var stack = stacks[layout.stack] || {
|
7575
7611
|
count: 1,
|
@@ -7608,9 +7644,9 @@
|
|
7608
7644
|
}
|
7609
7645
|
}
|
7610
7646
|
} catch (err) {
|
7611
|
-
|
7647
|
+
_iterator7.e(err);
|
7612
7648
|
} finally {
|
7613
|
-
|
7649
|
+
_iterator7.f();
|
7614
7650
|
}
|
7615
7651
|
chartArea.x = x;
|
7616
7652
|
chartArea.y = y;
|
@@ -7849,37 +7885,37 @@
|
|
7849
7885
|
};
|
7850
7886
|
}
|
7851
7887
|
function nodeListContains(nodeList, canvas) {
|
7852
|
-
var
|
7853
|
-
|
7888
|
+
var _iterator8 = _createForOfIteratorHelper$1(nodeList),
|
7889
|
+
_step8;
|
7854
7890
|
try {
|
7855
|
-
for (
|
7856
|
-
var node =
|
7891
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
7892
|
+
var node = _step8.value;
|
7857
7893
|
if (node === canvas || node.contains(canvas)) {
|
7858
7894
|
return true;
|
7859
7895
|
}
|
7860
7896
|
}
|
7861
7897
|
} catch (err) {
|
7862
|
-
|
7898
|
+
_iterator8.e(err);
|
7863
7899
|
} finally {
|
7864
|
-
|
7900
|
+
_iterator8.f();
|
7865
7901
|
}
|
7866
7902
|
}
|
7867
7903
|
function createAttachObserver(chart, type, listener) {
|
7868
7904
|
var canvas = chart.canvas;
|
7869
7905
|
var observer = new MutationObserver(function (entries) {
|
7870
7906
|
var trigger = false;
|
7871
|
-
var
|
7872
|
-
|
7907
|
+
var _iterator9 = _createForOfIteratorHelper$1(entries),
|
7908
|
+
_step9;
|
7873
7909
|
try {
|
7874
|
-
for (
|
7875
|
-
var entry =
|
7910
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
7911
|
+
var entry = _step9.value;
|
7876
7912
|
trigger = trigger || nodeListContains(entry.addedNodes, canvas);
|
7877
7913
|
trigger = trigger && !nodeListContains(entry.removedNodes, canvas);
|
7878
7914
|
}
|
7879
7915
|
} catch (err) {
|
7880
|
-
|
7916
|
+
_iterator9.e(err);
|
7881
7917
|
} finally {
|
7882
|
-
|
7918
|
+
_iterator9.f();
|
7883
7919
|
}
|
7884
7920
|
if (trigger) {
|
7885
7921
|
listener();
|
@@ -7895,18 +7931,18 @@
|
|
7895
7931
|
var canvas = chart.canvas;
|
7896
7932
|
var observer = new MutationObserver(function (entries) {
|
7897
7933
|
var trigger = false;
|
7898
|
-
var
|
7899
|
-
|
7934
|
+
var _iterator10 = _createForOfIteratorHelper$1(entries),
|
7935
|
+
_step10;
|
7900
7936
|
try {
|
7901
|
-
for (
|
7902
|
-
var entry =
|
7937
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
7938
|
+
var entry = _step10.value;
|
7903
7939
|
trigger = trigger || nodeListContains(entry.removedNodes, canvas);
|
7904
7940
|
trigger = trigger && !nodeListContains(entry.addedNodes, canvas);
|
7905
7941
|
}
|
7906
7942
|
} catch (err) {
|
7907
|
-
|
7943
|
+
_iterator10.e(err);
|
7908
7944
|
} finally {
|
7909
|
-
|
7945
|
+
_iterator10.f();
|
7910
7946
|
}
|
7911
7947
|
if (trigger) {
|
7912
7948
|
listener();
|
@@ -9555,11 +9591,11 @@
|
|
9555
9591
|
clipArea(ctx, area);
|
9556
9592
|
}
|
9557
9593
|
var items = this.getLabelItems(chartArea);
|
9558
|
-
var
|
9559
|
-
|
9594
|
+
var _iterator11 = _createForOfIteratorHelper$1(items),
|
9595
|
+
_step11;
|
9560
9596
|
try {
|
9561
|
-
for (
|
9562
|
-
var item =
|
9597
|
+
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
9598
|
+
var item = _step11.value;
|
9563
9599
|
var renderTextOptions = item.options;
|
9564
9600
|
var tickFont = item.font;
|
9565
9601
|
var label = item.label;
|
@@ -9567,9 +9603,9 @@
|
|
9567
9603
|
renderText(ctx, label, 0, y, tickFont, renderTextOptions);
|
9568
9604
|
}
|
9569
9605
|
} catch (err) {
|
9570
|
-
|
9606
|
+
_iterator11.e(err);
|
9571
9607
|
} finally {
|
9572
|
-
|
9608
|
+
_iterator11.f();
|
9573
9609
|
}
|
9574
9610
|
if (area) {
|
9575
9611
|
unclipArea(ctx);
|
@@ -9952,11 +9988,11 @@
|
|
9952
9988
|
key: "_notify",
|
9953
9989
|
value: function _notify(descriptors, chart, hook, args) {
|
9954
9990
|
args = args || {};
|
9955
|
-
var
|
9956
|
-
|
9991
|
+
var _iterator12 = _createForOfIteratorHelper$1(descriptors),
|
9992
|
+
_step12;
|
9957
9993
|
try {
|
9958
|
-
for (
|
9959
|
-
var descriptor =
|
9994
|
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
9995
|
+
var descriptor = _step12.value;
|
9960
9996
|
var plugin = descriptor.plugin;
|
9961
9997
|
var method = plugin[hook];
|
9962
9998
|
var params = [chart, args, descriptor.options];
|
@@ -9965,9 +10001,9 @@
|
|
9965
10001
|
}
|
9966
10002
|
}
|
9967
10003
|
} catch (err) {
|
9968
|
-
|
10004
|
+
_iterator12.e(err);
|
9969
10005
|
} finally {
|
9970
|
-
|
10006
|
+
_iterator12.f();
|
9971
10007
|
}
|
9972
10008
|
return true;
|
9973
10009
|
}
|
@@ -10048,11 +10084,11 @@
|
|
10048
10084
|
localIds = _ref2.localIds;
|
10049
10085
|
var result = [];
|
10050
10086
|
var context = chart.getContext();
|
10051
|
-
var
|
10052
|
-
|
10087
|
+
var _iterator13 = _createForOfIteratorHelper$1(plugins),
|
10088
|
+
_step13;
|
10053
10089
|
try {
|
10054
|
-
for (
|
10055
|
-
var plugin =
|
10090
|
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
10091
|
+
var plugin = _step13.value;
|
10056
10092
|
var id = plugin.id;
|
10057
10093
|
var opts = getOpts(options[id], all);
|
10058
10094
|
if (opts === null) {
|
@@ -10067,9 +10103,9 @@
|
|
10067
10103
|
});
|
10068
10104
|
}
|
10069
10105
|
} catch (err) {
|
10070
|
-
|
10106
|
+
_iterator13.e(err);
|
10071
10107
|
} finally {
|
10072
|
-
|
10108
|
+
_iterator13.f();
|
10073
10109
|
}
|
10074
10110
|
return result;
|
10075
10111
|
}
|
@@ -10388,17 +10424,17 @@
|
|
10388
10424
|
var subResolver = this.createResolver(scopes, context, subPrefixes);
|
10389
10425
|
options = _attachContext(resolver, context, subResolver);
|
10390
10426
|
}
|
10391
|
-
var
|
10392
|
-
|
10427
|
+
var _iterator14 = _createForOfIteratorHelper$1(names),
|
10428
|
+
_step14;
|
10393
10429
|
try {
|
10394
|
-
for (
|
10395
|
-
var prop =
|
10430
|
+
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
|
10431
|
+
var prop = _step14.value;
|
10396
10432
|
result[prop] = options[prop];
|
10397
10433
|
}
|
10398
10434
|
} catch (err) {
|
10399
|
-
|
10435
|
+
_iterator14.e(err);
|
10400
10436
|
} finally {
|
10401
|
-
|
10437
|
+
_iterator14.f();
|
10402
10438
|
}
|
10403
10439
|
return result;
|
10404
10440
|
}
|
@@ -10442,11 +10478,11 @@
|
|
10442
10478
|
var _descriptors2 = _descriptors(proxy),
|
10443
10479
|
isScriptable = _descriptors2.isScriptable,
|
10444
10480
|
isIndexable = _descriptors2.isIndexable;
|
10445
|
-
var
|
10446
|
-
|
10481
|
+
var _iterator15 = _createForOfIteratorHelper$1(names),
|
10482
|
+
_step15;
|
10447
10483
|
try {
|
10448
|
-
for (
|
10449
|
-
var prop =
|
10484
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
10485
|
+
var prop = _step15.value;
|
10450
10486
|
var scriptable = isScriptable(prop);
|
10451
10487
|
var indexable = isIndexable(prop);
|
10452
10488
|
var value = (indexable || scriptable) && proxy[prop];
|
@@ -10455,13 +10491,13 @@
|
|
10455
10491
|
}
|
10456
10492
|
}
|
10457
10493
|
} catch (err) {
|
10458
|
-
|
10494
|
+
_iterator15.e(err);
|
10459
10495
|
} finally {
|
10460
|
-
|
10496
|
+
_iterator15.f();
|
10461
10497
|
}
|
10462
10498
|
return false;
|
10463
10499
|
}
|
10464
|
-
var version = "4.
|
10500
|
+
var version = "4.5.0";
|
10465
10501
|
var KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];
|
10466
10502
|
function positionIsHorizontal(position, axis) {
|
10467
10503
|
return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';
|
@@ -10911,21 +10947,21 @@
|
|
10911
10947
|
value: function _updateHiddenIndices() {
|
10912
10948
|
var _hiddenIndices = this._hiddenIndices;
|
10913
10949
|
var changes = this._getUniformDataChanges() || [];
|
10914
|
-
var
|
10915
|
-
|
10950
|
+
var _iterator16 = _createForOfIteratorHelper$1(changes),
|
10951
|
+
_step16;
|
10916
10952
|
try {
|
10917
|
-
for (
|
10918
|
-
var
|
10919
|
-
method =
|
10920
|
-
start =
|
10921
|
-
count =
|
10953
|
+
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
|
10954
|
+
var _step16$value = _step16.value,
|
10955
|
+
method = _step16$value.method,
|
10956
|
+
start = _step16$value.start,
|
10957
|
+
count = _step16$value.count;
|
10922
10958
|
var move = method === '_removeElements' ? -count : count;
|
10923
10959
|
moveNumericKeys(_hiddenIndices, start, move);
|
10924
10960
|
}
|
10925
10961
|
} catch (err) {
|
10926
|
-
|
10962
|
+
_iterator16.e(err);
|
10927
10963
|
} finally {
|
10928
|
-
|
10964
|
+
_iterator16.f();
|
10929
10965
|
}
|
10930
10966
|
}
|
10931
10967
|
}, {
|
@@ -11535,6 +11571,40 @@
|
|
11535
11571
|
return chart._plugins.invalidate();
|
11536
11572
|
});
|
11537
11573
|
}
|
11574
|
+
function clipSelf(ctx, element, endAngle) {
|
11575
|
+
var startAngle = element.startAngle,
|
11576
|
+
x = element.x,
|
11577
|
+
y = element.y,
|
11578
|
+
outerRadius = element.outerRadius,
|
11579
|
+
innerRadius = element.innerRadius,
|
11580
|
+
options = element.options;
|
11581
|
+
var borderWidth = options.borderWidth,
|
11582
|
+
borderJoinStyle = options.borderJoinStyle;
|
11583
|
+
var outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));
|
11584
|
+
ctx.beginPath();
|
11585
|
+
ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);
|
11586
|
+
if (innerRadius > 0) {
|
11587
|
+
var innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));
|
11588
|
+
ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);
|
11589
|
+
} else {
|
11590
|
+
var clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));
|
11591
|
+
if (borderJoinStyle === 'round') {
|
11592
|
+
ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);
|
11593
|
+
} else if (borderJoinStyle === 'bevel') {
|
11594
|
+
var r = 2 * clipWidth * clipWidth;
|
11595
|
+
var endX = -r * Math.cos(endAngle + PI / 2) + x;
|
11596
|
+
var endY = -r * Math.sin(endAngle + PI / 2) + y;
|
11597
|
+
var startX = r * Math.cos(startAngle + PI / 2) + x;
|
11598
|
+
var startY = r * Math.sin(startAngle + PI / 2) + y;
|
11599
|
+
ctx.lineTo(endX, endY);
|
11600
|
+
ctx.lineTo(startX, startY);
|
11601
|
+
}
|
11602
|
+
}
|
11603
|
+
ctx.closePath();
|
11604
|
+
ctx.moveTo(0, 0);
|
11605
|
+
ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
11606
|
+
ctx.clip('evenodd');
|
11607
|
+
}
|
11538
11608
|
function clipArc(ctx, element, endAngle) {
|
11539
11609
|
var startAngle = element.startAngle,
|
11540
11610
|
pixelMargin = element.pixelMargin,
|
@@ -11717,7 +11787,8 @@
|
|
11717
11787
|
var borderWidth = options.borderWidth,
|
11718
11788
|
borderJoinStyle = options.borderJoinStyle,
|
11719
11789
|
borderDash = options.borderDash,
|
11720
|
-
borderDashOffset = options.borderDashOffset
|
11790
|
+
borderDashOffset = options.borderDashOffset,
|
11791
|
+
borderRadius = options.borderRadius;
|
11721
11792
|
var inner = options.borderAlign === 'inner';
|
11722
11793
|
if (!borderWidth) {
|
11723
11794
|
return;
|
@@ -11744,6 +11815,9 @@
|
|
11744
11815
|
if (inner) {
|
11745
11816
|
clipArc(ctx, element, endAngle);
|
11746
11817
|
}
|
11818
|
+
if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {
|
11819
|
+
clipSelf(ctx, element, endAngle);
|
11820
|
+
}
|
11747
11821
|
if (!fullCircles) {
|
11748
11822
|
pathArc(ctx, element, offset, spacing, endAngle, circular);
|
11749
11823
|
ctx.stroke();
|
@@ -11861,7 +11935,8 @@
|
|
11861
11935
|
offset: 0,
|
11862
11936
|
spacing: 0,
|
11863
11937
|
angle: undefined,
|
11864
|
-
circular: true
|
11938
|
+
circular: true,
|
11939
|
+
selfJoin: false
|
11865
11940
|
});
|
11866
11941
|
_defineProperty$1(ArcElement, "defaultRoutes", {
|
11867
11942
|
backgroundColor: 'backgroundColor'
|
@@ -12027,11 +12102,11 @@
|
|
12027
12102
|
var segments = line.segments,
|
12028
12103
|
options = line.options;
|
12029
12104
|
var segmentMethod = _getSegmentMethod(line);
|
12030
|
-
var
|
12031
|
-
|
12105
|
+
var _iterator17 = _createForOfIteratorHelper$1(segments),
|
12106
|
+
_step17;
|
12032
12107
|
try {
|
12033
|
-
for (
|
12034
|
-
var segment =
|
12108
|
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
12109
|
+
var segment = _step17.value;
|
12035
12110
|
setStyle(ctx, options, segment.style);
|
12036
12111
|
ctx.beginPath();
|
12037
12112
|
if (segmentMethod(ctx, line, segment, {
|
@@ -12043,9 +12118,9 @@
|
|
12043
12118
|
ctx.stroke();
|
12044
12119
|
}
|
12045
12120
|
} catch (err) {
|
12046
|
-
|
12121
|
+
_iterator17.e(err);
|
12047
12122
|
} finally {
|
12048
|
-
|
12123
|
+
_iterator17.f();
|
12049
12124
|
}
|
12050
12125
|
}
|
12051
12126
|
var usePath2D = typeof Path2D === 'function';
|
@@ -12167,20 +12242,20 @@
|
|
12167
12242
|
var loop = this._loop;
|
12168
12243
|
start = start || 0;
|
12169
12244
|
count = count || this.points.length - start;
|
12170
|
-
var
|
12171
|
-
|
12245
|
+
var _iterator18 = _createForOfIteratorHelper$1(segments),
|
12246
|
+
_step18;
|
12172
12247
|
try {
|
12173
|
-
for (
|
12174
|
-
var segment =
|
12248
|
+
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
|
12249
|
+
var segment = _step18.value;
|
12175
12250
|
loop &= segmentMethod(ctx, this, segment, {
|
12176
12251
|
start: start,
|
12177
12252
|
end: start + count - 1
|
12178
12253
|
});
|
12179
12254
|
}
|
12180
12255
|
} catch (err) {
|
12181
|
-
|
12256
|
+
_iterator18.e(err);
|
12182
12257
|
} finally {
|
12183
|
-
|
12258
|
+
_iterator18.f();
|
12184
12259
|
}
|
12185
12260
|
return !!loop;
|
12186
12261
|
}
|
@@ -12829,11 +12904,11 @@
|
|
12829
12904
|
var points = line.points;
|
12830
12905
|
var tpoints = target.points;
|
12831
12906
|
var parts = [];
|
12832
|
-
var
|
12833
|
-
|
12907
|
+
var _iterator19 = _createForOfIteratorHelper$1(segments),
|
12908
|
+
_step19;
|
12834
12909
|
try {
|
12835
|
-
for (
|
12836
|
-
var segment =
|
12910
|
+
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
|
12911
|
+
var segment = _step19.value;
|
12837
12912
|
var start = segment.start,
|
12838
12913
|
end = segment.end;
|
12839
12914
|
end = _findSegmentEnd(start, end, points);
|
@@ -12848,18 +12923,18 @@
|
|
12848
12923
|
continue;
|
12849
12924
|
}
|
12850
12925
|
var targetSegments = _boundSegments(target, bounds);
|
12851
|
-
var
|
12852
|
-
|
12926
|
+
var _iterator20 = _createForOfIteratorHelper$1(targetSegments),
|
12927
|
+
_step20;
|
12853
12928
|
try {
|
12854
|
-
for (
|
12855
|
-
var tgt =
|
12929
|
+
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
12930
|
+
var tgt = _step20.value;
|
12856
12931
|
var subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);
|
12857
12932
|
var fillSources = _boundSegment(segment, points, subBounds);
|
12858
|
-
var
|
12859
|
-
|
12933
|
+
var _iterator21 = _createForOfIteratorHelper$1(fillSources),
|
12934
|
+
_step21;
|
12860
12935
|
try {
|
12861
|
-
for (
|
12862
|
-
var fillSource =
|
12936
|
+
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
12937
|
+
var fillSource = _step21.value;
|
12863
12938
|
parts.push({
|
12864
12939
|
source: fillSource,
|
12865
12940
|
target: tgt,
|
@@ -12868,21 +12943,21 @@
|
|
12868
12943
|
});
|
12869
12944
|
}
|
12870
12945
|
} catch (err) {
|
12871
|
-
|
12946
|
+
_iterator21.e(err);
|
12872
12947
|
} finally {
|
12873
|
-
|
12948
|
+
_iterator21.f();
|
12874
12949
|
}
|
12875
12950
|
}
|
12876
12951
|
} catch (err) {
|
12877
|
-
|
12952
|
+
_iterator20.e(err);
|
12878
12953
|
} finally {
|
12879
|
-
|
12954
|
+
_iterator20.f();
|
12880
12955
|
}
|
12881
12956
|
}
|
12882
12957
|
} catch (err) {
|
12883
|
-
|
12958
|
+
_iterator19.e(err);
|
12884
12959
|
} finally {
|
12885
|
-
|
12960
|
+
_iterator19.f();
|
12886
12961
|
}
|
12887
12962
|
return parts;
|
12888
12963
|
}
|
@@ -13287,24 +13362,41 @@
|
|
13287
13362
|
clip = cfg.clip;
|
13288
13363
|
var property = line._loop ? 'angle' : cfg.axis;
|
13289
13364
|
ctx.save();
|
13290
|
-
|
13291
|
-
|
13292
|
-
|
13293
|
-
|
13294
|
-
|
13295
|
-
|
13296
|
-
|
13297
|
-
|
13298
|
-
|
13299
|
-
|
13300
|
-
|
13301
|
-
|
13302
|
-
|
13365
|
+
var fillColor = below;
|
13366
|
+
if (below !== above) {
|
13367
|
+
if (property === 'x') {
|
13368
|
+
clipVertical(ctx, target, area.top);
|
13369
|
+
fill(ctx, {
|
13370
|
+
line: line,
|
13371
|
+
target: target,
|
13372
|
+
color: above,
|
13373
|
+
scale: scale,
|
13374
|
+
property: property,
|
13375
|
+
clip: clip
|
13376
|
+
});
|
13377
|
+
ctx.restore();
|
13378
|
+
ctx.save();
|
13379
|
+
clipVertical(ctx, target, area.bottom);
|
13380
|
+
} else if (property === 'y') {
|
13381
|
+
clipHorizontal(ctx, target, area.left);
|
13382
|
+
fill(ctx, {
|
13383
|
+
line: line,
|
13384
|
+
target: target,
|
13385
|
+
color: below,
|
13386
|
+
scale: scale,
|
13387
|
+
property: property,
|
13388
|
+
clip: clip
|
13389
|
+
});
|
13390
|
+
ctx.restore();
|
13391
|
+
ctx.save();
|
13392
|
+
clipHorizontal(ctx, target, area.right);
|
13393
|
+
fillColor = above;
|
13394
|
+
}
|
13303
13395
|
}
|
13304
13396
|
fill(ctx, {
|
13305
13397
|
line: line,
|
13306
13398
|
target: target,
|
13307
|
-
color:
|
13399
|
+
color: fillColor,
|
13308
13400
|
scale: scale,
|
13309
13401
|
property: property,
|
13310
13402
|
clip: clip
|
@@ -13317,11 +13409,11 @@
|
|
13317
13409
|
var first = true;
|
13318
13410
|
var lineLoop = false;
|
13319
13411
|
ctx.beginPath();
|
13320
|
-
var
|
13321
|
-
|
13412
|
+
var _iterator22 = _createForOfIteratorHelper$1(segments),
|
13413
|
+
_step22;
|
13322
13414
|
try {
|
13323
|
-
for (
|
13324
|
-
var segment =
|
13415
|
+
for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
|
13416
|
+
var segment = _step22.value;
|
13325
13417
|
var start = segment.start,
|
13326
13418
|
end = segment.end;
|
13327
13419
|
var firstPoint = points[start];
|
@@ -13343,14 +13435,54 @@
|
|
13343
13435
|
}
|
13344
13436
|
}
|
13345
13437
|
} catch (err) {
|
13346
|
-
|
13438
|
+
_iterator22.e(err);
|
13347
13439
|
} finally {
|
13348
|
-
|
13440
|
+
_iterator22.f();
|
13349
13441
|
}
|
13350
13442
|
ctx.lineTo(target.first().x, clipY);
|
13351
13443
|
ctx.closePath();
|
13352
13444
|
ctx.clip();
|
13353
13445
|
}
|
13446
|
+
function clipHorizontal(ctx, target, clipX) {
|
13447
|
+
var segments = target.segments,
|
13448
|
+
points = target.points;
|
13449
|
+
var first = true;
|
13450
|
+
var lineLoop = false;
|
13451
|
+
ctx.beginPath();
|
13452
|
+
var _iterator23 = _createForOfIteratorHelper$1(segments),
|
13453
|
+
_step23;
|
13454
|
+
try {
|
13455
|
+
for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
|
13456
|
+
var segment = _step23.value;
|
13457
|
+
var start = segment.start,
|
13458
|
+
end = segment.end;
|
13459
|
+
var firstPoint = points[start];
|
13460
|
+
var lastPoint = points[_findSegmentEnd(start, end, points)];
|
13461
|
+
if (first) {
|
13462
|
+
ctx.moveTo(firstPoint.x, firstPoint.y);
|
13463
|
+
first = false;
|
13464
|
+
} else {
|
13465
|
+
ctx.lineTo(clipX, firstPoint.y);
|
13466
|
+
ctx.lineTo(firstPoint.x, firstPoint.y);
|
13467
|
+
}
|
13468
|
+
lineLoop = !!target.pathSegment(ctx, segment, {
|
13469
|
+
move: lineLoop
|
13470
|
+
});
|
13471
|
+
if (lineLoop) {
|
13472
|
+
ctx.closePath();
|
13473
|
+
} else {
|
13474
|
+
ctx.lineTo(clipX, lastPoint.y);
|
13475
|
+
}
|
13476
|
+
}
|
13477
|
+
} catch (err) {
|
13478
|
+
_iterator23.e(err);
|
13479
|
+
} finally {
|
13480
|
+
_iterator23.f();
|
13481
|
+
}
|
13482
|
+
ctx.lineTo(clipX, target.first().y);
|
13483
|
+
ctx.closePath();
|
13484
|
+
ctx.clip();
|
13485
|
+
}
|
13354
13486
|
function fill(ctx, cfg) {
|
13355
13487
|
var line = cfg.line,
|
13356
13488
|
target = cfg.target,
|
@@ -13359,15 +13491,15 @@
|
|
13359
13491
|
scale = cfg.scale,
|
13360
13492
|
clip = cfg.clip;
|
13361
13493
|
var segments = _segments(line, target, property);
|
13362
|
-
var
|
13363
|
-
|
13494
|
+
var _iterator24 = _createForOfIteratorHelper$1(segments),
|
13495
|
+
_step24;
|
13364
13496
|
try {
|
13365
|
-
for (
|
13366
|
-
var
|
13367
|
-
src =
|
13368
|
-
tgt =
|
13369
|
-
start =
|
13370
|
-
end =
|
13497
|
+
for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
|
13498
|
+
var _step24$value = _step24.value,
|
13499
|
+
src = _step24$value.source,
|
13500
|
+
tgt = _step24$value.target,
|
13501
|
+
start = _step24$value.start,
|
13502
|
+
end = _step24$value.end;
|
13371
13503
|
var _src$style = src.style,
|
13372
13504
|
_src$style2 = _src$style === void 0 ? {} : _src$style,
|
13373
13505
|
_src$style2$backgroun = _src$style2.backgroundColor,
|
@@ -13399,9 +13531,9 @@
|
|
13399
13531
|
ctx.restore();
|
13400
13532
|
}
|
13401
13533
|
} catch (err) {
|
13402
|
-
|
13534
|
+
_iterator24.e(err);
|
13403
13535
|
} finally {
|
13404
|
-
|
13536
|
+
_iterator24.f();
|
13405
13537
|
}
|
13406
13538
|
}
|
13407
13539
|
function clipBounds(ctx, scale, clip, bounds) {
|
@@ -13725,11 +13857,11 @@
|
|
13725
13857
|
if (this.isHorizontal()) {
|
13726
13858
|
var row = 0;
|
13727
13859
|
var left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);
|
13728
|
-
var
|
13729
|
-
|
13860
|
+
var _iterator25 = _createForOfIteratorHelper$1(hitboxes),
|
13861
|
+
_step25;
|
13730
13862
|
try {
|
13731
|
-
for (
|
13732
|
-
var hitbox =
|
13863
|
+
for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
|
13864
|
+
var hitbox = _step25.value;
|
13733
13865
|
if (row !== hitbox.row) {
|
13734
13866
|
row = hitbox.row;
|
13735
13867
|
left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);
|
@@ -13739,18 +13871,18 @@
|
|
13739
13871
|
left += hitbox.width + padding;
|
13740
13872
|
}
|
13741
13873
|
} catch (err) {
|
13742
|
-
|
13874
|
+
_iterator25.e(err);
|
13743
13875
|
} finally {
|
13744
|
-
|
13876
|
+
_iterator25.f();
|
13745
13877
|
}
|
13746
13878
|
} else {
|
13747
13879
|
var col = 0;
|
13748
13880
|
var top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);
|
13749
|
-
var
|
13750
|
-
|
13881
|
+
var _iterator26 = _createForOfIteratorHelper$1(hitboxes),
|
13882
|
+
_step26;
|
13751
13883
|
try {
|
13752
|
-
for (
|
13753
|
-
var _hitbox =
|
13884
|
+
for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
|
13885
|
+
var _hitbox = _step26.value;
|
13754
13886
|
if (_hitbox.col !== col) {
|
13755
13887
|
col = _hitbox.col;
|
13756
13888
|
top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);
|
@@ -13761,9 +13893,9 @@
|
|
13761
13893
|
top += _hitbox.height + padding;
|
13762
13894
|
}
|
13763
13895
|
} catch (err) {
|
13764
|
-
|
13896
|
+
_iterator26.e(err);
|
13765
13897
|
} finally {
|
13766
|
-
|
13898
|
+
_iterator26.f();
|
13767
13899
|
}
|
13768
13900
|
}
|
13769
13901
|
}
|
@@ -15491,21 +15623,21 @@
|
|
15491
15623
|
var added = this._addedLabels;
|
15492
15624
|
if (added.length) {
|
15493
15625
|
var labels = this.getLabels();
|
15494
|
-
var
|
15495
|
-
|
15626
|
+
var _iterator27 = _createForOfIteratorHelper$1(added),
|
15627
|
+
_step27;
|
15496
15628
|
try {
|
15497
|
-
for (
|
15498
|
-
var
|
15499
|
-
_index3 =
|
15500
|
-
label =
|
15629
|
+
for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
|
15630
|
+
var _step27$value = _step27.value,
|
15631
|
+
_index3 = _step27$value.index,
|
15632
|
+
label = _step27$value.label;
|
15501
15633
|
if (labels[_index3] === label) {
|
15502
15634
|
labels.splice(_index3, 1);
|
15503
15635
|
}
|
15504
15636
|
}
|
15505
15637
|
} catch (err) {
|
15506
|
-
|
15638
|
+
_iterator27.e(err);
|
15507
15639
|
} finally {
|
15508
|
-
|
15640
|
+
_iterator27.f();
|
15509
15641
|
}
|
15510
15642
|
this._addedLabels = [];
|
15511
15643
|
}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chartkick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
email: andrew@ankane.org
|
13
13
|
executables: []
|
@@ -42,14 +42,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '3.
|
45
|
+
version: '3.2'
|
46
46
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
requirements: []
|
52
|
-
rubygems_version: 3.6.
|
52
|
+
rubygems_version: 3.6.7
|
53
53
|
specification_version: 4
|
54
54
|
summary: Create beautiful JavaScript charts with one line of Ruby
|
55
55
|
test_files: []
|