chartkick 4.0.2 → 4.0.3
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 +787 -420
- data/vendor/assets/javascripts/chartkick.js +205 -212
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a0db2fe39f763929c498438dc88f75dd51dbc9ace5ede4819e9f4d88c0cad72f
         | 
| 4 | 
            +
              data.tar.gz: a1dbaf6eddf2bccfdc1e6f4b9fc114eea952eb021dedb7775832d3d5c2b8a389
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0eccf48920536b5f4277cac070759d501ee77177805e06146db100e1818337de38e7c9ae45109362817da72425d3385993136012d57530266122deb09c670ea1
         | 
| 7 | 
            +
              data.tar.gz: 55190f89407e99810198d82cda444c49f8877b86ea0148e8d408f06a4d3fc9935e07ec77414119f4d06ccd905bf9124b6678c044c2cd9d68e7de206b2901e3d3
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/lib/chartkick/version.rb
    CHANGED
    
    
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /*!
         | 
| 2 | 
            -
             * Chart.js v3.0 | 
| 2 | 
            +
             * Chart.js v3.1.0
         | 
| 3 3 | 
             
             * https://www.chartjs.org
         | 
| 4 4 | 
             
             * (c) 2021 Chart.js Contributors
         | 
| 5 5 | 
             
             * Released under the MIT License
         | 
| @@ -2051,7 +2051,24 @@ | |
| 2051 2051 | 
             
                ctx.restore();
         | 
| 2052 2052 | 
             
              }
         | 
| 2053 2053 |  | 
| 2054 | 
            +
              function addRoundedRectPath(ctx, rect) {
         | 
| 2055 | 
            +
                var x = rect.x,
         | 
| 2056 | 
            +
                    y = rect.y,
         | 
| 2057 | 
            +
                    w = rect.w,
         | 
| 2058 | 
            +
                    h = rect.h,
         | 
| 2059 | 
            +
                    radius = rect.radius;
         | 
| 2060 | 
            +
                ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);
         | 
| 2061 | 
            +
                ctx.lineTo(x, y + h - radius.bottomLeft);
         | 
| 2062 | 
            +
                ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);
         | 
| 2063 | 
            +
                ctx.lineTo(x + w - radius.bottomRight, y + h);
         | 
| 2064 | 
            +
                ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);
         | 
| 2065 | 
            +
                ctx.lineTo(x + w, y + radius.topRight);
         | 
| 2066 | 
            +
                ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);
         | 
| 2067 | 
            +
                ctx.lineTo(x + radius.topLeft, y);
         | 
| 2068 | 
            +
              }
         | 
| 2069 | 
            +
             | 
| 2054 2070 | 
             
              var LINE_HEIGHT = new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);
         | 
| 2071 | 
            +
              var FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);
         | 
| 2055 2072 |  | 
| 2056 2073 | 
             
              function toLineHeight(value, size) {
         | 
| 2057 2074 | 
             
                var matches = ('' + value).match(LINE_HEIGHT);
         | 
| @@ -2078,7 +2095,7 @@ | |
| 2078 2095 | 
             
                return +v || 0;
         | 
| 2079 2096 | 
             
              };
         | 
| 2080 2097 |  | 
| 2081 | 
            -
              function  | 
| 2098 | 
            +
              function _readValueToProps(value, props) {
         | 
| 2082 2099 | 
             
                var ret = {};
         | 
| 2083 2100 | 
             
                var objProps = isObject(props);
         | 
| 2084 2101 | 
             
                var keys = objProps ? Object.keys(props) : props;
         | 
| @@ -2108,7 +2125,7 @@ | |
| 2108 2125 | 
             
              }
         | 
| 2109 2126 |  | 
| 2110 2127 | 
             
              function toTRBL(value) {
         | 
| 2111 | 
            -
                return  | 
| 2128 | 
            +
                return _readValueToProps(value, {
         | 
| 2112 2129 | 
             
                  top: 'y',
         | 
| 2113 2130 | 
             
                  right: 'x',
         | 
| 2114 2131 | 
             
                  bottom: 'y',
         | 
| @@ -2117,7 +2134,7 @@ | |
| 2117 2134 | 
             
              }
         | 
| 2118 2135 |  | 
| 2119 2136 | 
             
              function toTRBLCorners(value) {
         | 
| 2120 | 
            -
                return  | 
| 2137 | 
            +
                return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);
         | 
| 2121 2138 | 
             
              }
         | 
| 2122 2139 |  | 
| 2123 2140 | 
             
              function toPadding(value) {
         | 
| @@ -2136,11 +2153,18 @@ | |
| 2136 2153 | 
             
                  size = parseInt(size, 10);
         | 
| 2137 2154 | 
             
                }
         | 
| 2138 2155 |  | 
| 2156 | 
            +
                var style = valueOrDefault(options.style, fallback.style);
         | 
| 2157 | 
            +
             | 
| 2158 | 
            +
                if (style && !('' + style).match(FONT_STYLE)) {
         | 
| 2159 | 
            +
                  console.warn('Invalid font style specified: "' + style + '"');
         | 
| 2160 | 
            +
                  style = '';
         | 
| 2161 | 
            +
                }
         | 
| 2162 | 
            +
             | 
| 2139 2163 | 
             
                var font = {
         | 
| 2140 2164 | 
             
                  family: valueOrDefault(options.family, fallback.family),
         | 
| 2141 2165 | 
             
                  lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),
         | 
| 2142 2166 | 
             
                  size: size,
         | 
| 2143 | 
            -
                  style:  | 
| 2167 | 
            +
                  style: style,
         | 
| 2144 2168 | 
             
                  weight: valueOrDefault(options.weight, fallback.weight),
         | 
| 2145 2169 | 
             
                  string: ''
         | 
| 2146 2170 | 
             
                };
         | 
| @@ -2331,12 +2355,15 @@ | |
| 2331 2355 | 
             
                var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];
         | 
| 2332 2356 | 
             
                var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;
         | 
| 2333 2357 | 
             
                var fallback = arguments.length > 3 ? arguments[3] : undefined;
         | 
| 2358 | 
            +
                var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {
         | 
| 2359 | 
            +
                  return scopes[0];
         | 
| 2360 | 
            +
                };
         | 
| 2334 2361 |  | 
| 2335 2362 | 
             
                if (!defined(fallback)) {
         | 
| 2336 2363 | 
             
                  fallback = _resolve('_fallback', scopes);
         | 
| 2337 2364 | 
             
                }
         | 
| 2338 2365 |  | 
| 2339 | 
            -
                var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, "_cacheable", true), _defineProperty(_cache, "_scopes", scopes), _defineProperty(_cache, "_rootScopes", rootScopes), _defineProperty(_cache, "_fallback", fallback), _defineProperty(_cache, "override", function override(scope) {
         | 
| 2366 | 
            +
                var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, "_cacheable", true), _defineProperty(_cache, "_scopes", scopes), _defineProperty(_cache, "_rootScopes", rootScopes), _defineProperty(_cache, "_fallback", fallback), _defineProperty(_cache, "_getTarget", getTarget), _defineProperty(_cache, "override", function override(scope) {
         | 
| 2340 2367 | 
             
                  return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);
         | 
| 2341 2368 | 
             
                }), _cache);
         | 
| 2342 2369 | 
             
                return new Proxy(cache, {
         | 
| @@ -2364,7 +2391,8 @@ | |
| 2364 2391 | 
             
                    return getKeysFromAllScopes(target);
         | 
| 2365 2392 | 
             
                  },
         | 
| 2366 2393 | 
             
                  set: function set(target, prop, value) {
         | 
| 2367 | 
            -
                     | 
| 2394 | 
            +
                    var storage = target._storage || (target._storage = getTarget());
         | 
| 2395 | 
            +
                    storage[prop] = value;
         | 
| 2368 2396 | 
             
                    delete target[prop];
         | 
| 2369 2397 | 
             
                    delete target._keys;
         | 
| 2370 2398 | 
             
                    return true;
         | 
| @@ -2594,12 +2622,6 @@ | |
| 2594 2622 | 
             
                var fallback = resolveFallback(resolver._fallback, prop, value);
         | 
| 2595 2623 | 
             
                var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));
         | 
| 2596 2624 | 
             
                var set = new Set();
         | 
| 2597 | 
            -
                var firstParent = parentScopes[0];
         | 
| 2598 | 
            -
             | 
| 2599 | 
            -
                if (isObject(firstParent) && !(prop in firstParent)) {
         | 
| 2600 | 
            -
                  set.add(firstParent[prop] = {});
         | 
| 2601 | 
            -
                }
         | 
| 2602 | 
            -
             | 
| 2603 2625 | 
             
                set.add(value);
         | 
| 2604 2626 | 
             
                var key = addScopesFromKey(set, allScopes, prop, fallback || prop);
         | 
| 2605 2627 |  | 
| @@ -2615,7 +2637,15 @@ | |
| 2615 2637 | 
             
                  }
         | 
| 2616 2638 | 
             
                }
         | 
| 2617 2639 |  | 
| 2618 | 
            -
                return _createResolver(_toConsumableArray(set), [''], rootScopes, fallback) | 
| 2640 | 
            +
                return _createResolver(_toConsumableArray(set), [''], rootScopes, fallback, function () {
         | 
| 2641 | 
            +
                  var parent = resolver._getTarget();
         | 
| 2642 | 
            +
             | 
| 2643 | 
            +
                  if (!(prop in parent)) {
         | 
| 2644 | 
            +
                    parent[prop] = {};
         | 
| 2645 | 
            +
                  }
         | 
| 2646 | 
            +
             | 
| 2647 | 
            +
                  return parent[prop];
         | 
| 2648 | 
            +
                });
         | 
| 2619 2649 | 
             
              }
         | 
| 2620 2650 |  | 
| 2621 2651 | 
             
              function addScopesFromKey(set, allScopes, key, fallback) {
         | 
| @@ -3245,7 +3275,7 @@ | |
| 3245 3275 |  | 
| 3246 3276 | 
             
                return {
         | 
| 3247 3277 | 
             
                  between: function between(n, s, e) {
         | 
| 3248 | 
            -
                    return n >= s && n <= e;
         | 
| 3278 | 
            +
                    return n >= Math.min(s, e) && n <= Math.max(e, s);
         | 
| 3249 3279 | 
             
                  },
         | 
| 3250 3280 | 
             
                  compare: function compare(a, b) {
         | 
| 3251 3281 | 
             
                    return a - b;
         | 
| @@ -3256,11 +3286,17 @@ | |
| 3256 3286 | 
             
                };
         | 
| 3257 3287 | 
             
              }
         | 
| 3258 3288 |  | 
| 3259 | 
            -
              function  | 
| 3289 | 
            +
              function normalizeSegment(_ref) {
         | 
| 3290 | 
            +
                var start = _ref.start,
         | 
| 3291 | 
            +
                    end = _ref.end,
         | 
| 3292 | 
            +
                    count = _ref.count,
         | 
| 3293 | 
            +
                    loop = _ref.loop,
         | 
| 3294 | 
            +
                    style = _ref.style;
         | 
| 3260 3295 | 
             
                return {
         | 
| 3261 3296 | 
             
                  start: start % count,
         | 
| 3262 3297 | 
             
                  end: end % count,
         | 
| 3263 | 
            -
                  loop: loop && (end - start + 1) % count === 0
         | 
| 3298 | 
            +
                  loop: loop && (end - start + 1) % count === 0,
         | 
| 3299 | 
            +
                  style: style
         | 
| 3264 3300 | 
             
                };
         | 
| 3265 3301 | 
             
              }
         | 
| 3266 3302 |  | 
| @@ -3303,7 +3339,8 @@ | |
| 3303 3339 | 
             
                return {
         | 
| 3304 3340 | 
             
                  start: start,
         | 
| 3305 3341 | 
             
                  end: end,
         | 
| 3306 | 
            -
                  loop: loop
         | 
| 3342 | 
            +
                  loop: loop,
         | 
| 3343 | 
            +
                  style: segment.style
         | 
| 3307 3344 | 
             
                };
         | 
| 3308 3345 | 
             
              }
         | 
| 3309 3346 |  | 
| @@ -3325,7 +3362,8 @@ | |
| 3325 3362 | 
             
                var _getSegment = getSegment(segment, points, bounds),
         | 
| 3326 3363 | 
             
                    start = _getSegment.start,
         | 
| 3327 3364 | 
             
                    end = _getSegment.end,
         | 
| 3328 | 
            -
                    loop = _getSegment.loop | 
| 3365 | 
            +
                    loop = _getSegment.loop,
         | 
| 3366 | 
            +
                    style = _getSegment.style;
         | 
| 3329 3367 |  | 
| 3330 3368 | 
             
                var result = [];
         | 
| 3331 3369 | 
             
                var inside = false;
         | 
| @@ -3363,7 +3401,13 @@ | |
| 3363 3401 | 
             
                  }
         | 
| 3364 3402 |  | 
| 3365 3403 | 
             
                  if (subStart !== null && shouldStop()) {
         | 
| 3366 | 
            -
                    result.push( | 
| 3404 | 
            +
                    result.push(normalizeSegment({
         | 
| 3405 | 
            +
                      start: subStart,
         | 
| 3406 | 
            +
                      end: i,
         | 
| 3407 | 
            +
                      loop: loop,
         | 
| 3408 | 
            +
                      count: count,
         | 
| 3409 | 
            +
                      style: style
         | 
| 3410 | 
            +
                    }));
         | 
| 3367 3411 | 
             
                    subStart = null;
         | 
| 3368 3412 | 
             
                  }
         | 
| 3369 3413 |  | 
| @@ -3372,7 +3416,13 @@ | |
| 3372 3416 | 
             
                }
         | 
| 3373 3417 |  | 
| 3374 3418 | 
             
                if (subStart !== null) {
         | 
| 3375 | 
            -
                  result.push( | 
| 3419 | 
            +
                  result.push(normalizeSegment({
         | 
| 3420 | 
            +
                    start: subStart,
         | 
| 3421 | 
            +
                    end: end,
         | 
| 3422 | 
            +
                    loop: loop,
         | 
| 3423 | 
            +
                    count: count,
         | 
| 3424 | 
            +
                    style: style
         | 
| 3425 | 
            +
                  }));
         | 
| 3376 3426 | 
             
                }
         | 
| 3377 3427 |  | 
| 3378 3428 | 
             
                return result;
         | 
| @@ -3466,7 +3516,7 @@ | |
| 3466 3516 | 
             
                return result;
         | 
| 3467 3517 | 
             
              }
         | 
| 3468 3518 |  | 
| 3469 | 
            -
              function _computeSegments(line) {
         | 
| 3519 | 
            +
              function _computeSegments(line, segmentOptions) {
         | 
| 3470 3520 | 
             
                var points = line.points;
         | 
| 3471 3521 | 
             
                var spanGaps = line.options.spanGaps;
         | 
| 3472 3522 | 
             
                var count = points.length;
         | 
| @@ -3482,16 +3532,98 @@ | |
| 3482 3532 | 
             
                    end = _findStartAndEnd.end;
         | 
| 3483 3533 |  | 
| 3484 3534 | 
             
                if (spanGaps === true) {
         | 
| 3485 | 
            -
                  return [{
         | 
| 3535 | 
            +
                  return splitByStyles([{
         | 
| 3486 3536 | 
             
                    start: start,
         | 
| 3487 3537 | 
             
                    end: end,
         | 
| 3488 3538 | 
             
                    loop: loop
         | 
| 3489 | 
            -
                  }];
         | 
| 3539 | 
            +
                  }], points, segmentOptions);
         | 
| 3490 3540 | 
             
                }
         | 
| 3491 3541 |  | 
| 3492 3542 | 
             
                var max = end < start ? end + count : end;
         | 
| 3493 3543 | 
             
                var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;
         | 
| 3494 | 
            -
                return solidSegments(points, start, max, completeLoop);
         | 
| 3544 | 
            +
                return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);
         | 
| 3545 | 
            +
              }
         | 
| 3546 | 
            +
             | 
| 3547 | 
            +
              function splitByStyles(segments, points, segmentOptions) {
         | 
| 3548 | 
            +
                if (!segmentOptions || !segmentOptions.setContext || !points) {
         | 
| 3549 | 
            +
                  return segments;
         | 
| 3550 | 
            +
                }
         | 
| 3551 | 
            +
             | 
| 3552 | 
            +
                return doSplitByStyles(segments, points, segmentOptions);
         | 
| 3553 | 
            +
              }
         | 
| 3554 | 
            +
             | 
| 3555 | 
            +
              function doSplitByStyles(segments, points, segmentOptions) {
         | 
| 3556 | 
            +
                var count = points.length;
         | 
| 3557 | 
            +
                var result = [];
         | 
| 3558 | 
            +
                var start = segments[0].start;
         | 
| 3559 | 
            +
                var i = start;
         | 
| 3560 | 
            +
             | 
| 3561 | 
            +
                var _iterator8 = _createForOfIteratorHelper(segments),
         | 
| 3562 | 
            +
                    _step8;
         | 
| 3563 | 
            +
             | 
| 3564 | 
            +
                try {
         | 
| 3565 | 
            +
                  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
         | 
| 3566 | 
            +
                    var segment = _step8.value;
         | 
| 3567 | 
            +
                    var prevStyle = void 0,
         | 
| 3568 | 
            +
                        style = void 0;
         | 
| 3569 | 
            +
                    var prev = points[start % count];
         | 
| 3570 | 
            +
             | 
| 3571 | 
            +
                    for (i = start + 1; i <= segment.end; i++) {
         | 
| 3572 | 
            +
                      var pt = points[i % count];
         | 
| 3573 | 
            +
                      style = readStyle(segmentOptions.setContext({
         | 
| 3574 | 
            +
                        type: 'segment',
         | 
| 3575 | 
            +
                        p0: prev,
         | 
| 3576 | 
            +
                        p1: pt
         | 
| 3577 | 
            +
                      }));
         | 
| 3578 | 
            +
             | 
| 3579 | 
            +
                      if (styleChanged(style, prevStyle)) {
         | 
| 3580 | 
            +
                        result.push({
         | 
| 3581 | 
            +
                          start: start,
         | 
| 3582 | 
            +
                          end: i - 1,
         | 
| 3583 | 
            +
                          loop: segment.loop,
         | 
| 3584 | 
            +
                          style: prevStyle
         | 
| 3585 | 
            +
                        });
         | 
| 3586 | 
            +
                        prevStyle = style;
         | 
| 3587 | 
            +
                        start = i - 1;
         | 
| 3588 | 
            +
                      }
         | 
| 3589 | 
            +
             | 
| 3590 | 
            +
                      prev = pt;
         | 
| 3591 | 
            +
                      prevStyle = style;
         | 
| 3592 | 
            +
                    }
         | 
| 3593 | 
            +
             | 
| 3594 | 
            +
                    if (start < i - 1) {
         | 
| 3595 | 
            +
                      result.push({
         | 
| 3596 | 
            +
                        start: start,
         | 
| 3597 | 
            +
                        end: i - 1,
         | 
| 3598 | 
            +
                        loop: segment.loop,
         | 
| 3599 | 
            +
                        style: style
         | 
| 3600 | 
            +
                      });
         | 
| 3601 | 
            +
                      start = i - 1;
         | 
| 3602 | 
            +
                    }
         | 
| 3603 | 
            +
                  }
         | 
| 3604 | 
            +
                } catch (err) {
         | 
| 3605 | 
            +
                  _iterator8.e(err);
         | 
| 3606 | 
            +
                } finally {
         | 
| 3607 | 
            +
                  _iterator8.f();
         | 
| 3608 | 
            +
                }
         | 
| 3609 | 
            +
             | 
| 3610 | 
            +
                return result;
         | 
| 3611 | 
            +
              }
         | 
| 3612 | 
            +
             | 
| 3613 | 
            +
              function readStyle(options) {
         | 
| 3614 | 
            +
                return {
         | 
| 3615 | 
            +
                  backgroundColor: options.backgroundColor,
         | 
| 3616 | 
            +
                  borderCapStyle: options.borderCapStyle,
         | 
| 3617 | 
            +
                  borderDash: options.borderDash,
         | 
| 3618 | 
            +
                  borderDashOffset: options.borderDashOffset,
         | 
| 3619 | 
            +
                  borderJoinStyle: options.borderJoinStyle,
         | 
| 3620 | 
            +
                  borderWidth: options.borderWidth,
         | 
| 3621 | 
            +
                  borderColor: options.borderColor
         | 
| 3622 | 
            +
                };
         | 
| 3623 | 
            +
              }
         | 
| 3624 | 
            +
             | 
| 3625 | 
            +
              function styleChanged(style, prevStyle) {
         | 
| 3626 | 
            +
                return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);
         | 
| 3495 3627 | 
             
              }
         | 
| 3496 3628 |  | 
| 3497 3629 | 
             
              var Animator = /*#__PURE__*/function () {
         | 
| @@ -4178,7 +4310,7 @@ | |
| 4178 4310 | 
             
              }
         | 
| 4179 4311 |  | 
| 4180 4312 | 
             
              function getStackKey(indexScale, valueScale, meta) {
         | 
| 4181 | 
            -
                return indexScale.id  | 
| 4313 | 
            +
                return "".concat(indexScale.id, ".").concat(valueScale.id, ".").concat(meta.stack || meta.type);
         | 
| 4182 4314 | 
             
              }
         | 
| 4183 4315 |  | 
| 4184 4316 | 
             
              function getUserBounds(scale) {
         | 
| @@ -5272,7 +5404,8 @@ | |
| 5272 5404 | 
             
                    me.updateSharedOptions(sharedOptions, mode, firstOpts);
         | 
| 5273 5405 |  | 
| 5274 5406 | 
             
                    for (var i = start; i < start + count; i++) {
         | 
| 5275 | 
            -
                      var  | 
| 5407 | 
            +
                      var parsed = me.getParsed(i);
         | 
| 5408 | 
            +
                      var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {
         | 
| 5276 5409 | 
             
                        base: base,
         | 
| 5277 5410 | 
             
                        head: base
         | 
| 5278 5411 | 
             
                      } : me._calculateBarValuePixels(i);
         | 
| @@ -6158,20 +6291,17 @@ | |
| 6158 6291 |  | 
| 6159 6292 | 
             
                    line._decimated = !!_dataset._decimated;
         | 
| 6160 6293 | 
             
                    line.points = points;
         | 
| 6294 | 
            +
                    var options = me.resolveDatasetElementOptions(mode);
         | 
| 6161 6295 |  | 
| 6162 | 
            -
                    if ( | 
| 6163 | 
            -
                       | 
| 6164 | 
            -
             | 
| 6165 | 
            -
                      if (!me.options.showLine) {
         | 
| 6166 | 
            -
                        options.borderWidth = 0;
         | 
| 6167 | 
            -
                      }
         | 
| 6168 | 
            -
             | 
| 6169 | 
            -
                      me.updateElement(line, undefined, {
         | 
| 6170 | 
            -
                        animated: !animationsDisabled,
         | 
| 6171 | 
            -
                        options: options
         | 
| 6172 | 
            -
                      }, mode);
         | 
| 6296 | 
            +
                    if (!me.options.showLine) {
         | 
| 6297 | 
            +
                      options.borderWidth = 0;
         | 
| 6173 6298 | 
             
                    }
         | 
| 6174 6299 |  | 
| 6300 | 
            +
                    options.segment = me.options.segment;
         | 
| 6301 | 
            +
                    me.updateElement(line, undefined, {
         | 
| 6302 | 
            +
                      animated: !animationsDisabled,
         | 
| 6303 | 
            +
                      options: options
         | 
| 6304 | 
            +
                    }, mode);
         | 
| 6175 6305 | 
             
                    me.updateElements(points, start, count, mode);
         | 
| 6176 6306 | 
             
                  }
         | 
| 6177 6307 | 
             
                }, {
         | 
| @@ -6195,10 +6325,12 @@ | |
| 6195 6325 | 
             
                      var point = points[i];
         | 
| 6196 6326 | 
             
                      var parsed = me.getParsed(i);
         | 
| 6197 6327 | 
             
                      var properties = directUpdate ? point : {};
         | 
| 6328 | 
            +
                      var nullData = isNullOrUndef(parsed.y);
         | 
| 6198 6329 | 
             
                      var x = properties.x = xScale.getPixelForValue(parsed.x, i);
         | 
| 6199 | 
            -
                      var y = properties.y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(_stacked ? me.applyStack(yScale, parsed, _stacked) : parsed.y, i);
         | 
| 6200 | 
            -
                      properties.skip = isNaN(x) || isNaN(y);
         | 
| 6330 | 
            +
                      var y = properties.y = reset || nullData ? yScale.getBasePixel() : yScale.getPixelForValue(_stacked ? me.applyStack(yScale, parsed, _stacked) : parsed.y, i);
         | 
| 6331 | 
            +
                      properties.skip = isNaN(x) || isNaN(y) || nullData;
         | 
| 6201 6332 | 
             
                      properties.stop = i > 0 && parsed.x - prevParsed.x > maxGapLength;
         | 
| 6333 | 
            +
                      properties.parsed = parsed;
         | 
| 6202 6334 |  | 
| 6203 6335 | 
             
                      if (includeOptions) {
         | 
| 6204 6336 | 
             
                        properties.options = sharedOptions || me.resolveDataElementOptions(i, mode);
         | 
| @@ -7081,20 +7213,15 @@ | |
| 7081 7213 | 
             
                var box = layout.box;
         | 
| 7082 7214 | 
             
                var maxPadding = chartArea.maxPadding;
         | 
| 7083 7215 |  | 
| 7084 | 
            -
                if (isObject(layout.pos)) {
         | 
| 7085 | 
            -
                   | 
| 7086 | 
            -
                     | 
| 7087 | 
            -
             | 
| 7088 | 
            -
                  };
         | 
| 7089 | 
            -
                }
         | 
| 7216 | 
            +
                if (!isObject(layout.pos)) {
         | 
| 7217 | 
            +
                  if (layout.size) {
         | 
| 7218 | 
            +
                    chartArea[layout.pos] -= layout.size;
         | 
| 7219 | 
            +
                  }
         | 
| 7090 7220 |  | 
| 7091 | 
            -
             | 
| 7092 | 
            -
                  chartArea[layout.pos]  | 
| 7221 | 
            +
                  layout.size = layout.horizontal ? box.height : box.width;
         | 
| 7222 | 
            +
                  chartArea[layout.pos] += layout.size;
         | 
| 7093 7223 | 
             
                }
         | 
| 7094 7224 |  | 
| 7095 | 
            -
                layout.size = layout.horizontal ? box.height : box.width;
         | 
| 7096 | 
            -
                chartArea[layout.pos] += layout.size;
         | 
| 7097 | 
            -
             | 
| 7098 7225 | 
             
                if (box.getPadding) {
         | 
| 7099 7226 | 
             
                  updateMaxPadding(maxPadding, box.getPadding());
         | 
| 7100 7227 | 
             
                }
         | 
| @@ -7842,12 +7969,7 @@ | |
| 7842 7969 | 
             
                  offset: false,
         | 
| 7843 7970 | 
             
                  borderDash: [],
         | 
| 7844 7971 | 
             
                  borderDashOffset: 0.0,
         | 
| 7845 | 
            -
                   | 
| 7846 | 
            -
                    return options.color;
         | 
| 7847 | 
            -
                  },
         | 
| 7848 | 
            -
                  borderWidth: function borderWidth(_ctx, options) {
         | 
| 7849 | 
            -
                    return options.lineWidth;
         | 
| 7850 | 
            -
                  }
         | 
| 7972 | 
            +
                  borderWidth: 1
         | 
| 7851 7973 | 
             
                },
         | 
| 7852 7974 | 
             
                title: {
         | 
| 7853 7975 | 
             
                  display: false,
         | 
| @@ -7877,6 +7999,7 @@ | |
| 7877 7999 | 
             
              });
         | 
| 7878 8000 | 
             
              defaults.route('scale.ticks', 'color', '', 'color');
         | 
| 7879 8001 | 
             
              defaults.route('scale.grid', 'color', '', 'borderColor');
         | 
| 8002 | 
            +
              defaults.route('scale.grid', 'borderColor', '', 'borderColor');
         | 
| 7880 8003 | 
             
              defaults.route('scale.title', 'color', '', 'color');
         | 
| 7881 8004 | 
             
              defaults.describe('scale', {
         | 
| 7882 8005 | 
             
                _fallback: false,
         | 
| @@ -8223,7 +8346,7 @@ | |
| 8223 8346 | 
             
                  key: "init",
         | 
| 8224 8347 | 
             
                  value: function init(options) {
         | 
| 8225 8348 | 
             
                    var me = this;
         | 
| 8226 | 
            -
                    me.options = options;
         | 
| 8349 | 
            +
                    me.options = options.setContext(me.getContext());
         | 
| 8227 8350 | 
             
                    me.axis = options.axis;
         | 
| 8228 8351 | 
             
                    me._userMin = me.parse(options.min);
         | 
| 8229 8352 | 
             
                    me._userMax = me.parse(options.max);
         | 
| @@ -8589,7 +8712,7 @@ | |
| 8589 8712 | 
             
                        var sin = Math.sin(angleRadians);
         | 
| 8590 8713 |  | 
| 8591 8714 | 
             
                        if (isHorizontal) {
         | 
| 8592 | 
            -
                          var labelHeight = sin * widest.width + cos * highest.height;
         | 
| 8715 | 
            +
                          var labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;
         | 
| 8593 8716 | 
             
                          minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);
         | 
| 8594 8717 | 
             
                        } else {
         | 
| 8595 8718 | 
             
                          var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;
         | 
| @@ -9012,27 +9135,29 @@ | |
| 9012 9135 | 
             
                    var ticks = me.ticks;
         | 
| 9013 9136 | 
             
                    var align = optionTicks.align,
         | 
| 9014 9137 | 
             
                        crossAlign = optionTicks.crossAlign,
         | 
| 9015 | 
            -
                        padding = optionTicks.padding | 
| 9138 | 
            +
                        padding = optionTicks.padding,
         | 
| 9139 | 
            +
                        mirror = optionTicks.mirror;
         | 
| 9016 9140 | 
             
                    var tl = getTickMarkLength(options.grid);
         | 
| 9017 9141 | 
             
                    var tickAndPadding = tl + padding;
         | 
| 9142 | 
            +
                    var hTickAndPadding = mirror ? -padding : tickAndPadding;
         | 
| 9018 9143 | 
             
                    var rotation = -toRadians(me.labelRotation);
         | 
| 9019 9144 | 
             
                    var items = [];
         | 
| 9020 9145 | 
             
                    var i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;
         | 
| 9021 9146 | 
             
                    var textBaseline = 'middle';
         | 
| 9022 9147 |  | 
| 9023 9148 | 
             
                    if (position === 'top') {
         | 
| 9024 | 
            -
                      y = me.bottom -  | 
| 9149 | 
            +
                      y = me.bottom - hTickAndPadding;
         | 
| 9025 9150 | 
             
                      textAlign = me._getXAxisLabelAlignment();
         | 
| 9026 9151 | 
             
                    } else if (position === 'bottom') {
         | 
| 9027 | 
            -
                      y = me.top +  | 
| 9152 | 
            +
                      y = me.top + hTickAndPadding;
         | 
| 9028 9153 | 
             
                      textAlign = me._getXAxisLabelAlignment();
         | 
| 9029 9154 | 
             
                    } else if (position === 'left') {
         | 
| 9030 | 
            -
                      var ret =  | 
| 9155 | 
            +
                      var ret = me._getYAxisLabelAlignment(tl);
         | 
| 9031 9156 |  | 
| 9032 9157 | 
             
                      textAlign = ret.textAlign;
         | 
| 9033 9158 | 
             
                      x = ret.x;
         | 
| 9034 9159 | 
             
                    } else if (position === 'right') {
         | 
| 9035 | 
            -
                      var _ret =  | 
| 9160 | 
            +
                      var _ret = me._getYAxisLabelAlignment(tl);
         | 
| 9036 9161 |  | 
| 9037 9162 | 
             
                      textAlign = _ret.textAlign;
         | 
| 9038 9163 | 
             
                      x = _ret.x;
         | 
| @@ -9055,7 +9180,7 @@ | |
| 9055 9180 | 
             
                        x = me.chart.scales[_positionAxisID2].getPixelForValue(_value2);
         | 
| 9056 9181 | 
             
                      }
         | 
| 9057 9182 |  | 
| 9058 | 
            -
                      textAlign =  | 
| 9183 | 
            +
                      textAlign = me._getYAxisLabelAlignment(tl).textAlign;
         | 
| 9059 9184 | 
             
                    }
         | 
| 9060 9185 |  | 
| 9061 9186 | 
             
                    if (axis === 'y') {
         | 
| @@ -9101,6 +9226,10 @@ | |
| 9101 9226 | 
             
                            textOffset = labelSizes.highest.height - lineCount * lineHeight;
         | 
| 9102 9227 | 
             
                          }
         | 
| 9103 9228 | 
             
                        }
         | 
| 9229 | 
            +
             | 
| 9230 | 
            +
                        if (mirror) {
         | 
| 9231 | 
            +
                          textOffset *= -1;
         | 
| 9232 | 
            +
                        }
         | 
| 9104 9233 | 
             
                      } else {
         | 
| 9105 9234 | 
             
                        y = pixel;
         | 
| 9106 9235 | 
             
                        textOffset = (1 - lineCount) * lineHeight / 2;
         | 
| @@ -9166,7 +9295,7 @@ | |
| 9166 9295 | 
             
                    if (position === 'left') {
         | 
| 9167 9296 | 
             
                      if (mirror) {
         | 
| 9168 9297 | 
             
                        textAlign = 'left';
         | 
| 9169 | 
            -
                        x = me.right  | 
| 9298 | 
            +
                        x = me.right + padding;
         | 
| 9170 9299 | 
             
                      } else {
         | 
| 9171 9300 | 
             
                        x = me.right - tickAndPadding;
         | 
| 9172 9301 |  | 
| @@ -9282,7 +9411,7 @@ | |
| 9282 9411 | 
             
                    var grid = me.options.grid;
         | 
| 9283 9412 | 
             
                    var ctx = me.ctx;
         | 
| 9284 9413 | 
             
                    var chart = me.chart;
         | 
| 9285 | 
            -
                    var borderOpts = grid.setContext(me.getContext( | 
| 9414 | 
            +
                    var borderOpts = grid.setContext(me.getContext());
         | 
| 9286 9415 | 
             
                    var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;
         | 
| 9287 9416 |  | 
| 9288 9417 | 
             
                    var items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));
         | 
| @@ -9338,8 +9467,7 @@ | |
| 9338 9467 | 
             
                    }
         | 
| 9339 9468 |  | 
| 9340 9469 | 
             
                    if (axisWidth) {
         | 
| 9341 | 
            -
                      var  | 
| 9342 | 
            -
                      var lastLineWidth = edgeOpts.lineWidth;
         | 
| 9470 | 
            +
                      var lastLineWidth = borderOpts.lineWidth;
         | 
| 9343 9471 | 
             
                      var borderValue = me._borderValue;
         | 
| 9344 9472 | 
             
                      var x1, x2, y1, y2;
         | 
| 9345 9473 |  | 
| @@ -9361,7 +9489,7 @@ | |
| 9361 9489 | 
             
                        y: y2
         | 
| 9362 9490 | 
             
                      }, {
         | 
| 9363 9491 | 
             
                        width: axisWidth,
         | 
| 9364 | 
            -
                        color:  | 
| 9492 | 
            +
                        color: borderOpts.borderColor
         | 
| 9365 9493 | 
             
                      });
         | 
| 9366 9494 | 
             
                    }
         | 
| 9367 9495 | 
             
                  }
         | 
| @@ -9811,7 +9939,7 @@ | |
| 9811 9939 |  | 
| 9812 9940 | 
             
                _createClass(PluginService, [{
         | 
| 9813 9941 | 
             
                  key: "notify",
         | 
| 9814 | 
            -
                  value: function notify(chart, hook, args) {
         | 
| 9942 | 
            +
                  value: function notify(chart, hook, args, filter) {
         | 
| 9815 9943 | 
             
                    var me = this;
         | 
| 9816 9944 |  | 
| 9817 9945 | 
             
                    if (hook === 'beforeInit') {
         | 
| @@ -9820,7 +9948,7 @@ | |
| 9820 9948 | 
             
                      me._notify(me._init, chart, 'install');
         | 
| 9821 9949 | 
             
                    }
         | 
| 9822 9950 |  | 
| 9823 | 
            -
                    var descriptors = me._descriptors(chart);
         | 
| 9951 | 
            +
                    var descriptors = filter ? me._descriptors(chart).filter(filter) : me._descriptors(chart);
         | 
| 9824 9952 |  | 
| 9825 9953 | 
             
                    var result = me._notify(descriptors, chart, hook, args);
         | 
| 9826 9954 |  | 
| @@ -10351,7 +10479,7 @@ | |
| 10351 10479 | 
             
                return false;
         | 
| 10352 10480 | 
             
              }
         | 
| 10353 10481 |  | 
| 10354 | 
            -
              var version = "3.0 | 
| 10482 | 
            +
              var version = "3.1.0";
         | 
| 10355 10483 | 
             
              var KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];
         | 
| 10356 10484 |  | 
| 10357 10485 | 
             
              function positionIsHorizontal(position, axis) {
         | 
| @@ -11340,8 +11468,8 @@ | |
| 11340 11468 | 
             
                  }
         | 
| 11341 11469 | 
             
                }, {
         | 
| 11342 11470 | 
             
                  key: "notifyPlugins",
         | 
| 11343 | 
            -
                  value: function notifyPlugins(hook, args) {
         | 
| 11344 | 
            -
                    return this._plugins.notify(this, hook, args);
         | 
| 11471 | 
            +
                  value: function notifyPlugins(hook, args, filter) {
         | 
| 11472 | 
            +
                    return this._plugins.notify(this, hook, args, filter);
         | 
| 11345 11473 | 
             
                  }
         | 
| 11346 11474 | 
             
                }, {
         | 
| 11347 11475 | 
             
                  key: "_updateHoverStyles",
         | 
| @@ -11371,6 +11499,8 @@ | |
| 11371 11499 | 
             
                }, {
         | 
| 11372 11500 | 
             
                  key: "_eventHandler",
         | 
| 11373 11501 | 
             
                  value: function _eventHandler(e, replay) {
         | 
| 11502 | 
            +
                    var _this6 = this;
         | 
| 11503 | 
            +
             | 
| 11374 11504 | 
             
                    var me = this;
         | 
| 11375 11505 | 
             
                    var args = {
         | 
| 11376 11506 | 
             
                      event: e,
         | 
| @@ -11378,14 +11508,18 @@ | |
| 11378 11508 | 
             
                      cancelable: true
         | 
| 11379 11509 | 
             
                    };
         | 
| 11380 11510 |  | 
| 11381 | 
            -
                     | 
| 11511 | 
            +
                    var eventFilter = function eventFilter(plugin) {
         | 
| 11512 | 
            +
                      return (plugin.options.events || _this6.options.events).includes(e.type);
         | 
| 11513 | 
            +
                    };
         | 
| 11514 | 
            +
             | 
| 11515 | 
            +
                    if (me.notifyPlugins('beforeEvent', args, eventFilter) === false) {
         | 
| 11382 11516 | 
             
                      return;
         | 
| 11383 11517 | 
             
                    }
         | 
| 11384 11518 |  | 
| 11385 11519 | 
             
                    var changed = me._handleEvent(e, replay);
         | 
| 11386 11520 |  | 
| 11387 11521 | 
             
                    args.cancelable = false;
         | 
| 11388 | 
            -
                    me.notifyPlugins('afterEvent', args);
         | 
| 11522 | 
            +
                    me.notifyPlugins('afterEvent', args, eventFilter);
         | 
| 11389 11523 |  | 
| 11390 11524 | 
             
                    if (changed || args.changed) {
         | 
| 11391 11525 | 
             
                      me.render();
         | 
| @@ -11412,10 +11546,11 @@ | |
| 11412 11546 | 
             
                    }
         | 
| 11413 11547 |  | 
| 11414 11548 | 
             
                    me._lastEvent = null;
         | 
| 11415 | 
            -
                    callback(options.onHover, [e, active, me], me);
         | 
| 11416 11549 |  | 
| 11417 | 
            -
                    if (e | 
| 11418 | 
            -
                       | 
| 11550 | 
            +
                    if (_isPointInArea(e, me.chartArea, me._minPadding)) {
         | 
| 11551 | 
            +
                      callback(options.onHover, [e, active, me], me);
         | 
| 11552 | 
            +
             | 
| 11553 | 
            +
                      if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {
         | 
| 11419 11554 | 
             
                        callback(options.onClick, [e, active, me], me);
         | 
| 11420 11555 | 
             
                      }
         | 
| 11421 11556 | 
             
                    }
         | 
| @@ -11507,6 +11642,35 @@ | |
| 11507 11642 | 
             
                ctx.clip();
         | 
| 11508 11643 | 
             
              }
         | 
| 11509 11644 |  | 
| 11645 | 
            +
              function toRadiusCorners(value) {
         | 
| 11646 | 
            +
                return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);
         | 
| 11647 | 
            +
              }
         | 
| 11648 | 
            +
             | 
| 11649 | 
            +
              function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {
         | 
| 11650 | 
            +
                var o = toRadiusCorners(arc.options.borderRadius);
         | 
| 11651 | 
            +
                var halfThickness = (outerRadius - innerRadius) / 2;
         | 
| 11652 | 
            +
                var innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);
         | 
| 11653 | 
            +
             | 
| 11654 | 
            +
                var computeOuterLimit = function computeOuterLimit(val) {
         | 
| 11655 | 
            +
                  var outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;
         | 
| 11656 | 
            +
                  return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));
         | 
| 11657 | 
            +
                };
         | 
| 11658 | 
            +
             | 
| 11659 | 
            +
                return {
         | 
| 11660 | 
            +
                  outerStart: computeOuterLimit(o.outerStart),
         | 
| 11661 | 
            +
                  outerEnd: computeOuterLimit(o.outerEnd),
         | 
| 11662 | 
            +
                  innerStart: _limitValue(o.innerStart, 0, innerLimit),
         | 
| 11663 | 
            +
                  innerEnd: _limitValue(o.innerEnd, 0, innerLimit)
         | 
| 11664 | 
            +
                };
         | 
| 11665 | 
            +
              }
         | 
| 11666 | 
            +
             | 
| 11667 | 
            +
              function rThetaToXY(r, theta, x, y) {
         | 
| 11668 | 
            +
                return {
         | 
| 11669 | 
            +
                  x: x + r * Math.cos(theta),
         | 
| 11670 | 
            +
                  y: y + r * Math.sin(theta)
         | 
| 11671 | 
            +
                };
         | 
| 11672 | 
            +
              }
         | 
| 11673 | 
            +
             | 
| 11510 11674 | 
             
              function pathArc(ctx, element) {
         | 
| 11511 11675 | 
             
                var x = element.x,
         | 
| 11512 11676 | 
             
                    y = element.y,
         | 
| @@ -11515,9 +11679,55 @@ | |
| 11515 11679 | 
             
                    pixelMargin = element.pixelMargin;
         | 
| 11516 11680 | 
             
                var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);
         | 
| 11517 11681 | 
             
                var innerRadius = element.innerRadius + pixelMargin;
         | 
| 11682 | 
            +
             | 
| 11683 | 
            +
                var _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),
         | 
| 11684 | 
            +
                    outerStart = _parseBorderRadius$.outerStart,
         | 
| 11685 | 
            +
                    outerEnd = _parseBorderRadius$.outerEnd,
         | 
| 11686 | 
            +
                    innerStart = _parseBorderRadius$.innerStart,
         | 
| 11687 | 
            +
                    innerEnd = _parseBorderRadius$.innerEnd;
         | 
| 11688 | 
            +
             | 
| 11689 | 
            +
                var outerStartAdjustedRadius = outerRadius - outerStart;
         | 
| 11690 | 
            +
                var outerEndAdjustedRadius = outerRadius - outerEnd;
         | 
| 11691 | 
            +
                var outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;
         | 
| 11692 | 
            +
                var outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;
         | 
| 11693 | 
            +
                var innerStartAdjustedRadius = innerRadius + innerStart;
         | 
| 11694 | 
            +
                var innerEndAdjustedRadius = innerRadius + innerEnd;
         | 
| 11695 | 
            +
                var innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;
         | 
| 11696 | 
            +
                var innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;
         | 
| 11518 11697 | 
             
                ctx.beginPath();
         | 
| 11519 | 
            -
                ctx.arc(x, y, outerRadius,  | 
| 11520 | 
            -
             | 
| 11698 | 
            +
                ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);
         | 
| 11699 | 
            +
             | 
| 11700 | 
            +
                if (outerEnd > 0) {
         | 
| 11701 | 
            +
                  var pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);
         | 
| 11702 | 
            +
                  ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);
         | 
| 11703 | 
            +
                }
         | 
| 11704 | 
            +
             | 
| 11705 | 
            +
                var p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);
         | 
| 11706 | 
            +
                ctx.lineTo(p4.x, p4.y);
         | 
| 11707 | 
            +
             | 
| 11708 | 
            +
                if (innerEnd > 0) {
         | 
| 11709 | 
            +
                  var _pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);
         | 
| 11710 | 
            +
             | 
| 11711 | 
            +
                  ctx.arc(_pCenter.x, _pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);
         | 
| 11712 | 
            +
                }
         | 
| 11713 | 
            +
             | 
| 11714 | 
            +
                ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, startAngle + innerStart / innerRadius, true);
         | 
| 11715 | 
            +
             | 
| 11716 | 
            +
                if (innerStart > 0) {
         | 
| 11717 | 
            +
                  var _pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);
         | 
| 11718 | 
            +
             | 
| 11719 | 
            +
                  ctx.arc(_pCenter2.x, _pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);
         | 
| 11720 | 
            +
                }
         | 
| 11721 | 
            +
             | 
| 11722 | 
            +
                var p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);
         | 
| 11723 | 
            +
                ctx.lineTo(p8.x, p8.y);
         | 
| 11724 | 
            +
             | 
| 11725 | 
            +
                if (outerStart > 0) {
         | 
| 11726 | 
            +
                  var _pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);
         | 
| 11727 | 
            +
             | 
| 11728 | 
            +
                  ctx.arc(_pCenter3.x, _pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);
         | 
| 11729 | 
            +
                }
         | 
| 11730 | 
            +
             | 
| 11521 11731 | 
             
                ctx.closePath();
         | 
| 11522 11732 | 
             
              }
         | 
| 11523 11733 |  | 
| @@ -11576,14 +11786,7 @@ | |
| 11576 11786 | 
             
              }
         | 
| 11577 11787 |  | 
| 11578 11788 | 
             
              function drawBorder(ctx, element) {
         | 
| 11579 | 
            -
                var  | 
| 11580 | 
            -
                    y = element.y,
         | 
| 11581 | 
            -
                    startAngle = element.startAngle,
         | 
| 11582 | 
            -
                    endAngle = element.endAngle,
         | 
| 11583 | 
            -
                    pixelMargin = element.pixelMargin,
         | 
| 11584 | 
            -
                    options = element.options;
         | 
| 11585 | 
            -
                var outerRadius = element.outerRadius;
         | 
| 11586 | 
            -
                var innerRadius = element.innerRadius + pixelMargin;
         | 
| 11789 | 
            +
                var options = element.options;
         | 
| 11587 11790 | 
             
                var inner = options.borderAlign === 'inner';
         | 
| 11588 11791 |  | 
| 11589 11792 | 
             
                if (!options.borderWidth) {
         | 
| @@ -11606,10 +11809,7 @@ | |
| 11606 11809 | 
             
                  clipArc(ctx, element);
         | 
| 11607 11810 | 
             
                }
         | 
| 11608 11811 |  | 
| 11609 | 
            -
                ctx | 
| 11610 | 
            -
                ctx.arc(x, y, outerRadius, startAngle, endAngle);
         | 
| 11611 | 
            -
                ctx.arc(x, y, innerRadius, endAngle, startAngle, true);
         | 
| 11612 | 
            -
                ctx.closePath();
         | 
| 11812 | 
            +
                pathArc(ctx, element);
         | 
| 11613 11813 | 
             
                ctx.stroke();
         | 
| 11614 11814 | 
             
              }
         | 
| 11615 11815 |  | 
| @@ -11619,25 +11819,25 @@ | |
| 11619 11819 | 
             
                var _super12 = _createSuper(ArcElement);
         | 
| 11620 11820 |  | 
| 11621 11821 | 
             
                function ArcElement(cfg) {
         | 
| 11622 | 
            -
                  var  | 
| 11822 | 
            +
                  var _this7;
         | 
| 11623 11823 |  | 
| 11624 11824 | 
             
                  _classCallCheck(this, ArcElement);
         | 
| 11625 11825 |  | 
| 11626 | 
            -
                   | 
| 11627 | 
            -
                   | 
| 11628 | 
            -
                   | 
| 11629 | 
            -
                   | 
| 11630 | 
            -
                   | 
| 11631 | 
            -
                   | 
| 11632 | 
            -
                   | 
| 11633 | 
            -
                   | 
| 11634 | 
            -
                   | 
| 11826 | 
            +
                  _this7 = _super12.call(this);
         | 
| 11827 | 
            +
                  _this7.options = undefined;
         | 
| 11828 | 
            +
                  _this7.circumference = undefined;
         | 
| 11829 | 
            +
                  _this7.startAngle = undefined;
         | 
| 11830 | 
            +
                  _this7.endAngle = undefined;
         | 
| 11831 | 
            +
                  _this7.innerRadius = undefined;
         | 
| 11832 | 
            +
                  _this7.outerRadius = undefined;
         | 
| 11833 | 
            +
                  _this7.pixelMargin = 0;
         | 
| 11834 | 
            +
                  _this7.fullCircles = 0;
         | 
| 11635 11835 |  | 
| 11636 11836 | 
             
                  if (cfg) {
         | 
| 11637 | 
            -
                    Object.assign(_assertThisInitialized( | 
| 11837 | 
            +
                    Object.assign(_assertThisInitialized(_this7), cfg);
         | 
| 11638 11838 | 
             
                  }
         | 
| 11639 11839 |  | 
| 11640 | 
            -
                  return  | 
| 11840 | 
            +
                  return _this7;
         | 
| 11641 11841 | 
             
                }
         | 
| 11642 11842 |  | 
| 11643 11843 | 
             
                _createClass(ArcElement, [{
         | 
| @@ -11722,6 +11922,7 @@ | |
| 11722 11922 | 
             
              ArcElement.defaults = {
         | 
| 11723 11923 | 
             
                borderAlign: 'center',
         | 
| 11724 11924 | 
             
                borderColor: '#fff',
         | 
| 11925 | 
            +
                borderRadius: 0,
         | 
| 11725 11926 | 
             
                borderWidth: 2,
         | 
| 11726 11927 | 
             
                offset: 0,
         | 
| 11727 11928 | 
             
                angle: undefined
         | 
| @@ -11730,13 +11931,14 @@ | |
| 11730 11931 | 
             
                backgroundColor: 'backgroundColor'
         | 
| 11731 11932 | 
             
              };
         | 
| 11732 11933 |  | 
| 11733 | 
            -
              function setStyle(ctx,  | 
| 11734 | 
            -
                 | 
| 11735 | 
            -
                ctx. | 
| 11736 | 
            -
                ctx. | 
| 11737 | 
            -
                ctx. | 
| 11738 | 
            -
                ctx. | 
| 11739 | 
            -
                ctx. | 
| 11934 | 
            +
              function setStyle(ctx, options) {
         | 
| 11935 | 
            +
                var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : options;
         | 
| 11936 | 
            +
                ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);
         | 
| 11937 | 
            +
                ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));
         | 
| 11938 | 
            +
                ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);
         | 
| 11939 | 
            +
                ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);
         | 
| 11940 | 
            +
                ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);
         | 
| 11941 | 
            +
                ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);
         | 
| 11740 11942 | 
             
              }
         | 
| 11741 11943 |  | 
| 11742 11944 | 
             
              function lineTo(ctx, previous, target) {
         | 
| @@ -11907,21 +12109,50 @@ | |
| 11907 12109 | 
             
                  }
         | 
| 11908 12110 | 
             
                }
         | 
| 11909 12111 |  | 
| 12112 | 
            +
                setStyle(ctx, line.options);
         | 
| 11910 12113 | 
             
                ctx.stroke(path);
         | 
| 11911 12114 | 
             
              }
         | 
| 11912 12115 |  | 
| 11913 12116 | 
             
              function strokePathDirect(ctx, line, start, count) {
         | 
| 11914 | 
            -
                 | 
| 12117 | 
            +
                var segments = line.segments,
         | 
| 12118 | 
            +
                    options = line.options;
         | 
| 11915 12119 |  | 
| 11916 | 
            -
                 | 
| 11917 | 
            -
                  ctx.closePath();
         | 
| 11918 | 
            -
                }
         | 
| 12120 | 
            +
                var segmentMethod = _getSegmentMethod(line);
         | 
| 11919 12121 |  | 
| 11920 | 
            -
                 | 
| 12122 | 
            +
                var _iterator6 = _createForOfIteratorHelper(segments),
         | 
| 12123 | 
            +
                    _step6;
         | 
| 12124 | 
            +
             | 
| 12125 | 
            +
                try {
         | 
| 12126 | 
            +
                  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
         | 
| 12127 | 
            +
                    var segment = _step6.value;
         | 
| 12128 | 
            +
                    setStyle(ctx, options, segment.style);
         | 
| 12129 | 
            +
                    ctx.beginPath();
         | 
| 12130 | 
            +
             | 
| 12131 | 
            +
                    if (segmentMethod(ctx, line, segment, {
         | 
| 12132 | 
            +
                      start: start,
         | 
| 12133 | 
            +
                      end: start + count - 1
         | 
| 12134 | 
            +
                    })) {
         | 
| 12135 | 
            +
                      ctx.closePath();
         | 
| 12136 | 
            +
                    }
         | 
| 12137 | 
            +
             | 
| 12138 | 
            +
                    ctx.stroke();
         | 
| 12139 | 
            +
                  }
         | 
| 12140 | 
            +
                } catch (err) {
         | 
| 12141 | 
            +
                  _iterator6.e(err);
         | 
| 12142 | 
            +
                } finally {
         | 
| 12143 | 
            +
                  _iterator6.f();
         | 
| 12144 | 
            +
                }
         | 
| 11921 12145 | 
             
              }
         | 
| 11922 12146 |  | 
| 11923 12147 | 
             
              var usePath2D = typeof Path2D === 'function';
         | 
| 11924 | 
            -
             | 
| 12148 | 
            +
             | 
| 12149 | 
            +
              function _draw(ctx, line, start, count) {
         | 
| 12150 | 
            +
                if (usePath2D && line.segments.length === 1) {
         | 
| 12151 | 
            +
                  strokePathWithCache(ctx, line, start, count);
         | 
| 12152 | 
            +
                } else {
         | 
| 12153 | 
            +
                  strokePathDirect(ctx, line, start, count);
         | 
| 12154 | 
            +
                }
         | 
| 12155 | 
            +
              }
         | 
| 11925 12156 |  | 
| 11926 12157 | 
             
              var LineElement = /*#__PURE__*/function (_Element3) {
         | 
| 11927 12158 | 
             
                _inherits(LineElement, _Element3);
         | 
| @@ -11929,26 +12160,26 @@ | |
| 11929 12160 | 
             
                var _super13 = _createSuper(LineElement);
         | 
| 11930 12161 |  | 
| 11931 12162 | 
             
                function LineElement(cfg) {
         | 
| 11932 | 
            -
                  var  | 
| 12163 | 
            +
                  var _this8;
         | 
| 11933 12164 |  | 
| 11934 12165 | 
             
                  _classCallCheck(this, LineElement);
         | 
| 11935 12166 |  | 
| 11936 | 
            -
                   | 
| 11937 | 
            -
                   | 
| 11938 | 
            -
                   | 
| 11939 | 
            -
                   | 
| 11940 | 
            -
                   | 
| 11941 | 
            -
                   | 
| 11942 | 
            -
                   | 
| 11943 | 
            -
                   | 
| 11944 | 
            -
                   | 
| 11945 | 
            -
                   | 
| 12167 | 
            +
                  _this8 = _super13.call(this);
         | 
| 12168 | 
            +
                  _this8.animated = true;
         | 
| 12169 | 
            +
                  _this8.options = undefined;
         | 
| 12170 | 
            +
                  _this8._loop = undefined;
         | 
| 12171 | 
            +
                  _this8._fullLoop = undefined;
         | 
| 12172 | 
            +
                  _this8._path = undefined;
         | 
| 12173 | 
            +
                  _this8._points = undefined;
         | 
| 12174 | 
            +
                  _this8._segments = undefined;
         | 
| 12175 | 
            +
                  _this8._decimated = false;
         | 
| 12176 | 
            +
                  _this8._pointsUpdated = false;
         | 
| 11946 12177 |  | 
| 11947 12178 | 
             
                  if (cfg) {
         | 
| 11948 | 
            -
                    Object.assign(_assertThisInitialized( | 
| 12179 | 
            +
                    Object.assign(_assertThisInitialized(_this8), cfg);
         | 
| 11949 12180 | 
             
                  }
         | 
| 11950 12181 |  | 
| 11951 | 
            -
                  return  | 
| 12182 | 
            +
                  return _this8;
         | 
| 11952 12183 | 
             
                }
         | 
| 11953 12184 |  | 
| 11954 12185 | 
             
                _createClass(LineElement, [{
         | 
| @@ -11980,7 +12211,7 @@ | |
| 11980 12211 | 
             
                }, {
         | 
| 11981 12212 | 
             
                  key: "segments",
         | 
| 11982 12213 | 
             
                  get: function get() {
         | 
| 11983 | 
            -
                    return this._segments || (this._segments = _computeSegments(this));
         | 
| 12214 | 
            +
                    return this._segments || (this._segments = _computeSegments(this, this.options.segment));
         | 
| 11984 12215 | 
             
                  }
         | 
| 11985 12216 | 
             
                }, {
         | 
| 11986 12217 | 
             
                  key: "first",
         | 
| @@ -12055,7 +12286,6 @@ | |
| 12055 12286 | 
             
                  value: function path(ctx, start, count) {
         | 
| 12056 12287 | 
             
                    var me = this;
         | 
| 12057 12288 | 
             
                    var segments = me.segments;
         | 
| 12058 | 
            -
                    var ilen = segments.length;
         | 
| 12059 12289 |  | 
| 12060 12290 | 
             
                    var segmentMethod = _getSegmentMethod(me);
         | 
| 12061 12291 |  | 
| @@ -12063,11 +12293,21 @@ | |
| 12063 12293 | 
             
                    start = start || 0;
         | 
| 12064 12294 | 
             
                    count = count || me.points.length - start;
         | 
| 12065 12295 |  | 
| 12066 | 
            -
                     | 
| 12067 | 
            -
             | 
| 12068 | 
            -
             | 
| 12069 | 
            -
             | 
| 12070 | 
            -
                       | 
| 12296 | 
            +
                    var _iterator7 = _createForOfIteratorHelper(segments),
         | 
| 12297 | 
            +
                        _step7;
         | 
| 12298 | 
            +
             | 
| 12299 | 
            +
                    try {
         | 
| 12300 | 
            +
                      for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
         | 
| 12301 | 
            +
                        var segment = _step7.value;
         | 
| 12302 | 
            +
                        loop &= segmentMethod(ctx, me, segment, {
         | 
| 12303 | 
            +
                          start: start,
         | 
| 12304 | 
            +
                          end: start + count - 1
         | 
| 12305 | 
            +
                        });
         | 
| 12306 | 
            +
                      }
         | 
| 12307 | 
            +
                    } catch (err) {
         | 
| 12308 | 
            +
                      _iterator7.e(err);
         | 
| 12309 | 
            +
                    } finally {
         | 
| 12310 | 
            +
                      _iterator7.f();
         | 
| 12071 12311 | 
             
                    }
         | 
| 12072 12312 |  | 
| 12073 12313 | 
             
                    return !!loop;
         | 
| @@ -12084,8 +12324,9 @@ | |
| 12084 12324 | 
             
                    }
         | 
| 12085 12325 |  | 
| 12086 12326 | 
             
                    ctx.save();
         | 
| 12087 | 
            -
             | 
| 12088 | 
            -
                     | 
| 12327 | 
            +
             | 
| 12328 | 
            +
                    _draw(ctx, me, start, count);
         | 
| 12329 | 
            +
             | 
| 12089 12330 | 
             
                    ctx.restore();
         | 
| 12090 12331 |  | 
| 12091 12332 | 
             
                    if (me.animated) {
         | 
| @@ -12138,20 +12379,21 @@ | |
| 12138 12379 | 
             
                var _super14 = _createSuper(PointElement);
         | 
| 12139 12380 |  | 
| 12140 12381 | 
             
                function PointElement(cfg) {
         | 
| 12141 | 
            -
                  var  | 
| 12382 | 
            +
                  var _this9;
         | 
| 12142 12383 |  | 
| 12143 12384 | 
             
                  _classCallCheck(this, PointElement);
         | 
| 12144 12385 |  | 
| 12145 | 
            -
                   | 
| 12146 | 
            -
                   | 
| 12147 | 
            -
                   | 
| 12148 | 
            -
                   | 
| 12386 | 
            +
                  _this9 = _super14.call(this);
         | 
| 12387 | 
            +
                  _this9.options = undefined;
         | 
| 12388 | 
            +
                  _this9.parsed = undefined;
         | 
| 12389 | 
            +
                  _this9.skip = undefined;
         | 
| 12390 | 
            +
                  _this9.stop = undefined;
         | 
| 12149 12391 |  | 
| 12150 12392 | 
             
                  if (cfg) {
         | 
| 12151 | 
            -
                    Object.assign(_assertThisInitialized( | 
| 12393 | 
            +
                    Object.assign(_assertThisInitialized(_this9), cfg);
         | 
| 12152 12394 | 
             
                  }
         | 
| 12153 12395 |  | 
| 12154 | 
            -
                  return  | 
| 12396 | 
            +
                  return _this9;
         | 
| 12155 12397 | 
             
                }
         | 
| 12156 12398 |  | 
| 12157 12399 | 
             
                _createClass(PointElement, [{
         | 
| @@ -12371,22 +12613,6 @@ | |
| 12371 12613 | 
             
                return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;
         | 
| 12372 12614 | 
             
              }
         | 
| 12373 12615 |  | 
| 12374 | 
            -
              function addRoundedRectPath(ctx, rect) {
         | 
| 12375 | 
            -
                var x = rect.x,
         | 
| 12376 | 
            -
                    y = rect.y,
         | 
| 12377 | 
            -
                    w = rect.w,
         | 
| 12378 | 
            -
                    h = rect.h,
         | 
| 12379 | 
            -
                    radius = rect.radius;
         | 
| 12380 | 
            -
                ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);
         | 
| 12381 | 
            -
                ctx.lineTo(x, y + h - radius.bottomLeft);
         | 
| 12382 | 
            -
                ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);
         | 
| 12383 | 
            -
                ctx.lineTo(x + w - radius.bottomRight, y + h);
         | 
| 12384 | 
            -
                ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);
         | 
| 12385 | 
            -
                ctx.lineTo(x + w, y + radius.topRight);
         | 
| 12386 | 
            -
                ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);
         | 
| 12387 | 
            -
                ctx.lineTo(x + radius.topLeft, y);
         | 
| 12388 | 
            -
              }
         | 
| 12389 | 
            -
             | 
| 12390 12616 | 
             
              function addNormalRectPath(ctx, rect) {
         | 
| 12391 12617 | 
             
                ctx.rect(rect.x, rect.y, rect.w, rect.h);
         | 
| 12392 12618 | 
             
              }
         | 
| @@ -12397,22 +12623,22 @@ | |
| 12397 12623 | 
             
                var _super15 = _createSuper(BarElement);
         | 
| 12398 12624 |  | 
| 12399 12625 | 
             
                function BarElement(cfg) {
         | 
| 12400 | 
            -
                  var  | 
| 12626 | 
            +
                  var _this10;
         | 
| 12401 12627 |  | 
| 12402 12628 | 
             
                  _classCallCheck(this, BarElement);
         | 
| 12403 12629 |  | 
| 12404 | 
            -
                   | 
| 12405 | 
            -
                   | 
| 12406 | 
            -
                   | 
| 12407 | 
            -
                   | 
| 12408 | 
            -
                   | 
| 12409 | 
            -
                   | 
| 12630 | 
            +
                  _this10 = _super15.call(this);
         | 
| 12631 | 
            +
                  _this10.options = undefined;
         | 
| 12632 | 
            +
                  _this10.horizontal = undefined;
         | 
| 12633 | 
            +
                  _this10.base = undefined;
         | 
| 12634 | 
            +
                  _this10.width = undefined;
         | 
| 12635 | 
            +
                  _this10.height = undefined;
         | 
| 12410 12636 |  | 
| 12411 12637 | 
             
                  if (cfg) {
         | 
| 12412 | 
            -
                    Object.assign(_assertThisInitialized( | 
| 12638 | 
            +
                    Object.assign(_assertThisInitialized(_this10), cfg);
         | 
| 12413 12639 | 
             
                  }
         | 
| 12414 12640 |  | 
| 12415 | 
            -
                  return  | 
| 12641 | 
            +
                  return _this10;
         | 
| 12416 12642 | 
             
                }
         | 
| 12417 12643 |  | 
| 12418 12644 | 
             
                _createClass(BarElement, [{
         | 
| @@ -12500,12 +12726,18 @@ | |
| 12500 12726 | 
             
                BarElement: BarElement
         | 
| 12501 12727 | 
             
              });
         | 
| 12502 12728 |  | 
| 12503 | 
            -
              function lttbDecimation(data, availableWidth, options) {
         | 
| 12729 | 
            +
              function lttbDecimation(data, start, count, availableWidth, options) {
         | 
| 12504 12730 | 
             
                var samples = options.samples || availableWidth;
         | 
| 12731 | 
            +
             | 
| 12732 | 
            +
                if (samples >= count) {
         | 
| 12733 | 
            +
                  return data.slice(start, start + count);
         | 
| 12734 | 
            +
                }
         | 
| 12735 | 
            +
             | 
| 12505 12736 | 
             
                var decimated = [];
         | 
| 12506 | 
            -
                var bucketWidth = ( | 
| 12737 | 
            +
                var bucketWidth = (count - 2) / (samples - 2);
         | 
| 12507 12738 | 
             
                var sampledIndex = 0;
         | 
| 12508 | 
            -
                var  | 
| 12739 | 
            +
                var endIndex = start + count - 1;
         | 
| 12740 | 
            +
                var a = start;
         | 
| 12509 12741 | 
             
                var i, maxAreaPoint, maxArea, area, nextA;
         | 
| 12510 12742 | 
             
                decimated[sampledIndex++] = data[a];
         | 
| 12511 12743 |  | 
| @@ -12513,19 +12745,19 @@ | |
| 12513 12745 | 
             
                  var avgX = 0;
         | 
| 12514 12746 | 
             
                  var avgY = 0;
         | 
| 12515 12747 | 
             
                  var j = void 0;
         | 
| 12516 | 
            -
                  var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1;
         | 
| 12517 | 
            -
                  var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1,  | 
| 12748 | 
            +
                  var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;
         | 
| 12749 | 
            +
                  var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;
         | 
| 12518 12750 | 
             
                  var avgRangeLength = avgRangeEnd - avgRangeStart;
         | 
| 12519 12751 |  | 
| 12520 12752 | 
             
                  for (j = avgRangeStart; j < avgRangeEnd; j++) {
         | 
| 12521 | 
            -
                    avgX  | 
| 12522 | 
            -
                    avgY  | 
| 12753 | 
            +
                    avgX += data[j].x;
         | 
| 12754 | 
            +
                    avgY += data[j].y;
         | 
| 12523 12755 | 
             
                  }
         | 
| 12524 12756 |  | 
| 12525 12757 | 
             
                  avgX /= avgRangeLength;
         | 
| 12526 12758 | 
             
                  avgY /= avgRangeLength;
         | 
| 12527 | 
            -
                  var rangeOffs = Math.floor(i * bucketWidth) + 1;
         | 
| 12528 | 
            -
                  var rangeTo = Math.floor((i + 1) * bucketWidth) + 1;
         | 
| 12759 | 
            +
                  var rangeOffs = Math.floor(i * bucketWidth) + 1 + start;
         | 
| 12760 | 
            +
                  var rangeTo = Math.floor((i + 1) * bucketWidth) + 1 + start;
         | 
| 12529 12761 | 
             
                  var _data$a = data[a],
         | 
| 12530 12762 | 
             
                      pointAx = _data$a.x,
         | 
| 12531 12763 | 
             
                      pointAy = _data$a.y;
         | 
| @@ -12545,20 +12777,21 @@ | |
| 12545 12777 | 
             
                  a = nextA;
         | 
| 12546 12778 | 
             
                }
         | 
| 12547 12779 |  | 
| 12548 | 
            -
                decimated[sampledIndex++] = data[ | 
| 12780 | 
            +
                decimated[sampledIndex++] = data[endIndex];
         | 
| 12549 12781 | 
             
                return decimated;
         | 
| 12550 12782 | 
             
              }
         | 
| 12551 12783 |  | 
| 12552 | 
            -
              function minMaxDecimation(data, availableWidth) {
         | 
| 12784 | 
            +
              function minMaxDecimation(data, start, count, availableWidth) {
         | 
| 12553 12785 | 
             
                var avgX = 0;
         | 
| 12554 12786 | 
             
                var countX = 0;
         | 
| 12555 12787 | 
             
                var i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;
         | 
| 12556 12788 | 
             
                var decimated = [];
         | 
| 12557 | 
            -
                var  | 
| 12558 | 
            -
                var  | 
| 12789 | 
            +
                var endIndex = start + count - 1;
         | 
| 12790 | 
            +
                var xMin = data[start].x;
         | 
| 12791 | 
            +
                var xMax = data[endIndex].x;
         | 
| 12559 12792 | 
             
                var dx = xMax - xMin;
         | 
| 12560 12793 |  | 
| 12561 | 
            -
                for (i =  | 
| 12794 | 
            +
                for (i = start; i < start + count; ++i) {
         | 
| 12562 12795 | 
             
                  point = data[i];
         | 
| 12563 12796 | 
             
                  x = (point.x - xMin) / dx * availableWidth;
         | 
| 12564 12797 | 
             
                  y = point.y;
         | 
| @@ -12622,6 +12855,34 @@ | |
| 12622 12855 | 
             
                });
         | 
| 12623 12856 | 
             
              }
         | 
| 12624 12857 |  | 
| 12858 | 
            +
              function getStartAndCountOfVisiblePointsSimplified(meta, points) {
         | 
| 12859 | 
            +
                var pointCount = points.length;
         | 
| 12860 | 
            +
                var start = 0;
         | 
| 12861 | 
            +
                var count;
         | 
| 12862 | 
            +
                var iScale = meta.iScale;
         | 
| 12863 | 
            +
             | 
| 12864 | 
            +
                var _iScale$getUserBounds2 = iScale.getUserBounds(),
         | 
| 12865 | 
            +
                    min = _iScale$getUserBounds2.min,
         | 
| 12866 | 
            +
                    max = _iScale$getUserBounds2.max,
         | 
| 12867 | 
            +
                    minDefined = _iScale$getUserBounds2.minDefined,
         | 
| 12868 | 
            +
                    maxDefined = _iScale$getUserBounds2.maxDefined;
         | 
| 12869 | 
            +
             | 
| 12870 | 
            +
                if (minDefined) {
         | 
| 12871 | 
            +
                  start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);
         | 
| 12872 | 
            +
                }
         | 
| 12873 | 
            +
             | 
| 12874 | 
            +
                if (maxDefined) {
         | 
| 12875 | 
            +
                  count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;
         | 
| 12876 | 
            +
                } else {
         | 
| 12877 | 
            +
                  count = pointCount - start;
         | 
| 12878 | 
            +
                }
         | 
| 12879 | 
            +
             | 
| 12880 | 
            +
                return {
         | 
| 12881 | 
            +
                  start: start,
         | 
| 12882 | 
            +
                  count: count
         | 
| 12883 | 
            +
                };
         | 
| 12884 | 
            +
              }
         | 
| 12885 | 
            +
             | 
| 12625 12886 | 
             
              var plugin_decimation = {
         | 
| 12626 12887 | 
             
                id: 'decimation',
         | 
| 12627 12888 | 
             
                defaults: {
         | 
| @@ -12659,7 +12920,11 @@ | |
| 12659 12920 | 
             
                      return;
         | 
| 12660 12921 | 
             
                    }
         | 
| 12661 12922 |  | 
| 12662 | 
            -
                     | 
| 12923 | 
            +
                    var _getStartAndCountOfVi2 = getStartAndCountOfVisiblePointsSimplified(meta, data),
         | 
| 12924 | 
            +
                        start = _getStartAndCountOfVi2.start,
         | 
| 12925 | 
            +
                        count = _getStartAndCountOfVi2.count;
         | 
| 12926 | 
            +
             | 
| 12927 | 
            +
                    if (count <= 4 * availableWidth) {
         | 
| 12663 12928 | 
             
                      return;
         | 
| 12664 12929 | 
             
                    }
         | 
| 12665 12930 |  | 
| @@ -12682,11 +12947,11 @@ | |
| 12682 12947 |  | 
| 12683 12948 | 
             
                    switch (options.algorithm) {
         | 
| 12684 12949 | 
             
                      case 'lttb':
         | 
| 12685 | 
            -
                        decimated = lttbDecimation(data, availableWidth, options);
         | 
| 12950 | 
            +
                        decimated = lttbDecimation(data, start, count, availableWidth, options);
         | 
| 12686 12951 | 
             
                        break;
         | 
| 12687 12952 |  | 
| 12688 12953 | 
             
                      case 'min-max':
         | 
| 12689 | 
            -
                        decimated = minMaxDecimation(data, availableWidth);
         | 
| 12954 | 
            +
                        decimated = minMaxDecimation(data, start, count, availableWidth);
         | 
| 12690 12955 | 
             
                        break;
         | 
| 12691 12956 |  | 
| 12692 12957 | 
             
                      default:
         | 
| @@ -13131,37 +13396,65 @@ | |
| 13131 13396 | 
             
                var tpoints = target.points;
         | 
| 13132 13397 | 
             
                var parts = [];
         | 
| 13133 13398 |  | 
| 13134 | 
            -
                 | 
| 13135 | 
            -
             | 
| 13136 | 
            -
                  var bounds = getBounds(property, points[segment.start], points[segment.end], segment.loop);
         | 
| 13137 | 
            -
             | 
| 13138 | 
            -
                  if (!target.segments) {
         | 
| 13139 | 
            -
                    parts.push({
         | 
| 13140 | 
            -
                      source: segment,
         | 
| 13141 | 
            -
                      target: bounds,
         | 
| 13142 | 
            -
                      start: points[segment.start],
         | 
| 13143 | 
            -
                      end: points[segment.end]
         | 
| 13144 | 
            -
                    });
         | 
| 13145 | 
            -
                    continue;
         | 
| 13146 | 
            -
                  }
         | 
| 13147 | 
            -
             | 
| 13148 | 
            -
                  var subs = _boundSegments(target, bounds);
         | 
| 13149 | 
            -
             | 
| 13150 | 
            -
                  for (var j = 0; j < subs.length; ++j) {
         | 
| 13151 | 
            -
                    var sub = subs[j];
         | 
| 13152 | 
            -
                    var subBounds = getBounds(property, tpoints[sub.start], tpoints[sub.end], sub.loop);
         | 
| 13399 | 
            +
                var _iterator8 = _createForOfIteratorHelper(segments),
         | 
| 13400 | 
            +
                    _step8;
         | 
| 13153 13401 |  | 
| 13154 | 
            -
             | 
| 13402 | 
            +
                try {
         | 
| 13403 | 
            +
                  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
         | 
| 13404 | 
            +
                    var segment = _step8.value;
         | 
| 13405 | 
            +
                    var bounds = getBounds(property, points[segment.start], points[segment.end], segment.loop);
         | 
| 13155 13406 |  | 
| 13156 | 
            -
                     | 
| 13407 | 
            +
                    if (!target.segments) {
         | 
| 13157 13408 | 
             
                      parts.push({
         | 
| 13158 | 
            -
                        source:  | 
| 13159 | 
            -
                        target:  | 
| 13160 | 
            -
                        start:  | 
| 13161 | 
            -
                        end:  | 
| 13409 | 
            +
                        source: segment,
         | 
| 13410 | 
            +
                        target: bounds,
         | 
| 13411 | 
            +
                        start: points[segment.start],
         | 
| 13412 | 
            +
                        end: points[segment.end]
         | 
| 13162 13413 | 
             
                      });
         | 
| 13414 | 
            +
                      continue;
         | 
| 13415 | 
            +
                    }
         | 
| 13416 | 
            +
             | 
| 13417 | 
            +
                    var targetSegments = _boundSegments(target, bounds);
         | 
| 13418 | 
            +
             | 
| 13419 | 
            +
                    var _iterator9 = _createForOfIteratorHelper(targetSegments),
         | 
| 13420 | 
            +
                        _step9;
         | 
| 13421 | 
            +
             | 
| 13422 | 
            +
                    try {
         | 
| 13423 | 
            +
                      for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
         | 
| 13424 | 
            +
                        var tgt = _step9.value;
         | 
| 13425 | 
            +
                        var subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);
         | 
| 13426 | 
            +
             | 
| 13427 | 
            +
                        var fillSources = _boundSegment(segment, points, subBounds);
         | 
| 13428 | 
            +
             | 
| 13429 | 
            +
                        var _iterator10 = _createForOfIteratorHelper(fillSources),
         | 
| 13430 | 
            +
                            _step10;
         | 
| 13431 | 
            +
             | 
| 13432 | 
            +
                        try {
         | 
| 13433 | 
            +
                          for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
         | 
| 13434 | 
            +
                            var fillSource = _step10.value;
         | 
| 13435 | 
            +
                            parts.push({
         | 
| 13436 | 
            +
                              source: fillSource,
         | 
| 13437 | 
            +
                              target: tgt,
         | 
| 13438 | 
            +
                              start: _defineProperty({}, property, _getEdge(bounds, subBounds, 'start', Math.max)),
         | 
| 13439 | 
            +
                              end: _defineProperty({}, property, _getEdge(bounds, subBounds, 'end', Math.min))
         | 
| 13440 | 
            +
                            });
         | 
| 13441 | 
            +
                          }
         | 
| 13442 | 
            +
                        } catch (err) {
         | 
| 13443 | 
            +
                          _iterator10.e(err);
         | 
| 13444 | 
            +
                        } finally {
         | 
| 13445 | 
            +
                          _iterator10.f();
         | 
| 13446 | 
            +
                        }
         | 
| 13447 | 
            +
                      }
         | 
| 13448 | 
            +
                    } catch (err) {
         | 
| 13449 | 
            +
                      _iterator9.e(err);
         | 
| 13450 | 
            +
                    } finally {
         | 
| 13451 | 
            +
                      _iterator9.f();
         | 
| 13163 13452 | 
             
                    }
         | 
| 13164 13453 | 
             
                  }
         | 
| 13454 | 
            +
                } catch (err) {
         | 
| 13455 | 
            +
                  _iterator8.e(err);
         | 
| 13456 | 
            +
                } finally {
         | 
| 13457 | 
            +
                  _iterator8.f();
         | 
| 13165 13458 | 
             
                }
         | 
| 13166 13459 |  | 
| 13167 13460 | 
             
                return parts;
         | 
| @@ -13201,38 +13494,50 @@ | |
| 13201 13494 |  | 
| 13202 13495 | 
             
                var segments = _segments(line, target, property);
         | 
| 13203 13496 |  | 
| 13204 | 
            -
                 | 
| 13497 | 
            +
                var _iterator11 = _createForOfIteratorHelper(segments),
         | 
| 13498 | 
            +
                    _step11;
         | 
| 13205 13499 |  | 
| 13206 | 
            -
                 | 
| 13207 | 
            -
                   | 
| 13208 | 
            -
             | 
| 13209 | 
            -
             | 
| 13210 | 
            -
             | 
| 13211 | 
            -
             | 
| 13212 | 
            -
             | 
| 13213 | 
            -
             | 
| 13214 | 
            -
             | 
| 13215 | 
            -
             | 
| 13500 | 
            +
                try {
         | 
| 13501 | 
            +
                  for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
         | 
| 13502 | 
            +
                    var _step11$value = _step11.value,
         | 
| 13503 | 
            +
                        src = _step11$value.source,
         | 
| 13504 | 
            +
                        tgt = _step11$value.target,
         | 
| 13505 | 
            +
                        start = _step11$value.start,
         | 
| 13506 | 
            +
                        end = _step11$value.end;
         | 
| 13507 | 
            +
                    var _src$style = src.style;
         | 
| 13508 | 
            +
                    _src$style = _src$style === void 0 ? {} : _src$style;
         | 
| 13509 | 
            +
                    var _src$style$background = _src$style.backgroundColor,
         | 
| 13510 | 
            +
                        backgroundColor = _src$style$background === void 0 ? color : _src$style$background;
         | 
| 13511 | 
            +
                    ctx.save();
         | 
| 13512 | 
            +
                    ctx.fillStyle = backgroundColor;
         | 
| 13513 | 
            +
                    clipBounds(ctx, scale, getBounds(property, start, end));
         | 
| 13514 | 
            +
                    ctx.beginPath();
         | 
| 13515 | 
            +
                    var lineLoop = !!line.pathSegment(ctx, src);
         | 
| 13216 13516 |  | 
| 13217 | 
            -
             | 
| 13218 | 
            -
             | 
| 13219 | 
            -
             | 
| 13220 | 
            -
             | 
| 13221 | 
            -
             | 
| 13517 | 
            +
                    if (lineLoop) {
         | 
| 13518 | 
            +
                      ctx.closePath();
         | 
| 13519 | 
            +
                    } else {
         | 
| 13520 | 
            +
                      interpolatedLineTo(ctx, target, end, property);
         | 
| 13521 | 
            +
                    }
         | 
| 13222 13522 |  | 
| 13223 | 
            -
             | 
| 13224 | 
            -
             | 
| 13225 | 
            -
             | 
| 13226 | 
            -
             | 
| 13227 | 
            -
             | 
| 13523 | 
            +
                    var targetLoop = !!target.pathSegment(ctx, tgt, {
         | 
| 13524 | 
            +
                      move: lineLoop,
         | 
| 13525 | 
            +
                      reverse: true
         | 
| 13526 | 
            +
                    });
         | 
| 13527 | 
            +
                    var loop = lineLoop && targetLoop;
         | 
| 13228 13528 |  | 
| 13229 | 
            -
             | 
| 13230 | 
            -
             | 
| 13231 | 
            -
             | 
| 13529 | 
            +
                    if (!loop) {
         | 
| 13530 | 
            +
                      interpolatedLineTo(ctx, target, start, property);
         | 
| 13531 | 
            +
                    }
         | 
| 13232 13532 |  | 
| 13233 | 
            -
             | 
| 13234 | 
            -
             | 
| 13235 | 
            -
             | 
| 13533 | 
            +
                    ctx.closePath();
         | 
| 13534 | 
            +
                    ctx.fill(loop ? 'evenodd' : 'nonzero');
         | 
| 13535 | 
            +
                    ctx.restore();
         | 
| 13536 | 
            +
                  }
         | 
| 13537 | 
            +
                } catch (err) {
         | 
| 13538 | 
            +
                  _iterator11.e(err);
         | 
| 13539 | 
            +
                } finally {
         | 
| 13540 | 
            +
                  _iterator11.f();
         | 
| 13236 13541 | 
             
                }
         | 
| 13237 13542 | 
             
              }
         | 
| 13238 13543 |  | 
| @@ -13274,11 +13579,38 @@ | |
| 13274 13579 | 
             
                ctx.restore();
         | 
| 13275 13580 | 
             
              }
         | 
| 13276 13581 |  | 
| 13582 | 
            +
              function drawfill(ctx, source, area) {
         | 
| 13583 | 
            +
                var target = getTarget(source);
         | 
| 13584 | 
            +
                var line = source.line,
         | 
| 13585 | 
            +
                    scale = source.scale;
         | 
| 13586 | 
            +
                var lineOpts = line.options;
         | 
| 13587 | 
            +
                var fillOption = lineOpts.fill;
         | 
| 13588 | 
            +
                var color = lineOpts.backgroundColor;
         | 
| 13589 | 
            +
             | 
| 13590 | 
            +
                var _ref6 = fillOption || {},
         | 
| 13591 | 
            +
                    _ref6$above = _ref6.above,
         | 
| 13592 | 
            +
                    above = _ref6$above === void 0 ? color : _ref6$above,
         | 
| 13593 | 
            +
                    _ref6$below = _ref6.below,
         | 
| 13594 | 
            +
                    below = _ref6$below === void 0 ? color : _ref6$below;
         | 
| 13595 | 
            +
             | 
| 13596 | 
            +
                if (target && line.points.length) {
         | 
| 13597 | 
            +
                  clipArea(ctx, area);
         | 
| 13598 | 
            +
                  doFill(ctx, {
         | 
| 13599 | 
            +
                    line: line,
         | 
| 13600 | 
            +
                    target: target,
         | 
| 13601 | 
            +
                    above: above,
         | 
| 13602 | 
            +
                    below: below,
         | 
| 13603 | 
            +
                    area: area,
         | 
| 13604 | 
            +
                    scale: scale
         | 
| 13605 | 
            +
                  });
         | 
| 13606 | 
            +
                  unclipArea(ctx);
         | 
| 13607 | 
            +
                }
         | 
| 13608 | 
            +
              }
         | 
| 13609 | 
            +
             | 
| 13277 13610 | 
             
              var plugin_filler = {
         | 
| 13278 13611 | 
             
                id: 'filler',
         | 
| 13279 13612 | 
             
                afterDatasetsUpdate: function afterDatasetsUpdate(chart, _args, options) {
         | 
| 13280 13613 | 
             
                  var count = (chart.data.datasets || []).length;
         | 
| 13281 | 
            -
                  var propagate = options.propagate;
         | 
| 13282 13614 | 
             
                  var sources = [];
         | 
| 13283 13615 | 
             
                  var meta, i, line, source;
         | 
| 13284 13616 |  | 
| @@ -13309,59 +13641,37 @@ | |
| 13309 13641 | 
             
                      continue;
         | 
| 13310 13642 | 
             
                    }
         | 
| 13311 13643 |  | 
| 13312 | 
            -
                    source.fill = resolveTarget(sources, i, propagate);
         | 
| 13644 | 
            +
                    source.fill = resolveTarget(sources, i, options.propagate);
         | 
| 13313 13645 | 
             
                  }
         | 
| 13314 13646 | 
             
                },
         | 
| 13315 | 
            -
                beforeDatasetsDraw: function beforeDatasetsDraw(chart) {
         | 
| 13647 | 
            +
                beforeDatasetsDraw: function beforeDatasetsDraw(chart, _args, options) {
         | 
| 13316 13648 | 
             
                  var metasets = chart.getSortedVisibleDatasetMetas();
         | 
| 13317 13649 | 
             
                  var area = chart.chartArea;
         | 
| 13318 | 
            -
                  var i, meta;
         | 
| 13319 13650 |  | 
| 13320 | 
            -
                  for (i = metasets.length - 1; i >= 0; --i) {
         | 
| 13321 | 
            -
                     | 
| 13651 | 
            +
                  for (var i = metasets.length - 1; i >= 0; --i) {
         | 
| 13652 | 
            +
                    var source = metasets[i].$filler;
         | 
| 13322 13653 |  | 
| 13323 | 
            -
                    if ( | 
| 13324 | 
            -
                       | 
| 13654 | 
            +
                    if (source) {
         | 
| 13655 | 
            +
                      source.line.updateControlPoints(area);
         | 
| 13656 | 
            +
             | 
| 13657 | 
            +
                      if (options.drawTime === 'beforeDatasetsDraw') {
         | 
| 13658 | 
            +
                        drawfill(chart.ctx, source, area);
         | 
| 13659 | 
            +
                      }
         | 
| 13325 13660 | 
             
                    }
         | 
| 13326 13661 | 
             
                  }
         | 
| 13327 13662 | 
             
                },
         | 
| 13328 | 
            -
                beforeDatasetDraw: function beforeDatasetDraw(chart, args) {
         | 
| 13329 | 
            -
                  var area = chart.chartArea;
         | 
| 13330 | 
            -
                  var ctx = chart.ctx;
         | 
| 13663 | 
            +
                beforeDatasetDraw: function beforeDatasetDraw(chart, args, options) {
         | 
| 13331 13664 | 
             
                  var source = args.meta.$filler;
         | 
| 13332 13665 |  | 
| 13333 | 
            -
                  if (!source || source.fill === false) {
         | 
| 13666 | 
            +
                  if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {
         | 
| 13334 13667 | 
             
                    return;
         | 
| 13335 13668 | 
             
                  }
         | 
| 13336 13669 |  | 
| 13337 | 
            -
                   | 
| 13338 | 
            -
                  var line = source.line,
         | 
| 13339 | 
            -
                      scale = source.scale;
         | 
| 13340 | 
            -
                  var lineOpts = line.options;
         | 
| 13341 | 
            -
                  var fillOption = lineOpts.fill;
         | 
| 13342 | 
            -
                  var color = lineOpts.backgroundColor;
         | 
| 13343 | 
            -
             | 
| 13344 | 
            -
                  var _ref6 = fillOption || {},
         | 
| 13345 | 
            -
                      _ref6$above = _ref6.above,
         | 
| 13346 | 
            -
                      above = _ref6$above === void 0 ? color : _ref6$above,
         | 
| 13347 | 
            -
                      _ref6$below = _ref6.below,
         | 
| 13348 | 
            -
                      below = _ref6$below === void 0 ? color : _ref6$below;
         | 
| 13349 | 
            -
             | 
| 13350 | 
            -
                  if (target && line.points.length) {
         | 
| 13351 | 
            -
                    clipArea(ctx, area);
         | 
| 13352 | 
            -
                    doFill(ctx, {
         | 
| 13353 | 
            -
                      line: line,
         | 
| 13354 | 
            -
                      target: target,
         | 
| 13355 | 
            -
                      above: above,
         | 
| 13356 | 
            -
                      below: below,
         | 
| 13357 | 
            -
                      area: area,
         | 
| 13358 | 
            -
                      scale: scale
         | 
| 13359 | 
            -
                    });
         | 
| 13360 | 
            -
                    unclipArea(ctx);
         | 
| 13361 | 
            -
                  }
         | 
| 13670 | 
            +
                  drawfill(chart.ctx, source, chart.chartArea);
         | 
| 13362 13671 | 
             
                },
         | 
| 13363 13672 | 
             
                defaults: {
         | 
| 13364 | 
            -
                  propagate: true
         | 
| 13673 | 
            +
                  propagate: true,
         | 
| 13674 | 
            +
                  drawTime: 'beforeDatasetDraw'
         | 
| 13365 13675 | 
             
                }
         | 
| 13366 13676 | 
             
              };
         | 
| 13367 13677 |  | 
| @@ -13393,34 +13703,34 @@ | |
| 13393 13703 | 
             
                var _super16 = _createSuper(Legend);
         | 
| 13394 13704 |  | 
| 13395 13705 | 
             
                function Legend(config) {
         | 
| 13396 | 
            -
                  var  | 
| 13706 | 
            +
                  var _this11;
         | 
| 13397 13707 |  | 
| 13398 13708 | 
             
                  _classCallCheck(this, Legend);
         | 
| 13399 13709 |  | 
| 13400 | 
            -
                   | 
| 13401 | 
            -
                   | 
| 13402 | 
            -
                   | 
| 13403 | 
            -
                   | 
| 13404 | 
            -
                   | 
| 13405 | 
            -
                   | 
| 13406 | 
            -
                   | 
| 13407 | 
            -
                   | 
| 13408 | 
            -
                   | 
| 13409 | 
            -
                   | 
| 13410 | 
            -
                   | 
| 13411 | 
            -
                   | 
| 13412 | 
            -
                   | 
| 13413 | 
            -
                   | 
| 13414 | 
            -
                   | 
| 13415 | 
            -
                   | 
| 13416 | 
            -
                   | 
| 13417 | 
            -
                   | 
| 13418 | 
            -
                   | 
| 13419 | 
            -
                   | 
| 13420 | 
            -
                   | 
| 13421 | 
            -
                   | 
| 13422 | 
            -
                   | 
| 13423 | 
            -
                  return  | 
| 13710 | 
            +
                  _this11 = _super16.call(this);
         | 
| 13711 | 
            +
                  _this11._added = false;
         | 
| 13712 | 
            +
                  _this11.legendHitBoxes = [];
         | 
| 13713 | 
            +
                  _this11._hoveredItem = null;
         | 
| 13714 | 
            +
                  _this11.doughnutMode = false;
         | 
| 13715 | 
            +
                  _this11.chart = config.chart;
         | 
| 13716 | 
            +
                  _this11.options = config.options;
         | 
| 13717 | 
            +
                  _this11.ctx = config.ctx;
         | 
| 13718 | 
            +
                  _this11.legendItems = undefined;
         | 
| 13719 | 
            +
                  _this11.columnSizes = undefined;
         | 
| 13720 | 
            +
                  _this11.lineWidths = undefined;
         | 
| 13721 | 
            +
                  _this11.maxHeight = undefined;
         | 
| 13722 | 
            +
                  _this11.maxWidth = undefined;
         | 
| 13723 | 
            +
                  _this11.top = undefined;
         | 
| 13724 | 
            +
                  _this11.bottom = undefined;
         | 
| 13725 | 
            +
                  _this11.left = undefined;
         | 
| 13726 | 
            +
                  _this11.right = undefined;
         | 
| 13727 | 
            +
                  _this11.height = undefined;
         | 
| 13728 | 
            +
                  _this11.width = undefined;
         | 
| 13729 | 
            +
                  _this11._margins = undefined;
         | 
| 13730 | 
            +
                  _this11.position = undefined;
         | 
| 13731 | 
            +
                  _this11.weight = undefined;
         | 
| 13732 | 
            +
                  _this11.fullSize = undefined;
         | 
| 13733 | 
            +
                  return _this11;
         | 
| 13424 13734 | 
             
                }
         | 
| 13425 13735 |  | 
| 13426 13736 | 
             
                _createClass(Legend, [{
         | 
| @@ -13616,12 +13926,12 @@ | |
| 13616 13926 |  | 
| 13617 13927 | 
             
                      var left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);
         | 
| 13618 13928 |  | 
| 13619 | 
            -
                      var  | 
| 13620 | 
            -
                           | 
| 13929 | 
            +
                      var _iterator12 = _createForOfIteratorHelper(hitboxes),
         | 
| 13930 | 
            +
                          _step12;
         | 
| 13621 13931 |  | 
| 13622 13932 | 
             
                      try {
         | 
| 13623 | 
            -
                        for ( | 
| 13624 | 
            -
                          var hitbox =  | 
| 13933 | 
            +
                        for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
         | 
| 13934 | 
            +
                          var hitbox = _step12.value;
         | 
| 13625 13935 |  | 
| 13626 13936 | 
             
                          if (row !== hitbox.row) {
         | 
| 13627 13937 | 
             
                            row = hitbox.row;
         | 
| @@ -13633,21 +13943,21 @@ | |
| 13633 13943 | 
             
                          left += hitbox.width + padding;
         | 
| 13634 13944 | 
             
                        }
         | 
| 13635 13945 | 
             
                      } catch (err) {
         | 
| 13636 | 
            -
                         | 
| 13946 | 
            +
                        _iterator12.e(err);
         | 
| 13637 13947 | 
             
                      } finally {
         | 
| 13638 | 
            -
                         | 
| 13948 | 
            +
                        _iterator12.f();
         | 
| 13639 13949 | 
             
                      }
         | 
| 13640 13950 | 
             
                    } else {
         | 
| 13641 13951 | 
             
                      var col = 0;
         | 
| 13642 13952 |  | 
| 13643 13953 | 
             
                      var top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);
         | 
| 13644 13954 |  | 
| 13645 | 
            -
                      var  | 
| 13646 | 
            -
                           | 
| 13955 | 
            +
                      var _iterator13 = _createForOfIteratorHelper(hitboxes),
         | 
| 13956 | 
            +
                          _step13;
         | 
| 13647 13957 |  | 
| 13648 13958 | 
             
                      try {
         | 
| 13649 | 
            -
                        for ( | 
| 13650 | 
            -
                          var _hitbox =  | 
| 13959 | 
            +
                        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
         | 
| 13960 | 
            +
                          var _hitbox = _step13.value;
         | 
| 13651 13961 |  | 
| 13652 13962 | 
             
                          if (_hitbox.col !== col) {
         | 
| 13653 13963 | 
             
                            col = _hitbox.col;
         | 
| @@ -13659,9 +13969,9 @@ | |
| 13659 13969 | 
             
                          top += _hitbox.height + padding;
         | 
| 13660 13970 | 
             
                        }
         | 
| 13661 13971 | 
             
                      } catch (err) {
         | 
| 13662 | 
            -
                         | 
| 13972 | 
            +
                        _iterator13.e(err);
         | 
| 13663 13973 | 
             
                      } finally {
         | 
| 13664 | 
            -
                         | 
| 13974 | 
            +
                        _iterator13.f();
         | 
| 13665 13975 | 
             
                      }
         | 
| 13666 13976 | 
             
                    }
         | 
| 13667 13977 | 
             
                  }
         | 
| @@ -13706,8 +14016,6 @@ | |
| 13706 14016 | 
             
                    ctx.textAlign = rtlHelper.textAlign('left');
         | 
| 13707 14017 | 
             
                    ctx.textBaseline = 'middle';
         | 
| 13708 14018 | 
             
                    ctx.lineWidth = 0.5;
         | 
| 13709 | 
            -
                    ctx.strokeStyle = fontColor;
         | 
| 13710 | 
            -
                    ctx.fillStyle = fontColor;
         | 
| 13711 14019 | 
             
                    ctx.font = labelFont.string;
         | 
| 13712 14020 |  | 
| 13713 14021 | 
             
                    var _getBoxSize2 = getBoxSize(labelOpts, fontSize),
         | 
| @@ -13742,10 +14050,28 @@ | |
| 13742 14050 | 
             
                        drawPoint(ctx, drawOptions, centerX, centerY);
         | 
| 13743 14051 | 
             
                      } else {
         | 
| 13744 14052 | 
             
                        var yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);
         | 
| 13745 | 
            -
                         | 
| 14053 | 
            +
                        var xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);
         | 
| 14054 | 
            +
                        var borderRadius = toTRBLCorners(legendItem.borderRadius);
         | 
| 14055 | 
            +
                        ctx.beginPath();
         | 
| 14056 | 
            +
             | 
| 14057 | 
            +
                        if (Object.values(borderRadius).some(function (v) {
         | 
| 14058 | 
            +
                          return v !== 0;
         | 
| 14059 | 
            +
                        })) {
         | 
| 14060 | 
            +
                          addRoundedRectPath(ctx, {
         | 
| 14061 | 
            +
                            x: xBoxLeft,
         | 
| 14062 | 
            +
                            y: yBoxTop,
         | 
| 14063 | 
            +
                            w: boxWidth,
         | 
| 14064 | 
            +
                            h: boxHeight,
         | 
| 14065 | 
            +
                            radius: borderRadius
         | 
| 14066 | 
            +
                          });
         | 
| 14067 | 
            +
                        } else {
         | 
| 14068 | 
            +
                          ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);
         | 
| 14069 | 
            +
                        }
         | 
| 14070 | 
            +
             | 
| 14071 | 
            +
                        ctx.fill();
         | 
| 13746 14072 |  | 
| 13747 14073 | 
             
                        if (lineWidth !== 0) {
         | 
| 13748 | 
            -
                          ctx. | 
| 14074 | 
            +
                          ctx.stroke();
         | 
| 13749 14075 | 
             
                        }
         | 
| 13750 14076 | 
             
                      }
         | 
| 13751 14077 |  | 
| @@ -13780,6 +14106,8 @@ | |
| 13780 14106 | 
             
                    overrideTextDirection(me.ctx, opts.textDirection);
         | 
| 13781 14107 | 
             
                    var lineHeight = itemHeight + padding;
         | 
| 13782 14108 | 
             
                    me.legendItems.forEach(function (legendItem, i) {
         | 
| 14109 | 
            +
                      ctx.strokeStyle = legendItem.fontColor || fontColor;
         | 
| 14110 | 
            +
                      ctx.fillStyle = legendItem.fontColor || fontColor;
         | 
| 13783 14111 | 
             
                      var textWidth = ctx.measureText(legendItem.text).width;
         | 
| 13784 14112 | 
             
                      var textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));
         | 
| 13785 14113 | 
             
                      var width = boxWidth + fontSize / 2 + textWidth;
         | 
| @@ -13991,13 +14319,15 @@ | |
| 13991 14319 | 
             
                      var _chart$legend$options = chart.legend.options.labels,
         | 
| 13992 14320 | 
             
                          usePointStyle = _chart$legend$options.usePointStyle,
         | 
| 13993 14321 | 
             
                          pointStyle = _chart$legend$options.pointStyle,
         | 
| 13994 | 
            -
                          textAlign = _chart$legend$options.textAlign | 
| 14322 | 
            +
                          textAlign = _chart$legend$options.textAlign,
         | 
| 14323 | 
            +
                          color = _chart$legend$options.color;
         | 
| 13995 14324 | 
             
                      return chart._getSortedDatasetMetas().map(function (meta) {
         | 
| 13996 14325 | 
             
                        var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);
         | 
| 13997 14326 | 
             
                        var borderWidth = toPadding(style.borderWidth);
         | 
| 13998 14327 | 
             
                        return {
         | 
| 13999 14328 | 
             
                          text: datasets[meta.index].label,
         | 
| 14000 14329 | 
             
                          fillStyle: style.backgroundColor,
         | 
| 14330 | 
            +
                          fontColor: color,
         | 
| 14001 14331 | 
             
                          hidden: !meta.visible,
         | 
| 14002 14332 | 
             
                          lineCap: style.borderCapStyle,
         | 
| 14003 14333 | 
             
                          lineDash: style.borderDash,
         | 
| @@ -14008,6 +14338,7 @@ | |
| 14008 14338 | 
             
                          pointStyle: pointStyle || style.pointStyle,
         | 
| 14009 14339 | 
             
                          rotation: style.rotation,
         | 
| 14010 14340 | 
             
                          textAlign: textAlign || style.textAlign,
         | 
| 14341 | 
            +
                          borderRadius: 0,
         | 
| 14011 14342 | 
             
                          datasetIndex: meta.index
         | 
| 14012 14343 | 
             
                        };
         | 
| 14013 14344 | 
             
                      }, this);
         | 
| @@ -14040,25 +14371,25 @@ | |
| 14040 14371 | 
             
                var _super17 = _createSuper(Title);
         | 
| 14041 14372 |  | 
| 14042 14373 | 
             
                function Title(config) {
         | 
| 14043 | 
            -
                  var  | 
| 14374 | 
            +
                  var _this12;
         | 
| 14044 14375 |  | 
| 14045 14376 | 
             
                  _classCallCheck(this, Title);
         | 
| 14046 14377 |  | 
| 14047 | 
            -
                   | 
| 14048 | 
            -
                   | 
| 14049 | 
            -
                   | 
| 14050 | 
            -
                   | 
| 14051 | 
            -
                   | 
| 14052 | 
            -
                   | 
| 14053 | 
            -
                   | 
| 14054 | 
            -
                   | 
| 14055 | 
            -
                   | 
| 14056 | 
            -
                   | 
| 14057 | 
            -
                   | 
| 14058 | 
            -
                   | 
| 14059 | 
            -
                   | 
| 14060 | 
            -
                   | 
| 14061 | 
            -
                  return  | 
| 14378 | 
            +
                  _this12 = _super17.call(this);
         | 
| 14379 | 
            +
                  _this12.chart = config.chart;
         | 
| 14380 | 
            +
                  _this12.options = config.options;
         | 
| 14381 | 
            +
                  _this12.ctx = config.ctx;
         | 
| 14382 | 
            +
                  _this12._padding = undefined;
         | 
| 14383 | 
            +
                  _this12.top = undefined;
         | 
| 14384 | 
            +
                  _this12.bottom = undefined;
         | 
| 14385 | 
            +
                  _this12.left = undefined;
         | 
| 14386 | 
            +
                  _this12.right = undefined;
         | 
| 14387 | 
            +
                  _this12.width = undefined;
         | 
| 14388 | 
            +
                  _this12.height = undefined;
         | 
| 14389 | 
            +
                  _this12.position = undefined;
         | 
| 14390 | 
            +
                  _this12.weight = undefined;
         | 
| 14391 | 
            +
                  _this12.fullSize = undefined;
         | 
| 14392 | 
            +
                  return _this12;
         | 
| 14062 14393 | 
             
                }
         | 
| 14063 14394 |  | 
| 14064 14395 | 
             
                _createClass(Title, [{
         | 
| @@ -14196,7 +14527,7 @@ | |
| 14196 14527 | 
             
                  align: 'center',
         | 
| 14197 14528 | 
             
                  display: false,
         | 
| 14198 14529 | 
             
                  font: {
         | 
| 14199 | 
            -
                     | 
| 14530 | 
            +
                    weight: 'bold'
         | 
| 14200 14531 | 
             
                  },
         | 
| 14201 14532 | 
             
                  fullSize: true,
         | 
| 14202 14533 | 
             
                  padding: 10,
         | 
| @@ -14521,39 +14852,39 @@ | |
| 14521 14852 | 
             
                var _super18 = _createSuper(Tooltip);
         | 
| 14522 14853 |  | 
| 14523 14854 | 
             
                function Tooltip(config) {
         | 
| 14524 | 
            -
                  var  | 
| 14855 | 
            +
                  var _this13;
         | 
| 14525 14856 |  | 
| 14526 14857 | 
             
                  _classCallCheck(this, Tooltip);
         | 
| 14527 14858 |  | 
| 14528 | 
            -
                   | 
| 14529 | 
            -
                   | 
| 14530 | 
            -
                   | 
| 14531 | 
            -
                   | 
| 14532 | 
            -
                   | 
| 14533 | 
            -
                   | 
| 14534 | 
            -
                   | 
| 14535 | 
            -
                   | 
| 14536 | 
            -
                   | 
| 14537 | 
            -
                   | 
| 14538 | 
            -
                   | 
| 14539 | 
            -
                   | 
| 14540 | 
            -
                   | 
| 14541 | 
            -
                   | 
| 14542 | 
            -
                   | 
| 14543 | 
            -
                   | 
| 14544 | 
            -
                   | 
| 14545 | 
            -
                   | 
| 14546 | 
            -
                   | 
| 14547 | 
            -
                   | 
| 14548 | 
            -
                   | 
| 14549 | 
            -
                   | 
| 14550 | 
            -
                   | 
| 14551 | 
            -
                   | 
| 14552 | 
            -
                   | 
| 14553 | 
            -
                   | 
| 14554 | 
            -
                   | 
| 14555 | 
            -
                   | 
| 14556 | 
            -
                  return  | 
| 14859 | 
            +
                  _this13 = _super18.call(this);
         | 
| 14860 | 
            +
                  _this13.opacity = 0;
         | 
| 14861 | 
            +
                  _this13._active = [];
         | 
| 14862 | 
            +
                  _this13._chart = config._chart;
         | 
| 14863 | 
            +
                  _this13._eventPosition = undefined;
         | 
| 14864 | 
            +
                  _this13._size = undefined;
         | 
| 14865 | 
            +
                  _this13._cachedAnimations = undefined;
         | 
| 14866 | 
            +
                  _this13._tooltipItems = [];
         | 
| 14867 | 
            +
                  _this13.$animations = undefined;
         | 
| 14868 | 
            +
                  _this13.$context = undefined;
         | 
| 14869 | 
            +
                  _this13.options = config.options;
         | 
| 14870 | 
            +
                  _this13.dataPoints = undefined;
         | 
| 14871 | 
            +
                  _this13.title = undefined;
         | 
| 14872 | 
            +
                  _this13.beforeBody = undefined;
         | 
| 14873 | 
            +
                  _this13.body = undefined;
         | 
| 14874 | 
            +
                  _this13.afterBody = undefined;
         | 
| 14875 | 
            +
                  _this13.footer = undefined;
         | 
| 14876 | 
            +
                  _this13.xAlign = undefined;
         | 
| 14877 | 
            +
                  _this13.yAlign = undefined;
         | 
| 14878 | 
            +
                  _this13.x = undefined;
         | 
| 14879 | 
            +
                  _this13.y = undefined;
         | 
| 14880 | 
            +
                  _this13.height = undefined;
         | 
| 14881 | 
            +
                  _this13.width = undefined;
         | 
| 14882 | 
            +
                  _this13.caretX = undefined;
         | 
| 14883 | 
            +
                  _this13.caretY = undefined;
         | 
| 14884 | 
            +
                  _this13.labelColors = undefined;
         | 
| 14885 | 
            +
                  _this13.labelPointStyles = undefined;
         | 
| 14886 | 
            +
                  _this13.labelTextColors = undefined;
         | 
| 14887 | 
            +
                  return _this13;
         | 
| 14557 14888 | 
             
                }
         | 
| 14558 14889 |  | 
| 14559 14890 | 
             
                _createClass(Tooltip, [{
         | 
| @@ -14871,13 +15202,45 @@ | |
| 14871 15202 | 
             
                      ctx.fillStyle = labelColors.backgroundColor;
         | 
| 14872 15203 | 
             
                      drawPoint(ctx, drawOptions, centerX, centerY);
         | 
| 14873 15204 | 
             
                    } else {
         | 
| 14874 | 
            -
                      ctx. | 
| 14875 | 
            -
                      ctx.fillRect(rtlHelper.leftForLtr(rtlColorX, boxWidth), colorY, boxWidth, boxHeight);
         | 
| 14876 | 
            -
                      ctx.lineWidth = 1;
         | 
| 15205 | 
            +
                      ctx.lineWidth = labelColors.borderWidth || 1;
         | 
| 14877 15206 | 
             
                      ctx.strokeStyle = labelColors.borderColor;
         | 
| 14878 | 
            -
                      ctx. | 
| 14879 | 
            -
                      ctx. | 
| 14880 | 
            -
                       | 
| 15207 | 
            +
                      ctx.setLineDash(labelColors.borderDash || []);
         | 
| 15208 | 
            +
                      ctx.lineDashOffset = labelColors.borderDashOffset || 0;
         | 
| 15209 | 
            +
                      var outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);
         | 
| 15210 | 
            +
                      var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);
         | 
| 15211 | 
            +
                      var borderRadius = toTRBLCorners(labelColors.borderRadius);
         | 
| 15212 | 
            +
             | 
| 15213 | 
            +
                      if (Object.values(borderRadius).some(function (v) {
         | 
| 15214 | 
            +
                        return v !== 0;
         | 
| 15215 | 
            +
                      })) {
         | 
| 15216 | 
            +
                        ctx.beginPath();
         | 
| 15217 | 
            +
                        ctx.fillStyle = options.multiKeyBackground;
         | 
| 15218 | 
            +
                        addRoundedRectPath(ctx, {
         | 
| 15219 | 
            +
                          x: outerX,
         | 
| 15220 | 
            +
                          y: colorY,
         | 
| 15221 | 
            +
                          w: boxWidth,
         | 
| 15222 | 
            +
                          h: boxHeight,
         | 
| 15223 | 
            +
                          radius: borderRadius
         | 
| 15224 | 
            +
                        });
         | 
| 15225 | 
            +
                        ctx.fill();
         | 
| 15226 | 
            +
                        ctx.stroke();
         | 
| 15227 | 
            +
                        ctx.fillStyle = labelColors.backgroundColor;
         | 
| 15228 | 
            +
                        ctx.beginPath();
         | 
| 15229 | 
            +
                        addRoundedRectPath(ctx, {
         | 
| 15230 | 
            +
                          x: innerX,
         | 
| 15231 | 
            +
                          y: colorY + 1,
         | 
| 15232 | 
            +
                          w: boxWidth - 2,
         | 
| 15233 | 
            +
                          h: boxHeight - 2,
         | 
| 15234 | 
            +
                          radius: borderRadius
         | 
| 15235 | 
            +
                        });
         | 
| 15236 | 
            +
                        ctx.fill();
         | 
| 15237 | 
            +
                      } else {
         | 
| 15238 | 
            +
                        ctx.fillStyle = options.multiKeyBackground;
         | 
| 15239 | 
            +
                        ctx.fillRect(outerX, colorY, boxWidth, boxHeight);
         | 
| 15240 | 
            +
                        ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);
         | 
| 15241 | 
            +
                        ctx.fillStyle = labelColors.backgroundColor;
         | 
| 15242 | 
            +
                        ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);
         | 
| 15243 | 
            +
                      }
         | 
| 14881 15244 | 
             
                    }
         | 
| 14882 15245 |  | 
| 14883 15246 | 
             
                    ctx.fillStyle = me.labelTextColors[i];
         | 
| @@ -15221,7 +15584,7 @@ | |
| 15221 15584 | 
             
                  backgroundColor: 'rgba(0,0,0,0.8)',
         | 
| 15222 15585 | 
             
                  titleColor: '#fff',
         | 
| 15223 15586 | 
             
                  titleFont: {
         | 
| 15224 | 
            -
                     | 
| 15587 | 
            +
                    weight: 'bold'
         | 
| 15225 15588 | 
             
                  },
         | 
| 15226 15589 | 
             
                  titleSpacing: 2,
         | 
| 15227 15590 | 
             
                  titleMarginBottom: 6,
         | 
| @@ -15234,7 +15597,7 @@ | |
| 15234 15597 | 
             
                  footerSpacing: 2,
         | 
| 15235 15598 | 
             
                  footerMarginTop: 6,
         | 
| 15236 15599 | 
             
                  footerFont: {
         | 
| 15237 | 
            -
                     | 
| 15600 | 
            +
                    weight: 'bold'
         | 
| 15238 15601 | 
             
                  },
         | 
| 15239 15602 | 
             
                  footerAlign: 'left',
         | 
| 15240 15603 | 
             
                  padding: 6,
         | 
| @@ -15311,7 +15674,11 @@ | |
| 15311 15674 | 
             
                      var options = meta.controller.getStyle(tooltipItem.dataIndex);
         | 
| 15312 15675 | 
             
                      return {
         | 
| 15313 15676 | 
             
                        borderColor: options.borderColor,
         | 
| 15314 | 
            -
                        backgroundColor: options.backgroundColor
         | 
| 15677 | 
            +
                        backgroundColor: options.backgroundColor,
         | 
| 15678 | 
            +
                        borderWidth: options.borderWidth,
         | 
| 15679 | 
            +
                        borderDash: options.borderDash,
         | 
| 15680 | 
            +
                        borderDashOffset: options.borderDashOffset,
         | 
| 15681 | 
            +
                        borderRadius: 0
         | 
| 15315 15682 | 
             
                      };
         | 
| 15316 15683 | 
             
                    },
         | 
| 15317 15684 | 
             
                    labelTextColor: function labelTextColor() {
         | 
| @@ -15389,14 +15756,14 @@ | |
| 15389 15756 | 
             
                var _super19 = _createSuper(CategoryScale);
         | 
| 15390 15757 |  | 
| 15391 15758 | 
             
                function CategoryScale(cfg) {
         | 
| 15392 | 
            -
                  var  | 
| 15759 | 
            +
                  var _this14;
         | 
| 15393 15760 |  | 
| 15394 15761 | 
             
                  _classCallCheck(this, CategoryScale);
         | 
| 15395 15762 |  | 
| 15396 | 
            -
                   | 
| 15397 | 
            -
                   | 
| 15398 | 
            -
                   | 
| 15399 | 
            -
                  return  | 
| 15763 | 
            +
                  _this14 = _super19.call(this, cfg);
         | 
| 15764 | 
            +
                  _this14._startValue = undefined;
         | 
| 15765 | 
            +
                  _this14._valueRange = 0;
         | 
| 15766 | 
            +
                  return _this14;
         | 
| 15400 15767 | 
             
                }
         | 
| 15401 15768 |  | 
| 15402 15769 | 
             
                _createClass(CategoryScale, [{
         | 
| @@ -15635,17 +16002,17 @@ | |
| 15635 16002 | 
             
                var _super20 = _createSuper(LinearScaleBase);
         | 
| 15636 16003 |  | 
| 15637 16004 | 
             
                function LinearScaleBase(cfg) {
         | 
| 15638 | 
            -
                  var  | 
| 16005 | 
            +
                  var _this15;
         | 
| 15639 16006 |  | 
| 15640 16007 | 
             
                  _classCallCheck(this, LinearScaleBase);
         | 
| 15641 16008 |  | 
| 15642 | 
            -
                   | 
| 15643 | 
            -
                   | 
| 15644 | 
            -
                   | 
| 15645 | 
            -
                   | 
| 15646 | 
            -
                   | 
| 15647 | 
            -
                   | 
| 15648 | 
            -
                  return  | 
| 16009 | 
            +
                  _this15 = _super20.call(this, cfg);
         | 
| 16010 | 
            +
                  _this15.start = undefined;
         | 
| 16011 | 
            +
                  _this15.end = undefined;
         | 
| 16012 | 
            +
                  _this15._startValue = undefined;
         | 
| 16013 | 
            +
                  _this15._endValue = undefined;
         | 
| 16014 | 
            +
                  _this15._valueRange = 0;
         | 
| 16015 | 
            +
                  return _this15;
         | 
| 15649 16016 | 
             
                }
         | 
| 15650 16017 |  | 
| 15651 16018 | 
             
                _createClass(LinearScaleBase, [{
         | 
| @@ -15899,16 +16266,16 @@ | |
| 15899 16266 | 
             
                var _super22 = _createSuper(LogarithmicScale);
         | 
| 15900 16267 |  | 
| 15901 16268 | 
             
                function LogarithmicScale(cfg) {
         | 
| 15902 | 
            -
                  var  | 
| 16269 | 
            +
                  var _this16;
         | 
| 15903 16270 |  | 
| 15904 16271 | 
             
                  _classCallCheck(this, LogarithmicScale);
         | 
| 15905 16272 |  | 
| 15906 | 
            -
                   | 
| 15907 | 
            -
                   | 
| 15908 | 
            -
                   | 
| 15909 | 
            -
                   | 
| 15910 | 
            -
                   | 
| 15911 | 
            -
                  return  | 
| 16273 | 
            +
                  _this16 = _super22.call(this, cfg);
         | 
| 16274 | 
            +
                  _this16.start = undefined;
         | 
| 16275 | 
            +
                  _this16.end = undefined;
         | 
| 16276 | 
            +
                  _this16._startValue = undefined;
         | 
| 16277 | 
            +
                  _this16._valueRange = 0;
         | 
| 16278 | 
            +
                  return _this16;
         | 
| 15912 16279 | 
             
                }
         | 
| 15913 16280 |  | 
| 15914 16281 | 
             
                _createClass(LogarithmicScale, [{
         | 
| @@ -16297,17 +16664,17 @@ | |
| 16297 16664 | 
             
                var _super23 = _createSuper(RadialLinearScale);
         | 
| 16298 16665 |  | 
| 16299 16666 | 
             
                function RadialLinearScale(cfg) {
         | 
| 16300 | 
            -
                  var  | 
| 16667 | 
            +
                  var _this17;
         | 
| 16301 16668 |  | 
| 16302 16669 | 
             
                  _classCallCheck(this, RadialLinearScale);
         | 
| 16303 16670 |  | 
| 16304 | 
            -
                   | 
| 16305 | 
            -
                   | 
| 16306 | 
            -
                   | 
| 16307 | 
            -
                   | 
| 16308 | 
            -
                   | 
| 16309 | 
            -
                   | 
| 16310 | 
            -
                  return  | 
| 16671 | 
            +
                  _this17 = _super23.call(this, cfg);
         | 
| 16672 | 
            +
                  _this17.xCenter = undefined;
         | 
| 16673 | 
            +
                  _this17.yCenter = undefined;
         | 
| 16674 | 
            +
                  _this17.drawingArea = undefined;
         | 
| 16675 | 
            +
                  _this17._pointLabels = [];
         | 
| 16676 | 
            +
                  _this17._pointLabelItems = [];
         | 
| 16677 | 
            +
                  return _this17;
         | 
| 16311 16678 | 
             
                }
         | 
| 16312 16679 |  | 
| 16313 16680 | 
             
                _createClass(RadialLinearScale, [{
         | 
| @@ -16794,21 +17161,21 @@ | |
| 16794 17161 | 
             
                var _super24 = _createSuper(TimeScale);
         | 
| 16795 17162 |  | 
| 16796 17163 | 
             
                function TimeScale(props) {
         | 
| 16797 | 
            -
                  var  | 
| 17164 | 
            +
                  var _this18;
         | 
| 16798 17165 |  | 
| 16799 17166 | 
             
                  _classCallCheck(this, TimeScale);
         | 
| 16800 17167 |  | 
| 16801 | 
            -
                   | 
| 16802 | 
            -
                   | 
| 17168 | 
            +
                  _this18 = _super24.call(this, props);
         | 
| 17169 | 
            +
                  _this18._cache = {
         | 
| 16803 17170 | 
             
                    data: [],
         | 
| 16804 17171 | 
             
                    labels: [],
         | 
| 16805 17172 | 
             
                    all: []
         | 
| 16806 17173 | 
             
                  };
         | 
| 16807 | 
            -
                   | 
| 16808 | 
            -
                   | 
| 16809 | 
            -
                   | 
| 16810 | 
            -
                   | 
| 16811 | 
            -
                  return  | 
| 17174 | 
            +
                  _this18._unit = 'day';
         | 
| 17175 | 
            +
                  _this18._majorUnit = undefined;
         | 
| 17176 | 
            +
                  _this18._offsets = {};
         | 
| 17177 | 
            +
                  _this18._normalized = false;
         | 
| 17178 | 
            +
                  return _this18;
         | 
| 16812 17179 | 
             
                }
         | 
| 16813 17180 |  | 
| 16814 17181 | 
             
                _createClass(TimeScale, [{
         | 
| @@ -17032,7 +17399,7 @@ | |
| 17032 17399 | 
             
                    var label = me._adapter.format(time, format || (major ? majorFormat : minorFormat));
         | 
| 17033 17400 |  | 
| 17034 17401 | 
             
                    var formatter = options.ticks.callback;
         | 
| 17035 | 
            -
                    return formatter ? formatter | 
| 17402 | 
            +
                    return formatter ? callback(formatter, [label, index, ticks], me) : label;
         | 
| 17036 17403 | 
             
                  }
         | 
| 17037 17404 | 
             
                }, {
         | 
| 17038 17405 | 
             
                  key: "generateTickLabels",
         | 
| @@ -17197,14 +17564,14 @@ | |
| 17197 17564 | 
             
                var _super25 = _createSuper(TimeSeriesScale);
         | 
| 17198 17565 |  | 
| 17199 17566 | 
             
                function TimeSeriesScale(props) {
         | 
| 17200 | 
            -
                  var  | 
| 17567 | 
            +
                  var _this19;
         | 
| 17201 17568 |  | 
| 17202 17569 | 
             
                  _classCallCheck(this, TimeSeriesScale);
         | 
| 17203 17570 |  | 
| 17204 | 
            -
                   | 
| 17205 | 
            -
                   | 
| 17206 | 
            -
                   | 
| 17207 | 
            -
                  return  | 
| 17571 | 
            +
                  _this19 = _super25.call(this, props);
         | 
| 17572 | 
            +
                  _this19._table = [];
         | 
| 17573 | 
            +
                  _this19._maxIndex = undefined;
         | 
| 17574 | 
            +
                  return _this19;
         | 
| 17208 17575 | 
             
                }
         | 
| 17209 17576 |  | 
| 17210 17577 | 
             
                _createClass(TimeSeriesScale, [{
         |