逐步完成前后端服务器
This commit is contained in:
245
frontend/node_modules/echarts/lib/component/helper/RoamController.js
generated
vendored
Normal file
245
frontend/node_modules/echarts/lib/component/helper/RoamController.js
generated
vendored
Normal file
@ -0,0 +1,245 @@
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { __extends } from "tslib";
|
||||
import Eventful from 'zrender/lib/core/Eventful.js';
|
||||
import * as eventTool from 'zrender/lib/core/event.js';
|
||||
import * as interactionMutex from './interactionMutex.js';
|
||||
import { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';
|
||||
;
|
||||
var RoamController = /** @class */function (_super) {
|
||||
__extends(RoamController, _super);
|
||||
function RoamController(zr) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._zr = zr;
|
||||
// Avoid two roamController bind the same handler
|
||||
var mousedownHandler = bind(_this._mousedownHandler, _this);
|
||||
var mousemoveHandler = bind(_this._mousemoveHandler, _this);
|
||||
var mouseupHandler = bind(_this._mouseupHandler, _this);
|
||||
var mousewheelHandler = bind(_this._mousewheelHandler, _this);
|
||||
var pinchHandler = bind(_this._pinchHandler, _this);
|
||||
/**
|
||||
* Notice: only enable needed types. For example, if 'zoom'
|
||||
* is not needed, 'zoom' should not be enabled, otherwise
|
||||
* default mousewheel behaviour (scroll page) will be disabled.
|
||||
*/
|
||||
_this.enable = function (controlType, opt) {
|
||||
// Disable previous first
|
||||
this.disable();
|
||||
this._opt = defaults(clone(opt) || {}, {
|
||||
zoomOnMouseWheel: true,
|
||||
moveOnMouseMove: true,
|
||||
// By default, wheel do not trigger move.
|
||||
moveOnMouseWheel: false,
|
||||
preventDefaultMouseMove: true
|
||||
});
|
||||
if (controlType == null) {
|
||||
controlType = true;
|
||||
}
|
||||
if (controlType === true || controlType === 'move' || controlType === 'pan') {
|
||||
zr.on('mousedown', mousedownHandler);
|
||||
zr.on('mousemove', mousemoveHandler);
|
||||
zr.on('mouseup', mouseupHandler);
|
||||
}
|
||||
if (controlType === true || controlType === 'scale' || controlType === 'zoom') {
|
||||
zr.on('mousewheel', mousewheelHandler);
|
||||
zr.on('pinch', pinchHandler);
|
||||
}
|
||||
};
|
||||
_this.disable = function () {
|
||||
zr.off('mousedown', mousedownHandler);
|
||||
zr.off('mousemove', mousemoveHandler);
|
||||
zr.off('mouseup', mouseupHandler);
|
||||
zr.off('mousewheel', mousewheelHandler);
|
||||
zr.off('pinch', pinchHandler);
|
||||
};
|
||||
return _this;
|
||||
}
|
||||
RoamController.prototype.isDragging = function () {
|
||||
return this._dragging;
|
||||
};
|
||||
RoamController.prototype.isPinching = function () {
|
||||
return this._pinching;
|
||||
};
|
||||
RoamController.prototype.setPointerChecker = function (pointerChecker) {
|
||||
this.pointerChecker = pointerChecker;
|
||||
};
|
||||
RoamController.prototype.dispose = function () {
|
||||
this.disable();
|
||||
};
|
||||
RoamController.prototype._mousedownHandler = function (e) {
|
||||
if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {
|
||||
return;
|
||||
}
|
||||
var el = e.target;
|
||||
while (el) {
|
||||
if (el.draggable) {
|
||||
return;
|
||||
}
|
||||
// check if host is draggable
|
||||
el = el.__hostTarget || el.parent;
|
||||
}
|
||||
var x = e.offsetX;
|
||||
var y = e.offsetY;
|
||||
// Only check on mosedown, but not mousemove.
|
||||
// Mouse can be out of target when mouse moving.
|
||||
if (this.pointerChecker && this.pointerChecker(e, x, y)) {
|
||||
this._x = x;
|
||||
this._y = y;
|
||||
this._dragging = true;
|
||||
}
|
||||
};
|
||||
RoamController.prototype._mousemoveHandler = function (e) {
|
||||
if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {
|
||||
return;
|
||||
}
|
||||
var x = e.offsetX;
|
||||
var y = e.offsetY;
|
||||
var oldX = this._x;
|
||||
var oldY = this._y;
|
||||
var dx = x - oldX;
|
||||
var dy = y - oldY;
|
||||
this._x = x;
|
||||
this._y = y;
|
||||
this._opt.preventDefaultMouseMove && eventTool.stop(e.event);
|
||||
trigger(this, 'pan', 'moveOnMouseMove', e, {
|
||||
dx: dx,
|
||||
dy: dy,
|
||||
oldX: oldX,
|
||||
oldY: oldY,
|
||||
newX: x,
|
||||
newY: y,
|
||||
isAvailableBehavior: null
|
||||
});
|
||||
};
|
||||
RoamController.prototype._mouseupHandler = function (e) {
|
||||
if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {
|
||||
this._dragging = false;
|
||||
}
|
||||
};
|
||||
RoamController.prototype._mousewheelHandler = function (e) {
|
||||
var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);
|
||||
var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);
|
||||
var wheelDelta = e.wheelDelta;
|
||||
var absWheelDeltaDelta = Math.abs(wheelDelta);
|
||||
var originX = e.offsetX;
|
||||
var originY = e.offsetY;
|
||||
// wheelDelta maybe -0 in chrome mac.
|
||||
if (wheelDelta === 0 || !shouldZoom && !shouldMove) {
|
||||
return;
|
||||
}
|
||||
// If both `shouldZoom` and `shouldMove` is true, trigger
|
||||
// their event both, and the final behavior is determined
|
||||
// by event listener themselves.
|
||||
if (shouldZoom) {
|
||||
// Convenience:
|
||||
// Mac and VM Windows on Mac: scroll up: zoom out.
|
||||
// Windows: scroll up: zoom in.
|
||||
// FIXME: Should do more test in different environment.
|
||||
// wheelDelta is too complicated in difference nvironment
|
||||
// (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),
|
||||
// although it has been normallized by zrender.
|
||||
// wheelDelta of mouse wheel is bigger than touch pad.
|
||||
var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;
|
||||
var scale = wheelDelta > 0 ? factor : 1 / factor;
|
||||
checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {
|
||||
scale: scale,
|
||||
originX: originX,
|
||||
originY: originY,
|
||||
isAvailableBehavior: null
|
||||
});
|
||||
}
|
||||
if (shouldMove) {
|
||||
// FIXME: Should do more test in different environment.
|
||||
var absDelta = Math.abs(wheelDelta);
|
||||
// wheelDelta of mouse wheel is bigger than touch pad.
|
||||
var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);
|
||||
checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {
|
||||
scrollDelta: scrollDelta,
|
||||
originX: originX,
|
||||
originY: originY,
|
||||
isAvailableBehavior: null
|
||||
});
|
||||
}
|
||||
};
|
||||
RoamController.prototype._pinchHandler = function (e) {
|
||||
if (interactionMutex.isTaken(this._zr, 'globalPan')) {
|
||||
return;
|
||||
}
|
||||
var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;
|
||||
checkPointerAndTrigger(this, 'zoom', null, e, {
|
||||
scale: scale,
|
||||
originX: e.pinchX,
|
||||
originY: e.pinchY,
|
||||
isAvailableBehavior: null
|
||||
});
|
||||
};
|
||||
return RoamController;
|
||||
}(Eventful);
|
||||
function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {
|
||||
if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {
|
||||
// When mouse is out of roamController rect,
|
||||
// default befavoius should not be be disabled, otherwise
|
||||
// page sliding is disabled, contrary to expectation.
|
||||
eventTool.stop(e.event);
|
||||
trigger(controller, eventName, behaviorToCheck, e, contollerEvent);
|
||||
}
|
||||
}
|
||||
function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {
|
||||
// Also provide behavior checker for event listener, for some case that
|
||||
// multiple components share one listener.
|
||||
contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);
|
||||
// TODO should not have type issue.
|
||||
controller.trigger(eventName, contollerEvent);
|
||||
}
|
||||
// settings: {
|
||||
// zoomOnMouseWheel
|
||||
// moveOnMouseMove
|
||||
// moveOnMouseWheel
|
||||
// }
|
||||
// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.
|
||||
function isAvailableBehavior(behaviorToCheck, e, settings) {
|
||||
var setting = settings[behaviorToCheck];
|
||||
return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);
|
||||
}
|
||||
export default RoamController;
|
Reference in New Issue
Block a user