wix-style-react
Version:
wix-style-react
72 lines (70 loc) • 2.62 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.dragAndDropPuppeteerDriverFactory = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var dragAndDropPuppeteerDriverFactory = _ref => {
var {
element
} = _ref;
return {
beginDrag: function () {
var _beginDrag = (0, _asyncToGenerator2.default)(function* (_ref2) {
var {
dataHook
} = _ref2;
yield element.page.evaluate((baseElement, sourceDataHook) => {
var sourceElement = baseElement.querySelector("[data-hook=\"".concat(sourceDataHook, "\"]"));
var {
x,
y,
height
} = sourceElement.getBoundingClientRect();
sourceElement.dispatchEvent(new MouseEvent('mousedown', {
bubbles: true,
clientX: x,
clientY: y + height / 2
}));
}, element.element, dataHook);
});
function beginDrag(_x) {
return _beginDrag.apply(this, arguments);
}
return beginDrag;
}(),
dragOver: function () {
var _dragOver = (0, _asyncToGenerator2.default)(function* (_ref3) {
var {
dataHook,
offset
} = _ref3;
var moveMouseToNewPosition = () => element.page.evaluate((baseElement, destinationDataHook, xAxisOffset) => {
var destinationElement = baseElement.querySelector("[data-hook=\"".concat(destinationDataHook, "\"]"));
var {
x,
y,
height
} = destinationElement.getBoundingClientRect();
var eventOptions = {
bubbles: true,
clientX: xAxisOffset ? x + xAxisOffset : x,
clientY: y + height / 2
};
baseElement.dispatchEvent(new MouseEvent('mousemove', eventOptions));
}, element.element, dataHook, offset == null ? void 0 : offset.x);
// We have to do it twice, because one mousemove event is not enough for item to occupy the new position
yield moveMouseToNewPosition();
yield moveMouseToNewPosition();
});
function dragOver(_x2) {
return _dragOver.apply(this, arguments);
}
return dragOver;
}(),
endDrag: () => element.page.evaluate(baseElement => {
baseElement.dispatchEvent(new MouseEvent('mouseup'));
}, element.element)
};
};
exports.dragAndDropPuppeteerDriverFactory = dragAndDropPuppeteerDriverFactory;
//# sourceMappingURL=dragAndDropPuppeteerDriverFactory.js.map