wix-style-react
Version:
67 lines (56 loc) • 2.11 kB
JavaScript
;
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;