UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

68 lines (67 loc) 2.34 kB
var Param = function() { function Param2(target, e) { this.target = target; this.topTarget = e && e.topTarget; } return Param2; }(); var Draggable = function() { function Draggable2(handler) { this.handler = handler; handler.on("mousedown", this._dragStart, this); handler.on("mousemove", this._drag, this); handler.on("mouseup", this._dragEnd, this); } Draggable2.prototype._dragStart = function(e) { var draggingTarget = e.target; while (draggingTarget && !draggingTarget.draggable) { draggingTarget = draggingTarget.parent || draggingTarget.__hostTarget; } if (draggingTarget) { this._draggingTarget = draggingTarget; draggingTarget.dragging = true; this._x = e.offsetX; this._y = e.offsetY; this.handler.dispatchToElement(new Param(draggingTarget, e), "dragstart", e.event); } }; Draggable2.prototype._drag = function(e) { var draggingTarget = this._draggingTarget; if (draggingTarget) { var x = e.offsetX; var y = e.offsetY; var dx = x - this._x; var dy = y - this._y; this._x = x; this._y = y; draggingTarget.drift(dx, dy, e); this.handler.dispatchToElement(new Param(draggingTarget, e), "drag", e.event); var dropTarget = this.handler.findHover(x, y, draggingTarget).target; var lastDropTarget = this._dropTarget; this._dropTarget = dropTarget; if (draggingTarget !== dropTarget) { if (lastDropTarget && dropTarget !== lastDropTarget) { this.handler.dispatchToElement(new Param(lastDropTarget, e), "dragleave", e.event); } if (dropTarget && dropTarget !== lastDropTarget) { this.handler.dispatchToElement(new Param(dropTarget, e), "dragenter", e.event); } } } }; Draggable2.prototype._dragEnd = function(e) { var draggingTarget = this._draggingTarget; if (draggingTarget) { draggingTarget.dragging = false; } this.handler.dispatchToElement(new Param(draggingTarget, e), "dragend", e.event); if (this._dropTarget) { this.handler.dispatchToElement(new Param(this._dropTarget, e), "drop", e.event); } this._draggingTarget = null; this._dropTarget = null; }; return Draggable2; }(); var Draggable$1 = Draggable; export { Draggable$1 as default };