UNPKG

wix-style-react

Version:
67 lines (56 loc) 2.11 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _Draggable = _interopRequireDefault(require("../DragAndDrop/Draggable/Draggable.driver")); var _constants = require("../DragAndDrop/Draggable/constants"); var _constants2 = require("./constants"); var sortableListFactory = function sortableListFactory(_ref) { var element = _ref.element; var draggableDriver = (0, _Draggable["default"])({ element: element.querySelector("[data-hook=\"".concat(_constants2.dataHooks.provider, "\"]")) }); return { /** checks if exists */ exists: function exists() { return !!element; }, /** reorder sortable list items */ reorder: function reorder(_ref2) { var removedId = _ref2.removedId, addedId = _ref2.addedId; draggableDriver.beginDrag({ id: removedId }); draggableDriver.dragOver({ id: addedId }); draggableDriver.endDrag(); }, /** reorder sortable list items by data-hook */ reorderByDataHook: function reorderByDataHook(_ref3) { var from = _ref3.from, to = _ref3.to; draggableDriver.beginDrag({ dataHook: from }); draggableDriver.dragOver({ dataHook: to }); draggableDriver.endDrag(); }, /** get draggable item current position */ getItemCurrentPosition: function getItemCurrentPosition(_ref4) { var dataHook = _ref4.dataHook; var draggableItems = (0, _toConsumableArray2["default"])(element.querySelectorAll("[".concat(_constants.dataAttributes.draggableTarget, "]"))); return draggableItems.findIndex(function (item) { return item.querySelectorAll("[".concat(_constants.dataAttributes.draggableSource, "]"))[0].getAttribute('data-hook') === dataHook; }); } }; }; var _default = sortableListFactory; exports["default"] = _default;