@progress/kendo-charts 1.19.0 → 1.20.0-dev.202111081615
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.
- package/dist/cdn/js/kendo-charts.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/chart/chart.js +13 -5
- package/dist/es/chart/constants.js +3 -1
- package/dist/es/chart/pan-and-zoom/mousewheel-zoom.js +8 -4
- package/dist/es/chart/selection.js +41 -1
- package/dist/es/common/create-hash-set.js +11 -1
- package/dist/es/common/mousewheel-delta.js +4 -7
- package/dist/es/core/axis.js +35 -0
- package/dist/es/core/category-axis.js +23 -17
- package/dist/es/core/date-category-axis.js +26 -38
- package/dist/es/core/date-value-axis.js +32 -33
- package/dist/es/core/logarithmic-axis.js +30 -27
- package/dist/es/core/numeric-axis.js +24 -20
- package/dist/es/main.js +1 -0
- package/dist/es/qrcode/encodings/data-modes/alpha-numeric-data-mode.js +103 -0
- package/dist/es/qrcode/encodings/data-modes/byte-data-mode.js +51 -0
- package/dist/es/qrcode/encodings/data-modes/data-mode-instances.js +12 -0
- package/dist/es/qrcode/encodings/data-modes/numeric-data-mode.js +49 -0
- package/dist/es/qrcode/encodings/data-modes/qr-data-mode.js +50 -0
- package/dist/es/qrcode/encodings/encoders/iso-encoder.js +29 -0
- package/dist/es/qrcode/encodings/encoders/utf8-encoder.js +91 -0
- package/dist/es/qrcode/encodings/encoding-result.js +16 -0
- package/dist/es/qrcode/encodings/encoding.js +701 -0
- package/dist/es/qrcode/encodings/free-cell-visitor.js +57 -0
- package/dist/es/qrcode/encodings/version-codewords.js +1289 -0
- package/dist/es/qrcode/qrcode.js +403 -0
- package/dist/es/qrcode/utils.js +28 -0
- package/dist/es/qrcode.js +1 -0
- package/dist/es/stock/navigator.js +3 -2
- package/dist/es2015/chart/chart.js +13 -5
- package/dist/es2015/chart/constants.js +3 -1
- package/dist/es2015/chart/pan-and-zoom/mousewheel-zoom.js +6 -4
- package/dist/es2015/chart/selection.js +40 -1
- package/dist/es2015/common/create-hash-set.js +11 -1
- package/dist/es2015/common/mousewheel-delta.js +4 -7
- package/dist/es2015/core/axis.js +28 -0
- package/dist/es2015/core/category-axis.js +21 -15
- package/dist/es2015/core/date-category-axis.js +27 -36
- package/dist/es2015/core/date-value-axis.js +33 -33
- package/dist/es2015/core/logarithmic-axis.js +29 -26
- package/dist/es2015/core/numeric-axis.js +24 -20
- package/dist/es2015/main.js +1 -0
- package/dist/es2015/qrcode/encodings/data-modes/alpha-numeric-data-mode.js +91 -0
- package/dist/es2015/qrcode/encodings/data-modes/byte-data-mode.js +41 -0
- package/dist/es2015/qrcode/encodings/data-modes/data-mode-instances.js +13 -0
- package/dist/es2015/qrcode/encodings/data-modes/numeric-data-mode.js +39 -0
- package/dist/es2015/qrcode/encodings/data-modes/qr-data-mode.js +44 -0
- package/dist/es2015/qrcode/encodings/encoders/iso-encoder.js +19 -0
- package/dist/es2015/qrcode/encodings/encoders/utf8-encoder.js +83 -0
- package/dist/es2015/qrcode/encodings/encoding-result.js +10 -0
- package/dist/es2015/qrcode/encodings/encoding.js +701 -0
- package/dist/es2015/qrcode/encodings/free-cell-visitor.js +49 -0
- package/dist/es2015/qrcode/encodings/version-codewords.js +1289 -0
- package/dist/es2015/qrcode/qrcode.js +395 -0
- package/dist/es2015/qrcode/utils.js +28 -0
- package/dist/es2015/qrcode.js +1 -0
- package/dist/es2015/stock/navigator.js +3 -2
- package/dist/npm/main.d.ts +1 -0
- package/dist/npm/main.js +3058 -149
- package/dist/npm/qrcode.d.ts +5 -0
- package/dist/systemjs/kendo-charts.js +1 -1
- package/package.json +1 -1
package/dist/es/chart/chart.js
CHANGED
|
@@ -22,12 +22,13 @@ import { ChartPane, ChartPlotArea, findAxisByName } from './api-elements';
|
|
|
22
22
|
|
|
23
23
|
import { X, Y, VALUE, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_SERIES_OPACITY } from '../common/constants';
|
|
24
24
|
import { addClass, Class, setDefaultOptions, deepExtend, defined, find, isObject, isFunction, elementSize, elementOffset,
|
|
25
|
-
elementScale, elementStyles, eventCoordinates, bindEvents, unbindEvents, mousewheelDelta, FontLoader, inArray, last, round,
|
|
25
|
+
elementScale, elementStyles, eventCoordinates, bindEvents, unbindEvents, mousewheelDelta, FontLoader, inArray, last, round,
|
|
26
|
+
HashMap, valueOrDefault } from '../common';
|
|
26
27
|
|
|
27
28
|
import { dateComparer } from '../date-utils';
|
|
28
29
|
|
|
29
30
|
import { DRAG_START, DRAG, DRAG_END, ZOOM_START, ZOOM, ZOOM_END, SELECT_START, SELECT, SELECT_END, PLOT_AREA_HOVER, PLOT_AREA_LEAVE,
|
|
30
|
-
RENDER, CATEGORY, PIE, DONUT, FUNNEL, COLUMN, MOUSEWHEEL, MOUSEWHEEL_DELAY, SHOW_TOOLTIP, SERIES_HOVER } from './constants';
|
|
31
|
+
RENDER, CATEGORY, PIE, DONUT, FUNNEL, COLUMN, MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE, SHOW_TOOLTIP, SERIES_HOVER } from './constants';
|
|
31
32
|
|
|
32
33
|
import './animations';
|
|
33
34
|
import './register-charts';
|
|
@@ -664,12 +665,13 @@ var Chart = (function (Class) {
|
|
|
664
665
|
this._gestureDistance = e.distance;
|
|
665
666
|
var args = { delta: scaleDelta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e };
|
|
666
667
|
if (this._zooming || !this.trigger(ZOOM_START, args)) {
|
|
668
|
+
var coords = this._eventCoordinates(e);
|
|
667
669
|
|
|
668
670
|
if (!this._zooming) {
|
|
669
671
|
this._zooming = true;
|
|
670
672
|
}
|
|
671
673
|
|
|
672
|
-
var ranges = args.axisRanges = mousewheelZoom.updateRanges(scaleDelta);
|
|
674
|
+
var ranges = args.axisRanges = mousewheelZoom.updateRanges(scaleDelta, coords);
|
|
673
675
|
if (ranges && !this.trigger(ZOOM, args)) {
|
|
674
676
|
mousewheelZoom.zoom();
|
|
675
677
|
}
|
|
@@ -802,6 +804,12 @@ var Chart = (function (Class) {
|
|
|
802
804
|
}
|
|
803
805
|
};
|
|
804
806
|
|
|
807
|
+
Chart.prototype._mousewheelZoomRate = function _mousewheelZoomRate () {
|
|
808
|
+
var zoomable = this.options.zoomable;
|
|
809
|
+
var mousewheel = (zoomable || {}).mousewheel || {};
|
|
810
|
+
return valueOrDefault(mousewheel.rate, MOUSEWHEEL_ZOOM_RATE);
|
|
811
|
+
};
|
|
812
|
+
|
|
805
813
|
Chart.prototype._mousewheel = function _mousewheel (e) {
|
|
806
814
|
var this$1 = this;
|
|
807
815
|
|
|
@@ -828,7 +836,7 @@ var Chart = (function (Class) {
|
|
|
828
836
|
clearTimeout(this._mwTimeout);
|
|
829
837
|
}
|
|
830
838
|
|
|
831
|
-
args.axisRanges = mousewheelZoom.updateRanges(delta);
|
|
839
|
+
args.axisRanges = mousewheelZoom.updateRanges(delta, coords);
|
|
832
840
|
if (args.axisRanges && !this.trigger(ZOOM, args)) {
|
|
833
841
|
mousewheelZoom.zoom();
|
|
834
842
|
}
|
|
@@ -861,7 +869,7 @@ var Chart = (function (Class) {
|
|
|
861
869
|
var currentAxis = axes[i];
|
|
862
870
|
var axisName = currentAxis.options.name;
|
|
863
871
|
if (axisName) {
|
|
864
|
-
ranges[axisName] = currentAxis.scaleRange(-totalDelta);
|
|
872
|
+
ranges[axisName] = currentAxis.scaleRange(-totalDelta * this$1._mousewheelZoomRate(), coords);
|
|
865
873
|
}
|
|
866
874
|
}
|
|
867
875
|
|
|
@@ -94,6 +94,7 @@ var OUTSIDE_END = "outsideEnd";
|
|
|
94
94
|
|
|
95
95
|
var MOUSEWHEEL = "DOMMouseScroll mousewheel";
|
|
96
96
|
var MOUSEWHEEL_DELAY = 150;
|
|
97
|
+
var MOUSEWHEEL_ZOOM_RATE = 0.3;
|
|
97
98
|
|
|
98
99
|
export {
|
|
99
100
|
INITIAL_ANIMATION_DURATION, FADEIN,
|
|
@@ -115,7 +116,8 @@ export {
|
|
|
115
116
|
LOGARITHMIC, DRAG, DRAG_START, DRAG_END, ZOOM_START, ZOOM, ZOOM_END,
|
|
116
117
|
SELECT_START, SELECT, SELECT_END, PANE_RENDER, GAP,
|
|
117
118
|
DONUT, INSIDE_END, INSIDE_BASE, OUTSIDE_END,
|
|
118
|
-
MOUSEWHEEL, MOUSEWHEEL_DELAY,
|
|
119
|
+
MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE,
|
|
120
|
+
SHOW_TOOLTIP, HIDE_TOOLTIP,
|
|
119
121
|
EQUALLY_SPACED_SERIES, ABOVE, BELOW,
|
|
120
122
|
HEATMAP
|
|
121
123
|
};
|
|
@@ -9,14 +9,18 @@ var MousewheelZoom = (function (Class) {
|
|
|
9
9
|
Class.call(this);
|
|
10
10
|
|
|
11
11
|
this.chart = chart;
|
|
12
|
-
this.options = deepExtend({
|
|
12
|
+
this.options = deepExtend({
|
|
13
|
+
rate: 0.3
|
|
14
|
+
}, this.options, options);
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
if ( Class ) MousewheelZoom.__proto__ = Class;
|
|
16
18
|
MousewheelZoom.prototype = Object.create( Class && Class.prototype );
|
|
17
19
|
MousewheelZoom.prototype.constructor = MousewheelZoom;
|
|
18
20
|
|
|
19
|
-
MousewheelZoom.prototype.updateRanges = function updateRanges (delta) {
|
|
21
|
+
MousewheelZoom.prototype.updateRanges = function updateRanges (delta, coords) {
|
|
22
|
+
var this$1 = this;
|
|
23
|
+
|
|
20
24
|
var lock = (this.options.lock || "").toLowerCase();
|
|
21
25
|
var axisRanges = [];
|
|
22
26
|
var axes = this.chart._plotArea.axes;
|
|
@@ -26,7 +30,7 @@ var MousewheelZoom = (function (Class) {
|
|
|
26
30
|
var vertical = axis.options.vertical;
|
|
27
31
|
|
|
28
32
|
if (!(lock === X && !vertical) && !(lock === Y && vertical) && axis.zoomRange) {
|
|
29
|
-
var range = axis.zoomRange(-delta);
|
|
33
|
+
var range = axis.zoomRange(-delta * this$1.options.rate, coords);
|
|
30
34
|
|
|
31
35
|
if (range) {
|
|
32
36
|
axisRanges.push({
|
|
@@ -61,4 +65,4 @@ var MousewheelZoom = (function (Class) {
|
|
|
61
65
|
return MousewheelZoom;
|
|
62
66
|
}(Class));
|
|
63
67
|
|
|
64
|
-
export default MousewheelZoom;
|
|
68
|
+
export default MousewheelZoom;
|
|
@@ -4,7 +4,7 @@ import { DateCategoryAxis, Point } from '../core';
|
|
|
4
4
|
|
|
5
5
|
import { MOUSEWHEEL_DELAY, MOUSEWHEEL, SELECT_START, SELECT, SELECT_END } from './constants';
|
|
6
6
|
|
|
7
|
-
import { LEFT, RIGHT, MIN_VALUE, MAX_VALUE } from '../common/constants';
|
|
7
|
+
import { LEFT, RIGHT, MIN_VALUE, MAX_VALUE, X } from '../common/constants';
|
|
8
8
|
import { addClass, Class, removeClass, deepExtend, elementStyles, eventElement, setDefaultOptions, limitValue, round, bindEvents, unbindEvents, mousewheelDelta, hasClasses } from '../common';
|
|
9
9
|
import { parseDate } from '../date-utils';
|
|
10
10
|
|
|
@@ -564,6 +564,46 @@ var Selection = (function (Class) {
|
|
|
564
564
|
}
|
|
565
565
|
};
|
|
566
566
|
|
|
567
|
+
Selection.prototype.zoom = function zoom (delta, coords) {
|
|
568
|
+
var options = this.options;
|
|
569
|
+
var min = this._index(options.min);
|
|
570
|
+
var max = this._index(options.max);
|
|
571
|
+
var from = this._index(options.from);
|
|
572
|
+
var to = this._index(options.to);
|
|
573
|
+
var range = { from: from, to: to };
|
|
574
|
+
var oldRange = deepExtend({}, range);
|
|
575
|
+
|
|
576
|
+
var ref = this.categoryAxis.options;
|
|
577
|
+
var reverse = ref.reverse;
|
|
578
|
+
var origin = X + (reverse ? '2' : '1');
|
|
579
|
+
var lineBox = this.categoryAxis.lineBox();
|
|
580
|
+
var relative = Math.abs(lineBox[origin] - coords[X]);
|
|
581
|
+
var size = lineBox.width();
|
|
582
|
+
var position = round(relative / size, 2);
|
|
583
|
+
var minDelta = round(position * delta);
|
|
584
|
+
var maxDelta = round((1 - position) * delta);
|
|
585
|
+
|
|
586
|
+
if (this._state) {
|
|
587
|
+
range = this._state.range;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
range.from = limitValue(
|
|
591
|
+
limitValue(from - minDelta, 0, to - 1),
|
|
592
|
+
min, max
|
|
593
|
+
);
|
|
594
|
+
|
|
595
|
+
range.to = limitValue(
|
|
596
|
+
limitValue(to + maxDelta, range.from + 1, max),
|
|
597
|
+
min,
|
|
598
|
+
max
|
|
599
|
+
);
|
|
600
|
+
|
|
601
|
+
if (range.from !== oldRange.from || range.to !== oldRange.to) {
|
|
602
|
+
this.set(range.from, range.to);
|
|
603
|
+
return true;
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
|
|
567
607
|
Selection.prototype.trigger = function trigger (name, args) {
|
|
568
608
|
return (this.observer || this.chart).trigger(name, args);
|
|
569
609
|
};
|
|
@@ -80,9 +80,19 @@ prototypeAccessors$1.size.get = function () {
|
|
|
80
80
|
Object.defineProperties( SetWrapper.prototype, prototypeAccessors$1 );
|
|
81
81
|
|
|
82
82
|
// TODO: Drop LegacySet when removing support for IE10
|
|
83
|
+
var supportsSet = function () {
|
|
84
|
+
var supported = false;
|
|
83
85
|
|
|
84
|
-
export default function createHashSet(values) {
|
|
85
86
|
if (typeof Set === 'function') {
|
|
87
|
+
var set = new Set([1]);
|
|
88
|
+
supported = set.has(1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return supported;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export default function createHashSet(values) {
|
|
95
|
+
if (supportsSet()) {
|
|
86
96
|
return new SetWrapper(values);
|
|
87
97
|
}
|
|
88
98
|
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import { drawing } from '@progress/kendo-drawing';
|
|
2
|
-
|
|
3
1
|
export default function mousewheelDelta(e) {
|
|
4
2
|
var delta = 0;
|
|
5
3
|
|
|
6
4
|
if (e.wheelDelta) {
|
|
7
5
|
delta = -e.wheelDelta / 120;
|
|
8
|
-
|
|
6
|
+
} else if (e.detail) {
|
|
7
|
+
delta = e.detail / 3;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
delta = drawing.util.round(e.detail / 3);
|
|
13
|
-
}
|
|
10
|
+
delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);
|
|
14
11
|
|
|
15
12
|
return delta;
|
|
16
|
-
}
|
|
13
|
+
}
|
package/dist/es/core/axis.js
CHANGED
|
@@ -860,6 +860,41 @@ var Axis = (function (ChartElement) {
|
|
|
860
860
|
};
|
|
861
861
|
};
|
|
862
862
|
|
|
863
|
+
Axis.prototype.lineInfo = function lineInfo () {
|
|
864
|
+
var ref = this.options;
|
|
865
|
+
var vertical = ref.vertical;
|
|
866
|
+
var reverse = ref.reverse;
|
|
867
|
+
var lineBox = this.lineBox();
|
|
868
|
+
var lineSize = vertical ? lineBox.height() : lineBox.width();
|
|
869
|
+
var axis = vertical ? Y : X;
|
|
870
|
+
var axisDir = (vertical ? -1 : 1) * (reverse ? -1 : 1);
|
|
871
|
+
var startEdge = axisDir === 1 ? 1 : 2;
|
|
872
|
+
var axisOrigin = axis + startEdge.toString();
|
|
873
|
+
var lineStart = lineBox[axisOrigin];
|
|
874
|
+
|
|
875
|
+
return {
|
|
876
|
+
axis: axis,
|
|
877
|
+
axisOrigin: axisOrigin,
|
|
878
|
+
axisDir: axisDir,
|
|
879
|
+
lineBox: lineBox,
|
|
880
|
+
lineSize: lineSize,
|
|
881
|
+
lineStart: lineStart
|
|
882
|
+
};
|
|
883
|
+
};
|
|
884
|
+
|
|
885
|
+
Axis.prototype.pointOffset = function pointOffset (point) {
|
|
886
|
+
var ref = this.lineInfo();
|
|
887
|
+
var axis = ref.axis;
|
|
888
|
+
var axisDir = ref.axisDir;
|
|
889
|
+
var axisOrigin = ref.axisOrigin;
|
|
890
|
+
var lineBox = ref.lineBox;
|
|
891
|
+
var lineSize = ref.lineSize;
|
|
892
|
+
var relative = axisDir > 0 ? point[axis] - lineBox[axisOrigin] : lineBox[axisOrigin] - point[axis];
|
|
893
|
+
var offset = relative / lineSize;
|
|
894
|
+
|
|
895
|
+
return offset;
|
|
896
|
+
};
|
|
897
|
+
|
|
863
898
|
Axis.prototype.labelsBetweenTicks = function labelsBetweenTicks () {
|
|
864
899
|
return !this.options.justified;
|
|
865
900
|
};
|
|
@@ -6,6 +6,7 @@ import { defined, isNumber, last, limitValue, round, setDefaultOptions, valueOrD
|
|
|
6
6
|
import { dateEquals } from '../date-utils';
|
|
7
7
|
|
|
8
8
|
var MIN_CATEGORY_POINTS_RANGE = 0.01;
|
|
9
|
+
var MIN_CATEGORY_RANGE = 0.1;
|
|
9
10
|
|
|
10
11
|
function indexOf(value, arr) {
|
|
11
12
|
if (value instanceof Date) {
|
|
@@ -406,29 +407,34 @@ var CategoryAxis = (function (Axis) {
|
|
|
406
407
|
};
|
|
407
408
|
};
|
|
408
409
|
|
|
409
|
-
CategoryAxis.prototype.
|
|
410
|
+
CategoryAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
411
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
410
412
|
var rangeIndices = this.totalRangeIndices();
|
|
411
|
-
var
|
|
412
|
-
var
|
|
413
|
-
var
|
|
414
|
-
var min =
|
|
415
|
-
var max =
|
|
416
|
-
|
|
417
|
-
if (max - min
|
|
418
|
-
|
|
419
|
-
min: min,
|
|
420
|
-
max: max
|
|
421
|
-
};
|
|
413
|
+
var delta = (rangeIndices.max - rangeIndices.min) * Math.min(1, scale);
|
|
414
|
+
var minDelta = position * delta;
|
|
415
|
+
var maxDelta = (1 - position) * delta;
|
|
416
|
+
var min = rangeIndices.min + minDelta;
|
|
417
|
+
var max = rangeIndices.max - maxDelta;
|
|
418
|
+
|
|
419
|
+
if (max - min < MIN_CATEGORY_RANGE) {
|
|
420
|
+
max = min + MIN_CATEGORY_RANGE;
|
|
422
421
|
}
|
|
422
|
+
|
|
423
|
+
return {
|
|
424
|
+
min: min,
|
|
425
|
+
max: max
|
|
426
|
+
};
|
|
423
427
|
};
|
|
424
428
|
|
|
425
|
-
CategoryAxis.prototype.
|
|
426
|
-
var
|
|
427
|
-
var
|
|
429
|
+
CategoryAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
430
|
+
var ref = this.totalRange();
|
|
431
|
+
var totalMin = ref.min;
|
|
432
|
+
var totalMax = ref.max;
|
|
433
|
+
var range = this.scaleRange(scale, cursor);
|
|
428
434
|
|
|
429
435
|
return {
|
|
430
|
-
min:
|
|
431
|
-
max: range
|
|
436
|
+
min: limitValue(range.min, totalMin, totalMax),
|
|
437
|
+
max: limitValue(range.max, totalMin, totalMax)
|
|
432
438
|
};
|
|
433
439
|
};
|
|
434
440
|
|
|
@@ -471,31 +471,6 @@ var DateCategoryAxis = (function (CategoryAxis) {
|
|
|
471
471
|
return range;
|
|
472
472
|
};
|
|
473
473
|
|
|
474
|
-
DateCategoryAxis.prototype.scaleRange = function scaleRange (delta) {
|
|
475
|
-
var rounds = Math.abs(delta);
|
|
476
|
-
var result = this.range();
|
|
477
|
-
var from = result.min;
|
|
478
|
-
var to = result.max;
|
|
479
|
-
|
|
480
|
-
if (from && to) {
|
|
481
|
-
while (rounds--) {
|
|
482
|
-
var range = dateDiff(from, to);
|
|
483
|
-
var step = Math.round(range * 0.1);
|
|
484
|
-
if (delta < 0) {
|
|
485
|
-
from = addTicks(from, step);
|
|
486
|
-
to = addTicks(to, -step);
|
|
487
|
-
} else {
|
|
488
|
-
from = addTicks(from, -step);
|
|
489
|
-
to = addTicks(to, step);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
result = { min: from, max: to };
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
return result;
|
|
497
|
-
};
|
|
498
|
-
|
|
499
474
|
DateCategoryAxis.prototype.labelsRange = function labelsRange () {
|
|
500
475
|
return {
|
|
501
476
|
min: this.options.labels.skip,
|
|
@@ -556,9 +531,9 @@ var DateCategoryAxis = (function (CategoryAxis) {
|
|
|
556
531
|
};
|
|
557
532
|
};
|
|
558
533
|
|
|
559
|
-
DateCategoryAxis.prototype.
|
|
534
|
+
DateCategoryAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
560
535
|
if (this.isEmpty()) {
|
|
561
|
-
return
|
|
536
|
+
return {};
|
|
562
537
|
}
|
|
563
538
|
|
|
564
539
|
var options = this.options;
|
|
@@ -567,12 +542,16 @@ var DateCategoryAxis = (function (CategoryAxis) {
|
|
|
567
542
|
var ref = this.dataRange.displayRange();
|
|
568
543
|
var rangeMin = ref.min;
|
|
569
544
|
var rangeMax = ref.max;
|
|
545
|
+
|
|
546
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
547
|
+
var delta = (rangeMax - rangeMin) * scale;
|
|
548
|
+
var minDelta = Math.round(position * delta);
|
|
549
|
+
var maxDelta = Math.round((1 - position) * delta);
|
|
550
|
+
|
|
570
551
|
var ref$1 = this.dataRange.options;
|
|
571
|
-
var weekStartDay = ref$1.weekStartDay;
|
|
572
552
|
var baseUnit = ref$1.baseUnit;
|
|
573
|
-
var
|
|
574
|
-
var
|
|
575
|
-
var max = addDuration(rangeMax, -delta * baseUnitStep, baseUnit, weekStartDay);
|
|
553
|
+
var min = new Date(rangeMin.getTime() + minDelta);
|
|
554
|
+
var max = new Date(rangeMax.getTime() - maxDelta);
|
|
576
555
|
|
|
577
556
|
if (fit) {
|
|
578
557
|
var autoBaseUnitSteps = options.autoBaseUnitSteps;
|
|
@@ -615,13 +594,6 @@ var DateCategoryAxis = (function (CategoryAxis) {
|
|
|
615
594
|
}
|
|
616
595
|
}
|
|
617
596
|
|
|
618
|
-
if (min < totalLimits.min) {
|
|
619
|
-
min = totalLimits.min;
|
|
620
|
-
}
|
|
621
|
-
if (max > totalLimits.max) {
|
|
622
|
-
max = totalLimits.max;
|
|
623
|
-
}
|
|
624
|
-
|
|
625
597
|
if (min && max && dateDiff(max, min) > 0) {
|
|
626
598
|
return {
|
|
627
599
|
min: min,
|
|
@@ -632,6 +604,22 @@ var DateCategoryAxis = (function (CategoryAxis) {
|
|
|
632
604
|
}
|
|
633
605
|
};
|
|
634
606
|
|
|
607
|
+
DateCategoryAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
608
|
+
var totalLimits = this.dataRange.total();
|
|
609
|
+
var range = this.scaleRange(scale, cursor);
|
|
610
|
+
|
|
611
|
+
if (range) {
|
|
612
|
+
if (range.min < totalLimits.min) {
|
|
613
|
+
range.min = totalLimits.min;
|
|
614
|
+
}
|
|
615
|
+
if (range.max > totalLimits.max) {
|
|
616
|
+
range.max = totalLimits.max;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
return range;
|
|
621
|
+
};
|
|
622
|
+
|
|
635
623
|
DateCategoryAxis.prototype.range = function range () {
|
|
636
624
|
return this.dataRange.displayRange();
|
|
637
625
|
};
|
|
@@ -12,6 +12,8 @@ import ceil from './utils/ceil';
|
|
|
12
12
|
import { toDate, toTime, floorDate, ceilDate, duration, addDuration, addTicks, dateDiff, absoluteDateDiff, dateComparer, parseDate, parseDates, firstDay } from '../date-utils';
|
|
13
13
|
import { HOURS, DAYS, WEEKS, MONTHS, YEARS, TIME_PER_DAY, TIME_PER_WEEK, TIME_PER_MONTH, TIME_PER_YEAR, TIME_PER_UNIT } from '../date-utils/constants';
|
|
14
14
|
|
|
15
|
+
var MIN_VALUE_RANGE = 1000;
|
|
16
|
+
|
|
15
17
|
var DateValueAxis = (function (Axis) {
|
|
16
18
|
function DateValueAxis(seriesMin, seriesMax, axisOptions, chartService) {
|
|
17
19
|
var min = toDate(seriesMin);
|
|
@@ -124,23 +126,23 @@ var DateValueAxis = (function (Axis) {
|
|
|
124
126
|
return new AxisLabel(date, text, index, null, labelOptions);
|
|
125
127
|
};
|
|
126
128
|
|
|
127
|
-
DateValueAxis.prototype.translateRange = function translateRange (delta
|
|
129
|
+
DateValueAxis.prototype.translateRange = function translateRange (delta) {
|
|
128
130
|
var options = this.options;
|
|
129
|
-
var baseUnit = options.baseUnit;
|
|
130
|
-
var weekStartDay = options.weekStartDay || 0;
|
|
131
131
|
var lineBox = this.lineBox();
|
|
132
|
-
var
|
|
132
|
+
var vertical = options.vertical;
|
|
133
|
+
var reverse = options.reverse;
|
|
134
|
+
var size = vertical ? lineBox.height() : lineBox.width();
|
|
133
135
|
var range = this.range();
|
|
134
136
|
var scale = size / dateDiff(range.max, range.min);
|
|
135
|
-
var offset = round(delta / scale, DEFAULT_PRECISION) * (options.reverse ? -1 : 1);
|
|
136
|
-
var from = addTicks(options.min, offset);
|
|
137
|
-
var to = addTicks(options.max, offset);
|
|
138
137
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
var offset = round(delta / scale, DEFAULT_PRECISION);
|
|
139
|
+
if ((vertical || reverse) && !(vertical && reverse )) {
|
|
140
|
+
offset = -offset;
|
|
142
141
|
}
|
|
143
142
|
|
|
143
|
+
var from = addTicks(options.min, offset);
|
|
144
|
+
var to = addTicks(options.max, offset);
|
|
145
|
+
|
|
144
146
|
return {
|
|
145
147
|
min: from,
|
|
146
148
|
max: to,
|
|
@@ -148,27 +150,6 @@ var DateValueAxis = (function (Axis) {
|
|
|
148
150
|
};
|
|
149
151
|
};
|
|
150
152
|
|
|
151
|
-
DateValueAxis.prototype.scaleRange = function scaleRange (delta) {
|
|
152
|
-
var ref = this.options;
|
|
153
|
-
var from = ref.min;
|
|
154
|
-
var to = ref.max;
|
|
155
|
-
var rounds = Math.abs(delta);
|
|
156
|
-
|
|
157
|
-
while (rounds--) {
|
|
158
|
-
var range = dateDiff(from, to);
|
|
159
|
-
var step = Math.round(range * 0.1);
|
|
160
|
-
if (delta < 0) {
|
|
161
|
-
from = addTicks(from, step);
|
|
162
|
-
to = addTicks(to, -step);
|
|
163
|
-
} else {
|
|
164
|
-
from = addTicks(from, -step);
|
|
165
|
-
to = addTicks(to, step);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
return { min: from, max: to };
|
|
170
|
-
};
|
|
171
|
-
|
|
172
153
|
DateValueAxis.prototype.shouldRenderNote = function shouldRenderNote (value) {
|
|
173
154
|
var range = this.range();
|
|
174
155
|
|
|
@@ -199,8 +180,26 @@ var DateValueAxis = (function (Axis) {
|
|
|
199
180
|
};
|
|
200
181
|
};
|
|
201
182
|
|
|
202
|
-
DateValueAxis.prototype.
|
|
203
|
-
var
|
|
183
|
+
DateValueAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
184
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
185
|
+
var delta = (this.options.max - this.options.min) * Math.min(1, scale);
|
|
186
|
+
var minDelta = position * delta;
|
|
187
|
+
var maxDelta = (1 - position) * delta;
|
|
188
|
+
var min = toDate(toTime(this.options.min) + minDelta);
|
|
189
|
+
var max = toDate(toTime(this.options.max) - maxDelta);
|
|
190
|
+
|
|
191
|
+
if (max - min < MIN_VALUE_RANGE) {
|
|
192
|
+
max = toDate(toTime(min) + MIN_VALUE_RANGE);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return {
|
|
196
|
+
min: min,
|
|
197
|
+
max: max
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
DateValueAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
202
|
+
var range = this.scaleRange(scale, cursor);
|
|
204
203
|
var min = toDate(limitValue(toTime(range.min), this.totalMin, this.totalMax));
|
|
205
204
|
var max = toDate(limitValue(toTime(range.max), this.totalMin, this.totalMax));
|
|
206
205
|
|
|
@@ -11,6 +11,7 @@ import { DEFAULT_PRECISION, BLACK, X, Y } from '../common/constants';
|
|
|
11
11
|
import { deepExtend, defined, inArray, limitValue, round, setDefaultOptions } from '../common';
|
|
12
12
|
|
|
13
13
|
var DEFAULT_MAJOR_UNIT = 10;
|
|
14
|
+
var MIN_VALUE_RANGE = 1e-6;
|
|
14
15
|
|
|
15
16
|
var LogarithmicAxis = (function (Axis) {
|
|
16
17
|
function LogarithmicAxis(seriesMin, seriesMax, options, chartService) {
|
|
@@ -140,16 +141,6 @@ var LogarithmicAxis = (function (Axis) {
|
|
|
140
141
|
return { min: options.min, max: options.max };
|
|
141
142
|
};
|
|
142
143
|
|
|
143
|
-
LogarithmicAxis.prototype.scaleRange = function scaleRange (delta) {
|
|
144
|
-
var base = this.options.majorUnit;
|
|
145
|
-
var offset = -delta;
|
|
146
|
-
|
|
147
|
-
return {
|
|
148
|
-
min: Math.pow(base, this.logMin - offset),
|
|
149
|
-
max: Math.pow(base, this.logMax + offset)
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
|
-
|
|
153
144
|
LogarithmicAxis.prototype.translateRange = function translateRange (delta) {
|
|
154
145
|
var ref = this;
|
|
155
146
|
var options = ref.options;
|
|
@@ -333,24 +324,36 @@ var LogarithmicAxis = (function (Axis) {
|
|
|
333
324
|
};
|
|
334
325
|
};
|
|
335
326
|
|
|
336
|
-
LogarithmicAxis.prototype.
|
|
327
|
+
LogarithmicAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
328
|
+
var ref = this.options;
|
|
329
|
+
var base = ref.majorUnit;
|
|
330
|
+
var logMin = log(this.options.min, base);
|
|
331
|
+
var logMax = log(this.options.max, base);
|
|
332
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
333
|
+
var delta = (logMax - logMin) * Math.min(1, scale);
|
|
334
|
+
var min = Math.pow(base, logMin + position * delta);
|
|
335
|
+
var max = Math.pow(base, logMax - (1 - position) * delta);
|
|
336
|
+
|
|
337
|
+
if (max - min < MIN_VALUE_RANGE) {
|
|
338
|
+
max = min + MIN_VALUE_RANGE;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
return {
|
|
342
|
+
min: min,
|
|
343
|
+
max: max
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
LogarithmicAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
348
|
+
var range = this.scaleRange(scale, cursor);
|
|
337
349
|
var ref = this;
|
|
338
|
-
var options = ref.options;
|
|
339
350
|
var totalMin = ref.totalMin;
|
|
340
351
|
var totalMax = ref.totalMax;
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
var acceptNewRange = !(options.min === totalMin && options.max === totalMax) && round(log(max, base) - log(min, base), DEFAULT_PRECISION) >= 1;
|
|
347
|
-
|
|
348
|
-
if (acceptOptionsRange || acceptNewRange) {
|
|
349
|
-
return {
|
|
350
|
-
min: min,
|
|
351
|
-
max: max
|
|
352
|
-
};
|
|
353
|
-
}
|
|
352
|
+
|
|
353
|
+
return {
|
|
354
|
+
min: limitValue(range.min, totalMin, totalMax),
|
|
355
|
+
max: limitValue(range.max, totalMin, totalMax)
|
|
356
|
+
};
|
|
354
357
|
};
|
|
355
358
|
|
|
356
359
|
LogarithmicAxis.prototype._minorIntervalOptions = function _minorIntervalOptions (power) {
|
|
@@ -445,8 +448,8 @@ function throwNegativeValuesError() {
|
|
|
445
448
|
throw new Error("Non positive values cannot be used for a logarithmic axis");
|
|
446
449
|
}
|
|
447
450
|
|
|
448
|
-
function log(
|
|
449
|
-
return Math.log(
|
|
451
|
+
function log(x, base) {
|
|
452
|
+
return Math.log(x) / Math.log(base);
|
|
450
453
|
}
|
|
451
454
|
|
|
452
455
|
setDefaultOptions(LogarithmicAxis, {
|
|
@@ -205,16 +205,6 @@ var NumericAxis = (function (Axis) {
|
|
|
205
205
|
};
|
|
206
206
|
};
|
|
207
207
|
|
|
208
|
-
NumericAxis.prototype.scaleRange = function scaleRange (delta) {
|
|
209
|
-
var options = this.options;
|
|
210
|
-
var offset = -delta * options.majorUnit;
|
|
211
|
-
|
|
212
|
-
return {
|
|
213
|
-
min: options.min - offset,
|
|
214
|
-
max: options.max + offset
|
|
215
|
-
};
|
|
216
|
-
};
|
|
217
|
-
|
|
218
208
|
NumericAxis.prototype.labelsCount = function labelsCount () {
|
|
219
209
|
return this.getDivisions(this.options.majorUnit);
|
|
220
210
|
};
|
|
@@ -251,20 +241,34 @@ var NumericAxis = (function (Axis) {
|
|
|
251
241
|
}
|
|
252
242
|
};
|
|
253
243
|
|
|
254
|
-
NumericAxis.prototype.
|
|
244
|
+
NumericAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
245
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
246
|
+
var delta = (this.options.max - this.options.min) * Math.min(1, scale);
|
|
247
|
+
var minDelta = position * delta;
|
|
248
|
+
var maxDelta = (1 - position) * delta;
|
|
249
|
+
var min = this.options.min + minDelta;
|
|
250
|
+
var max = this.options.max - maxDelta;
|
|
251
|
+
|
|
252
|
+
if (max - min < MIN_VALUE_RANGE) {
|
|
253
|
+
max = min + MIN_VALUE_RANGE;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return {
|
|
257
|
+
min: min,
|
|
258
|
+
max: max
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
NumericAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
255
263
|
var ref = this;
|
|
256
264
|
var totalMin = ref.totalMin;
|
|
257
265
|
var totalMax = ref.totalMax;
|
|
258
|
-
var
|
|
259
|
-
var min = limitValue(newRange.min, totalMin, totalMax);
|
|
260
|
-
var max = limitValue(newRange.max, totalMin, totalMax);
|
|
266
|
+
var range = this.scaleRange(scale, cursor);
|
|
261
267
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
+
return {
|
|
269
|
+
min: limitValue(range.min, totalMin, totalMax),
|
|
270
|
+
max: limitValue(range.max, totalMin, totalMax)
|
|
271
|
+
};
|
|
268
272
|
};
|
|
269
273
|
|
|
270
274
|
NumericAxis.prototype.isValidRange = function isValidRange (min, max) {
|
package/dist/es/main.js
CHANGED