UNPKG

wix-style-react

Version:
56 lines (49 loc) 1.78 kB
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import draggableDriverFactory from '../DragAndDrop/Draggable/Draggable.driver'; import { dataAttributes } from '../DragAndDrop/Draggable/constants'; import { dataHooks } from './constants'; var sortableListFactory = function sortableListFactory(_ref) { var element = _ref.element; var draggableDriver = draggableDriverFactory({ element: element.querySelector("[data-hook=\"".concat(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 = _toConsumableArray(element.querySelectorAll("[".concat(dataAttributes.draggableTarget, "]"))); return draggableItems.findIndex(function (item) { return item.querySelectorAll("[".concat(dataAttributes.draggableSource, "]"))[0].getAttribute('data-hook') === dataHook; }); } }; }; export default sortableListFactory;