UNPKG

@schema-render/search-table-react

Version:
138 lines (137 loc) 5.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); var _jsxruntime = require("react/jsx-runtime"); var _core = require("@dnd-kit/core"); var _modifiers = require("@dnd-kit/modifiers"); var _sortable = require("@dnd-kit/sortable"); var _utilities = require("@dnd-kit/utilities"); var _corereact = require("@schema-render/core-react"); var _react = require("react"); function _array_like_to_array(arr, len) { if (len == null || len > arr.length) len = arr.length; for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; return arr2; } function _array_with_holes(arr) { if (Array.isArray(arr)) return arr; } function _iterable_to_array_limit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){ _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally{ try { if (!_n && _i["return"] != null) _i["return"](); } finally{ if (_d) throw _e; } } return _arr; } function _non_iterable_rest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _sliced_to_array(arr, i) { return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest(); } function _unsupported_iterable_to_array(o, minLen) { if (!o) return; if (typeof o === "string") return _array_like_to_array(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen); } var Sortable = function(param) { var _param_items = param.items, items = _param_items === void 0 ? [] : _param_items, onChange = param.onChange, itemClassName = param.itemClassName, overlayClassName = param.overlayClassName, renderItem = param.renderItem; var sensors = (0, _core.useSensors)((0, _core.useSensor)(_core.MouseSensor)); var _useState = _sliced_to_array((0, _react.useState)(null), 2), activeId = _useState[0], setActiveId = _useState[1]; var handleDragEnd = (0, _corereact.useMemoizedFn)(function(param) { var active = param.active, over = param.over; if (active.id !== over.id) { var oldIndex = items.findIndex(function(item) { return item.id === active.id; }); var newIndex = items.findIndex(function(item) { return item.id === over.id; }); onChange === null || onChange === void 0 ? void 0 : onChange((0, _sortable.arrayMove)(items, oldIndex, newIndex)); } setActiveId(null); }); return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.DndContext, { sensors: sensors, collisionDetection: _core.closestCenter, onDragStart: function(param) { var active = param.active; return setActiveId(active.id); }, onDragEnd: handleDragEnd, modifiers: [ _modifiers.restrictToVerticalAxis ], children: [ /*#__PURE__*/ (0, _jsxruntime.jsx)(_sortable.SortableContext, { items: items, strategy: _sortable.verticalListSortingStrategy, children: items.map(function(record, index) { return /*#__PURE__*/ (0, _jsxruntime.jsx)(SortableItem, { className: itemClassName, id: record.id, itemData: record, itemIndex: index, renderItem: renderItem }, record.id); }) }), /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.DragOverlay, { zIndex: 9999, children: activeId ? /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: overlayClassName, children: renderItem === null || renderItem === void 0 ? void 0 : renderItem(items.find(function(item) { return item.id === activeId; }), items.findIndex(function(item) { return item.id === activeId; })) }) : null }) ] }); }; function SortableItem(param) { var className = param.className, id = param.id, itemData = param.itemData, itemIndex = param.itemIndex, renderItem = param.renderItem; var sortCtx = (0, _sortable.useSortable)({ id: id }); var style = { transform: _utilities.CSS.Transform.toString(sortCtx.transform), transition: sortCtx.transition, opacity: sortCtx.isDragging ? 0 : undefined }; return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { className: className, ref: sortCtx.setNodeRef, style: style, children: renderItem === null || renderItem === void 0 ? void 0 : renderItem(itemData, itemIndex, sortCtx) }); } var _default = Sortable;