@amcharts/amcharts5 5.4.6 → 5.4.7
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/.internal/charts/radar/AxisRendererCircular.d.ts +4 -0
- package/.internal/charts/radar/AxisRendererCircular.d.ts.map +1 -1
- package/.internal/charts/radar/AxisRendererCircular.js +8 -0
- package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
- package/.internal/charts/stock/StockChart.d.ts.map +1 -1
- package/.internal/charts/stock/StockChart.js +1 -0
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/StockPanel.d.ts +7 -0
- package/.internal/charts/stock/StockPanel.d.ts.map +1 -1
- package/.internal/charts/stock/StockPanel.js +11 -0
- package/.internal/charts/stock/StockPanel.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +18 -3
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +11 -5
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/CHANGELOG.md +11 -0
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ import type { Tooltip } from "../../core/render/Tooltip";
|
|
|
8
8
|
import { Container, IContainerSettings, IContainerPrivate, IContainerEvents } from "../../core/render/Container";
|
|
9
9
|
import { Graphics } from "../../core/render/Graphics";
|
|
10
10
|
import { Grid } from "./axes/Grid";
|
|
11
|
+
import type { IPointerEvent } from "../../core/render/backend/Renderer";
|
|
11
12
|
export interface IXYCursorSettings extends IContainerSettings {
|
|
12
13
|
/**
|
|
13
14
|
* Cursor's X axis.
|
|
@@ -125,26 +126,30 @@ export interface IXYCursorPrivate extends IContainerPrivate {
|
|
|
125
126
|
}
|
|
126
127
|
export interface IXYCursorEvents extends IContainerEvents {
|
|
127
128
|
/**
|
|
128
|
-
* Kicks in when cursor selection
|
|
129
|
+
* Kicks in when cursor selection ends.
|
|
129
130
|
*
|
|
130
131
|
* Only when `behavior` is set.
|
|
131
132
|
*/
|
|
132
133
|
selectended: {
|
|
134
|
+
originalEvent: IPointerEvent;
|
|
133
135
|
target: XYCursor;
|
|
134
136
|
};
|
|
135
137
|
/**
|
|
136
|
-
* Kicks in when cursor selection
|
|
138
|
+
* Kicks in when cursor selection starts.
|
|
137
139
|
*
|
|
138
140
|
* Only when `behavior` is set.
|
|
139
141
|
*/
|
|
140
142
|
selectstarted: {
|
|
143
|
+
originalEvent: IPointerEvent;
|
|
141
144
|
target: XYCursor;
|
|
142
145
|
};
|
|
143
146
|
/**
|
|
144
147
|
* Kicks in when cursor's position over plot area changes.
|
|
145
148
|
*/
|
|
146
149
|
cursormoved: {
|
|
150
|
+
point: IPoint;
|
|
147
151
|
target: XYCursor;
|
|
152
|
+
originalEvent?: IPointerEvent;
|
|
148
153
|
};
|
|
149
154
|
/**
|
|
150
155
|
* Kicks in when cursor's is hidden when user rolls-out of the plot area
|
|
@@ -152,6 +157,16 @@ export interface IXYCursorEvents extends IContainerEvents {
|
|
|
152
157
|
cursorhidden: {
|
|
153
158
|
target: XYCursor;
|
|
154
159
|
};
|
|
160
|
+
/**
|
|
161
|
+
* Invoked if pointer is pressed down on a plot area and released without
|
|
162
|
+
* moving (only when behavior is `"selectX"`).
|
|
163
|
+
*
|
|
164
|
+
* @since 5.4.7
|
|
165
|
+
*/
|
|
166
|
+
selectcancelled: {
|
|
167
|
+
originalEvent: IPointerEvent;
|
|
168
|
+
target: XYCursor;
|
|
169
|
+
};
|
|
155
170
|
}
|
|
156
171
|
/**
|
|
157
172
|
* Creates a chart cursor for an [[XYChart]].
|
|
@@ -222,7 +237,7 @@ export declare class XYCursor extends Container {
|
|
|
222
237
|
* @param point X/Y to move cursor to
|
|
223
238
|
* @param skipEvent Do not fire "cursormoved" event
|
|
224
239
|
*/
|
|
225
|
-
handleMove(point?: IPoint, skipEvent?: boolean): void;
|
|
240
|
+
handleMove(point?: IPoint, skipEvent?: boolean, originalEvent?: IPointerEvent): void;
|
|
226
241
|
protected _getPoint(positionX: number, positionY: number): IPoint;
|
|
227
242
|
protected _updateLines(x: number, y: number): void;
|
|
228
243
|
protected _updateSelection(point: IPoint): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XYCursor.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/xy/XYCursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEjH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"XYCursor.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/charts/xy/XYCursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -358,7 +358,7 @@ export class XYCursor extends Container {
|
|
|
358
358
|
this.selection.show();
|
|
359
359
|
const type = "selectstarted";
|
|
360
360
|
if (this.events.isEnabled(type)) {
|
|
361
|
-
this.events.dispatch(type, { type: type, target: this });
|
|
361
|
+
this.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
364
|
let positionX = this._getPosition(local).x;
|
|
@@ -394,7 +394,13 @@ export class XYCursor extends Container {
|
|
|
394
394
|
if (dispatch) {
|
|
395
395
|
const type = "selectended";
|
|
396
396
|
if (this.events.isEnabled(type)) {
|
|
397
|
-
this.events.dispatch(type, { type: type, target: this });
|
|
397
|
+
this.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
const type = "selectcancelled";
|
|
402
|
+
if (this.events.isEnabled(type)) {
|
|
403
|
+
this.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });
|
|
398
404
|
}
|
|
399
405
|
}
|
|
400
406
|
}
|
|
@@ -420,7 +426,7 @@ export class XYCursor extends Container {
|
|
|
420
426
|
}
|
|
421
427
|
this._lastPoint = rootPoint;
|
|
422
428
|
this.setPrivate("lastPoint", rootPoint);
|
|
423
|
-
this.handleMove({ x: rootPoint.x, y: rootPoint.y });
|
|
429
|
+
this.handleMove({ x: rootPoint.x, y: rootPoint.y }, false, event.originalEvent);
|
|
424
430
|
}
|
|
425
431
|
}
|
|
426
432
|
_getPosition(point) {
|
|
@@ -435,7 +441,7 @@ export class XYCursor extends Container {
|
|
|
435
441
|
* @param point X/Y to move cursor to
|
|
436
442
|
* @param skipEvent Do not fire "cursormoved" event
|
|
437
443
|
*/
|
|
438
|
-
handleMove(point, skipEvent) {
|
|
444
|
+
handleMove(point, skipEvent, originalEvent) {
|
|
439
445
|
if (!point) {
|
|
440
446
|
point = this._movePoint;
|
|
441
447
|
}
|
|
@@ -495,7 +501,7 @@ export class XYCursor extends Container {
|
|
|
495
501
|
chart._handleCursorPosition();
|
|
496
502
|
const type = "cursormoved";
|
|
497
503
|
if (this.events.isEnabled(type)) {
|
|
498
|
-
this.events.dispatch(type, { type: type, target: this });
|
|
504
|
+
this.events.dispatch(type, { type: type, target: this, point: point, originalEvent: originalEvent });
|
|
499
505
|
}
|
|
500
506
|
}
|
|
501
507
|
this._updateLines(x, y);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XYCursor.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/xy/XYCursor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IPoint } from \"../../core/util/IPoint\";\nimport type { XYChart } from \"./XYChart\"\nimport type { XYSeries } from \"./series/XYSeries\";\nimport type { ISpritePointerEvent } from \"../../core/render/Sprite\";\nimport type { Axis } from \"./axes/Axis\";\nimport type { AxisRenderer } from \"./axes/AxisRenderer\";\nimport type { Tooltip } from \"../../core/render/Tooltip\";\n\nimport { Container, IContainerSettings, IContainerPrivate, IContainerEvents } from \"../../core/render/Container\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { Graphics } from \"../../core/render/Graphics\";\nimport { Grid } from \"./axes/Grid\";\n//import { Animations } from \"../core/util/Animation\";\n\nimport * as $type from \"../../core/util/Type\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $math from \"../../core/util/Math\";\nimport * as $array from \"../../core/util/Array\";\nimport * as $object from \"../../core/util/Object\";\n\nexport interface IXYCursorSettings extends IContainerSettings {\n\n\t/**\n\t * Cursor's X axis.\n\t *\n\t * If set, cursor will snap to that axis' cells.\n\t */\n\txAxis?: Axis<AxisRenderer>;\n\n\t/**\n\t * Cursor's Y axis.\n\t *\n\t * If set, cursor will snap to that axis' cells.\n\t */\n\tyAxis?: Axis<AxisRenderer>;\n\n\t/**\n\t * What should cursor do when dragged across plot area.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/#Behavior} for more info\n\t * @default \"none\"\n\t */\n\tbehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"none\";\n\n\t/**\n\t * Cursor's horizontal position relative to plot area.\n\t *\n\t * If this setting is set, cursor will not react to mouse/touch and will just\n\t * sit at specified position until `positionX` is reset to `undefined`.\n\t *\n\t * `0` - left, `1` - right.\n\t */\n\tpositionX?: number;\n\n\t/**\n\t * Cursor's vertical position relative to plot area.\n\t *\n\t * If this setting is set, cursor will not react to mouse/touch and will just\n\t * sit at specified position until `positionY` is reset to `undefined`.\n\t *\n\t * `0` - left, `1` - right.\n\t */\n\tpositionY?: number;\n\n\t/**\n\t * If set to `true`, cursor will not be hidden when mouse cursor moves out\n\t * of the plot area.\n\t *\n\t * @default false\n\t */\n\talwaysShow?: boolean;\n\n\t/**\n\t * A list of series to snap cursor to.\n\t *\n\t * If set, the cursor will always snap to the closest data item of listed\n\t * series.\n\t */\n\tsnapToSeries?: Array<XYSeries>;\n\n\t/**\n\t * Defines in which direction to look when searching for the nearest data\n\t * item to snap to.\n\t *\n\t * Possible values: `\"xy\"` (default), `\"x\"`, and `\"y\"`.\n\t *\n\t * @since 5.0.6\n\t * @default \"xy\"\n\t */\n\tsnapToSeriesBy?: \"xy\" | \"x\" | \"y\" | \"x!\" | \"y!\";\n\n\t/**\n\t * An array of other [[XYCursor]] objects to sync this cursor with.\n\t *\n\t * If set will automatically move synced cursors to the same position within\n\t * their respective axes as the this cursor assumin same XY coordinates of\n\t * the pointer.\n\t *\n\t * NOTE: Syncing is performed using actual X/Y coordinates of the point of\n\t * mouse cursor's position or touch. It means that they will not sync by axis\n\t * positions, but rather by screen coordinates. For example vertical lines\n\t * will not sync across horizontally laid out charts, and vice versa.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/#syncing-cursors} for more info\n\t * @since 5.1.4\n\t */\n\tsyncWith?: Array<XYCursor>;\n\n\t/**\n\t * Minimum distance in pixels between down and up points.\n\t *\n\t * If a distance is less than the value of `moveThreshold`, the zoom or\n\t * selection won't happen.\n\t *\n\t * @since 5.2.20\n\t * @default 1\n\t */\n\tmoveThreshold?: number\n\n}\n\n\nexport interface IXYCursorPrivate extends IContainerPrivate {\n\n\t/**\n\t * Current X/Y coordinates of the cursor.\n\t */\n\tpoint?: IPoint;\n\n\t/**\n\t * Current horizontal position relative to the plot area (0-1).\n\t */\n\tpositionX?: number;\n\n\t/**\n\t * Current vertical position relative to the plot area (0-1).\n\t */\n\tpositionY?: number;\n\n\t/**\n\t * Horizontal cursor position on the moment when selection started.\n\t */\n\tdownPositionX?: number;\n\n\t/**\n\t * Vertical cursor position on the moment when selection started.\n\t */\n\tdownPositionY?: number;\n\n\t/**\n\t * Last global point to which cursor moved\n\t */\n\tlastPoint?: IPoint;\n}\n\nexport interface IXYCursorEvents extends IContainerEvents {\n\n\t/**\n\t * Kicks in when cursor selection starts.\n\t *\n\t * Only when `behavior` is set.\n\t */\n\tselectended: {\n\t\ttarget: XYCursor;\n\t};\n\n\t/**\n\t * Kicks in when cursor selection ends.\n\t *\n\t * Only when `behavior` is set.\n\t */\n\tselectstarted: {\n\t\ttarget: XYCursor;\n\t};\n\n\t/**\n\t * Kicks in when cursor's position over plot area changes.\n\t */\n\tcursormoved: {\n\t\ttarget: XYCursor;\n\t};\n\n\t/**\n\t * Kicks in when cursor's is hidden when user rolls-out of the plot area\n\t */\n\tcursorhidden: {\n\t\ttarget: XYCursor;\n\t};\n\n}\n\n/**\n * Creates a chart cursor for an [[XYChart]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/} for more info\n * @important\n */\nexport class XYCursor extends Container {\n\tpublic static className: string = \"XYCursor\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([XYCursor.className]);\n\n\tdeclare public _settings: IXYCursorSettings;\n\tdeclare public _privateSettings: IXYCursorPrivate;\n\tdeclare public _events: IXYCursorEvents;\n\n\t/**\n\t * A [[Grid]] elment that used for horizontal line of the cursor crosshair.\n\t *\n\t * @default Grid.new()\n\t */\n\tpublic readonly lineX: Grid = this.children.push(Grid.new(this._root, {\n\t\tthemeTags: [\"x\"]\n\t}));\n\n\t/**\n\t * A [[Grid]] elment that used for horizontal line of the cursor crosshair.\n\t *\n\t * @default Grid.new()\n\t */\n\tpublic readonly lineY: Grid = this.children.push(Grid.new(this._root, {\n\t\tthemeTags: [\"y\"]\n\t}));\n\n\t/**\n\t * An element that represents current selection.\n\t *\n\t * @default Graphics.new()\n\t */\n\tpublic readonly selection: Graphics = this.children.push(Graphics.new(this._root, {\n\t\tthemeTags: [\"selection\", \"cursor\"], layer: 30\n\t}));\n\n\tprotected _movePoint: IPoint | undefined;\n\tprotected _lastPoint: IPoint = { x: 0, y: 0 };\n\n\tprotected _tooltipX: boolean = false;\n\tprotected _tooltipY: boolean = false;\n\n\t/**\n\t * A chart cursor is attached to.\n\t */\n\tpublic chart: XYChart | undefined;\n\n\tprotected _toX?: number;\n\tprotected _toY?: number;\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"xy\", \"cursor\"]);\n\t\tsuper._afterNew();\n\t\tthis.setAll({ \"width\": p100, height: p100, isMeasured: true, position: \"absolute\" });\n\t\tthis.states.create(\"hidden\", { visible: true, opacity: 0 });\n\t\tthis._drawLines();\n\t\tthis.setPrivateRaw(\"visible\", false);\n\n\t\tthis._disposers.push(this.setTimeout(() => {\n\t\t\tthis.setPrivate(\"visible\", true)\n\t\t}, 500));\n\n\t\tthis._disposers.push(this.lineX.events.on(\"positionchanged\", () => {\n\t\t\tthis._handleXLine();\n\t\t}));\n\n\t\tthis._disposers.push(this.lineY.events.on(\"positionchanged\", () => {\n\t\t\tthis._handleYLine();\n\t\t}));\n\n\t\tthis._disposers.push(this.lineX.events.on(\"focus\", (ev) => this._handleLineFocus(ev.target)));\n\t\tthis._disposers.push(this.lineX.events.on(\"blur\", (ev) => this._handleLineBlur(ev.target)));\n\n\t\tthis._disposers.push(this.lineY.events.on(\"focus\", (ev) => this._handleLineFocus(ev.target)));\n\t\tthis._disposers.push(this.lineY.events.on(\"blur\", (ev) => this._handleLineBlur(ev.target)));\n\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tthis._handleLineMove(ev.keyCode);\n\t\t\t}));\n\t\t}\n\t}\n\n\tprotected _setUpTouch(): void {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart.plotContainer._display.cancelTouch = this.get(\"behavior\") != \"none\" ? true : false;\n\t\t}\n\t}\n\n\tprotected _handleXLine() {\n\t\tlet x = this.lineX.x();\n\t\tlet visible = true;\n\t\tif (x < 0 || x > this.width()) {\n\t\t\tvisible = false;\n\t\t}\n\t\tthis.lineX.setPrivate(\"visible\", visible);\n\t}\n\n\tprotected _handleYLine() {\n\t\tlet y = this.lineY.y();\n\t\tlet visible = true;\n\t\tif (y < 0 || y > this.height()) {\n\t\t\tvisible = false;\n\t\t}\n\t\tthis.lineY.setPrivate(\"visible\", visible);\n\t}\n\n\tprotected _handleLineMove(keyCode: number) {\n\t\tlet dir: any = \"\";\n\t\tlet position = 0;\n\t\tlet increment = 0.1;\n\t\tconst chart = this.chart;\n\n\t\tif (this._root.focused(this.lineX)) {\n\t\t\tif (chart && chart.xAxes.length) {\n\t\t\t\tincrement = chart.xAxes.getIndex(0)!.getCellWidthPosition();\n\t\t\t}\n\t\t\tposition = this.getPrivate(\"positionX\", 0);\n\t\t\tdir = \"positionX\";\n\t\t\tif (keyCode == 37) {\n\t\t\t\tposition -= increment;\n\t\t\t}\n\t\t\telse if (keyCode == 39) {\n\t\t\t\tposition += increment;\n\t\t\t}\n\t\t}\n\t\telse if (this._root.focused(this.lineY)) {\n\t\t\tif (chart && chart.yAxes.length) {\n\t\t\t\tincrement = chart.yAxes.getIndex(0)!.getCellWidthPosition();\n\t\t\t}\n\t\t\tposition = this.getPrivate(\"positionY\", 0);\n\t\t\tdir = \"positionY\";\n\t\t\tif (keyCode == 38) {\n\t\t\t\tposition -= increment;\n\t\t\t}\n\t\t\telse if (keyCode == 40) {\n\t\t\t\tposition += increment;\n\t\t\t}\n\t\t}\n\n\t\tif (position < 0) {\n\t\t\tposition = 0;\n\t\t}\n\t\telse if (position > 1) {\n\t\t\tposition = 1;\n\t\t}\n\n\t\tif (dir != \"\") {\n\t\t\tthis.set(dir, position);\n\t\t}\n\t}\n\n\tprotected _handleLineFocus(_line: Grid) {\n\t\tthis.setAll({\n\t\t\tpositionX: this.getPrivate(\"positionX\"),\n\t\t\tpositionY: this.getPrivate(\"positionY\"),\n\t\t\talwaysShow: true\n\t\t});\n\t}\n\n\tprotected _handleLineBlur(_line: Grid) {\n\t\tthis.setAll({\n\t\t\tpositionX: undefined,\n\t\t\tpositionY: undefined,\n\t\t\talwaysShow: false\n\t\t});\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"xAxis\")) {\n\t\t\tthis._tooltipX = false;\n\t\t\tconst xAxis = this.get(\"xAxis\");\n\n\t\t\tif (xAxis) {\n\t\t\t\tconst tooltip = xAxis.get(\"tooltip\");\n\t\t\t\tif (tooltip) {\n\t\t\t\t\tthis._tooltipX = true;\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\ttooltip.on(\"pointTo\", () => {\n\t\t\t\t\t\t\tthis._updateXLine(tooltip);\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"yAxis\")) {\n\t\t\tthis._tooltipY = false;\n\t\t\tconst yAxis = this.get(\"yAxis\");\n\n\t\t\tif (yAxis) {\n\t\t\t\tconst tooltip = yAxis.get(\"tooltip\");\n\t\t\t\tif (tooltip) {\n\t\t\t\t\tthis._tooltipY = true;\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\ttooltip.on(\"pointTo\", () => {\n\t\t\t\t\t\t\tthis._updateYLine(tooltip);\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleSyncWith() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tconst syncWith = this.get(\"syncWith\");\n\t\t\tconst otherCharts: Array<XYChart> = [];\n\t\t\tif (syncWith) {\n\t\t\t\t$array.each(syncWith, (cursor) => {\n\t\t\t\t\tconst chart = cursor.chart;\n\t\t\t\t\tif (chart) {\n\t\t\t\t\t\totherCharts.push(chart)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\tchart._otherCharts = otherCharts;\n\t\t}\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\t\tthis._handleSyncWith();\n\n\t\tif (this.isDirty(\"positionX\") || this.isDirty(\"positionY\")) {\n\t\t\tconst positionX = this.get(\"positionX\");\n\t\t\tconst positionY = this.get(\"positionY\");\n\n\t\t\tif (positionX == null && positionY == null) {\n\t\t\t\tthis.hide(0);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._movePoint = this.toGlobal(this._getPoint(this.get(\"positionX\", 0), this.get(\"positionY\", 0)));\n\t\t\t\tthis.handleMove();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateXLine(tooltip: Tooltip) {\n\t\tlet x = $math.round(this._display.toLocal(tooltip.get(\"pointTo\", { x: 0, y: 0 })).x, 2);\n\t\tif (this._toX != x) {\n\t\t\tthis.lineX.animate({ key: \"x\", to: x, duration: tooltip.get(\"animationDuration\", 0), easing: tooltip.get(\"animationEasing\") });\n\t\t\tthis._toX = x;\n\t\t}\n\t}\n\n\tprotected _updateYLine(tooltip: Tooltip) {\n\t\tlet y = $math.round(this._display.toLocal(tooltip.get(\"pointTo\", { x: 0, y: 0 })).y, 2);\n\t\tif (this._toY != y) {\n\t\t\tthis.lineY.animate({ key: \"y\", to: y, duration: tooltip.get(\"animationDuration\", 0), easing: tooltip.get(\"animationEasing\") });\n\t\t\tthis._toY = y;\n\t\t}\n\t}\n\n\tprotected _drawLines() {\n\t\tthis.lineX.set(\"draw\", (display) => {\n\t\t\tdisplay.moveTo(0, 0);\n\t\t\tdisplay.lineTo(0, this.height());\n\t\t})\n\t\tthis.lineY.set(\"draw\", (display) => {\n\t\t\tdisplay.moveTo(0, 0);\n\t\t\tdisplay.lineTo(this.width(), 0);\n\t\t})\n\t}\n\n\tpublic updateCursor(){\n\t\tif (this.get(\"alwaysShow\")) {\n\t\t\tthis._movePoint = this.toGlobal(this._getPoint(this.get(\"positionX\", 0), this.get(\"positionY\", 0)));\t\t\t\n\t\t}\t\t\n\t\tthis.handleMove();\n\t}\n\n\tpublic _setChart(chart: XYChart): void {\n\t\tthis.chart = chart;\n\n\t\tthis._handleSyncWith();\n\n\t\tconst plotContainer = chart.plotContainer;\n\n\t\tthis.events.on(\"boundschanged\", () => {\n\t\t\tthis._disposers.push(this.setTimeout(() => {\n\t\t\t\tthis.updateCursor();\n\t\t\t}, 50))\n\t\t})\n\n\t\t//this._display.interactive = true;\n\t\tif ($utils.supports(\"touchevents\")) {\n\t\t\tthis._disposers.push(plotContainer.events.on(\"click\", (event) => {\n\t\t\t\tif ($utils.isTouchEvent(event.originalEvent)) {\n\t\t\t\t\tthis._handleMove(event);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis._setUpTouch();\n\t\t}\n\n\t\tthis._disposers.push(plotContainer.events.on(\"pointerdown\", (event) => {\n\t\t\tthis._handleCursorDown(event);\n\t\t}));\n\n\t\tthis._disposers.push(plotContainer.events.on(\"globalpointerup\", (event) => {\n\t\t\tthis._handleCursorUp(event);\n\t\t\tif (!event.native && !this.isHidden()) {\n\t\t\t\tthis._handleMove(event);\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push(plotContainer.events.on(\"globalpointermove\", (event) => {\n\t\t\tif (!this.get(\"syncWith\")) {\n\t\t\t\tif ($object.keys(plotContainer._downPoints).length == 0 && !event.native && this.isHidden()) {\n\t\t\t\t\t// Ignore mouse movement if it originates on outside element and\n\t\t\t\t\t// we're not dragging.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._handleMove(event);\n\t\t}));\n\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tparent.children.moveValue(this.selection);\n\t\t}\n\t}\n\n\tprotected _inPlot(point: IPoint): boolean {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn chart.inPlot(point);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected _handleCursorDown(event: ISpritePointerEvent) {\n\t\tif((event.originalEvent as any).button == 2){\n\t\t\treturn;\n\t\t}\n\n\t\tconst rootPoint = event.point;\n\t\tlet local = this._display.toLocal(rootPoint);\n\t\tconst chart = this.chart;\n\n\t\tthis.selection.set(\"draw\", () => { });\n\n\t\tif (chart && this._inPlot(local)) {\n\t\t\tthis._downPoint = local;\n\n\t\t\tif (this.get(\"behavior\") != \"none\") {\n\t\t\t\tthis.selection.show();\n\n\t\t\t\tconst type = \"selectstarted\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet positionX = this._getPosition(local).x;\n\t\t\tlet positionY = this._getPosition(local).y;\n\n\t\t\tthis.setPrivate(\"downPositionX\", positionX);\n\t\t\tthis.setPrivate(\"downPositionY\", positionY);\n\t\t}\n\t}\n\n\tprotected _handleCursorUp(event: ISpritePointerEvent) {\n\t\t// TODO: handle multitouch\n\t\tif (this._downPoint) {\n\t\t\tconst behavior = this.get(\"behavior\", \"none\");\n\t\t\tif (behavior != \"none\") {\n\t\t\t\tif (behavior.charAt(0) === \"z\") {\n\t\t\t\t\tthis.selection.hide();\n\t\t\t\t}\n\n\t\t\t\tconst rootPoint = event.point;\n\t\t\t\tlet local = this._display.toLocal(rootPoint);\n\n\t\t\t\tconst downPoint = this._downPoint;\n\t\t\t\tconst moveThreshold = this.get(\"moveThreshold\", 1);\n\t\t\t\tif (local && downPoint) {\n\t\t\t\t\tlet dispatch = false;\n\t\t\t\t\tif (behavior === \"zoomX\" || behavior === \"zoomXY\" || behavior === \"selectX\" || behavior === \"selectXY\") {\n\t\t\t\t\t\tif (Math.abs(local.x - downPoint.x) > moveThreshold) {\n\t\t\t\t\t\t\tdispatch = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (behavior === \"zoomY\" || behavior === \"zoomXY\" || behavior === \"selectY\" || behavior === \"selectXY\") {\n\t\t\t\t\t\tif (Math.abs(local.y - downPoint.y) > moveThreshold) {\n\t\t\t\t\t\t\tdispatch = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dispatch) {\n\t\t\t\t\t\tconst type = \"selectended\";\n\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._downPoint = undefined;\n\t}\n\n\tprotected _handleMove(event: ISpritePointerEvent) {\n\t\tif (this.getPrivate(\"visible\")) {\n\t\t\tconst chart = this.chart;\n\t\t\tif (chart && $object.keys(chart.plotContainer._downPoints).length > 1) {\n\t\t\t\tthis.set(\"forceHidden\", true)\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.set(\"forceHidden\", false)\n\t\t\t}\n\n\t\t\t// TODO: handle multitouch\n\t\t\tconst rootPoint = event.point;\n\t\t\tconst lastPoint = this._lastPoint;\n\n\t\t\tif (Math.round(lastPoint.x) === Math.round(rootPoint.x) && Math.round(lastPoint.y) === Math.round(rootPoint.y)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._lastPoint = rootPoint;\n\t\t\tthis.setPrivate(\"lastPoint\", rootPoint);\n\n\t\t\tthis.handleMove({ x: rootPoint.x, y: rootPoint.y });\n\t\t}\n\t}\n\n\tprotected _getPosition(point: IPoint): IPoint {\n\t\treturn { x: point.x / this.width(), y: point.y / this.height() };\n\t}\n\n\t/**\n\t * Moves the cursor to X/Y coordinates within chart container (`point`).\n\t *\n\t * If `skipEvent` parameter is set to `true`, the move will not invoke\n\t * the `\"cursormoved\"` event.\n\t *\n\t * @param point X/Y to move cursor to\n\t * @param skipEvent Do not fire \"cursormoved\" event\n\t */\n\tpublic handleMove(point?: IPoint, skipEvent?: boolean) {\n\t\tif (!point) {\n\t\t\tpoint = this._movePoint;\n\t\t}\n\n\t\tconst alwaysShow = this.get(\"alwaysShow\");\n\n\t\tif (!point) {\n\t\t\tthis.hide(0);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._movePoint = point;\n\t\tlet local = this._display.toLocal(point);\n\t\tlet chart = this.chart;\n\n\t\tif (chart && (this._inPlot(local) || this._downPoint)) {\n\t\t\tchart._movePoint = point;\n\n\t\t\tif (this.isHidden()) {\n\t\t\t\tthis.show();\n\n\t\t\t\tconst behavior = this.get(\"behavior\", \"\");\n\t\t\t\tif (behavior.charAt(0) == \"z\") {\n\t\t\t\t\tthis.selection.set(\"draw\", () => { });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet x = local.x;\n\t\t\tlet y = local.y;\n\n\t\t\tlet xyPos = this._getPosition(local);\n\n\t\t\tthis.setPrivate(\"point\", local);\n\n\t\t\tlet snapToSeries = this.get(\"snapToSeries\");\n\n\t\t\tif (this._downPoint) {\n\t\t\t\tsnapToSeries = undefined;\n\t\t\t}\n\n\t\t\tlet userPositionX = this.get(\"positionX\");\n\t\t\tlet positionX = xyPos.x;\n\n\t\t\tif ($type.isNumber(userPositionX)) {\n\t\t\t\tpositionX = userPositionX;\n\t\t\t}\n\n\t\t\tlet userPositionY = this.get(\"positionY\");\n\t\t\tlet positionY = xyPos.y;\n\n\t\t\tif ($type.isNumber(userPositionY)) {\n\t\t\t\tpositionY = userPositionY;\n\t\t\t}\n\n\t\t\tthis.setPrivate(\"positionX\", positionX);\n\t\t\tthis.setPrivate(\"positionY\", positionY);\n\n\t\t\tconst xy = this._getPoint(positionX, positionY);\n\t\t\tx = xy.x;\n\t\t\ty = xy.y;\n\n\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\taxis._handleCursorPosition(positionX, snapToSeries);\n\t\t\t\tif (alwaysShow) {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t}\n\t\t\t})\n\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\taxis._handleCursorPosition(positionY, snapToSeries);\n\t\t\t\tif (alwaysShow) {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (!skipEvent) {\n\t\t\t\tchart._handleCursorPosition();\n\n\t\t\t\tconst type = \"cursormoved\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._updateLines(x, y);\n\n\t\t\tchart.arrangeTooltips();\n\t\t}\n\t\telse if (!this._downPoint) {\n\t\t\tif (!alwaysShow) {\n\t\t\t\tthis.hide(0);\n\n\t\t\t\tconst type = \"cursorhidden\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this._downPoint && this.get(\"behavior\") != \"none\") {\n\t\t\tthis._updateSelection(local)\n\t\t}\n\t}\n\n\tprotected _getPoint(positionX: number, positionY: number): IPoint {\n\t\treturn { x: this.width() * positionX, y: this.height() * positionY };\n\t}\n\n\n\tprotected _updateLines(x: number, y: number) {\n\t\tif (!this._tooltipX) {\n\t\t\tthis.lineX.set(\"x\", x);\n\t\t}\n\t\tif (!this._tooltipY) {\n\t\t\tthis.lineY.set(\"y\", y);\n\t\t}\n\n\t\tthis._drawLines();\n\t}\n\n\tprotected _updateSelection(point: IPoint) {\n\t\tconst selection = this.selection;\n\t\tconst behavior = this.get(\"behavior\");\n\t\tconst w = this.width();\n\t\tconst h = this.height();\n\n\t\tif (point.x < 0) {\n\t\t\tpoint.x = 0;\n\t\t}\n\n\t\tif (point.x > w) {\n\t\t\tpoint.x = w;\n\t\t}\n\n\t\tif (point.y < 0) {\n\t\t\tpoint.y = 0;\n\t\t}\n\n\t\tif (point.y > h) {\n\t\t\tpoint.y = h;\n\t\t}\n\n\t\tselection.set(\"draw\", (display) => {\n\t\t\tconst downPoint = this._downPoint;\n\t\t\tif (downPoint) {\n\t\t\t\tif (behavior === \"zoomXY\" || behavior === \"selectXY\") {\n\t\t\t\t\tdisplay.moveTo(downPoint.x, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, point.y);\n\t\t\t\t\tdisplay.lineTo(point.x, point.y);\n\t\t\t\t\tdisplay.lineTo(point.x, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, downPoint.y);\n\t\t\t\t}\n\t\t\t\telse if (behavior === \"zoomX\" || behavior === \"selectX\") {\n\t\t\t\t\tdisplay.moveTo(downPoint.x, 0);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, h);\n\t\t\t\t\tdisplay.lineTo(point.x, h);\n\t\t\t\t\tdisplay.lineTo(point.x, 0);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, 0);\n\t\t\t\t}\n\t\t\t\telse if (behavior === \"zoomY\" || behavior === \"selectY\") {\n\t\t\t\t\tdisplay.moveTo(0, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(w, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(w, point.y);\n\t\t\t\t\tdisplay.lineTo(0, point.y);\n\t\t\t\t\tdisplay.lineTo(0, downPoint.y);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _onHide() {\n\t\tif (this.isHidden()) {\n\t\t\tlet chart = this.chart;\n\t\t\tif (chart) {\n\n\t\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorHide();\n\t\t\t\t})\n\t\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorHide();\n\t\t\t\t})\n\t\t\t\tchart.series.each((series) => {\n\t\t\t\t\tseries.handleCursorHide();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tsuper._onHide();\n\t}\n\n\tprotected _onShow() {\n\t\tif (!this.isHidden()) {\n\t\t\tlet chart = this.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t})\n\t\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tsuper._onShow();\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\t\tthis.selection.dispose();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"XYCursor.js","sourceRoot":"","sources":["../../../../../src/.internal/charts/xy/XYCursor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IPoint } from \"../../core/util/IPoint\";\nimport type { XYChart } from \"./XYChart\"\nimport type { XYSeries } from \"./series/XYSeries\";\nimport type { ISpritePointerEvent } from \"../../core/render/Sprite\";\nimport type { Axis } from \"./axes/Axis\";\nimport type { AxisRenderer } from \"./axes/AxisRenderer\";\nimport type { Tooltip } from \"../../core/render/Tooltip\";\n\nimport { Container, IContainerSettings, IContainerPrivate, IContainerEvents } from \"../../core/render/Container\";\nimport { p100 } from \"../../core/util/Percent\";\nimport { Graphics } from \"../../core/render/Graphics\";\nimport { Grid } from \"./axes/Grid\";\n//import { Animations } from \"../core/util/Animation\";\n\nimport * as $type from \"../../core/util/Type\";\nimport * as $utils from \"../../core/util/Utils\";\nimport * as $math from \"../../core/util/Math\";\nimport * as $array from \"../../core/util/Array\";\nimport * as $object from \"../../core/util/Object\";\nimport type { IPointerEvent } from \"../../core/render/backend/Renderer\";\n\nexport interface IXYCursorSettings extends IContainerSettings {\n\n\t/**\n\t * Cursor's X axis.\n\t *\n\t * If set, cursor will snap to that axis' cells.\n\t */\n\txAxis?: Axis<AxisRenderer>;\n\n\t/**\n\t * Cursor's Y axis.\n\t *\n\t * If set, cursor will snap to that axis' cells.\n\t */\n\tyAxis?: Axis<AxisRenderer>;\n\n\t/**\n\t * What should cursor do when dragged across plot area.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/#Behavior} for more info\n\t * @default \"none\"\n\t */\n\tbehavior?: \"zoomX\" | \"zoomY\" | \"zoomXY\" | \"selectX\" | \"selectY\" | \"selectXY\" | \"none\";\n\n\t/**\n\t * Cursor's horizontal position relative to plot area.\n\t *\n\t * If this setting is set, cursor will not react to mouse/touch and will just\n\t * sit at specified position until `positionX` is reset to `undefined`.\n\t *\n\t * `0` - left, `1` - right.\n\t */\n\tpositionX?: number;\n\n\t/**\n\t * Cursor's vertical position relative to plot area.\n\t *\n\t * If this setting is set, cursor will not react to mouse/touch and will just\n\t * sit at specified position until `positionY` is reset to `undefined`.\n\t *\n\t * `0` - left, `1` - right.\n\t */\n\tpositionY?: number;\n\n\t/**\n\t * If set to `true`, cursor will not be hidden when mouse cursor moves out\n\t * of the plot area.\n\t *\n\t * @default false\n\t */\n\talwaysShow?: boolean;\n\n\t/**\n\t * A list of series to snap cursor to.\n\t *\n\t * If set, the cursor will always snap to the closest data item of listed\n\t * series.\n\t */\n\tsnapToSeries?: Array<XYSeries>;\n\n\t/**\n\t * Defines in which direction to look when searching for the nearest data\n\t * item to snap to.\n\t *\n\t * Possible values: `\"xy\"` (default), `\"x\"`, and `\"y\"`.\n\t *\n\t * @since 5.0.6\n\t * @default \"xy\"\n\t */\n\tsnapToSeriesBy?: \"xy\" | \"x\" | \"y\" | \"x!\" | \"y!\";\n\n\t/**\n\t * An array of other [[XYCursor]] objects to sync this cursor with.\n\t *\n\t * If set will automatically move synced cursors to the same position within\n\t * their respective axes as the this cursor assumin same XY coordinates of\n\t * the pointer.\n\t *\n\t * NOTE: Syncing is performed using actual X/Y coordinates of the point of\n\t * mouse cursor's position or touch. It means that they will not sync by axis\n\t * positions, but rather by screen coordinates. For example vertical lines\n\t * will not sync across horizontally laid out charts, and vice versa.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/#syncing-cursors} for more info\n\t * @since 5.1.4\n\t */\n\tsyncWith?: Array<XYCursor>;\n\n\t/**\n\t * Minimum distance in pixels between down and up points.\n\t *\n\t * If a distance is less than the value of `moveThreshold`, the zoom or\n\t * selection won't happen.\n\t *\n\t * @since 5.2.20\n\t * @default 1\n\t */\n\tmoveThreshold?: number\n\n}\n\n\nexport interface IXYCursorPrivate extends IContainerPrivate {\n\n\t/**\n\t * Current X/Y coordinates of the cursor.\n\t */\n\tpoint?: IPoint;\n\n\t/**\n\t * Current horizontal position relative to the plot area (0-1).\n\t */\n\tpositionX?: number;\n\n\t/**\n\t * Current vertical position relative to the plot area (0-1).\n\t */\n\tpositionY?: number;\n\n\t/**\n\t * Horizontal cursor position on the moment when selection started.\n\t */\n\tdownPositionX?: number;\n\n\t/**\n\t * Vertical cursor position on the moment when selection started.\n\t */\n\tdownPositionY?: number;\n\n\t/**\n\t * Last global point to which cursor moved\n\t */\n\tlastPoint?: IPoint;\n}\n\nexport interface IXYCursorEvents extends IContainerEvents {\n\n\t/**\n\t * Kicks in when cursor selection ends.\n\t *\n\t * Only when `behavior` is set.\n\t */\n\tselectended: {\n\t\toriginalEvent: IPointerEvent,\n\t\ttarget: XYCursor\n\t};\n\n\t/**\n\t * Kicks in when cursor selection starts.\n\t *\n\t * Only when `behavior` is set.\n\t */\n\tselectstarted: {\n\t\toriginalEvent: IPointerEvent,\n\t\ttarget: XYCursor\n\t};\n\n\t/**\n\t * Kicks in when cursor's position over plot area changes.\n\t */\n\tcursormoved: {\n\t\tpoint: IPoint,\n\t\ttarget: XYCursor,\n\t\toriginalEvent?: IPointerEvent\n\t};\n\n\t/**\n\t * Kicks in when cursor's is hidden when user rolls-out of the plot area\n\t */\n\tcursorhidden: {\n\t\ttarget: XYCursor\n\t};\n\n\t/**\n\t * Invoked if pointer is pressed down on a plot area and released without\n\t * moving (only when behavior is `\"selectX\"`).\n\t *\n\t * @since 5.4.7\n\t */\n\tselectcancelled: {\n\t\toriginalEvent: IPointerEvent,\n\t\ttarget: XYCursor\n\t};\n\n}\n\n/**\n * Creates a chart cursor for an [[XYChart]].\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/} for more info\n * @important\n */\nexport class XYCursor extends Container {\n\tpublic static className: string = \"XYCursor\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([XYCursor.className]);\n\n\tdeclare public _settings: IXYCursorSettings;\n\tdeclare public _privateSettings: IXYCursorPrivate;\n\tdeclare public _events: IXYCursorEvents;\n\n\t/**\n\t * A [[Grid]] elment that used for horizontal line of the cursor crosshair.\n\t *\n\t * @default Grid.new()\n\t */\n\tpublic readonly lineX: Grid = this.children.push(Grid.new(this._root, {\n\t\tthemeTags: [\"x\"]\n\t}));\n\n\t/**\n\t * A [[Grid]] elment that used for horizontal line of the cursor crosshair.\n\t *\n\t * @default Grid.new()\n\t */\n\tpublic readonly lineY: Grid = this.children.push(Grid.new(this._root, {\n\t\tthemeTags: [\"y\"]\n\t}));\n\n\t/**\n\t * An element that represents current selection.\n\t *\n\t * @default Graphics.new()\n\t */\n\tpublic readonly selection: Graphics = this.children.push(Graphics.new(this._root, {\n\t\tthemeTags: [\"selection\", \"cursor\"], layer: 30\n\t}));\n\n\tprotected _movePoint: IPoint | undefined;\n\tprotected _lastPoint: IPoint = { x: 0, y: 0 };\n\n\tprotected _tooltipX: boolean = false;\n\tprotected _tooltipY: boolean = false;\n\n\t/**\n\t * A chart cursor is attached to.\n\t */\n\tpublic chart: XYChart | undefined;\n\n\tprotected _toX?: number;\n\tprotected _toY?: number;\n\n\tprotected _afterNew() {\n\t\tthis._settings.themeTags = $utils.mergeTags(this._settings.themeTags, [\"xy\", \"cursor\"]);\n\t\tsuper._afterNew();\n\t\tthis.setAll({ \"width\": p100, height: p100, isMeasured: true, position: \"absolute\" });\n\t\tthis.states.create(\"hidden\", { visible: true, opacity: 0 });\n\t\tthis._drawLines();\n\t\tthis.setPrivateRaw(\"visible\", false);\n\n\t\tthis._disposers.push(this.setTimeout(() => {\n\t\t\tthis.setPrivate(\"visible\", true)\n\t\t}, 500));\n\n\t\tthis._disposers.push(this.lineX.events.on(\"positionchanged\", () => {\n\t\t\tthis._handleXLine();\n\t\t}));\n\n\t\tthis._disposers.push(this.lineY.events.on(\"positionchanged\", () => {\n\t\t\tthis._handleYLine();\n\t\t}));\n\n\t\tthis._disposers.push(this.lineX.events.on(\"focus\", (ev) => this._handleLineFocus(ev.target)));\n\t\tthis._disposers.push(this.lineX.events.on(\"blur\", (ev) => this._handleLineBlur(ev.target)));\n\n\t\tthis._disposers.push(this.lineY.events.on(\"focus\", (ev) => this._handleLineFocus(ev.target)));\n\t\tthis._disposers.push(this.lineY.events.on(\"blur\", (ev) => this._handleLineBlur(ev.target)));\n\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tthis._handleLineMove(ev.keyCode);\n\t\t\t}));\n\t\t}\n\t}\n\n\tprotected _setUpTouch(): void {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tchart.plotContainer._display.cancelTouch = this.get(\"behavior\") != \"none\" ? true : false;\n\t\t}\n\t}\n\n\tprotected _handleXLine() {\n\t\tlet x = this.lineX.x();\n\t\tlet visible = true;\n\t\tif (x < 0 || x > this.width()) {\n\t\t\tvisible = false;\n\t\t}\n\t\tthis.lineX.setPrivate(\"visible\", visible);\n\t}\n\n\tprotected _handleYLine() {\n\t\tlet y = this.lineY.y();\n\t\tlet visible = true;\n\t\tif (y < 0 || y > this.height()) {\n\t\t\tvisible = false;\n\t\t}\n\t\tthis.lineY.setPrivate(\"visible\", visible);\n\t}\n\n\tprotected _handleLineMove(keyCode: number) {\n\t\tlet dir: any = \"\";\n\t\tlet position = 0;\n\t\tlet increment = 0.1;\n\t\tconst chart = this.chart;\n\n\t\tif (this._root.focused(this.lineX)) {\n\t\t\tif (chart && chart.xAxes.length) {\n\t\t\t\tincrement = chart.xAxes.getIndex(0)!.getCellWidthPosition();\n\t\t\t}\n\t\t\tposition = this.getPrivate(\"positionX\", 0);\n\t\t\tdir = \"positionX\";\n\t\t\tif (keyCode == 37) {\n\t\t\t\tposition -= increment;\n\t\t\t}\n\t\t\telse if (keyCode == 39) {\n\t\t\t\tposition += increment;\n\t\t\t}\n\t\t}\n\t\telse if (this._root.focused(this.lineY)) {\n\t\t\tif (chart && chart.yAxes.length) {\n\t\t\t\tincrement = chart.yAxes.getIndex(0)!.getCellWidthPosition();\n\t\t\t}\n\t\t\tposition = this.getPrivate(\"positionY\", 0);\n\t\t\tdir = \"positionY\";\n\t\t\tif (keyCode == 38) {\n\t\t\t\tposition -= increment;\n\t\t\t}\n\t\t\telse if (keyCode == 40) {\n\t\t\t\tposition += increment;\n\t\t\t}\n\t\t}\n\n\t\tif (position < 0) {\n\t\t\tposition = 0;\n\t\t}\n\t\telse if (position > 1) {\n\t\t\tposition = 1;\n\t\t}\n\n\t\tif (dir != \"\") {\n\t\t\tthis.set(dir, position);\n\t\t}\n\t}\n\n\tprotected _handleLineFocus(_line: Grid) {\n\t\tthis.setAll({\n\t\t\tpositionX: this.getPrivate(\"positionX\"),\n\t\t\tpositionY: this.getPrivate(\"positionY\"),\n\t\t\talwaysShow: true\n\t\t});\n\t}\n\n\tprotected _handleLineBlur(_line: Grid) {\n\t\tthis.setAll({\n\t\t\tpositionX: undefined,\n\t\t\tpositionY: undefined,\n\t\t\talwaysShow: false\n\t\t});\n\t}\n\n\tpublic _prepareChildren() {\n\t\tsuper._prepareChildren();\n\n\t\tif (this.isDirty(\"xAxis\")) {\n\t\t\tthis._tooltipX = false;\n\t\t\tconst xAxis = this.get(\"xAxis\");\n\n\t\t\tif (xAxis) {\n\t\t\t\tconst tooltip = xAxis.get(\"tooltip\");\n\t\t\t\tif (tooltip) {\n\t\t\t\t\tthis._tooltipX = true;\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\ttooltip.on(\"pointTo\", () => {\n\t\t\t\t\t\t\tthis._updateXLine(tooltip);\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isDirty(\"yAxis\")) {\n\t\t\tthis._tooltipY = false;\n\t\t\tconst yAxis = this.get(\"yAxis\");\n\n\t\t\tif (yAxis) {\n\t\t\t\tconst tooltip = yAxis.get(\"tooltip\");\n\t\t\t\tif (tooltip) {\n\t\t\t\t\tthis._tooltipY = true;\n\t\t\t\t\tthis._disposers.push(\n\t\t\t\t\t\ttooltip.on(\"pointTo\", () => {\n\t\t\t\t\t\t\tthis._updateYLine(tooltip);\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _handleSyncWith() {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\tconst syncWith = this.get(\"syncWith\");\n\t\t\tconst otherCharts: Array<XYChart> = [];\n\t\t\tif (syncWith) {\n\t\t\t\t$array.each(syncWith, (cursor) => {\n\t\t\t\t\tconst chart = cursor.chart;\n\t\t\t\t\tif (chart) {\n\t\t\t\t\t\totherCharts.push(chart)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\tchart._otherCharts = otherCharts;\n\t\t}\n\t}\n\n\tpublic _updateChildren() {\n\t\tsuper._updateChildren();\n\t\tthis._handleSyncWith();\n\n\t\tif (this.isDirty(\"positionX\") || this.isDirty(\"positionY\")) {\n\t\t\tconst positionX = this.get(\"positionX\");\n\t\t\tconst positionY = this.get(\"positionY\");\n\n\t\t\tif (positionX == null && positionY == null) {\n\t\t\t\tthis.hide(0);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._movePoint = this.toGlobal(this._getPoint(this.get(\"positionX\", 0), this.get(\"positionY\", 0)));\n\t\t\t\tthis.handleMove();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _updateXLine(tooltip: Tooltip) {\n\t\tlet x = $math.round(this._display.toLocal(tooltip.get(\"pointTo\", { x: 0, y: 0 })).x, 2);\n\t\tif (this._toX != x) {\n\t\t\tthis.lineX.animate({ key: \"x\", to: x, duration: tooltip.get(\"animationDuration\", 0), easing: tooltip.get(\"animationEasing\") });\n\t\t\tthis._toX = x;\n\t\t}\n\t}\n\n\tprotected _updateYLine(tooltip: Tooltip) {\n\t\tlet y = $math.round(this._display.toLocal(tooltip.get(\"pointTo\", { x: 0, y: 0 })).y, 2);\n\t\tif (this._toY != y) {\n\t\t\tthis.lineY.animate({ key: \"y\", to: y, duration: tooltip.get(\"animationDuration\", 0), easing: tooltip.get(\"animationEasing\") });\n\t\t\tthis._toY = y;\n\t\t}\n\t}\n\n\tprotected _drawLines() {\n\t\tthis.lineX.set(\"draw\", (display) => {\n\t\t\tdisplay.moveTo(0, 0);\n\t\t\tdisplay.lineTo(0, this.height());\n\t\t})\n\t\tthis.lineY.set(\"draw\", (display) => {\n\t\t\tdisplay.moveTo(0, 0);\n\t\t\tdisplay.lineTo(this.width(), 0);\n\t\t})\n\t}\n\n\tpublic updateCursor() {\n\t\tif (this.get(\"alwaysShow\")) {\n\t\t\tthis._movePoint = this.toGlobal(this._getPoint(this.get(\"positionX\", 0), this.get(\"positionY\", 0)));\n\t\t}\n\t\tthis.handleMove();\n\t}\n\n\tpublic _setChart(chart: XYChart): void {\n\t\tthis.chart = chart;\n\n\t\tthis._handleSyncWith();\n\n\t\tconst plotContainer = chart.plotContainer;\n\n\t\tthis.events.on(\"boundschanged\", () => {\n\t\t\tthis._disposers.push(this.setTimeout(() => {\n\t\t\t\tthis.updateCursor();\n\t\t\t}, 50))\n\t\t})\n\n\t\t//this._display.interactive = true;\n\t\tif ($utils.supports(\"touchevents\")) {\n\t\t\tthis._disposers.push(plotContainer.events.on(\"click\", (event) => {\n\t\t\t\tif ($utils.isTouchEvent(event.originalEvent)) {\n\t\t\t\t\tthis._handleMove(event);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tthis._setUpTouch();\n\t\t}\n\n\t\tthis._disposers.push(plotContainer.events.on(\"pointerdown\", (event) => {\n\t\t\tthis._handleCursorDown(event);\n\t\t}));\n\n\t\tthis._disposers.push(plotContainer.events.on(\"globalpointerup\", (event) => {\n\t\t\tthis._handleCursorUp(event);\n\t\t\tif (!event.native && !this.isHidden()) {\n\t\t\t\tthis._handleMove(event);\n\t\t\t}\n\t\t}));\n\n\t\tthis._disposers.push(plotContainer.events.on(\"globalpointermove\", (event) => {\n\t\t\tif (!this.get(\"syncWith\")) {\n\t\t\t\tif ($object.keys(plotContainer._downPoints).length == 0 && !event.native && this.isHidden()) {\n\t\t\t\t\t// Ignore mouse movement if it originates on outside element and\n\t\t\t\t\t// we're not dragging.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._handleMove(event);\n\t\t}));\n\n\t\tconst parent = this.parent;\n\t\tif (parent) {\n\t\t\tparent.children.moveValue(this.selection);\n\t\t}\n\t}\n\n\tprotected _inPlot(point: IPoint): boolean {\n\t\tconst chart = this.chart;\n\t\tif (chart) {\n\t\t\treturn chart.inPlot(point);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprotected _handleCursorDown(event: ISpritePointerEvent) {\n\t\tif ((event.originalEvent as any).button == 2) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rootPoint = event.point;\n\t\tlet local = this._display.toLocal(rootPoint);\n\t\tconst chart = this.chart;\n\n\t\tthis.selection.set(\"draw\", () => { });\n\n\t\tif (chart && this._inPlot(local)) {\n\t\t\tthis._downPoint = local;\n\n\t\t\tif (this.get(\"behavior\") != \"none\") {\n\t\t\t\tthis.selection.show();\n\n\t\t\t\tconst type = \"selectstarted\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet positionX = this._getPosition(local).x;\n\t\t\tlet positionY = this._getPosition(local).y;\n\n\t\t\tthis.setPrivate(\"downPositionX\", positionX);\n\t\t\tthis.setPrivate(\"downPositionY\", positionY);\n\t\t}\n\t}\n\n\tprotected _handleCursorUp(event: ISpritePointerEvent) {\n\t\t// TODO: handle multitouch\n\t\tif (this._downPoint) {\n\t\t\tconst behavior = this.get(\"behavior\", \"none\");\n\t\t\tif (behavior != \"none\") {\n\t\t\t\tif (behavior.charAt(0) === \"z\") {\n\t\t\t\t\tthis.selection.hide();\n\t\t\t\t}\n\n\t\t\t\tconst rootPoint = event.point;\n\t\t\t\tlet local = this._display.toLocal(rootPoint);\n\n\t\t\t\tconst downPoint = this._downPoint;\n\t\t\t\tconst moveThreshold = this.get(\"moveThreshold\", 1);\n\t\t\t\tif (local && downPoint) {\n\t\t\t\t\tlet dispatch = false;\n\t\t\t\t\tif (behavior === \"zoomX\" || behavior === \"zoomXY\" || behavior === \"selectX\" || behavior === \"selectXY\") {\n\t\t\t\t\t\tif (Math.abs(local.x - downPoint.x) > moveThreshold) {\n\t\t\t\t\t\t\tdispatch = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (behavior === \"zoomY\" || behavior === \"zoomXY\" || behavior === \"selectY\" || behavior === \"selectXY\") {\n\t\t\t\t\t\tif (Math.abs(local.y - downPoint.y) > moveThreshold) {\n\t\t\t\t\t\t\tdispatch = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dispatch) {\n\t\t\t\t\t\tconst type = \"selectended\";\n\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst type = \"selectcancelled\";\n\t\t\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this, originalEvent: event.originalEvent });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._downPoint = undefined;\n\t}\n\n\tprotected _handleMove(event: ISpritePointerEvent) {\n\t\tif (this.getPrivate(\"visible\")) {\n\t\t\tconst chart = this.chart;\n\t\t\tif (chart && $object.keys(chart.plotContainer._downPoints).length > 1) {\n\t\t\t\tthis.set(\"forceHidden\", true)\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.set(\"forceHidden\", false)\n\t\t\t}\n\n\t\t\t// TODO: handle multitouch\n\t\t\tconst rootPoint = event.point;\n\t\t\tconst lastPoint = this._lastPoint;\n\n\t\t\tif (Math.round(lastPoint.x) === Math.round(rootPoint.x) && Math.round(lastPoint.y) === Math.round(rootPoint.y)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._lastPoint = rootPoint;\n\t\t\tthis.setPrivate(\"lastPoint\", rootPoint);\n\n\t\t\tthis.handleMove({ x: rootPoint.x, y: rootPoint.y }, false, event.originalEvent);\n\t\t}\n\t}\n\n\tprotected _getPosition(point: IPoint): IPoint {\n\t\treturn { x: point.x / this.width(), y: point.y / this.height() };\n\t}\n\n\t/**\n\t * Moves the cursor to X/Y coordinates within chart container (`point`).\n\t *\n\t * If `skipEvent` parameter is set to `true`, the move will not invoke\n\t * the `\"cursormoved\"` event.\n\t *\n\t * @param point X/Y to move cursor to\n\t * @param skipEvent Do not fire \"cursormoved\" event\n\t */\n\tpublic handleMove(point?: IPoint, skipEvent?: boolean, originalEvent?: IPointerEvent) {\n\t\tif (!point) {\n\t\t\tpoint = this._movePoint;\n\t\t}\n\n\t\tconst alwaysShow = this.get(\"alwaysShow\");\n\n\t\tif (!point) {\n\t\t\tthis.hide(0);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._movePoint = point;\n\t\tlet local = this._display.toLocal(point);\n\t\tlet chart = this.chart;\n\n\t\tif (chart && (this._inPlot(local) || this._downPoint)) {\n\t\t\tchart._movePoint = point;\n\n\t\t\tif (this.isHidden()) {\n\t\t\t\tthis.show();\n\n\t\t\t\tconst behavior = this.get(\"behavior\", \"\");\n\t\t\t\tif (behavior.charAt(0) == \"z\") {\n\t\t\t\t\tthis.selection.set(\"draw\", () => { });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet x = local.x;\n\t\t\tlet y = local.y;\n\n\t\t\tlet xyPos = this._getPosition(local);\n\n\t\t\tthis.setPrivate(\"point\", local);\n\n\t\t\tlet snapToSeries = this.get(\"snapToSeries\");\n\n\t\t\tif (this._downPoint) {\n\t\t\t\tsnapToSeries = undefined;\n\t\t\t}\n\n\t\t\tlet userPositionX = this.get(\"positionX\");\n\t\t\tlet positionX = xyPos.x;\n\n\t\t\tif ($type.isNumber(userPositionX)) {\n\t\t\t\tpositionX = userPositionX;\n\t\t\t}\n\n\t\t\tlet userPositionY = this.get(\"positionY\");\n\t\t\tlet positionY = xyPos.y;\n\n\t\t\tif ($type.isNumber(userPositionY)) {\n\t\t\t\tpositionY = userPositionY;\n\t\t\t}\n\n\t\t\tthis.setPrivate(\"positionX\", positionX);\n\t\t\tthis.setPrivate(\"positionY\", positionY);\n\n\t\t\tconst xy = this._getPoint(positionX, positionY);\n\t\t\tx = xy.x;\n\t\t\ty = xy.y;\n\n\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\taxis._handleCursorPosition(positionX, snapToSeries);\n\t\t\t\tif (alwaysShow) {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t}\n\t\t\t})\n\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\taxis._handleCursorPosition(positionY, snapToSeries);\n\t\t\t\tif (alwaysShow) {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif (!skipEvent) {\n\t\t\t\tchart._handleCursorPosition();\n\n\t\t\t\tconst type = \"cursormoved\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this, point: point, originalEvent: originalEvent });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._updateLines(x, y);\n\n\t\t\tchart.arrangeTooltips();\n\t\t}\n\t\telse if (!this._downPoint) {\n\t\t\tif (!alwaysShow) {\n\t\t\t\tthis.hide(0);\n\n\t\t\t\tconst type = \"cursorhidden\";\n\t\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this._downPoint && this.get(\"behavior\") != \"none\") {\n\t\t\tthis._updateSelection(local)\n\t\t}\n\t}\n\n\tprotected _getPoint(positionX: number, positionY: number): IPoint {\n\t\treturn { x: this.width() * positionX, y: this.height() * positionY };\n\t}\n\n\n\tprotected _updateLines(x: number, y: number) {\n\t\tif (!this._tooltipX) {\n\t\t\tthis.lineX.set(\"x\", x);\n\t\t}\n\t\tif (!this._tooltipY) {\n\t\t\tthis.lineY.set(\"y\", y);\n\t\t}\n\n\t\tthis._drawLines();\n\t}\n\n\tprotected _updateSelection(point: IPoint) {\n\t\tconst selection = this.selection;\n\t\tconst behavior = this.get(\"behavior\");\n\t\tconst w = this.width();\n\t\tconst h = this.height();\n\n\t\tif (point.x < 0) {\n\t\t\tpoint.x = 0;\n\t\t}\n\n\t\tif (point.x > w) {\n\t\t\tpoint.x = w;\n\t\t}\n\n\t\tif (point.y < 0) {\n\t\t\tpoint.y = 0;\n\t\t}\n\n\t\tif (point.y > h) {\n\t\t\tpoint.y = h;\n\t\t}\n\n\t\tselection.set(\"draw\", (display) => {\n\t\t\tconst downPoint = this._downPoint;\n\t\t\tif (downPoint) {\n\t\t\t\tif (behavior === \"zoomXY\" || behavior === \"selectXY\") {\n\t\t\t\t\tdisplay.moveTo(downPoint.x, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, point.y);\n\t\t\t\t\tdisplay.lineTo(point.x, point.y);\n\t\t\t\t\tdisplay.lineTo(point.x, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, downPoint.y);\n\t\t\t\t}\n\t\t\t\telse if (behavior === \"zoomX\" || behavior === \"selectX\") {\n\t\t\t\t\tdisplay.moveTo(downPoint.x, 0);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, h);\n\t\t\t\t\tdisplay.lineTo(point.x, h);\n\t\t\t\t\tdisplay.lineTo(point.x, 0);\n\t\t\t\t\tdisplay.lineTo(downPoint.x, 0);\n\t\t\t\t}\n\t\t\t\telse if (behavior === \"zoomY\" || behavior === \"selectY\") {\n\t\t\t\t\tdisplay.moveTo(0, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(w, downPoint.y);\n\t\t\t\t\tdisplay.lineTo(w, point.y);\n\t\t\t\t\tdisplay.lineTo(0, point.y);\n\t\t\t\t\tdisplay.lineTo(0, downPoint.y);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tprotected _onHide() {\n\t\tif (this.isHidden()) {\n\t\t\tlet chart = this.chart;\n\t\t\tif (chart) {\n\n\t\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorHide();\n\t\t\t\t})\n\t\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorHide();\n\t\t\t\t})\n\t\t\t\tchart.series.each((series) => {\n\t\t\t\t\tseries.handleCursorHide();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tsuper._onHide();\n\t}\n\n\tprotected _onShow() {\n\t\tif (!this.isHidden()) {\n\t\t\tlet chart = this.chart;\n\t\t\tif (chart) {\n\t\t\t\tchart.xAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t})\n\t\t\t\tchart.yAxes.each((axis) => {\n\t\t\t\t\taxis.handleCursorShow();\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tsuper._onShow();\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\t\tthis.selection.dispose();\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,OAAO;WAAC;QAEnC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.4.
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/.internal/core/Registry.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACC;;WAEG;QACH;;;;mBAA2B,OAAO;WAAC;QAEnC;;;WAGG;QACH;;;;mBAAqB,EAAE;WAAC;QAExB;;WAEG;QACH;;;;mBAAyC,EAAE;WAAC;QAE5C;;WAEG;QACH;;;;mBAAsB,EAAE;WAAC;IAE1B,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,IAAI,IAAI,CAAC;IACT,OAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;KACf;AACF,CAAC","sourcesContent":["\r\n/**\r\n * @ignore\r\n */\r\nexport class Registry {\r\n\t/**\r\n\t * Currently running version of amCharts.\r\n\t */\r\n\treadonly version: string = \"5.4.7\";\r\n\r\n\t/**\r\n\t * List of applied licenses.\r\n\t * @ignore\r\n\t */\r\n\tlicenses: String[] = [];\r\n\r\n\t/**\r\n\t * Entities that have their `id` setting set.\r\n\t */\r\n\tentitiesById: { [index: string]: any } = {};\r\n\r\n\t/**\r\n\t * All created [[Root]] elements.\r\n\t */\r\n\trootElements: any[] = [];\r\n\r\n}\r\n\r\n/**\r\n\t* @ignore\r\n */\r\nexport const registry = new Registry();\r\n\r\n/**\r\n * Adds a license, e.g.:\r\n *\r\n * ```TypeScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n * ```JavaScript\r\n * am5.addLicense(\"xxxxxxxx\");\r\n * ```\r\n *\r\n * Multiple licenses can be added to cover for multiple products.\r\n *\r\n * @param license License key\r\n */\r\nexport function addLicense(license: string): void {\r\n\tregistry.licenses.push(license);\r\n}\r\n\r\n\r\n/**\r\n * Disposes all [[Root]] elements.\r\n */\r\nexport function disposeAllRootElements(): void {\r\n\tlet root;\r\n\twhile(root = registry.rootElements.pop()) {\r\n\t\troot.dispose();\r\n\t}\r\n}\r\n"]}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,17 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
|
|
5
5
|
Please note, that this project, while following numbering syntax, it DOES NOT
|
|
6
6
|
adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
|
|
7
7
|
|
|
8
|
+
## [5.4.7] - 2023-09-18
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `panelResizer` property added to `StockPanel`. Holds an instance of an element used as a grip for resizing a panel.
|
|
12
|
+
- `originalEvent` added to all `XYCursor` events.
|
|
13
|
+
- `selectcancelled` event added to `XYCursor`.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- HTML axis label on a circular chart were causing unnecessary CPU usage in some setups.
|
|
17
|
+
|
|
18
|
+
|
|
8
19
|
## [5.4.6] - 2023-09-04
|
|
9
20
|
|
|
10
21
|
### Added
|