chartkick 5.1.4 → 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 +9 -0
- data/lib/chartkick/version.rb +1 -1
- data/vendor/assets/javascripts/Chart.bundle.js +357 -193
- 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
|
@@ -4047,6 +4047,35 @@
|
|
4047
4047
|
};
|
4048
4048
|
return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);
|
4049
4049
|
}
|
4050
|
+
function getSizeForArea(scale, chartArea, field) {
|
4051
|
+
return scale.options.clip ? scale[field] : chartArea[field];
|
4052
|
+
}
|
4053
|
+
function getDatasetArea(meta, chartArea) {
|
4054
|
+
var xScale = meta.xScale,
|
4055
|
+
yScale = meta.yScale;
|
4056
|
+
if (xScale && yScale) {
|
4057
|
+
return {
|
4058
|
+
left: getSizeForArea(xScale, chartArea, 'left'),
|
4059
|
+
right: getSizeForArea(xScale, chartArea, 'right'),
|
4060
|
+
top: getSizeForArea(yScale, chartArea, 'top'),
|
4061
|
+
bottom: getSizeForArea(yScale, chartArea, 'bottom')
|
4062
|
+
};
|
4063
|
+
}
|
4064
|
+
return chartArea;
|
4065
|
+
}
|
4066
|
+
function getDatasetClipArea(chart, meta) {
|
4067
|
+
var clip = meta._clip;
|
4068
|
+
if (clip.disabled) {
|
4069
|
+
return false;
|
4070
|
+
}
|
4071
|
+
var area = getDatasetArea(meta, chart.chartArea);
|
4072
|
+
return {
|
4073
|
+
left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),
|
4074
|
+
right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),
|
4075
|
+
top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),
|
4076
|
+
bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)
|
4077
|
+
};
|
4078
|
+
}
|
4050
4079
|
|
4051
4080
|
var Animator = /*#__PURE__*/function () {
|
4052
4081
|
function Animator() {
|
@@ -5757,6 +5786,39 @@
|
|
5757
5786
|
value: function _getStackCount(index) {
|
5758
5787
|
return this._getStacks(undefined, index).length;
|
5759
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
|
+
}
|
5760
5822
|
}, {
|
5761
5823
|
key: "_getStackIndex",
|
5762
5824
|
value: function _getStackIndex(datasetIndex, name, dataIndex) {
|
@@ -5861,10 +5923,13 @@
|
|
5861
5923
|
var skipNull = options.skipNull;
|
5862
5924
|
var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);
|
5863
5925
|
var center, size;
|
5926
|
+
var axisCount = this._getAxisCount();
|
5864
5927
|
if (ruler.grouped) {
|
5865
5928
|
var stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;
|
5866
|
-
var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);
|
5867
|
-
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;
|
5868
5933
|
center = range.start + range.chunk * stackIndex + range.chunk / 2;
|
5869
5934
|
size = Math.min(maxBarThickness, range.chunk * range.ratio);
|
5870
5935
|
} else {
|
@@ -7369,11 +7434,11 @@
|
|
7369
7434
|
}
|
7370
7435
|
function buildStacks(layouts) {
|
7371
7436
|
var stacks = {};
|
7372
|
-
var
|
7373
|
-
|
7437
|
+
var _iterator6 = _createForOfIteratorHelper$1(layouts),
|
7438
|
+
_step6;
|
7374
7439
|
try {
|
7375
|
-
for (
|
7376
|
-
var wrap =
|
7440
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
7441
|
+
var wrap = _step6.value;
|
7377
7442
|
var stack = wrap.stack,
|
7378
7443
|
pos = wrap.pos,
|
7379
7444
|
stackWeight = wrap.stackWeight;
|
@@ -7390,9 +7455,9 @@
|
|
7390
7455
|
_stack.weight += stackWeight;
|
7391
7456
|
}
|
7392
7457
|
} catch (err) {
|
7393
|
-
|
7458
|
+
_iterator6.e(err);
|
7394
7459
|
} finally {
|
7395
|
-
|
7460
|
+
_iterator6.f();
|
7396
7461
|
}
|
7397
7462
|
return stacks;
|
7398
7463
|
}
|
@@ -7536,11 +7601,11 @@
|
|
7536
7601
|
var userPadding = params.padding;
|
7537
7602
|
var x = chartArea.x,
|
7538
7603
|
y = chartArea.y;
|
7539
|
-
var
|
7540
|
-
|
7604
|
+
var _iterator7 = _createForOfIteratorHelper$1(boxes),
|
7605
|
+
_step7;
|
7541
7606
|
try {
|
7542
|
-
for (
|
7543
|
-
var layout =
|
7607
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
7608
|
+
var layout = _step7.value;
|
7544
7609
|
var box = layout.box;
|
7545
7610
|
var stack = stacks[layout.stack] || {
|
7546
7611
|
count: 1,
|
@@ -7579,9 +7644,9 @@
|
|
7579
7644
|
}
|
7580
7645
|
}
|
7581
7646
|
} catch (err) {
|
7582
|
-
|
7647
|
+
_iterator7.e(err);
|
7583
7648
|
} finally {
|
7584
|
-
|
7649
|
+
_iterator7.f();
|
7585
7650
|
}
|
7586
7651
|
chartArea.x = x;
|
7587
7652
|
chartArea.y = y;
|
@@ -7820,37 +7885,37 @@
|
|
7820
7885
|
};
|
7821
7886
|
}
|
7822
7887
|
function nodeListContains(nodeList, canvas) {
|
7823
|
-
var
|
7824
|
-
|
7888
|
+
var _iterator8 = _createForOfIteratorHelper$1(nodeList),
|
7889
|
+
_step8;
|
7825
7890
|
try {
|
7826
|
-
for (
|
7827
|
-
var node =
|
7891
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
7892
|
+
var node = _step8.value;
|
7828
7893
|
if (node === canvas || node.contains(canvas)) {
|
7829
7894
|
return true;
|
7830
7895
|
}
|
7831
7896
|
}
|
7832
7897
|
} catch (err) {
|
7833
|
-
|
7898
|
+
_iterator8.e(err);
|
7834
7899
|
} finally {
|
7835
|
-
|
7900
|
+
_iterator8.f();
|
7836
7901
|
}
|
7837
7902
|
}
|
7838
7903
|
function createAttachObserver(chart, type, listener) {
|
7839
7904
|
var canvas = chart.canvas;
|
7840
7905
|
var observer = new MutationObserver(function (entries) {
|
7841
7906
|
var trigger = false;
|
7842
|
-
var
|
7843
|
-
|
7907
|
+
var _iterator9 = _createForOfIteratorHelper$1(entries),
|
7908
|
+
_step9;
|
7844
7909
|
try {
|
7845
|
-
for (
|
7846
|
-
var entry =
|
7910
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
7911
|
+
var entry = _step9.value;
|
7847
7912
|
trigger = trigger || nodeListContains(entry.addedNodes, canvas);
|
7848
7913
|
trigger = trigger && !nodeListContains(entry.removedNodes, canvas);
|
7849
7914
|
}
|
7850
7915
|
} catch (err) {
|
7851
|
-
|
7916
|
+
_iterator9.e(err);
|
7852
7917
|
} finally {
|
7853
|
-
|
7918
|
+
_iterator9.f();
|
7854
7919
|
}
|
7855
7920
|
if (trigger) {
|
7856
7921
|
listener();
|
@@ -7866,18 +7931,18 @@
|
|
7866
7931
|
var canvas = chart.canvas;
|
7867
7932
|
var observer = new MutationObserver(function (entries) {
|
7868
7933
|
var trigger = false;
|
7869
|
-
var
|
7870
|
-
|
7934
|
+
var _iterator10 = _createForOfIteratorHelper$1(entries),
|
7935
|
+
_step10;
|
7871
7936
|
try {
|
7872
|
-
for (
|
7873
|
-
var entry =
|
7937
|
+
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
|
7938
|
+
var entry = _step10.value;
|
7874
7939
|
trigger = trigger || nodeListContains(entry.removedNodes, canvas);
|
7875
7940
|
trigger = trigger && !nodeListContains(entry.addedNodes, canvas);
|
7876
7941
|
}
|
7877
7942
|
} catch (err) {
|
7878
|
-
|
7943
|
+
_iterator10.e(err);
|
7879
7944
|
} finally {
|
7880
|
-
|
7945
|
+
_iterator10.f();
|
7881
7946
|
}
|
7882
7947
|
if (trigger) {
|
7883
7948
|
listener();
|
@@ -9526,11 +9591,11 @@
|
|
9526
9591
|
clipArea(ctx, area);
|
9527
9592
|
}
|
9528
9593
|
var items = this.getLabelItems(chartArea);
|
9529
|
-
var
|
9530
|
-
|
9594
|
+
var _iterator11 = _createForOfIteratorHelper$1(items),
|
9595
|
+
_step11;
|
9531
9596
|
try {
|
9532
|
-
for (
|
9533
|
-
var item =
|
9597
|
+
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
|
9598
|
+
var item = _step11.value;
|
9534
9599
|
var renderTextOptions = item.options;
|
9535
9600
|
var tickFont = item.font;
|
9536
9601
|
var label = item.label;
|
@@ -9538,9 +9603,9 @@
|
|
9538
9603
|
renderText(ctx, label, 0, y, tickFont, renderTextOptions);
|
9539
9604
|
}
|
9540
9605
|
} catch (err) {
|
9541
|
-
|
9606
|
+
_iterator11.e(err);
|
9542
9607
|
} finally {
|
9543
|
-
|
9608
|
+
_iterator11.f();
|
9544
9609
|
}
|
9545
9610
|
if (area) {
|
9546
9611
|
unclipArea(ctx);
|
@@ -9923,11 +9988,11 @@
|
|
9923
9988
|
key: "_notify",
|
9924
9989
|
value: function _notify(descriptors, chart, hook, args) {
|
9925
9990
|
args = args || {};
|
9926
|
-
var
|
9927
|
-
|
9991
|
+
var _iterator12 = _createForOfIteratorHelper$1(descriptors),
|
9992
|
+
_step12;
|
9928
9993
|
try {
|
9929
|
-
for (
|
9930
|
-
var descriptor =
|
9994
|
+
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
|
9995
|
+
var descriptor = _step12.value;
|
9931
9996
|
var plugin = descriptor.plugin;
|
9932
9997
|
var method = plugin[hook];
|
9933
9998
|
var params = [chart, args, descriptor.options];
|
@@ -9936,9 +10001,9 @@
|
|
9936
10001
|
}
|
9937
10002
|
}
|
9938
10003
|
} catch (err) {
|
9939
|
-
|
10004
|
+
_iterator12.e(err);
|
9940
10005
|
} finally {
|
9941
|
-
|
10006
|
+
_iterator12.f();
|
9942
10007
|
}
|
9943
10008
|
return true;
|
9944
10009
|
}
|
@@ -10019,11 +10084,11 @@
|
|
10019
10084
|
localIds = _ref2.localIds;
|
10020
10085
|
var result = [];
|
10021
10086
|
var context = chart.getContext();
|
10022
|
-
var
|
10023
|
-
|
10087
|
+
var _iterator13 = _createForOfIteratorHelper$1(plugins),
|
10088
|
+
_step13;
|
10024
10089
|
try {
|
10025
|
-
for (
|
10026
|
-
var plugin =
|
10090
|
+
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
|
10091
|
+
var plugin = _step13.value;
|
10027
10092
|
var id = plugin.id;
|
10028
10093
|
var opts = getOpts(options[id], all);
|
10029
10094
|
if (opts === null) {
|
@@ -10038,9 +10103,9 @@
|
|
10038
10103
|
});
|
10039
10104
|
}
|
10040
10105
|
} catch (err) {
|
10041
|
-
|
10106
|
+
_iterator13.e(err);
|
10042
10107
|
} finally {
|
10043
|
-
|
10108
|
+
_iterator13.f();
|
10044
10109
|
}
|
10045
10110
|
return result;
|
10046
10111
|
}
|
@@ -10359,17 +10424,17 @@
|
|
10359
10424
|
var subResolver = this.createResolver(scopes, context, subPrefixes);
|
10360
10425
|
options = _attachContext(resolver, context, subResolver);
|
10361
10426
|
}
|
10362
|
-
var
|
10363
|
-
|
10427
|
+
var _iterator14 = _createForOfIteratorHelper$1(names),
|
10428
|
+
_step14;
|
10364
10429
|
try {
|
10365
|
-
for (
|
10366
|
-
var prop =
|
10430
|
+
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
|
10431
|
+
var prop = _step14.value;
|
10367
10432
|
result[prop] = options[prop];
|
10368
10433
|
}
|
10369
10434
|
} catch (err) {
|
10370
|
-
|
10435
|
+
_iterator14.e(err);
|
10371
10436
|
} finally {
|
10372
|
-
|
10437
|
+
_iterator14.f();
|
10373
10438
|
}
|
10374
10439
|
return result;
|
10375
10440
|
}
|
@@ -10413,11 +10478,11 @@
|
|
10413
10478
|
var _descriptors2 = _descriptors(proxy),
|
10414
10479
|
isScriptable = _descriptors2.isScriptable,
|
10415
10480
|
isIndexable = _descriptors2.isIndexable;
|
10416
|
-
var
|
10417
|
-
|
10481
|
+
var _iterator15 = _createForOfIteratorHelper$1(names),
|
10482
|
+
_step15;
|
10418
10483
|
try {
|
10419
|
-
for (
|
10420
|
-
var prop =
|
10484
|
+
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
|
10485
|
+
var prop = _step15.value;
|
10421
10486
|
var scriptable = isScriptable(prop);
|
10422
10487
|
var indexable = isIndexable(prop);
|
10423
10488
|
var value = (indexable || scriptable) && proxy[prop];
|
@@ -10426,13 +10491,13 @@
|
|
10426
10491
|
}
|
10427
10492
|
}
|
10428
10493
|
} catch (err) {
|
10429
|
-
|
10494
|
+
_iterator15.e(err);
|
10430
10495
|
} finally {
|
10431
|
-
|
10496
|
+
_iterator15.f();
|
10432
10497
|
}
|
10433
10498
|
return false;
|
10434
10499
|
}
|
10435
|
-
var version = "4.
|
10500
|
+
var version = "4.5.0";
|
10436
10501
|
var KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];
|
10437
10502
|
function positionIsHorizontal(position, axis) {
|
10438
10503
|
return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';
|
@@ -10494,22 +10559,6 @@
|
|
10494
10559
|
}
|
10495
10560
|
return e;
|
10496
10561
|
}
|
10497
|
-
function getSizeForArea(scale, chartArea, field) {
|
10498
|
-
return scale.options.clip ? scale[field] : chartArea[field];
|
10499
|
-
}
|
10500
|
-
function getDatasetArea(meta, chartArea) {
|
10501
|
-
var xScale = meta.xScale,
|
10502
|
-
yScale = meta.yScale;
|
10503
|
-
if (xScale && yScale) {
|
10504
|
-
return {
|
10505
|
-
left: getSizeForArea(xScale, chartArea, 'left'),
|
10506
|
-
right: getSizeForArea(xScale, chartArea, 'right'),
|
10507
|
-
top: getSizeForArea(yScale, chartArea, 'top'),
|
10508
|
-
bottom: getSizeForArea(yScale, chartArea, 'bottom')
|
10509
|
-
};
|
10510
|
-
}
|
10511
|
-
return chartArea;
|
10512
|
-
}
|
10513
10562
|
var Chart = /*#__PURE__*/function () {
|
10514
10563
|
function Chart(item, userConfig) {
|
10515
10564
|
var _this12 = this;
|
@@ -10898,21 +10947,21 @@
|
|
10898
10947
|
value: function _updateHiddenIndices() {
|
10899
10948
|
var _hiddenIndices = this._hiddenIndices;
|
10900
10949
|
var changes = this._getUniformDataChanges() || [];
|
10901
|
-
var
|
10902
|
-
|
10950
|
+
var _iterator16 = _createForOfIteratorHelper$1(changes),
|
10951
|
+
_step16;
|
10903
10952
|
try {
|
10904
|
-
for (
|
10905
|
-
var
|
10906
|
-
method =
|
10907
|
-
start =
|
10908
|
-
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;
|
10909
10958
|
var move = method === '_removeElements' ? -count : count;
|
10910
10959
|
moveNumericKeys(_hiddenIndices, start, move);
|
10911
10960
|
}
|
10912
10961
|
} catch (err) {
|
10913
|
-
|
10962
|
+
_iterator16.e(err);
|
10914
10963
|
} finally {
|
10915
|
-
|
10964
|
+
_iterator16.f();
|
10916
10965
|
}
|
10917
10966
|
}
|
10918
10967
|
}, {
|
@@ -11099,27 +11148,20 @@
|
|
11099
11148
|
key: "_drawDataset",
|
11100
11149
|
value: function _drawDataset(meta) {
|
11101
11150
|
var ctx = this.ctx;
|
11102
|
-
var clip = meta._clip;
|
11103
|
-
var useClip = !clip.disabled;
|
11104
|
-
var area = getDatasetArea(meta, this.chartArea);
|
11105
11151
|
var args = {
|
11106
11152
|
meta: meta,
|
11107
11153
|
index: meta.index,
|
11108
11154
|
cancelable: true
|
11109
11155
|
};
|
11156
|
+
var clip = getDatasetClipArea(this, meta);
|
11110
11157
|
if (this.notifyPlugins('beforeDatasetDraw', args) === false) {
|
11111
11158
|
return;
|
11112
11159
|
}
|
11113
|
-
if (
|
11114
|
-
clipArea(ctx,
|
11115
|
-
left: clip.left === false ? 0 : area.left - clip.left,
|
11116
|
-
right: clip.right === false ? this.width : area.right + clip.right,
|
11117
|
-
top: clip.top === false ? 0 : area.top - clip.top,
|
11118
|
-
bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom
|
11119
|
-
});
|
11160
|
+
if (clip) {
|
11161
|
+
clipArea(ctx, clip);
|
11120
11162
|
}
|
11121
11163
|
meta.controller.draw();
|
11122
|
-
if (
|
11164
|
+
if (clip) {
|
11123
11165
|
unclipArea(ctx);
|
11124
11166
|
}
|
11125
11167
|
args.cancelable = false;
|
@@ -11529,6 +11571,40 @@
|
|
11529
11571
|
return chart._plugins.invalidate();
|
11530
11572
|
});
|
11531
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
|
+
}
|
11532
11608
|
function clipArc(ctx, element, endAngle) {
|
11533
11609
|
var startAngle = element.startAngle,
|
11534
11610
|
pixelMargin = element.pixelMargin,
|
@@ -11711,7 +11787,8 @@
|
|
11711
11787
|
var borderWidth = options.borderWidth,
|
11712
11788
|
borderJoinStyle = options.borderJoinStyle,
|
11713
11789
|
borderDash = options.borderDash,
|
11714
|
-
borderDashOffset = options.borderDashOffset
|
11790
|
+
borderDashOffset = options.borderDashOffset,
|
11791
|
+
borderRadius = options.borderRadius;
|
11715
11792
|
var inner = options.borderAlign === 'inner';
|
11716
11793
|
if (!borderWidth) {
|
11717
11794
|
return;
|
@@ -11738,6 +11815,9 @@
|
|
11738
11815
|
if (inner) {
|
11739
11816
|
clipArc(ctx, element, endAngle);
|
11740
11817
|
}
|
11818
|
+
if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {
|
11819
|
+
clipSelf(ctx, element, endAngle);
|
11820
|
+
}
|
11741
11821
|
if (!fullCircles) {
|
11742
11822
|
pathArc(ctx, element, offset, spacing, endAngle, circular);
|
11743
11823
|
ctx.stroke();
|
@@ -11855,7 +11935,8 @@
|
|
11855
11935
|
offset: 0,
|
11856
11936
|
spacing: 0,
|
11857
11937
|
angle: undefined,
|
11858
|
-
circular: true
|
11938
|
+
circular: true,
|
11939
|
+
selfJoin: false
|
11859
11940
|
});
|
11860
11941
|
_defineProperty$1(ArcElement, "defaultRoutes", {
|
11861
11942
|
backgroundColor: 'backgroundColor'
|
@@ -12021,11 +12102,11 @@
|
|
12021
12102
|
var segments = line.segments,
|
12022
12103
|
options = line.options;
|
12023
12104
|
var segmentMethod = _getSegmentMethod(line);
|
12024
|
-
var
|
12025
|
-
|
12105
|
+
var _iterator17 = _createForOfIteratorHelper$1(segments),
|
12106
|
+
_step17;
|
12026
12107
|
try {
|
12027
|
-
for (
|
12028
|
-
var segment =
|
12108
|
+
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
|
12109
|
+
var segment = _step17.value;
|
12029
12110
|
setStyle(ctx, options, segment.style);
|
12030
12111
|
ctx.beginPath();
|
12031
12112
|
if (segmentMethod(ctx, line, segment, {
|
@@ -12037,9 +12118,9 @@
|
|
12037
12118
|
ctx.stroke();
|
12038
12119
|
}
|
12039
12120
|
} catch (err) {
|
12040
|
-
|
12121
|
+
_iterator17.e(err);
|
12041
12122
|
} finally {
|
12042
|
-
|
12123
|
+
_iterator17.f();
|
12043
12124
|
}
|
12044
12125
|
}
|
12045
12126
|
var usePath2D = typeof Path2D === 'function';
|
@@ -12161,20 +12242,20 @@
|
|
12161
12242
|
var loop = this._loop;
|
12162
12243
|
start = start || 0;
|
12163
12244
|
count = count || this.points.length - start;
|
12164
|
-
var
|
12165
|
-
|
12245
|
+
var _iterator18 = _createForOfIteratorHelper$1(segments),
|
12246
|
+
_step18;
|
12166
12247
|
try {
|
12167
|
-
for (
|
12168
|
-
var segment =
|
12248
|
+
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
|
12249
|
+
var segment = _step18.value;
|
12169
12250
|
loop &= segmentMethod(ctx, this, segment, {
|
12170
12251
|
start: start,
|
12171
12252
|
end: start + count - 1
|
12172
12253
|
});
|
12173
12254
|
}
|
12174
12255
|
} catch (err) {
|
12175
|
-
|
12256
|
+
_iterator18.e(err);
|
12176
12257
|
} finally {
|
12177
|
-
|
12258
|
+
_iterator18.f();
|
12178
12259
|
}
|
12179
12260
|
return !!loop;
|
12180
12261
|
}
|
@@ -12823,11 +12904,11 @@
|
|
12823
12904
|
var points = line.points;
|
12824
12905
|
var tpoints = target.points;
|
12825
12906
|
var parts = [];
|
12826
|
-
var
|
12827
|
-
|
12907
|
+
var _iterator19 = _createForOfIteratorHelper$1(segments),
|
12908
|
+
_step19;
|
12828
12909
|
try {
|
12829
|
-
for (
|
12830
|
-
var segment =
|
12910
|
+
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
|
12911
|
+
var segment = _step19.value;
|
12831
12912
|
var start = segment.start,
|
12832
12913
|
end = segment.end;
|
12833
12914
|
end = _findSegmentEnd(start, end, points);
|
@@ -12842,18 +12923,18 @@
|
|
12842
12923
|
continue;
|
12843
12924
|
}
|
12844
12925
|
var targetSegments = _boundSegments(target, bounds);
|
12845
|
-
var
|
12846
|
-
|
12926
|
+
var _iterator20 = _createForOfIteratorHelper$1(targetSegments),
|
12927
|
+
_step20;
|
12847
12928
|
try {
|
12848
|
-
for (
|
12849
|
-
var tgt =
|
12929
|
+
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
12930
|
+
var tgt = _step20.value;
|
12850
12931
|
var subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);
|
12851
12932
|
var fillSources = _boundSegment(segment, points, subBounds);
|
12852
|
-
var
|
12853
|
-
|
12933
|
+
var _iterator21 = _createForOfIteratorHelper$1(fillSources),
|
12934
|
+
_step21;
|
12854
12935
|
try {
|
12855
|
-
for (
|
12856
|
-
var fillSource =
|
12936
|
+
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
|
12937
|
+
var fillSource = _step21.value;
|
12857
12938
|
parts.push({
|
12858
12939
|
source: fillSource,
|
12859
12940
|
target: tgt,
|
@@ -12862,21 +12943,21 @@
|
|
12862
12943
|
});
|
12863
12944
|
}
|
12864
12945
|
} catch (err) {
|
12865
|
-
|
12946
|
+
_iterator21.e(err);
|
12866
12947
|
} finally {
|
12867
|
-
|
12948
|
+
_iterator21.f();
|
12868
12949
|
}
|
12869
12950
|
}
|
12870
12951
|
} catch (err) {
|
12871
|
-
|
12952
|
+
_iterator20.e(err);
|
12872
12953
|
} finally {
|
12873
|
-
|
12954
|
+
_iterator20.f();
|
12874
12955
|
}
|
12875
12956
|
}
|
12876
12957
|
} catch (err) {
|
12877
|
-
|
12958
|
+
_iterator19.e(err);
|
12878
12959
|
} finally {
|
12879
|
-
|
12960
|
+
_iterator19.f();
|
12880
12961
|
}
|
12881
12962
|
return parts;
|
12882
12963
|
}
|
@@ -13241,7 +13322,9 @@
|
|
13241
13322
|
}
|
13242
13323
|
function _drawfill(ctx, source, area) {
|
13243
13324
|
var target = _getTarget(source);
|
13244
|
-
var
|
13325
|
+
var chart = source.chart,
|
13326
|
+
index = source.index,
|
13327
|
+
line = source.line,
|
13245
13328
|
scale = source.scale,
|
13246
13329
|
axis = source.axis;
|
13247
13330
|
var lineOpts = line.options;
|
@@ -13252,6 +13335,8 @@
|
|
13252
13335
|
above = _ref9$above === void 0 ? color : _ref9$above,
|
13253
13336
|
_ref9$below = _ref9.below,
|
13254
13337
|
below = _ref9$below === void 0 ? color : _ref9$below;
|
13338
|
+
var meta = chart.getDatasetMeta(index);
|
13339
|
+
var clip = getDatasetClipArea(chart, meta);
|
13255
13340
|
if (target && line.points.length) {
|
13256
13341
|
clipArea(ctx, area);
|
13257
13342
|
doFill(ctx, {
|
@@ -13261,7 +13346,8 @@
|
|
13261
13346
|
below: below,
|
13262
13347
|
area: area,
|
13263
13348
|
scale: scale,
|
13264
|
-
axis: axis
|
13349
|
+
axis: axis,
|
13350
|
+
clip: clip
|
13265
13351
|
});
|
13266
13352
|
unclipArea(ctx);
|
13267
13353
|
}
|
@@ -13272,28 +13358,48 @@
|
|
13272
13358
|
above = cfg.above,
|
13273
13359
|
below = cfg.below,
|
13274
13360
|
area = cfg.area,
|
13275
|
-
scale = cfg.scale
|
13361
|
+
scale = cfg.scale,
|
13362
|
+
clip = cfg.clip;
|
13276
13363
|
var property = line._loop ? 'angle' : cfg.axis;
|
13277
13364
|
ctx.save();
|
13278
|
-
|
13279
|
-
|
13280
|
-
|
13281
|
-
|
13282
|
-
|
13283
|
-
|
13284
|
-
|
13285
|
-
|
13286
|
-
|
13287
|
-
|
13288
|
-
|
13289
|
-
|
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
|
+
}
|
13290
13395
|
}
|
13291
13396
|
fill(ctx, {
|
13292
13397
|
line: line,
|
13293
13398
|
target: target,
|
13294
|
-
color:
|
13399
|
+
color: fillColor,
|
13295
13400
|
scale: scale,
|
13296
|
-
property: property
|
13401
|
+
property: property,
|
13402
|
+
clip: clip
|
13297
13403
|
});
|
13298
13404
|
ctx.restore();
|
13299
13405
|
}
|
@@ -13303,11 +13409,11 @@
|
|
13303
13409
|
var first = true;
|
13304
13410
|
var lineLoop = false;
|
13305
13411
|
ctx.beginPath();
|
13306
|
-
var
|
13307
|
-
|
13412
|
+
var _iterator22 = _createForOfIteratorHelper$1(segments),
|
13413
|
+
_step22;
|
13308
13414
|
try {
|
13309
|
-
for (
|
13310
|
-
var segment =
|
13415
|
+
for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
|
13416
|
+
var segment = _step22.value;
|
13311
13417
|
var start = segment.start,
|
13312
13418
|
end = segment.end;
|
13313
13419
|
var firstPoint = points[start];
|
@@ -13329,30 +13435,71 @@
|
|
13329
13435
|
}
|
13330
13436
|
}
|
13331
13437
|
} catch (err) {
|
13332
|
-
|
13438
|
+
_iterator22.e(err);
|
13333
13439
|
} finally {
|
13334
|
-
|
13440
|
+
_iterator22.f();
|
13335
13441
|
}
|
13336
13442
|
ctx.lineTo(target.first().x, clipY);
|
13337
13443
|
ctx.closePath();
|
13338
13444
|
ctx.clip();
|
13339
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
|
+
}
|
13340
13486
|
function fill(ctx, cfg) {
|
13341
13487
|
var line = cfg.line,
|
13342
13488
|
target = cfg.target,
|
13343
13489
|
property = cfg.property,
|
13344
13490
|
color = cfg.color,
|
13345
|
-
scale = cfg.scale
|
13491
|
+
scale = cfg.scale,
|
13492
|
+
clip = cfg.clip;
|
13346
13493
|
var segments = _segments(line, target, property);
|
13347
|
-
var
|
13348
|
-
|
13494
|
+
var _iterator24 = _createForOfIteratorHelper$1(segments),
|
13495
|
+
_step24;
|
13349
13496
|
try {
|
13350
|
-
for (
|
13351
|
-
var
|
13352
|
-
src =
|
13353
|
-
tgt =
|
13354
|
-
start =
|
13355
|
-
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;
|
13356
13503
|
var _src$style = src.style,
|
13357
13504
|
_src$style2 = _src$style === void 0 ? {} : _src$style,
|
13358
13505
|
_src$style2$backgroun = _src$style2.backgroundColor,
|
@@ -13360,7 +13507,7 @@
|
|
13360
13507
|
var notShape = target !== true;
|
13361
13508
|
ctx.save();
|
13362
13509
|
ctx.fillStyle = backgroundColor;
|
13363
|
-
clipBounds(ctx, scale, notShape && _getBounds(property, start, end));
|
13510
|
+
clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));
|
13364
13511
|
ctx.beginPath();
|
13365
13512
|
var lineLoop = !!line.pathSegment(ctx, src);
|
13366
13513
|
var loop = void 0;
|
@@ -13384,22 +13531,38 @@
|
|
13384
13531
|
ctx.restore();
|
13385
13532
|
}
|
13386
13533
|
} catch (err) {
|
13387
|
-
|
13534
|
+
_iterator24.e(err);
|
13388
13535
|
} finally {
|
13389
|
-
|
13536
|
+
_iterator24.f();
|
13390
13537
|
}
|
13391
13538
|
}
|
13392
|
-
function clipBounds(ctx, scale, bounds) {
|
13393
|
-
var
|
13394
|
-
top = _scale$chart$chartAre.top,
|
13395
|
-
bottom = _scale$chart$chartAre.bottom;
|
13539
|
+
function clipBounds(ctx, scale, clip, bounds) {
|
13540
|
+
var chartArea = scale.chart.chartArea;
|
13396
13541
|
var _ref10 = bounds || {},
|
13397
13542
|
property = _ref10.property,
|
13398
13543
|
start = _ref10.start,
|
13399
13544
|
end = _ref10.end;
|
13400
|
-
if (property === 'x') {
|
13545
|
+
if (property === 'x' || property === 'y') {
|
13546
|
+
var left, top, right, bottom;
|
13547
|
+
if (property === 'x') {
|
13548
|
+
left = start;
|
13549
|
+
top = chartArea.top;
|
13550
|
+
right = end;
|
13551
|
+
bottom = chartArea.bottom;
|
13552
|
+
} else {
|
13553
|
+
left = chartArea.left;
|
13554
|
+
top = start;
|
13555
|
+
right = chartArea.right;
|
13556
|
+
bottom = end;
|
13557
|
+
}
|
13401
13558
|
ctx.beginPath();
|
13402
|
-
|
13559
|
+
if (clip) {
|
13560
|
+
left = Math.max(left, clip.left);
|
13561
|
+
right = Math.min(right, clip.right);
|
13562
|
+
top = Math.max(top, clip.top);
|
13563
|
+
bottom = Math.min(bottom, clip.bottom);
|
13564
|
+
}
|
13565
|
+
ctx.rect(left, top, right - left, bottom - top);
|
13403
13566
|
ctx.clip();
|
13404
13567
|
}
|
13405
13568
|
}
|
@@ -13694,11 +13857,11 @@
|
|
13694
13857
|
if (this.isHorizontal()) {
|
13695
13858
|
var row = 0;
|
13696
13859
|
var left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);
|
13697
|
-
var
|
13698
|
-
|
13860
|
+
var _iterator25 = _createForOfIteratorHelper$1(hitboxes),
|
13861
|
+
_step25;
|
13699
13862
|
try {
|
13700
|
-
for (
|
13701
|
-
var hitbox =
|
13863
|
+
for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
|
13864
|
+
var hitbox = _step25.value;
|
13702
13865
|
if (row !== hitbox.row) {
|
13703
13866
|
row = hitbox.row;
|
13704
13867
|
left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);
|
@@ -13708,18 +13871,18 @@
|
|
13708
13871
|
left += hitbox.width + padding;
|
13709
13872
|
}
|
13710
13873
|
} catch (err) {
|
13711
|
-
|
13874
|
+
_iterator25.e(err);
|
13712
13875
|
} finally {
|
13713
|
-
|
13876
|
+
_iterator25.f();
|
13714
13877
|
}
|
13715
13878
|
} else {
|
13716
13879
|
var col = 0;
|
13717
13880
|
var top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);
|
13718
|
-
var
|
13719
|
-
|
13881
|
+
var _iterator26 = _createForOfIteratorHelper$1(hitboxes),
|
13882
|
+
_step26;
|
13720
13883
|
try {
|
13721
|
-
for (
|
13722
|
-
var _hitbox =
|
13884
|
+
for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
|
13885
|
+
var _hitbox = _step26.value;
|
13723
13886
|
if (_hitbox.col !== col) {
|
13724
13887
|
col = _hitbox.col;
|
13725
13888
|
top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);
|
@@ -13730,9 +13893,9 @@
|
|
13730
13893
|
top += _hitbox.height + padding;
|
13731
13894
|
}
|
13732
13895
|
} catch (err) {
|
13733
|
-
|
13896
|
+
_iterator26.e(err);
|
13734
13897
|
} finally {
|
13735
|
-
|
13898
|
+
_iterator26.f();
|
13736
13899
|
}
|
13737
13900
|
}
|
13738
13901
|
}
|
@@ -15460,21 +15623,21 @@
|
|
15460
15623
|
var added = this._addedLabels;
|
15461
15624
|
if (added.length) {
|
15462
15625
|
var labels = this.getLabels();
|
15463
|
-
var
|
15464
|
-
|
15626
|
+
var _iterator27 = _createForOfIteratorHelper$1(added),
|
15627
|
+
_step27;
|
15465
15628
|
try {
|
15466
|
-
for (
|
15467
|
-
var
|
15468
|
-
_index3 =
|
15469
|
-
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;
|
15470
15633
|
if (labels[_index3] === label) {
|
15471
15634
|
labels.splice(_index3, 1);
|
15472
15635
|
}
|
15473
15636
|
}
|
15474
15637
|
} catch (err) {
|
15475
|
-
|
15638
|
+
_iterator27.e(err);
|
15476
15639
|
} finally {
|
15477
|
-
|
15640
|
+
_iterator27.f();
|
15478
15641
|
}
|
15479
15642
|
this._addedLabels = [];
|
15480
15643
|
}
|
@@ -17344,6 +17507,7 @@
|
|
17344
17507
|
fontString: fontString,
|
17345
17508
|
formatNumber: formatNumber,
|
17346
17509
|
getAngleFromPoint: getAngleFromPoint,
|
17510
|
+
getDatasetClipArea: getDatasetClipArea,
|
17347
17511
|
getHoverColor: getHoverColor,
|
17348
17512
|
getMaximumSize: getMaximumSize,
|
17349
17513
|
getRelativePosition: getRelativePosition,
|
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: []
|