scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
153 lines (152 loc) • 7.99 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModifierMouseArgs = void 0;
var Guard_1 = require("../../Core/Guard");
var Point_1 = require("../../Core/Point");
var DpiHelper_1 = require("../Visuals/TextureManager/DpiHelper");
var ModifierArgsBase_1 = require("./ModifierArgsBase");
/**
* Mouse arguments passed to {@link ChartModifierBase} methods
*/
var ModifierMouseArgs = /** @class */ (function (_super) {
__extends(ModifierMouseArgs, _super);
/**
* Creates an instance of {@link ModifierMouseArgs}
* @param mousePoint the mouse point as an X,Y location
* @param options optional parameters to configure the args
*/
function ModifierMouseArgs(mousePoint, options) {
var _this = this;
var _a;
_this = _super.call(this) || this;
/**
* Identifies if the event comes from an active sub chart
* Useful for SubChartSurfaces with modifierGroups
* for SciChartSurface returns always True
*/
_this.isActiveSubChartEvent = true;
_this.mousePoint = mousePoint;
_this.button = options === null || options === void 0 ? void 0 : options.button;
_this.mouseWheelDelta = (_a = options === null || options === void 0 ? void 0 : options.mouseWheelDelta) !== null && _a !== void 0 ? _a : 0;
_this.pointerId = options === null || options === void 0 ? void 0 : options.pointerId;
_this.pointerType = options === null || options === void 0 ? void 0 : options.pointerType;
_this.target = options === null || options === void 0 ? void 0 : options.target;
_this.isMaster = options === null || options === void 0 ? void 0 : options.isMaster;
_this.modifierGroup = options === null || options === void 0 ? void 0 : options.modifierGroup;
_this.shiftKey = options === null || options === void 0 ? void 0 : options.shiftKey;
_this.altKey = options === null || options === void 0 ? void 0 : options.altKey;
_this.ctrlKey = options === null || options === void 0 ? void 0 : options.ctrlKey;
_this.nativeEvent = options === null || options === void 0 ? void 0 : options.nativeEvent;
return _this;
}
/**
* Creates a {@link ModifierMouseArgs} instance from Javascript {@link MouseEvent}
* @param mouseEvent the Javascript {@link MouseEvent}
*/
ModifierMouseArgs.fromMouseEvent = function (mouseEvent) {
Guard_1.Guard.notNull(mouseEvent, "mouseEvent");
var mousePoint = new Point_1.Point(mouseEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, mouseEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);
var options = {
target: mouseEvent.target,
isMaster: true,
shiftKey: mouseEvent.shiftKey,
ctrlKey: mouseEvent.ctrlKey,
altKey: mouseEvent.altKey,
nativeEvent: mouseEvent
};
return new ModifierMouseArgs(mousePoint, options);
};
/**
* Creates a {@link ModifierMouseArgs} instance from Javascript {@link WheelEvent}
* @param wheelEvent the Javascript {@link WheelEvent}
*/
ModifierMouseArgs.fromWheelEvent = function (wheelEvent) {
Guard_1.Guard.notNull(wheelEvent, "wheelEvent");
var mousePoint = new Point_1.Point(wheelEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, wheelEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);
var options = {
mouseWheelDelta: wheelEvent.deltaY,
target: wheelEvent.target,
isMaster: true,
shiftKey: wheelEvent.shiftKey,
ctrlKey: wheelEvent.ctrlKey,
altKey: wheelEvent.altKey,
nativeEvent: wheelEvent
};
return new ModifierMouseArgs(mousePoint, options);
};
/**
* Creates a {@link ModifierMouseArgs} instance from Javascript {@link PointerEvent}
* @param pointerEvent the Javascript {@link PointerEvent}
*/
ModifierMouseArgs.fromPointerEvent = function (pointerEvent) {
Guard_1.Guard.notNull(pointerEvent, "pointerEvent");
var mousePoint = new Point_1.Point(pointerEvent.offsetX * DpiHelper_1.DpiHelper.PIXEL_RATIO, pointerEvent.offsetY * DpiHelper_1.DpiHelper.PIXEL_RATIO);
var options = {
button: pointerEvent.button,
pointerId: pointerEvent.pointerId,
pointerType: pointerEvent.pointerType,
target: pointerEvent.target,
isMaster: true,
shiftKey: pointerEvent.shiftKey,
ctrlKey: pointerEvent.ctrlKey,
altKey: pointerEvent.altKey,
nativeEvent: pointerEvent
};
return new ModifierMouseArgs(mousePoint, options);
};
/**
* Copies or clones a {@link ModifierMouseArgs}
* @param args the {@link ModifierMouseArgs} instance
* @param modifierGroup the Modifier Group / string ID for sharing mouse events
* @param masterViewport the master viewport or parent chart issuing mouse events
* @param slaveViewport the slave viewport or child chart receiving mouse events
*/
ModifierMouseArgs.copy = function (args, modifierGroup, masterViewport, slaveViewport, masterData) {
var mousePoint = args.mousePoint;
if (masterViewport && slaveViewport) {
var sourceX = args.mousePoint.x - masterViewport.x;
var sourceY = args.mousePoint.y - masterViewport.y;
var scaleX = slaveViewport.width / masterViewport.width;
var scaleY = slaveViewport.height / masterViewport.height;
mousePoint = new Point_1.Point(slaveViewport.x + sourceX * scaleX, slaveViewport.y + sourceY * scaleY);
}
return __assign(__assign({}, args), { isMaster: false, masterData: masterData, handled: false, modifierGroup: modifierGroup, mousePoint: mousePoint });
};
ModifierMouseArgs.copyForSubChart = function (args, modifierGroup, masterViewport, slaveViewport, masterData) {
var mousePoint = args.mousePoint;
if (masterViewport && slaveViewport) {
var scaleX = slaveViewport.width / masterViewport.width;
var scaleY = slaveViewport.height / masterViewport.height;
mousePoint = new Point_1.Point((args.mousePoint.x - masterViewport.x) * scaleX + slaveViewport.x, (args.mousePoint.y - masterViewport.y) * scaleY + slaveViewport.y);
}
return __assign(__assign({}, args), { isMaster: false, masterData: masterData, handled: false, modifierGroup: modifierGroup, mousePoint: mousePoint });
};
return ModifierMouseArgs;
}(ModifierArgsBase_1.ModifierArgsBase));
exports.ModifierMouseArgs = ModifierMouseArgs;
;