@progress/kendo-charts 1.19.1 → 1.20.0-dev.202111121622
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 +15 -6
- 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/mousewheel-delta.js +4 -7
- package/dist/es/core/axis.js +47 -0
- package/dist/es/core/category-axis.js +62 -20
- package/dist/es/core/date-category-axis.js +26 -38
- package/dist/es/core/date-value-axis.js +37 -40
- package/dist/es/core/logarithmic-axis.js +62 -88
- package/dist/es/core/numeric-axis.js +57 -81
- 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 +15 -6
- 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/mousewheel-delta.js +4 -7
- package/dist/es2015/core/axis.js +39 -0
- package/dist/es2015/core/category-axis.js +56 -18
- package/dist/es2015/core/date-category-axis.js +27 -36
- package/dist/es2015/core/date-value-axis.js +35 -40
- package/dist/es2015/core/logarithmic-axis.js +52 -83
- package/dist/es2015/core/numeric-axis.js +47 -78
- 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 +3172 -283
- 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
|
|
|
@@ -1185,8 +1193,9 @@ var Chart = (function (Class) {
|
|
|
1185
1193
|
for (var i = 0; i < elements.length; i++) {
|
|
1186
1194
|
var element = elements[i];
|
|
1187
1195
|
var currSeries = element.series || series;
|
|
1196
|
+
var shouldHighlight = currSeries && (currSeries.highlight || {}).visible;
|
|
1188
1197
|
|
|
1189
|
-
if (
|
|
1198
|
+
if (shouldHighlight && element.visual) {
|
|
1190
1199
|
var opacity = series ? series.opacity : element.series.opacity;
|
|
1191
1200
|
if (currSeries !== activeSeries || reset) {
|
|
1192
1201
|
element.visual.opacity(reset ? 1 : opacity);
|
|
@@ -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
|
};
|
|
@@ -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,53 @@ var Axis = (function (ChartElement) {
|
|
|
860
860
|
};
|
|
861
861
|
};
|
|
862
862
|
|
|
863
|
+
Axis.prototype.lineDir = function lineDir () {
|
|
864
|
+
/*
|
|
865
|
+
* Axis line direction:
|
|
866
|
+
* * Vertical: up.
|
|
867
|
+
* * Horizontal: right.
|
|
868
|
+
*/
|
|
869
|
+
|
|
870
|
+
var ref = this.options;
|
|
871
|
+
var vertical = ref.vertical;
|
|
872
|
+
var reverse = ref.reverse;
|
|
873
|
+
return (vertical ? -1 : 1) * (reverse ? -1 : 1);
|
|
874
|
+
};
|
|
875
|
+
|
|
876
|
+
Axis.prototype.lineInfo = function lineInfo () {
|
|
877
|
+
var ref = this.options;
|
|
878
|
+
var vertical = ref.vertical;
|
|
879
|
+
var lineBox = this.lineBox();
|
|
880
|
+
var lineSize = vertical ? lineBox.height() : lineBox.width();
|
|
881
|
+
var axis = vertical ? Y : X;
|
|
882
|
+
var axisDir = this.lineDir();
|
|
883
|
+
var startEdge = axisDir === 1 ? 1 : 2;
|
|
884
|
+
var axisOrigin = axis + startEdge.toString();
|
|
885
|
+
var lineStart = lineBox[axisOrigin];
|
|
886
|
+
|
|
887
|
+
return {
|
|
888
|
+
axis: axis,
|
|
889
|
+
axisOrigin: axisOrigin,
|
|
890
|
+
axisDir: axisDir,
|
|
891
|
+
lineBox: lineBox,
|
|
892
|
+
lineSize: lineSize,
|
|
893
|
+
lineStart: lineStart
|
|
894
|
+
};
|
|
895
|
+
};
|
|
896
|
+
|
|
897
|
+
Axis.prototype.pointOffset = function pointOffset (point) {
|
|
898
|
+
var ref = this.lineInfo();
|
|
899
|
+
var axis = ref.axis;
|
|
900
|
+
var axisDir = ref.axisDir;
|
|
901
|
+
var axisOrigin = ref.axisOrigin;
|
|
902
|
+
var lineBox = ref.lineBox;
|
|
903
|
+
var lineSize = ref.lineSize;
|
|
904
|
+
var relative = axisDir > 0 ? point[axis] - lineBox[axisOrigin] : lineBox[axisOrigin] - point[axis];
|
|
905
|
+
var offset = relative / lineSize;
|
|
906
|
+
|
|
907
|
+
return offset;
|
|
908
|
+
};
|
|
909
|
+
|
|
863
910
|
Axis.prototype.labelsBetweenTicks = function labelsBetweenTicks () {
|
|
864
911
|
return !this.options.justified;
|
|
865
912
|
};
|
|
@@ -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) {
|
|
@@ -263,18 +264,53 @@ var CategoryAxis = (function (Axis) {
|
|
|
263
264
|
return positions.slice(startIndex, endIndex + 1);
|
|
264
265
|
};
|
|
265
266
|
|
|
267
|
+
CategoryAxis.prototype.lineInfo = function lineInfo () {
|
|
268
|
+
var ref = this.options;
|
|
269
|
+
var vertical = ref.vertical;
|
|
270
|
+
var reverse = ref.reverse;
|
|
271
|
+
var lineBox = this.lineBox();
|
|
272
|
+
var lineSize = vertical ? lineBox.height() : lineBox.width();
|
|
273
|
+
var axis = vertical ? Y : X;
|
|
274
|
+
var axisDir = reverse ? -1 : 1;
|
|
275
|
+
var startEdge = axisDir === 1 ? 1 : 2;
|
|
276
|
+
var axisOrigin = axis + startEdge.toString();
|
|
277
|
+
var lineStart = lineBox[axisOrigin];
|
|
278
|
+
|
|
279
|
+
return {
|
|
280
|
+
axis: axis,
|
|
281
|
+
axisOrigin: axisOrigin,
|
|
282
|
+
axisDir: axisDir,
|
|
283
|
+
lineBox: lineBox,
|
|
284
|
+
lineSize: lineSize,
|
|
285
|
+
lineStart: lineStart
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
CategoryAxis.prototype.lineDir = function lineDir () {
|
|
290
|
+
/*
|
|
291
|
+
* Category axis line direction:
|
|
292
|
+
* * Vertical: down.
|
|
293
|
+
* * Horizontal: right.
|
|
294
|
+
*/
|
|
295
|
+
|
|
296
|
+
var ref = this.options;
|
|
297
|
+
var reverse = ref.reverse;
|
|
298
|
+
return reverse ? -1 : 1;
|
|
299
|
+
};
|
|
300
|
+
|
|
266
301
|
// TODO: Rename to slotBox, valueSlot, slotByIndex?
|
|
267
302
|
CategoryAxis.prototype.getSlot = function getSlot (from, to, limit) {
|
|
268
303
|
var options = this.options;
|
|
269
304
|
var reverse = options.reverse;
|
|
270
305
|
var justified = options.justified;
|
|
271
|
-
var vertical = options.vertical;
|
|
272
306
|
var ref = this.scaleOptions();
|
|
273
307
|
var scale = ref.scale;
|
|
274
308
|
var box = ref.box;
|
|
275
309
|
var min = ref.min;
|
|
276
|
-
var
|
|
277
|
-
var
|
|
310
|
+
var ref$1 = this.lineInfo();
|
|
311
|
+
var valueAxis = ref$1.axis;
|
|
312
|
+
var lineStart = ref$1.lineStart;
|
|
313
|
+
|
|
278
314
|
var slotBox = box.clone();
|
|
279
315
|
var singleSlot = !defined(to);
|
|
280
316
|
|
|
@@ -406,29 +442,35 @@ var CategoryAxis = (function (Axis) {
|
|
|
406
442
|
};
|
|
407
443
|
};
|
|
408
444
|
|
|
409
|
-
CategoryAxis.prototype.
|
|
445
|
+
CategoryAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
446
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
410
447
|
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
|
-
};
|
|
448
|
+
var delta = (rangeIndices.max - rangeIndices.min) * Math.min(1, scale);
|
|
449
|
+
var minDelta = position * delta;
|
|
450
|
+
var maxDelta = (1 - position) * delta;
|
|
451
|
+
var min = rangeIndices.min + minDelta;
|
|
452
|
+
var max = rangeIndices.max - maxDelta;
|
|
453
|
+
|
|
454
|
+
if (max - min < MIN_CATEGORY_RANGE) {
|
|
455
|
+
max = min + MIN_CATEGORY_RANGE;
|
|
422
456
|
}
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
return {
|
|
460
|
+
min: min,
|
|
461
|
+
max: max
|
|
462
|
+
};
|
|
423
463
|
};
|
|
424
464
|
|
|
425
|
-
CategoryAxis.prototype.
|
|
426
|
-
var
|
|
427
|
-
var
|
|
465
|
+
CategoryAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
466
|
+
var ref = this.totalRange();
|
|
467
|
+
var totalMin = ref.min;
|
|
468
|
+
var totalMax = ref.max;
|
|
469
|
+
var range = this.scaleRange(scale, cursor);
|
|
428
470
|
|
|
429
471
|
return {
|
|
430
|
-
min:
|
|
431
|
-
max: range
|
|
472
|
+
min: limitValue(range.min, totalMin, totalMax),
|
|
473
|
+
max: limitValue(range.max, totalMin, totalMax)
|
|
432
474
|
};
|
|
433
475
|
};
|
|
434
476
|
|
|
@@ -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
|
};
|
|
@@ -3,7 +3,7 @@ import NumericAxis from './numeric-axis';
|
|
|
3
3
|
import AxisLabel from './axis-label';
|
|
4
4
|
import { DateLabelFormats } from './constants';
|
|
5
5
|
|
|
6
|
-
import { BLACK, DATE, COORD_PRECISION, DEFAULT_PRECISION
|
|
6
|
+
import { BLACK, DATE, COORD_PRECISION, DEFAULT_PRECISION } from '../common/constants';
|
|
7
7
|
import { setDefaultOptions, deepExtend, limitValue, round } from '../common';
|
|
8
8
|
|
|
9
9
|
import autoMajorUnit from './utils/auto-major-unit';
|
|
@@ -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);
|
|
@@ -61,14 +63,12 @@ var DateValueAxis = (function (Axis) {
|
|
|
61
63
|
|
|
62
64
|
DateValueAxis.prototype.getTickPositions = function getTickPositions (step) {
|
|
63
65
|
var options = this.options;
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var start = lineBox[(vertical ? Y : X) + startEdge];
|
|
66
|
+
var ref = this.lineInfo();
|
|
67
|
+
var dir = ref.axisDir;
|
|
68
|
+
var lineSize = ref.lineSize;
|
|
69
|
+
var start = ref.lineStart;
|
|
69
70
|
var divisions = this.getDivisions(step);
|
|
70
71
|
var timeRange = dateDiff(options.max, options.min);
|
|
71
|
-
var lineSize = vertical ? lineBox.height() : lineBox.width();
|
|
72
72
|
var scale = lineSize / timeRange;
|
|
73
73
|
var weekStartDay = options.weekStartDay || 0;
|
|
74
74
|
|
|
@@ -124,23 +124,23 @@ var DateValueAxis = (function (Axis) {
|
|
|
124
124
|
return new AxisLabel(date, text, index, null, labelOptions);
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
DateValueAxis.prototype.translateRange = function translateRange (delta
|
|
127
|
+
DateValueAxis.prototype.translateRange = function translateRange (delta) {
|
|
128
128
|
var options = this.options;
|
|
129
|
-
var baseUnit = options.baseUnit;
|
|
130
|
-
var weekStartDay = options.weekStartDay || 0;
|
|
131
129
|
var lineBox = this.lineBox();
|
|
132
|
-
var
|
|
130
|
+
var vertical = options.vertical;
|
|
131
|
+
var reverse = options.reverse;
|
|
132
|
+
var size = vertical ? lineBox.height() : lineBox.width();
|
|
133
133
|
var range = this.range();
|
|
134
134
|
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
135
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
136
|
+
var offset = round(delta / scale, DEFAULT_PRECISION);
|
|
137
|
+
if ((vertical || reverse) && !(vertical && reverse )) {
|
|
138
|
+
offset = -offset;
|
|
142
139
|
}
|
|
143
140
|
|
|
141
|
+
var from = addTicks(options.min, offset);
|
|
142
|
+
var to = addTicks(options.max, offset);
|
|
143
|
+
|
|
144
144
|
return {
|
|
145
145
|
min: from,
|
|
146
146
|
max: to,
|
|
@@ -148,27 +148,6 @@ var DateValueAxis = (function (Axis) {
|
|
|
148
148
|
};
|
|
149
149
|
};
|
|
150
150
|
|
|
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
151
|
DateValueAxis.prototype.shouldRenderNote = function shouldRenderNote (value) {
|
|
173
152
|
var range = this.range();
|
|
174
153
|
|
|
@@ -199,8 +178,26 @@ var DateValueAxis = (function (Axis) {
|
|
|
199
178
|
};
|
|
200
179
|
};
|
|
201
180
|
|
|
202
|
-
DateValueAxis.prototype.
|
|
203
|
-
var
|
|
181
|
+
DateValueAxis.prototype.scaleRange = function scaleRange (scale, cursor) {
|
|
182
|
+
var position = Math.abs(this.pointOffset(cursor));
|
|
183
|
+
var delta = (this.options.max - this.options.min) * Math.min(1, scale);
|
|
184
|
+
var minDelta = position * delta;
|
|
185
|
+
var maxDelta = (1 - position) * delta;
|
|
186
|
+
var min = toDate(toTime(this.options.min) + minDelta);
|
|
187
|
+
var max = toDate(toTime(this.options.max) - maxDelta);
|
|
188
|
+
|
|
189
|
+
if (max - min < MIN_VALUE_RANGE) {
|
|
190
|
+
max = toDate(toTime(min) + MIN_VALUE_RANGE);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return {
|
|
194
|
+
min: min,
|
|
195
|
+
max: max
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
DateValueAxis.prototype.zoomRange = function zoomRange (scale, cursor) {
|
|
200
|
+
var range = this.scaleRange(scale, cursor);
|
|
204
201
|
var min = toDate(limitValue(toTime(range.min), this.totalMin, this.totalMax));
|
|
205
202
|
var max = toDate(limitValue(toTime(range.max), this.totalMin, this.totalMax));
|
|
206
203
|
|