@bigbinary/neeto-molecules 4.0.86 → 4.0.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,6 +28,7 @@ https://neeto-molecules.neeto.com/
28
28
  - [DateFormat/TimeFormat](./docs/components/DateFormatTimeFormat.md)
29
29
  - [DateRangeFilter](./docs/components/DateRangeFilter.md)
30
30
  - [DeleteArchiveModal](./docs/components/DeleteArchiveModal.md)
31
+ - [DndTable](./docs/components/DndTable.md)
31
32
  - [DocumentEditor](./docs/components/DocumentEditor.md)
32
33
  - [DownloadMobileAppCallout](./docs/components/DownloadMobileAppCallout.md)
33
34
  - [DynamicVariables](./docs/components/DynamicVariables.md)
@@ -0,0 +1,176 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import { useState } from 'react';
5
+ import { useDraggable, useDroppable, useSensors, useSensor, PointerSensor, DndContext, DragOverlay } from '@dnd-kit/core';
6
+ import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
7
+ import { noop } from '@bigbinary/neeto-cist';
8
+ import Table from '@bigbinary/neetoui/Table';
9
+ import { T, path, remove } from 'ramda';
10
+ import { createPortal } from 'react-dom';
11
+ import classnames from 'classnames';
12
+ import { jsx, jsxs } from 'react/jsx-runtime';
13
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
14
+ import { useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
15
+ import Toastr from '@bigbinary/neetoui/Toastr';
16
+
17
+ var _excluded$1 = ["children", "data", "index", "className", "isDroppable"];
18
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
+ var Row = function Row(_ref) {
21
+ var children = _ref.children,
22
+ data = _ref.data,
23
+ index = _ref.index,
24
+ className = _ref.className,
25
+ isDroppable = _ref.isDroppable,
26
+ rest = _objectWithoutProperties(_ref, _excluded$1);
27
+ var _useDraggable = useDraggable({
28
+ data: _objectSpread$1(_objectSpread$1({}, data), {}, {
29
+ index: index
30
+ }),
31
+ id: "draggable-".concat(rest["data-row-key"])
32
+ }),
33
+ isDragging = _useDraggable.isDragging,
34
+ attributes = _useDraggable.attributes,
35
+ listeners = _useDraggable.listeners,
36
+ setDraggableNodeRef = _useDraggable.setNodeRef;
37
+ var _useDroppable = useDroppable({
38
+ data: _objectSpread$1(_objectSpread$1({}, data), {}, {
39
+ index: index + 1
40
+ }),
41
+ id: "droppable-".concat(rest["data-row-key"]),
42
+ disabled: !isDroppable || isDragging
43
+ }),
44
+ isOver = _useDroppable.isOver,
45
+ setDroppableNodeRef = _useDroppable.setNodeRef;
46
+ var isIndicatorVisible = !isDragging && isOver;
47
+ return /*#__PURE__*/jsx("tr", _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, rest), attributes), listeners), {}, {
48
+ className: classnames(className, {
49
+ "neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
50
+ "neeto-ui-bg-gray-100 opacity-50": isDragging,
51
+ "neeto-ui-bg-primary-100 neeto-ui-shadow-2xs": isIndicatorVisible
52
+ }),
53
+ ref: function ref(node) {
54
+ setDraggableNodeRef(node);
55
+ setDroppableNodeRef(node);
56
+ },
57
+ children: children
58
+ }));
59
+ };
60
+
61
+ var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop"];
62
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
63
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
64
+ var sensorConfig = {
65
+ activationConstraint: {
66
+ distance: 8
67
+ }
68
+ };
69
+ var DndTable = function DndTable(_ref) {
70
+ var _dragState$active$dat;
71
+ var rowData = _ref.rowData,
72
+ columnData = _ref.columnData,
73
+ _ref$overlayColumnInd = _ref.overlayColumnIndex,
74
+ overlayColumnIndex = _ref$overlayColumnInd === void 0 ? 0 : _ref$overlayColumnInd,
75
+ _ref$isRowDroppable = _ref.isRowDroppable,
76
+ isRowDroppable = _ref$isRowDroppable === void 0 ? T : _ref$isRowDroppable,
77
+ _ref$onDrop = _ref.onDrop,
78
+ onDrop = _ref$onDrop === void 0 ? noop : _ref$onDrop,
79
+ rest = _objectWithoutProperties(_ref, _excluded);
80
+ var _useState = useState(null),
81
+ _useState2 = _slicedToArray(_useState, 2),
82
+ dragState = _useState2[0],
83
+ setDragState = _useState2[1];
84
+ var sensors = useSensors(useSensor(PointerSensor, sensorConfig));
85
+ var onDragEnd = function onDragEnd(_ref2) {
86
+ var active = _ref2.active,
87
+ over = _ref2.over;
88
+ setDragState(null);
89
+ if (!active || !over) return;
90
+ onDrop(active.data.current, over.data.current);
91
+ };
92
+ var renderOverlay = function renderOverlay(data) {
93
+ var colData = columnData[overlayColumnIndex];
94
+ var rowData = data[colData.dataIndex];
95
+ return /*#__PURE__*/jsx("div", {
96
+ className: "flex px-20",
97
+ children: /*#__PURE__*/jsx("div", {
98
+ className: "neeto-ui-rounded-lg neeto-ui-bg-white px-4",
99
+ children: colData.render ? colData.render(rowData, data) : rowData
100
+ })
101
+ });
102
+ };
103
+ return /*#__PURE__*/jsxs(DndContext, {
104
+ onDragEnd: onDragEnd,
105
+ sensors: sensors,
106
+ onDragStart: setDragState,
107
+ children: [/*#__PURE__*/jsx(Table, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, rest), {}, {
108
+ columnData: columnData,
109
+ rowData: rowData
110
+ })), {}, {
111
+ components: {
112
+ body: {
113
+ row: Row
114
+ }
115
+ },
116
+ onRow: function onRow(data, index) {
117
+ return {
118
+ data: data,
119
+ index: index,
120
+ isDroppable: isRowDroppable(data)
121
+ };
122
+ }
123
+ })), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
124
+ modifiers: [restrictToVerticalAxis],
125
+ children: (dragState === null || dragState === void 0 ? void 0 : dragState.active) && renderOverlay((_dragState$active$dat = dragState.active.data) === null || _dragState$active$dat === void 0 ? void 0 : _dragState$active$dat.current)
126
+ }), document.body)]
127
+ });
128
+ };
129
+
130
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
131
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
132
+ var useDndTable = function useDndTable(_ref) {
133
+ var rowData = _ref.rowData,
134
+ onUpdate = _ref.onUpdate;
135
+ var _useStateWithDependen = useStateWithDependency(rowData, [rowData]),
136
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
137
+ rowDataState = _useStateWithDependen2[0],
138
+ setRowDataState = _useStateWithDependen2[1];
139
+ var onDrop = /*#__PURE__*/function () {
140
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(active, over) {
141
+ var stateBefore, _Object$values$, errors, message, _t;
142
+ return _regenerator().w(function (_context) {
143
+ while (1) switch (_context.p = _context.n) {
144
+ case 0:
145
+ stateBefore = rowDataState;
146
+ setRowDataState(remove(active.index, 1));
147
+ _context.p = 1;
148
+ _context.n = 2;
149
+ return onUpdate(active, over);
150
+ case 2:
151
+ _context.n = 4;
152
+ break;
153
+ case 3:
154
+ _context.p = 3;
155
+ _t = _context.v;
156
+ setRowDataState(stateBefore);
157
+ errors = path(["response", "data", "errors"], _t);
158
+ message = errors && ((_Object$values$ = Object.values(errors)[0]) === null || _Object$values$ === void 0 ? void 0 : _Object$values$[0]);
159
+ if (message) Toastr.error(message);
160
+ case 4:
161
+ return _context.a(2);
162
+ }
163
+ }, _callee, null, [[1, 3]]);
164
+ }));
165
+ return function onDrop(_x, _x2) {
166
+ return _ref2.apply(this, arguments);
167
+ };
168
+ }();
169
+ return {
170
+ rowData: rowDataState,
171
+ onDrop: onDrop
172
+ };
173
+ };
174
+
175
+ export { DndTable as default, useDndTable };
176
+ //# sourceMappingURL=DndTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DndTable.js","sources":["../src/components/DndTable/Row.jsx","../src/components/DndTable/Table.jsx","../src/components/DndTable/useDndTable.js"],"sourcesContent":["import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\n\nconst Row = ({ children, data, index, className, isDroppable, ...rest }) => {\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index },\n id: `draggable-${rest[\"data-row-key\"]}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, index: index + 1 },\n id: `droppable-${rest[\"data-row-key\"]}`,\n disabled: !isDroppable || isDragging,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <tr\n {...rest}\n {...attributes}\n {...listeners}\n className={classNames(className, {\n \"neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors\": true,\n \"neeto-ui-bg-gray-100 opacity-50\": isDragging,\n \"neeto-ui-bg-primary-100 neeto-ui-shadow-2xs\": isIndicatorVisible,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {children}\n </tr>\n );\n};\n\nexport default Row;\n","import { useState } from \"react\";\n\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport { noop } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { T } from \"ramda\";\nimport { createPortal } from \"react-dom\";\n\nimport Row from \"./Row\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\n\nconst DndTable = ({\n rowData,\n columnData,\n overlayColumnIndex = 0,\n isRowDroppable = T,\n onDrop = noop,\n ...rest\n}) => {\n const [dragState, setDragState] = useState(null);\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = ({ active, over }) => {\n setDragState(null);\n if (!active || !over) return;\n onDrop(active.data.current, over.data.current);\n };\n\n const renderOverlay = data => {\n const colData = columnData[overlayColumnIndex];\n const rowData = data[colData.dataIndex];\n\n return (\n <div className=\"flex px-20\">\n <div className=\"neeto-ui-rounded-lg neeto-ui-bg-white px-4\">\n {colData.render ? colData.render(rowData, data) : rowData}\n </div>\n </div>\n );\n };\n\n return (\n <DndContext {...{ onDragEnd, sensors }} onDragStart={setDragState}>\n <Table\n {...{ ...rest, columnData, rowData }}\n components={{ body: { row: Row } }}\n onRow={(data, index) => ({\n data,\n index,\n isDroppable: isRowDroppable(data),\n })}\n />\n {createPortal(\n <DragOverlay modifiers={[restrictToVerticalAxis]}>\n {dragState?.active && renderOverlay(dragState.active.data?.current)}\n </DragOverlay>,\n document.body\n )}\n </DndContext>\n );\n};\n\nDndTable.propTypes = {\n /** The data for the rows of the table. */\n rowData: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n /** The data for the columns of the table. */\n columnData: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n /** The index of the column to display the overlay for. */\n overlayColumnIndex: PropTypes.number,\n\n /** A function that determines if a row is droppable based on checks on the data. */\n isRowDroppable: PropTypes.func,\n\n /** A function that is called when a row is dropped. */\n onDrop: PropTypes.func.isRequired,\n};\n\nexport default DndTable;\n","import { useStateWithDependency } from \"neetocommons/react-utils\";\nimport { Toastr } from \"neetoui\";\nimport { path, remove } from \"ramda\";\n\nconst useDndTable = ({ rowData, onUpdate }) => {\n const [rowDataState, setRowDataState] = useStateWithDependency(rowData, [\n rowData,\n ]);\n\n const onDrop = async (active, over) => {\n const stateBefore = rowDataState;\n setRowDataState(remove(active.index, 1));\n\n try {\n await onUpdate(active, over);\n } catch (error) {\n setRowDataState(stateBefore);\n const errors = path([\"response\", \"data\", \"errors\"], error);\n const message = errors && Object.values(errors)[0]?.[0];\n if (message) Toastr.error(message);\n }\n };\n\n return { rowData: rowDataState, onDrop };\n};\n\nexport default useDndTable;\n"],"names":["Row","_ref","children","data","index","className","isDroppable","rest","_objectWithoutProperties","_excluded","_useDraggable","useDraggable","_objectSpread","id","concat","isDragging","attributes","listeners","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","disabled","isOver","setDroppableNodeRef","isIndicatorVisible","_jsx","classNames","ref","node","sensorConfig","activationConstraint","distance","DndTable","_dragState$active$dat","rowData","columnData","_ref$overlayColumnInd","overlayColumnIndex","_ref$isRowDroppable","isRowDroppable","T","_ref$onDrop","onDrop","noop","_useState","useState","_useState2","_slicedToArray","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","_ref2","active","over","current","renderOverlay","colData","dataIndex","render","_jsxs","DndContext","onDragStart","Table","components","body","row","onRow","createPortal","DragOverlay","modifiers","restrictToVerticalAxis","document","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","useDndTable","onUpdate","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","rowDataState","setRowDataState","_asyncToGenerator","_callee","stateBefore","_Object$values$","errors","message","_t","_context","remove","path","values","Toastr","error","_x","_x2","apply","arguments"],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
+ var React = require('react');
9
+ var core = require('@dnd-kit/core');
10
+ var modifiers = require('@dnd-kit/modifiers');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var Table = require('@bigbinary/neetoui/Table');
13
+ var ramda = require('ramda');
14
+ var ReactDOM = require('react-dom');
15
+ var classnames = require('classnames');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
18
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
19
+ var Toastr = require('@bigbinary/neetoui/Toastr');
20
+
21
+ var _excluded$1 = ["children", "data", "index", "className", "isDroppable"];
22
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ var Row = function Row(_ref) {
25
+ var children = _ref.children,
26
+ data = _ref.data,
27
+ index = _ref.index,
28
+ className = _ref.className,
29
+ isDroppable = _ref.isDroppable,
30
+ rest = _objectWithoutProperties(_ref, _excluded$1);
31
+ var _useDraggable = core.useDraggable({
32
+ data: _objectSpread$1(_objectSpread$1({}, data), {}, {
33
+ index: index
34
+ }),
35
+ id: "draggable-".concat(rest["data-row-key"])
36
+ }),
37
+ isDragging = _useDraggable.isDragging,
38
+ attributes = _useDraggable.attributes,
39
+ listeners = _useDraggable.listeners,
40
+ setDraggableNodeRef = _useDraggable.setNodeRef;
41
+ var _useDroppable = core.useDroppable({
42
+ data: _objectSpread$1(_objectSpread$1({}, data), {}, {
43
+ index: index + 1
44
+ }),
45
+ id: "droppable-".concat(rest["data-row-key"]),
46
+ disabled: !isDroppable || isDragging
47
+ }),
48
+ isOver = _useDroppable.isOver,
49
+ setDroppableNodeRef = _useDroppable.setNodeRef;
50
+ var isIndicatorVisible = !isDragging && isOver;
51
+ return /*#__PURE__*/jsxRuntime.jsx("tr", _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, rest), attributes), listeners), {}, {
52
+ className: classnames(className, {
53
+ "neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
54
+ "neeto-ui-bg-gray-100 opacity-50": isDragging,
55
+ "neeto-ui-bg-primary-100 neeto-ui-shadow-2xs": isIndicatorVisible
56
+ }),
57
+ ref: function ref(node) {
58
+ setDraggableNodeRef(node);
59
+ setDroppableNodeRef(node);
60
+ },
61
+ children: children
62
+ }));
63
+ };
64
+
65
+ var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop"];
66
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
67
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
68
+ var sensorConfig = {
69
+ activationConstraint: {
70
+ distance: 8
71
+ }
72
+ };
73
+ var DndTable = function DndTable(_ref) {
74
+ var _dragState$active$dat;
75
+ var rowData = _ref.rowData,
76
+ columnData = _ref.columnData,
77
+ _ref$overlayColumnInd = _ref.overlayColumnIndex,
78
+ overlayColumnIndex = _ref$overlayColumnInd === void 0 ? 0 : _ref$overlayColumnInd,
79
+ _ref$isRowDroppable = _ref.isRowDroppable,
80
+ isRowDroppable = _ref$isRowDroppable === void 0 ? ramda.T : _ref$isRowDroppable,
81
+ _ref$onDrop = _ref.onDrop,
82
+ onDrop = _ref$onDrop === void 0 ? neetoCist.noop : _ref$onDrop,
83
+ rest = _objectWithoutProperties(_ref, _excluded);
84
+ var _useState = React.useState(null),
85
+ _useState2 = _slicedToArray(_useState, 2),
86
+ dragState = _useState2[0],
87
+ setDragState = _useState2[1];
88
+ var sensors = core.useSensors(core.useSensor(core.PointerSensor, sensorConfig));
89
+ var onDragEnd = function onDragEnd(_ref2) {
90
+ var active = _ref2.active,
91
+ over = _ref2.over;
92
+ setDragState(null);
93
+ if (!active || !over) return;
94
+ onDrop(active.data.current, over.data.current);
95
+ };
96
+ var renderOverlay = function renderOverlay(data) {
97
+ var colData = columnData[overlayColumnIndex];
98
+ var rowData = data[colData.dataIndex];
99
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
100
+ className: "flex px-20",
101
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
102
+ className: "neeto-ui-rounded-lg neeto-ui-bg-white px-4",
103
+ children: colData.render ? colData.render(rowData, data) : rowData
104
+ })
105
+ });
106
+ };
107
+ return /*#__PURE__*/jsxRuntime.jsxs(core.DndContext, {
108
+ onDragEnd: onDragEnd,
109
+ sensors: sensors,
110
+ onDragStart: setDragState,
111
+ children: [/*#__PURE__*/jsxRuntime.jsx(Table, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, rest), {}, {
112
+ columnData: columnData,
113
+ rowData: rowData
114
+ })), {}, {
115
+ components: {
116
+ body: {
117
+ row: Row
118
+ }
119
+ },
120
+ onRow: function onRow(data, index) {
121
+ return {
122
+ data: data,
123
+ index: index,
124
+ isDroppable: isRowDroppable(data)
125
+ };
126
+ }
127
+ })), /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/jsxRuntime.jsx(core.DragOverlay, {
128
+ modifiers: [modifiers.restrictToVerticalAxis],
129
+ children: (dragState === null || dragState === void 0 ? void 0 : dragState.active) && renderOverlay((_dragState$active$dat = dragState.active.data) === null || _dragState$active$dat === void 0 ? void 0 : _dragState$active$dat.current)
130
+ }), document.body)]
131
+ });
132
+ };
133
+
134
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
135
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
136
+ var useDndTable = function useDndTable(_ref) {
137
+ var rowData = _ref.rowData,
138
+ onUpdate = _ref.onUpdate;
139
+ var _useStateWithDependen = reactUtils.useStateWithDependency(rowData, [rowData]),
140
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
141
+ rowDataState = _useStateWithDependen2[0],
142
+ setRowDataState = _useStateWithDependen2[1];
143
+ var onDrop = /*#__PURE__*/function () {
144
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(active, over) {
145
+ var stateBefore, _Object$values$, errors, message, _t;
146
+ return _regenerator().w(function (_context) {
147
+ while (1) switch (_context.p = _context.n) {
148
+ case 0:
149
+ stateBefore = rowDataState;
150
+ setRowDataState(ramda.remove(active.index, 1));
151
+ _context.p = 1;
152
+ _context.n = 2;
153
+ return onUpdate(active, over);
154
+ case 2:
155
+ _context.n = 4;
156
+ break;
157
+ case 3:
158
+ _context.p = 3;
159
+ _t = _context.v;
160
+ setRowDataState(stateBefore);
161
+ errors = ramda.path(["response", "data", "errors"], _t);
162
+ message = errors && ((_Object$values$ = Object.values(errors)[0]) === null || _Object$values$ === void 0 ? void 0 : _Object$values$[0]);
163
+ if (message) Toastr.error(message);
164
+ case 4:
165
+ return _context.a(2);
166
+ }
167
+ }, _callee, null, [[1, 3]]);
168
+ }));
169
+ return function onDrop(_x, _x2) {
170
+ return _ref2.apply(this, arguments);
171
+ };
172
+ }();
173
+ return {
174
+ rowData: rowDataState,
175
+ onDrop: onDrop
176
+ };
177
+ };
178
+
179
+ exports.default = DndTable;
180
+ exports.useDndTable = useDndTable;
181
+ //# sourceMappingURL=DndTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DndTable.js","sources":["../../src/components/DndTable/Row.jsx","../../src/components/DndTable/Table.jsx","../../src/components/DndTable/useDndTable.js"],"sourcesContent":["import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\n\nconst Row = ({ children, data, index, className, isDroppable, ...rest }) => {\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef: setDraggableNodeRef,\n } = useDraggable({\n data: { ...data, index },\n id: `draggable-${rest[\"data-row-key\"]}`,\n });\n\n const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({\n data: { ...data, index: index + 1 },\n id: `droppable-${rest[\"data-row-key\"]}`,\n disabled: !isDroppable || isDragging,\n });\n\n const isIndicatorVisible = !isDragging && isOver;\n\n return (\n <tr\n {...rest}\n {...attributes}\n {...listeners}\n className={classNames(className, {\n \"neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors\": true,\n \"neeto-ui-bg-gray-100 opacity-50\": isDragging,\n \"neeto-ui-bg-primary-100 neeto-ui-shadow-2xs\": isIndicatorVisible,\n })}\n ref={node => {\n setDraggableNodeRef(node);\n setDroppableNodeRef(node);\n }}\n >\n {children}\n </tr>\n );\n};\n\nexport default Row;\n","import { useState } from \"react\";\n\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport { noop } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { T } from \"ramda\";\nimport { createPortal } from \"react-dom\";\n\nimport Row from \"./Row\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\n\nconst DndTable = ({\n rowData,\n columnData,\n overlayColumnIndex = 0,\n isRowDroppable = T,\n onDrop = noop,\n ...rest\n}) => {\n const [dragState, setDragState] = useState(null);\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n const onDragEnd = ({ active, over }) => {\n setDragState(null);\n if (!active || !over) return;\n onDrop(active.data.current, over.data.current);\n };\n\n const renderOverlay = data => {\n const colData = columnData[overlayColumnIndex];\n const rowData = data[colData.dataIndex];\n\n return (\n <div className=\"flex px-20\">\n <div className=\"neeto-ui-rounded-lg neeto-ui-bg-white px-4\">\n {colData.render ? colData.render(rowData, data) : rowData}\n </div>\n </div>\n );\n };\n\n return (\n <DndContext {...{ onDragEnd, sensors }} onDragStart={setDragState}>\n <Table\n {...{ ...rest, columnData, rowData }}\n components={{ body: { row: Row } }}\n onRow={(data, index) => ({\n data,\n index,\n isDroppable: isRowDroppable(data),\n })}\n />\n {createPortal(\n <DragOverlay modifiers={[restrictToVerticalAxis]}>\n {dragState?.active && renderOverlay(dragState.active.data?.current)}\n </DragOverlay>,\n document.body\n )}\n </DndContext>\n );\n};\n\nDndTable.propTypes = {\n /** The data for the rows of the table. */\n rowData: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n /** The data for the columns of the table. */\n columnData: PropTypes.arrayOf(PropTypes.object).isRequired,\n\n /** The index of the column to display the overlay for. */\n overlayColumnIndex: PropTypes.number,\n\n /** A function that determines if a row is droppable based on checks on the data. */\n isRowDroppable: PropTypes.func,\n\n /** A function that is called when a row is dropped. */\n onDrop: PropTypes.func.isRequired,\n};\n\nexport default DndTable;\n","import { useStateWithDependency } from \"neetocommons/react-utils\";\nimport { Toastr } from \"neetoui\";\nimport { path, remove } from \"ramda\";\n\nconst useDndTable = ({ rowData, onUpdate }) => {\n const [rowDataState, setRowDataState] = useStateWithDependency(rowData, [\n rowData,\n ]);\n\n const onDrop = async (active, over) => {\n const stateBefore = rowDataState;\n setRowDataState(remove(active.index, 1));\n\n try {\n await onUpdate(active, over);\n } catch (error) {\n setRowDataState(stateBefore);\n const errors = path([\"response\", \"data\", \"errors\"], error);\n const message = errors && Object.values(errors)[0]?.[0];\n if (message) Toastr.error(message);\n }\n };\n\n return { rowData: rowDataState, onDrop };\n};\n\nexport default useDndTable;\n"],"names":["Row","_ref","children","data","index","className","isDroppable","rest","_objectWithoutProperties","_excluded","_useDraggable","useDraggable","_objectSpread","id","concat","isDragging","attributes","listeners","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","disabled","isOver","setDroppableNodeRef","isIndicatorVisible","_jsx","classNames","ref","node","sensorConfig","activationConstraint","distance","DndTable","_dragState$active$dat","rowData","columnData","_ref$overlayColumnInd","overlayColumnIndex","_ref$isRowDroppable","isRowDroppable","T","_ref$onDrop","onDrop","noop","_useState","useState","_useState2","_slicedToArray","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","onDragEnd","_ref2","active","over","current","renderOverlay","colData","dataIndex","render","_jsxs","DndContext","onDragStart","Table","components","body","row","onRow","createPortal","DragOverlay","modifiers","restrictToVerticalAxis","document","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","useDndTable","onUpdate","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","rowDataState","setRowDataState","_asyncToGenerator","_callee","stateBefore","_Object$values$","errors","message","_t","_context","remove","path","values","Toastr","error","_x","_x2","apply","arguments"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAMA,GAAG,GAAG,SAANA,GAAGA,CAAAC,IAAA,EAAmE;AAAA,EAAA,IAA7DC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAEC,WAAW,GAAAL,IAAA,CAAXK,WAAW;AAAKC,IAAAA,IAAI,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,WAAA,CAAA;EACnE,IAAAC,aAAA,GAKIC,iBAAY,CAAC;AACfR,MAAAA,IAAI,EAAAS,eAAA,CAAAA,eAAA,KAAOT,IAAI,CAAA,EAAA,EAAA,EAAA;AAAEC,QAAAA,KAAK,EAALA;OAAK,CAAE;AACxBS,MAAAA,EAAE,eAAAC,MAAA,CAAeP,IAAI,CAAC,cAAc,CAAC;AACvC,KAAC,CAAC;IAPAQ,UAAU,GAAAL,aAAA,CAAVK,UAAU;IACVC,UAAU,GAAAN,aAAA,CAAVM,UAAU;IACVC,SAAS,GAAAP,aAAA,CAATO,SAAS;IACGC,mBAAmB,GAAAR,aAAA,CAA/BS,UAAU;EAMZ,IAAAC,aAAA,GAAoDC,iBAAY,CAAC;AAC/DlB,MAAAA,IAAI,EAAAS,eAAA,CAAAA,eAAA,KAAOT,IAAI,CAAA,EAAA,EAAA,EAAA;QAAEC,KAAK,EAAEA,KAAK,GAAG;OAAC,CAAE;AACnCS,MAAAA,EAAE,eAAAC,MAAA,CAAeP,IAAI,CAAC,cAAc,CAAC,CAAE;MACvCe,QAAQ,EAAE,CAAChB,WAAW,IAAIS;AAC5B,KAAC,CAAC;IAJMQ,MAAM,GAAAH,aAAA,CAANG,MAAM;IAAcC,mBAAmB,GAAAJ,aAAA,CAA/BD,UAAU;AAM1B,EAAA,IAAMM,kBAAkB,GAAG,CAACV,UAAU,IAAIQ,MAAM;AAEhD,EAAA,oBACEG,cAAA,CAAA,IAAA,EAAAd,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EACML,IAAI,CAAA,EACJS,UAAU,GACVC,SAAS,CAAA,EAAA,EAAA,EAAA;AACbZ,IAAAA,SAAS,EAAEsB,UAAU,CAACtB,SAAS,EAAE;AAC/B,MAAA,6FAA6F,EAAE,IAAI;AACnG,MAAA,iCAAiC,EAAEU,UAAU;AAC7C,MAAA,6CAA6C,EAAEU;AACjD,KAAC,CAAE;AACHG,IAAAA,GAAG,EAAE,SAALA,GAAGA,CAAEC,IAAI,EAAI;MACXX,mBAAmB,CAACW,IAAI,CAAC;MACzBL,mBAAmB,CAACK,IAAI,CAAC;IAC3B,CAAE;AAAA3B,IAAAA,QAAA,EAEDA;AAAQ,GAAA,CACP,CAAC;AAET,CAAC;;;;;ACtBD,IAAM4B,YAAY,GAAG;AAAEC,EAAAA,oBAAoB,EAAE;AAAEC,IAAAA,QAAQ,EAAE;AAAE;AAAE,CAAC;AAE9D,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAAhC,IAAA,EAOR;AAAA,EAAA,IAAAiC,qBAAA;AAAA,EAAA,IANJC,OAAO,GAAAlC,IAAA,CAAPkC,OAAO;IACPC,UAAU,GAAAnC,IAAA,CAAVmC,UAAU;IAAAC,qBAAA,GAAApC,IAAA,CACVqC,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,qBAAA;IAAAE,mBAAA,GAAAtC,IAAA,CACtBuC,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,MAAA,GAAGE,OAAC,GAAAF,mBAAA;IAAAG,WAAA,GAAAzC,IAAA,CAClB0C,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAGE,cAAI,GAAAF,WAAA;AACVnC,IAAAA,IAAI,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA;AAEP,EAAA,IAAAoC,SAAA,GAAkCC,cAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA;EAC9B,IAAMI,OAAO,GAAGC,eAAU,CAACC,cAAS,CAACC,kBAAa,EAAExB,YAAY,CAAC,CAAC;AAElE,EAAA,IAAMyB,SAAS,GAAG,SAAZA,SAASA,CAAAC,KAAA,EAAyB;AAAA,IAAA,IAAnBC,MAAM,GAAAD,KAAA,CAANC,MAAM;MAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;IAC/BR,YAAY,CAAC,IAAI,CAAC;AAClB,IAAA,IAAI,CAACO,MAAM,IAAI,CAACC,IAAI,EAAE;AACtBf,IAAAA,MAAM,CAACc,MAAM,CAACtD,IAAI,CAACwD,OAAO,EAAED,IAAI,CAACvD,IAAI,CAACwD,OAAO,CAAC;EAChD,CAAC;AAED,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGzD,IAAI,EAAI;AAC5B,IAAA,IAAM0D,OAAO,GAAGzB,UAAU,CAACE,kBAAkB,CAAC;AAC9C,IAAA,IAAMH,OAAO,GAAGhC,IAAI,CAAC0D,OAAO,CAACC,SAAS,CAAC;AAEvC,IAAA,oBACEpC,cAAA,CAAA,KAAA,EAAA;AAAKrB,MAAAA,SAAS,EAAC,YAAY;AAAAH,MAAAA,QAAA,eACzBwB,cAAA,CAAA,KAAA,EAAA;AAAKrB,QAAAA,SAAS,EAAC,4CAA4C;AAAAH,QAAAA,QAAA,EACxD2D,OAAO,CAACE,MAAM,GAAGF,OAAO,CAACE,MAAM,CAAC5B,OAAO,EAAEhC,IAAI,CAAC,GAAGgC;OAC/C;AAAC,KACH,CAAC;EAEV,CAAC;EAED,oBACE6B,eAAA,CAACC,eAAU,EAAA;AAAOV,IAAAA,SAAS,EAATA,SAAS;AAAEJ,IAAAA,OAAO,EAAPA,OAAO;AAAIe,IAAAA,WAAW,EAAEhB,YAAa;AAAAhD,IAAAA,QAAA,EAAA,cAChEwB,cAAA,CAACyC,KAAK,EAAAvD,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAA,aAAA,CAAAA,aAAA,KACKL,IAAI,CAAA,EAAA,EAAA,EAAA;AAAE6B,MAAAA,UAAU,EAAVA,UAAU;AAAED,MAAAA,OAAO,EAAPA;AAAO,KAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AAClCiC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,IAAI,EAAE;AAAEC,UAAAA,GAAG,EAAEtE;AAAI;OAAI;AACnCuE,MAAAA,KAAK,EAAE,SAAPA,KAAKA,CAAGpE,IAAI,EAAEC,KAAK,EAAA;QAAA,OAAM;AACvBD,UAAAA,IAAI,EAAJA,IAAI;AACJC,UAAAA,KAAK,EAALA,KAAK;UACLE,WAAW,EAAEkC,cAAc,CAACrC,IAAI;SACjC;AAAA,MAAA;AAAE,KAAA,CACJ,CAAC,eACDqE,qBAAY,cACX9C,cAAA,CAAC+C,gBAAW,EAAA;MAACC,SAAS,EAAE,CAACC,gCAAsB,CAAE;MAAAzE,QAAA,EAC9C,CAAA+C,SAAS,KAAA,IAAA,IAATA,SAAS,uBAATA,SAAS,CAAEQ,MAAM,KAAIG,aAAa,CAAA,CAAA1B,qBAAA,GAACe,SAAS,CAACQ,MAAM,CAACtD,IAAI,cAAA+B,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAA,CAAuByB,OAAO;AAAC,KACxD,CAAC,EACdiB,QAAQ,CAACP,IACX,CAAC;AAAA,GACS,CAAC;AAEjB;;ACpEA,SAAA,YAAA,GAAA,qKAAA,IAAAQ,CAAA,EAAAC,CAAA,EAAAC,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAC,EAAAN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAC,CAAA,GAAAL,CAAA,IAAAA,CAAA,CAAAM,SAAA,YAAAC,SAAA,GAAAP,CAAA,GAAAO,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAK,mBAAA,CAAAH,CAAA,EAAA,SAAA,EAAA,UAAAV,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAI,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAX,CAAA,IAAA,EAAA,EAAAY,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAb,CAAA,EAAA,CAAA,EAAAgB,CAAA,EAAApB,CAAA,EAAAqB,CAAA,EAAAC,CAAA,EAAAN,CAAA,EAAAM,CAAA,CAAAC,IAAA,CAAAvB,CAAA,EAAA,CAAA,CAAA,EAAAsB,CAAA,WAAAA,CAAAA,CAAArB,CAAA,EAAAC,CAAA,WAAAM,CAAA,GAAAP,CAAA,EAAAQ,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAZ,CAAA,EAAAmB,CAAA,CAAAf,CAAA,GAAAF,CAAA,EAAAmB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAAC,EAAApB,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAK,CAAA,GAAAP,CAAA,EAAAU,CAAA,GAAAR,CAAA,EAAAH,CAAA,OAAAiB,CAAA,IAAAF,CAAA,IAAA,CAAAV,CAAA,IAAAL,CAAA,GAAAgB,CAAA,CAAAO,MAAA,EAAAvB,CAAA,UAAAK,CAAA,EAAAE,CAAA,GAAAS,CAAA,CAAAhB,CAAA,CAAA,EAAAqB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAQ,CAAA,GAAAjB,CAAA,KAAAN,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAmB,CAAA,KAAArB,CAAA,MAAAQ,CAAA,GAAAJ,CAAA,CAAA,CAAAC,CAAA,GAAAD,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAC,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAD,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAR,CAAA,IAAAQ,CAAA,CAAA,CAAA,CAAA,IAAAc,CAAA,KAAA,CAAAhB,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAoB,CAAA,GAAAd,CAAA,CAAA,CAAA,CAAA,KAAAC,CAAA,MAAAU,CAAA,CAAAC,CAAA,GAAAhB,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAI,CAAA,CAAA,CAAA,CAAA,IAAAc,CAAA,GAAAG,CAAA,KAAAnB,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,IAAAA,CAAA,GAAAqB,CAAA,MAAAjB,CAAA,CAAA,CAAA,CAAA,GAAAN,CAAA,EAAAM,CAAA,CAAA,CAAA,CAAA,GAAAJ,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAqB,CAAA,EAAAhB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAH,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAmB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAd,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,UAAAE,CAAA,EAAAW,CAAA,EAAAQ,CAAA,EAAA,EAAA,IAAAT,CAAA,GAAA,CAAA,EAAA,MAAAU,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAR,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAQ,CAAA,CAAA,EAAAhB,CAAA,GAAAQ,CAAA,EAAAL,CAAA,GAAAa,CAAA,EAAA,CAAAxB,CAAA,GAAAQ,CAAA,GAAA,CAAA,GAAAT,CAAA,GAAAY,CAAA,KAAA,CAAAM,CAAA,GAAA,EAAAV,CAAA,KAAAC,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAU,CAAA,CAAAf,CAAA,GAAA,EAAA,CAAA,EAAAkB,CAAA,CAAAb,CAAA,EAAAG,CAAA,CAAA,IAAAO,CAAA,CAAAf,CAAA,GAAAQ,CAAA,GAAAO,CAAA,CAAAC,CAAA,GAAAR,CAAA,aAAAI,CAAA,GAAA,CAAA,EAAAR,CAAA,EAAA,EAAA,IAAAC,CAAA,KAAAH,CAAA,GAAA,MAAA,CAAA,EAAAL,CAAA,GAAAO,CAAA,CAAAF,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,EAAAI,CAAA,CAAA,CAAA,EAAA,MAAAc,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAAzB,CAAA,CAAA2B,IAAA,EAAA,OAAA3B,CAAA,CAAA,CAAAW,CAAA,GAAAX,CAAA,CAAA4B,KAAA,EAAApB,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,KAAAA,CAAA,KAAAR,CAAA,GAAAO,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAP,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,CAAA,EAAAC,CAAA,SAAAG,CAAA,GAAAc,SAAA,CAAA,mCAAA,GAAApB,CAAA,GAAA,UAAA,CAAA,EAAAG,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAD,CAAA,GAAAR,CAAA,CAAA,CAAA,CAAA,MAAA,IAAA,CAAAC,CAAA,IAAAiB,CAAA,GAAAC,CAAA,CAAAf,CAAA,GAAA,CAAA,IAAAQ,CAAA,GAAAV,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,EAAAe,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAApB,CAAA,EAAA,EAAAO,CAAA,GAAAR,CAAA,EAAAS,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAX,CAAA,CAAA,CAAA,CAAA,SAAA,EAAAe,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAAa,KAAA,EAAA5B,CAAA,EAAA2B,IAAA,EAAAV,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAhB,CAAA,EAAAI,CAAA,EAAAE,CAAA,CAAA,EAAA,IAAA,CAAA,EAAAI,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAS,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAV,SAAAA,eAAAmB,iBAAAA,GAAA,CAAA,CAAA,CAAA,SAAAC,0BAAAA,GAAA,CAAA,CAAA,CAAA9B,CAAA,GAAAY,MAAA,CAAAmB,cAAA,CAAA,CAAA,IAAAvB,CAAA,GAAA,EAAA,CAAAL,CAAA,CAAA,GAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAW,mBAAA,CAAAd,CAAA,GAAA,EAAA,EAAAG,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAH,CAAA,GAAAW,CAAA,GAAAmB,0BAAA,CAAArB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAA,CAAA,CAAA,SAAAO,CAAAA,CAAAhB,CAAA,WAAAa,MAAA,CAAAoB,cAAA,GAAApB,MAAA,CAAAoB,cAAA,CAAAjC,CAAA,EAAA+B,0BAAA,CAAA,IAAA/B,CAAA,CAAAkC,SAAA,GAAAH,0BAAA,EAAAhB,mBAAA,CAAAf,CAAA,EAAAM,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAN,CAAA,CAAAU,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,CAAA,EAAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA8B,iBAAA,CAAApB,SAAA,GAAAqB,0BAAA,EAAAhB,mBAAA,CAAAH,CAAA,iBAAAmB,0BAAA,CAAA,EAAAhB,mBAAA,CAAAgB,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAApB,mBAAA,CAAAgB,0BAAA,EAAAzB,CAAA,EAAA,mBAAA,CAAA,EAAAS,mBAAA,CAAAH,CAAA,CAAA,EAAAG,mBAAA,CAAAH,CAAA,EAAAN,CAAA,EAAA,WAAA,CAAA,EAAAS,mBAAA,CAAAH,CAAA,EAAAR,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAW,mBAAA,CAAAH,CAAA,8DAAAwB,YAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAAC,CAAA,EAAA7B,CAAA,EAAA8B,CAAA,EAAAtB,CAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,SAAAD,mBAAAA,CAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,IAAAO,CAAA,GAAAK,MAAA,CAAA0B,cAAA,CAAA,CAAA,IAAA,EAAA/B,CAAA,uBAAAR,CAAA,EAAA,EAAAQ,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAAO,mBAAA,GAAA,SAAAyB,mBAAAxC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,EAAA,EAAA,SAAAK,CAAAA,CAAAJ,CAAA,EAAAE,CAAA,IAAAW,mBAAA,CAAAf,CAAA,EAAAE,CAAA,YAAAF,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAyC,OAAA,CAAAvC,CAAA,EAAAE,CAAA,EAAAJ,CAAA,SAAAE,CAAA,GAAAM,CAAA,GAAAA,CAAA,CAAAR,CAAA,EAAAE,CAAA,IAAA2B,KAAA,EAAAzB,CAAA,EAAAsC,UAAA,GAAAzC,CAAA,EAAA0C,YAAA,EAAA,CAAA1C,CAAA,EAAA2C,QAAA,EAAA,CAAA3C,CAAA,MAAAD,CAAA,CAAAE,CAAA,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,cAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAS,mBAAA,CAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,CAAA,CAAA,CAAA;AAGA,IAAM4C,WAAW,GAAG,SAAdA,WAAWA,CAAAzH,IAAA,EAA8B;AAAA,EAAA,IAAxBkC,OAAO,GAAAlC,IAAA,CAAPkC,OAAO;IAAEwF,QAAQ,GAAA1H,IAAA,CAAR0H,QAAQ;EACtC,IAAAC,qBAAA,GAAwCC,iCAAsB,CAAC1F,OAAO,EAAE,CACtEA,OAAO,CACR,CAAC;IAAA2F,sBAAA,GAAA9E,cAAA,CAAA4E,qBAAA,EAAA,CAAA,CAAA;AAFKG,IAAAA,YAAY,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAIpC,EAAA,IAAMnF,MAAM,gBAAA,YAAA;AAAA,IAAA,IAAAa,KAAA,GAAAyE,iBAAA,cAAAhB,YAAA,EAAA,CAAAE,CAAA,CAAG,SAAAe,OAAAA,CAAOzE,MAAM,EAAEC,IAAI,EAAA;MAAA,IAAAyE,WAAA,EAAAC,eAAA,EAAAC,MAAA,EAAAC,OAAA,EAAAC,EAAA;AAAA,MAAA,OAAAtB,YAAA,EAAA,CAAAC,CAAA,CAAA,UAAAsB,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA1C,CAAA,GAAA0C,QAAA,CAAAvD,CAAA;AAAA,UAAA,KAAA,CAAA;AAC1BkD,YAAAA,WAAW,GAAGJ,YAAY;YAChCC,eAAe,CAACS,YAAM,CAAChF,MAAM,CAACrD,KAAK,EAAE,CAAC,CAAC,CAAC;AAACoI,YAAAA,QAAA,CAAA1C,CAAA,GAAA,CAAA;AAAA0C,YAAAA,QAAA,CAAAvD,CAAA,GAAA,CAAA;AAAA,YAAA,OAGjC0C,QAAQ,CAAClE,MAAM,EAAEC,IAAI,CAAC;AAAA,UAAA,KAAA,CAAA;AAAA8E,YAAAA,QAAA,CAAAvD,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAuD,YAAAA,QAAA,CAAA1C,CAAA,GAAA,CAAA;YAAAyC,EAAA,GAAAC,QAAA,CAAAvC,CAAA;YAE5B+B,eAAe,CAACG,WAAW,CAAC;AACtBE,YAAAA,MAAM,GAAGK,UAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAAH,EAAO,CAAC;YACpDD,OAAO,GAAGD,MAAM,KAAA,CAAAD,eAAA,GAAI1C,MAAM,CAACiD,MAAM,CAACN,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAD,eAAA,uBAAxBA,eAAA,CAA2B,CAAC,CAAC,CAAA;AACvD,YAAA,IAAIE,OAAO,EAAEM,MAAM,CAACC,KAAK,CAACP,OAAO,CAAC;AAAC,UAAA,KAAA,CAAA;YAAA,OAAAE,QAAA,CAAAtC,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAgC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAAA,CAEtC,CAAA,CAAA;AAAA,IAAA,OAAA,SAZKvF,MAAMA,CAAAmG,EAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAvF,KAAA,CAAAwF,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAYX;EAED,OAAO;AAAE9G,IAAAA,OAAO,EAAE4F,YAAY;AAAEpF,IAAAA,MAAM,EAANA;GAAQ;AAC1C;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "4.0.86",
3
+ "version": "4.0.87",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -65,6 +65,7 @@
65
65
  "@bigbinary/neeto-time-zones": "0.5.5",
66
66
  "@bigbinary/neetoui": "8.2.13",
67
67
  "@dnd-kit/core": "^6.2.0",
68
+ "@dnd-kit/modifiers": "^9.0.0",
68
69
  "@dnd-kit/sortable": "^10.0.0",
69
70
  "@eslint/compat": "^1.2.8",
70
71
  "@eslint/eslintrc": "^3.3.1",
@@ -229,6 +230,7 @@
229
230
  "@bigbinary/neeto-time-zones": "0.5.5",
230
231
  "@bigbinary/neetoui": "8.2.13",
231
232
  "@dnd-kit/core": "^6.2.0",
233
+ "@dnd-kit/modifiers": "^9.0.0",
232
234
  "@dnd-kit/sortable": "^10.0.0",
233
235
  "@fullcalendar/core": "^6.1.8",
234
236
  "@fullcalendar/daygrid": "^6.1.8",
@@ -0,0 +1,168 @@
1
+ interface DndTableProps<RowData = any> {
2
+ /**
3
+ * The data for the rows of the table.
4
+ */
5
+ rowData: RowData[];
6
+ /**
7
+ * The data for the columns of the table.
8
+ */
9
+ columnData: any[];
10
+ /**
11
+ * The index of the column to display the overlay for.
12
+ */
13
+ overlayColumnIndex?: number;
14
+ /**
15
+ * A function that determines if a row is droppable based on checks on the data.
16
+ */
17
+ isRowDroppable?: (data: RowData) => boolean;
18
+ /**
19
+ * A function that is called when a row is dropped.
20
+ */
21
+ onDrop: (active: RowData, over: RowData) => void;
22
+ [key: string]: any;
23
+ }
24
+ interface UseDndTableProps<RowData = any> {
25
+ rowData: RowData[];
26
+ onUpdate: (active: RowData, over: RowData) => void;
27
+ }
28
+ declare const useDndTable: (props: UseDndTableProps<RowData>) => {
29
+ rowData: RowData[];
30
+ onDrop: (active: RowData, over: RowData) => void;
31
+ };
32
+ /**
33
+ *
34
+ * The DndTable component is a drag-and-drop enabled table that allows users to
35
+ *
36
+ * reorder rows by dragging and dropping them. It provides visual feedback during
37
+ *
38
+ * drag operations and supports custom overlay rendering.
39
+ *
40
+ * The main table component with drag-and-drop functionality built on top of the
41
+ *
42
+ * neetoui Table component.
43
+ *
44
+ * A custom hook that provides state management and error handling for
45
+ *
46
+ * drag-and-drop operations. It automatically handles optimistic updates and
47
+ *
48
+ * rollback on errors.
49
+ *
50
+ * @example
51
+ *
52
+ * import DndTable, { useDndTable } from "@bigbinary/neeto-molecules/DndTable";
53
+ *
54
+ * const MyComponent = () => {
55
+ * const [data, setData] = useState([
56
+ * { id: 1, name: "John Doe", email: "john.doe@example.com" },
57
+ * { id: 2, name: "Jane Doe", email: "jane.doe@example.com" },
58
+ * { id: 3, name: "Alice Smith", email: "alice.smith@example.com" },
59
+ * { id: 4, name: "Bob Johnson", email: "bob.johnson@example.com" },
60
+ * { id: 5, name: "Carol Williams", email: "carol.williams@example.com" },
61
+ * { id: 6, name: "David Brown", email: "david.brown@example.com" },
62
+ * { id: 7, name: "Emma Davis", email: "emma.davis@example.com" },
63
+ * { id: 8, name: "Frank Miller", email: "frank.miller@example.com" },
64
+ * { id: 9, name: "Grace Wilson", email: "grace.wilson@example.com" },
65
+ * { id: 10, name: "Henry Moore", email: "henry.moore@example.com" },
66
+ * { id: 11, name: "Ivy Taylor", email: "ivy.taylor@example.com" },
67
+ * { id: 12, name: "Jack Anderson", email: "jack.anderson@example.com" },
68
+ * { id: 13, name: "Kate Thomas", email: "kate.thomas@example.com" },
69
+ * { id: 14, name: "Liam Jackson", email: "liam.jackson@example.com" },
70
+ * { id: 15, name: "Maya White", email: "maya.white@example.com" },
71
+ * { id: 16, name: "Noah Harris", email: "noah.harris@example.com" },
72
+ * { id: 17, name: "Olivia Martin", email: "olivia.martin@example.com" },
73
+ * { id: 18, name: "Paul Thompson", email: "paul.thompson@example.com" },
74
+ * { id: 19, name: "Quinn Garcia", email: "quinn.garcia@example.com" },
75
+ * { id: 20, name: "Rachel Martinez", email: "rachel.martinez@example.com" },
76
+ * { id: 21, name: "Sam Robinson", email: "sam.robinson@example.com" },
77
+ * { id: 22, name: "Tina Clark", email: "tina.clark@example.com" },
78
+ * { id: 23, name: "Uma Rodriguez", email: "uma.rodriguez@example.com" },
79
+ * { id: 24, name: "Victor Lewis", email: "victor.lewis@example.com" },
80
+ * { id: 25, name: "Wendy Lee", email: "wendy.lee@example.com" },
81
+ * { id: 26, name: "Xavier Walker", email: "xavier.walker@example.com" },
82
+ * { id: 27, name: "Yara Hall", email: "yara.hall@example.com" },
83
+ * { id: 28, name: "Zoe Allen", email: "zoe.allen@example.com" },
84
+ * { id: 29, name: "Aaron Young", email: "aaron.young@example.com" },
85
+ * { id: 30, name: "Bella King", email: "bella.king@example.com" },
86
+ * ]);
87
+ *
88
+ * const { rowData, onDrop } = useDndTable({
89
+ * rowData: data,
90
+ * onUpdate: async (active, over) => {
91
+ * // Make API call to update order, the item is automatically removed from the local state by the hook.
92
+ * await updateRowOrder(active.id, over.id);
93
+ * },
94
+ * });
95
+ *
96
+ * const columnData = [
97
+ * { key: "name", dataIndex: "name", title: "Name" },
98
+ * { key: "email", dataIndex: "email", title: "Email" },
99
+ * ];
100
+ *
101
+ * return (
102
+ * <DndTable
103
+ * rowData={rowData}
104
+ * columnData={columnData}
105
+ * onDrop={onDrop}
106
+ * isRowDroppable={row => row.status !== "archived"}
107
+ * />
108
+ * );
109
+ * };
110
+ * @endexample
111
+ * You can customize the drag overlay by providing a render function in your
112
+ *
113
+ * column configuration:
114
+ *
115
+ * @example
116
+ *
117
+ * const columnData = [
118
+ * {
119
+ * key: "name",
120
+ * dataIndex: "name",
121
+ * title: "Name",
122
+ * render: (value, record) => (
123
+ * <div className="flex items-center">
124
+ * <Avatar name={record.name} />
125
+ * <span className="ml-2">{value}</span>
126
+ * </div>
127
+ * ),
128
+ * },
129
+ * { key: "email", dataIndex: "email", title: "Email" },
130
+ * ];
131
+ *
132
+ * <DndTable
133
+ * rowData={rowData}
134
+ * columnData={columnData}
135
+ * overlayColumnIndex={0} // Use the first column for overlay
136
+ * onDrop={onDrop}
137
+ * />;
138
+ * @endexample
139
+ * You can make certain rows non-droppable based on their data:
140
+ *
141
+ * @example
142
+ *
143
+ * <DndTable
144
+ * rowData={rowData}
145
+ * columnData={columnData}
146
+ * onDrop={onDrop}
147
+ * isRowDroppable={row => {
148
+ * // Only allow dropping if row is not locked
149
+ * return !row.isLocked;
150
+ * }}
151
+ * />
152
+ * @endexample
153
+ * The useDndTable hook automatically handles errors and shows toast
154
+ *
155
+ * notifications:
156
+ *
157
+ * @example
158
+ *
159
+ * const { rowData, onDrop } = useDndTable({
160
+ * rowData: data,
161
+ * onUpdate: (active, over) => api.updateOrder(active.id, over.id);
162
+ * // Note: Changes to local state are automatically rolled back by the hook on error.
163
+ * });
164
+ * @endexample
165
+ */
166
+ declare const DndTable: <RowData = any>(props: DndTableProps<RowData>) => JSX.Element | null;
167
+
168
+ export { DndTable as default, useDndTable };