cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
85 lines (84 loc) • 3.11 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import ComponentView from "../../view/Component.mjs";
import { each, bind, extend } from "../../../../zrender/lib/core/util.mjs";
import { createOrUpdate, clear } from "../../util/throttle.mjs";
var CLICK_THRESHOLD = 5;
var ParallelView = function(_super) {
__extends(ParallelView2, _super);
function ParallelView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = ParallelView2.type;
return _this;
}
ParallelView2.prototype.render = function(parallelModel, ecModel, api) {
this._model = parallelModel;
this._api = api;
if (!this._handlers) {
this._handlers = {};
each(handlers, function(handler, eventName) {
api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));
}, this);
}
createOrUpdate(this, "_throttledDispatchExpand", parallelModel.get("axisExpandRate"), "fixRate");
};
ParallelView2.prototype.dispose = function(ecModel, api) {
clear(this, "_throttledDispatchExpand");
each(this._handlers, function(handler, eventName) {
api.getZr().off(eventName, handler);
});
this._handlers = null;
};
ParallelView2.prototype._throttledDispatchExpand = function(opt) {
this._dispatchExpand(opt);
};
ParallelView2.prototype._dispatchExpand = function(opt) {
opt && this._api.dispatchAction(extend({
type: "parallelAxisExpand"
}, opt));
};
ParallelView2.type = "parallel";
return ParallelView2;
}(ComponentView);
var handlers = {
mousedown: function(e) {
if (checkTrigger(this, "click")) {
this._mouseDownPoint = [e.offsetX, e.offsetY];
}
},
mouseup: function(e) {
var mouseDownPoint = this._mouseDownPoint;
if (checkTrigger(this, "click") && mouseDownPoint) {
var point = [e.offsetX, e.offsetY];
var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);
if (dist > CLICK_THRESHOLD) {
return;
}
var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);
result.behavior !== "none" && this._dispatchExpand({
axisExpandWindow: result.axisExpandWindow
});
}
this._mouseDownPoint = null;
},
mousemove: function(e) {
if (this._mouseDownPoint || !checkTrigger(this, "mousemove")) {
return;
}
var model = this._model;
var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);
var behavior = result.behavior;
behavior === "jump" && this._throttledDispatchExpand.debounceNextCall(model.get("axisExpandDebounce"));
this._throttledDispatchExpand(behavior === "none" ? null : {
axisExpandWindow: result.axisExpandWindow,
animation: behavior === "jump" ? null : {
duration: 0
}
});
}
};
function checkTrigger(view, triggerOn) {
var model = view._model;
return model.get("axisExpandable") && model.get("axisExpandTriggerOn") === triggerOn;
}
var ParallelView$1 = ParallelView;
export { ParallelView$1 as default };