UNPKG

wix-style-react

Version:
120 lines (98 loc) 4.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.dragAndDropPuppeteerDriverFactory = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _constants = require("../../DragAndDrop/Draggable/constants"); var getDraggableItemSelector = function getDraggableItemSelector(dataHook, id) { return dataHook ? "[data-hook=\"".concat(dataHook, "\"]") : "[".concat(_constants.dataAttributes.id, "=\"").concat(id, "\"] [").concat(_constants.dataAttributes.draggableSource, "]"); }; var dragAndDropPuppeteerDriverFactory = function dragAndDropPuppeteerDriverFactory(_ref) { var element = _ref.element; return { beginDrag: function () { var _beginDrag = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2) { var dataHook, id, selector; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dataHook = _ref2.dataHook, id = _ref2.id; selector = getDraggableItemSelector(dataHook, id); _context.next = 4; return element.page.evaluate(function (baseElement, sourceSelector) { var sourceElement = baseElement.querySelector(sourceSelector); var _sourceElement$getBou = sourceElement.getBoundingClientRect(), x = _sourceElement$getBou.x, y = _sourceElement$getBou.y, height = _sourceElement$getBou.height; sourceElement.dispatchEvent(new MouseEvent('mousedown', { bubbles: true, clientX: x, clientY: y + height / 2 })); }, element.element, selector); case 4: case "end": return _context.stop(); } } }, _callee); })); function beginDrag(_x) { return _beginDrag.apply(this, arguments); } return beginDrag; }(), dragOver: function () { var _dragOver = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref3) { var dataHook, id, offset, selector, moveMouseToNewPosition; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: dataHook = _ref3.dataHook, id = _ref3.id, offset = _ref3.offset; selector = getDraggableItemSelector(dataHook, id); moveMouseToNewPosition = function moveMouseToNewPosition() { return element.page.evaluate(function (baseElement, destinationSelector, xAxisOffset) { var destinationElement = baseElement.querySelector(destinationSelector); var _destinationElement$g = destinationElement.getBoundingClientRect(), x = _destinationElement$g.x, y = _destinationElement$g.y, height = _destinationElement$g.height; var eventOptions = { bubbles: true, clientX: xAxisOffset ? x + xAxisOffset : x, clientY: y + height / 2 }; baseElement.dispatchEvent(new MouseEvent('mousemove', eventOptions)); }, element.element, selector, offset === null || offset === void 0 ? void 0 : offset.x); }; // We have to do it twice, because one mousemove event is not enough for item to occupy the new position _context2.next = 5; return moveMouseToNewPosition(); case 5: _context2.next = 7; return moveMouseToNewPosition(); case 7: case "end": return _context2.stop(); } } }, _callee2); })); function dragOver(_x2) { return _dragOver.apply(this, arguments); } return dragOver; }(), endDrag: function endDrag() { return element.page.evaluate(function (baseElement) { baseElement.dispatchEvent(new MouseEvent('mouseup')); }, element.element); } }; }; exports.dragAndDropPuppeteerDriverFactory = dragAndDropPuppeteerDriverFactory;