@bigbinary/neeto-molecules 5.2.2 → 5.2.4
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/dist/cjs/v2/DndTable.js +265 -34
- package/dist/cjs/v2/DndTable.js.map +1 -1
- package/dist/v2/DndTable.js +265 -34
- package/dist/v2/DndTable.js.map +1 -1
- package/package.json +10 -10
- package/src/translations/ar.json +5 -1
- package/src/translations/bg.json +5 -1
- package/src/translations/ca.json +5 -1
- package/src/translations/cs.json +5 -1
- package/src/translations/da.json +5 -1
- package/src/translations/de.json +5 -1
- package/src/translations/es-MX.json +5 -1
- package/src/translations/es.json +5 -1
- package/src/translations/et.json +5 -1
- package/src/translations/fi.json +5 -1
- package/src/translations/fil.json +5 -1
- package/src/translations/fr.json +5 -1
- package/src/translations/he.json +4 -0
- package/src/translations/hi.json +5 -1
- package/src/translations/hr.json +5 -1
- package/src/translations/hu.json +4 -0
- package/src/translations/id.json +5 -1
- package/src/translations/it.json +5 -1
- package/src/translations/ja.json +5 -1
- package/src/translations/ko.json +5 -1
- package/src/translations/nl.json +5 -1
- package/src/translations/pl.json +5 -1
- package/src/translations/pt-BR.json +5 -1
- package/src/translations/pt.json +5 -1
- package/src/translations/ro.json +5 -1
- package/src/translations/ru.json +5 -1
- package/src/translations/sk.json +5 -1
- package/src/translations/sl.json +5 -1
- package/src/translations/sv.json +5 -1
- package/src/translations/th.json +5 -1
- package/src/translations/tr.json +5 -1
- package/src/translations/uk.json +5 -1
- package/src/translations/vi.json +5 -1
- package/src/translations/zh-CN.json +5 -1
- package/src/translations/zh-TW.json +5 -1
package/dist/v2/DndTable.js
CHANGED
|
@@ -1,20 +1,125 @@
|
|
|
1
1
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
2
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import { useState, createElement } from 'react';
|
|
6
6
|
import { DataTable, Toastr } from '@bigbinary/neeto-atoms';
|
|
7
7
|
import { TableBody, TableCell, Checkbox } from '@bigbinary/neeto-atoms/primitives';
|
|
8
8
|
import { useDraggable, useDroppable, useSensors, useSensor, PointerSensor, DndContext, DragOverlay } from '@dnd-kit/core';
|
|
9
9
|
import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
|
|
10
|
+
import classnames from 'classnames';
|
|
10
11
|
import { noop } from '@bigbinary/neeto-cist';
|
|
11
12
|
import { T, path, remove } from 'ramda';
|
|
12
13
|
import { createPortal } from 'react-dom';
|
|
13
|
-
import classnames from 'classnames';
|
|
14
14
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
15
15
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
16
16
|
import useStateWithDependency from '@bigbinary/neeto-commons-frontend/v2/react-utils/useStateWithDependency';
|
|
17
17
|
|
|
18
|
+
// @tanstack/react-table's default column size, used when a column declares no
|
|
19
|
+
// width — matches what DataTable falls back to so freeze offsets line up.
|
|
20
|
+
var DEFAULT_COLUMN_SIZE = 150;
|
|
21
|
+
|
|
22
|
+
// Width of DataTable's built-in selection column; the checkbox is frozen ahead
|
|
23
|
+
// of user-frozen columns, so their sticky offset starts after this width.
|
|
24
|
+
var SELECTION_COLUMN_SIZE = 56;
|
|
25
|
+
|
|
26
|
+
// Sticky styling DataTable applies to its own frozen body cells; replicated
|
|
27
|
+
// here because the custom body bypasses DataTable's per-cell rendering.
|
|
28
|
+
var PINNED_CELL_CLASS = "sticky z-10 bg-background transition-colors group-hover:bg-muted group-data-[state=selected]:bg-row-selected";
|
|
29
|
+
|
|
30
|
+
// Right-edge shadow on the last frozen column, revealed once the scroll
|
|
31
|
+
// container reports horizontal scroll (DataTable owns the scroll group).
|
|
32
|
+
var LAST_PINNED_SHADOW_CLASS = "after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6";
|
|
33
|
+
|
|
34
|
+
var getColumnId = function getColumnId(col) {
|
|
35
|
+
return col.key || col.dataIndex;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Build the body's left-to-right cell order, mirroring DataTable's
|
|
39
|
+
// row.getVisibleCells(): left-pinned (frozen) columns first in pin order, then
|
|
40
|
+
// the "center" group — the selection cell followed by the unpinned columns in
|
|
41
|
+
// their original order. Each pinned descriptor carries the sticky offset and
|
|
42
|
+
// size DataTable applies to its own frozen cells so the custom body stays
|
|
43
|
+
// aligned with the (DataTable-rendered) header.
|
|
44
|
+
//
|
|
45
|
+
// Freeze only ever pins to the left: the header menu's toggle manages
|
|
46
|
+
// columnPinning.left exclusively, so right pinning is intentionally unhandled.
|
|
47
|
+
//
|
|
48
|
+
// When freeze is enabled, DataTable force-pins the selection column ahead of
|
|
49
|
+
// everything (resolvedColumnPinning prepends "_selection" to left), so the
|
|
50
|
+
// checkbox stays frozen at the far left and user-frozen columns start after its
|
|
51
|
+
// width. That is replicated here — otherwise header and body drift apart.
|
|
52
|
+
var getBodyColumnLayout = function getBodyColumnLayout(_ref) {
|
|
53
|
+
var _columnPinning$left;
|
|
54
|
+
var columnData = _ref.columnData,
|
|
55
|
+
columnPinning = _ref.columnPinning,
|
|
56
|
+
_ref$columnSizing = _ref.columnSizing,
|
|
57
|
+
columnSizing = _ref$columnSizing === void 0 ? {} : _ref$columnSizing,
|
|
58
|
+
_ref$rowSelection = _ref.rowSelection,
|
|
59
|
+
rowSelection = _ref$rowSelection === void 0 ? false : _ref$rowSelection,
|
|
60
|
+
_ref$enableColumnFree = _ref.enableColumnFreeze,
|
|
61
|
+
enableColumnFreeze = _ref$enableColumnFree === void 0 ? false : _ref$enableColumnFree;
|
|
62
|
+
var leftIds = (_columnPinning$left = columnPinning === null || columnPinning === void 0 ? void 0 : columnPinning.left) !== null && _columnPinning$left !== void 0 ? _columnPinning$left : [];
|
|
63
|
+
var leftSet = new Set(leftIds);
|
|
64
|
+
var sizeOf = function sizeOf(col) {
|
|
65
|
+
var _ref2, _columnSizing$getColu;
|
|
66
|
+
return (_ref2 = (_columnSizing$getColu = columnSizing[getColumnId(col)]) !== null && _columnSizing$getColu !== void 0 ? _columnSizing$getColu : col.width) !== null && _ref2 !== void 0 ? _ref2 : DEFAULT_COLUMN_SIZE;
|
|
67
|
+
};
|
|
68
|
+
var columnById = function columnById(id) {
|
|
69
|
+
return columnData.find(function (col) {
|
|
70
|
+
return getColumnId(col) === id;
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// The selection column is frozen alongside the data columns only while the
|
|
75
|
+
// freeze feature is on; without it the checkbox is an ordinary leading cell.
|
|
76
|
+
var isSelectionPinned = rowSelection && enableColumnFreeze;
|
|
77
|
+
var leftPinned = [];
|
|
78
|
+
var offset = 0;
|
|
79
|
+
if (isSelectionPinned) {
|
|
80
|
+
leftPinned.push({
|
|
81
|
+
type: "selection",
|
|
82
|
+
pinned: "left",
|
|
83
|
+
size: SELECTION_COLUMN_SIZE,
|
|
84
|
+
left: 0
|
|
85
|
+
});
|
|
86
|
+
offset = SELECTION_COLUMN_SIZE;
|
|
87
|
+
}
|
|
88
|
+
leftIds.forEach(function (id) {
|
|
89
|
+
var col = columnById(id);
|
|
90
|
+
if (!col) return;
|
|
91
|
+
var size = sizeOf(col);
|
|
92
|
+
leftPinned.push({
|
|
93
|
+
type: "data",
|
|
94
|
+
col: col,
|
|
95
|
+
pinned: "left",
|
|
96
|
+
size: size,
|
|
97
|
+
left: offset
|
|
98
|
+
});
|
|
99
|
+
offset += size;
|
|
100
|
+
});
|
|
101
|
+
if (leftPinned.length) {
|
|
102
|
+
leftPinned[leftPinned.length - 1].isLastPinned = true;
|
|
103
|
+
}
|
|
104
|
+
var center = [];
|
|
105
|
+
if (rowSelection && !isSelectionPinned) {
|
|
106
|
+
center.push({
|
|
107
|
+
type: "selection",
|
|
108
|
+
pinned: false
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
columnData.forEach(function (col) {
|
|
112
|
+
if (!leftSet.has(getColumnId(col))) {
|
|
113
|
+
center.push({
|
|
114
|
+
type: "data",
|
|
115
|
+
col: col,
|
|
116
|
+
pinned: false
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return [].concat(leftPinned, center);
|
|
121
|
+
};
|
|
122
|
+
|
|
18
123
|
var _excluded$1 = ["children", "data", "index", "className", "isDroppable"];
|
|
19
124
|
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; }
|
|
20
125
|
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; }
|
|
@@ -59,7 +164,7 @@ var Row = function Row(_ref) {
|
|
|
59
164
|
}));
|
|
60
165
|
};
|
|
61
166
|
|
|
62
|
-
var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop", "rowSelection", "selectedRowKeys", "onRowSelect", "currentPageNumber", "paginationProps", "childrenColumnName"];
|
|
167
|
+
var _excluded = ["rowData", "columnData", "overlayColumnIndex", "isRowDroppable", "onDrop", "rowSelection", "selectedRowKeys", "onRowSelect", "enableSorting", "sorting", "onSort", "enableColumnFreeze", "columnPinning", "onColumnPinningChange", "currentPageNumber", "paginationProps", "childrenColumnName"];
|
|
63
168
|
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; }
|
|
64
169
|
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; }
|
|
65
170
|
var sensorConfig = {
|
|
@@ -76,16 +181,31 @@ var buildColumns = function buildColumns(columnData) {
|
|
|
76
181
|
var key = _ref2.key,
|
|
77
182
|
dataIndex = _ref2.dataIndex,
|
|
78
183
|
title = _ref2.title,
|
|
79
|
-
width = _ref2.width
|
|
80
|
-
|
|
184
|
+
width = _ref2.width,
|
|
185
|
+
sorter = _ref2.sorter,
|
|
186
|
+
enableSorting = _ref2.enableSorting;
|
|
187
|
+
return _objectSpread(_objectSpread({
|
|
81
188
|
id: key || dataIndex,
|
|
82
189
|
accessorKey: dataIndex,
|
|
83
190
|
header: title
|
|
84
191
|
}, width ? {
|
|
85
192
|
size: width
|
|
193
|
+
} : {}), sorter !== undefined || enableSorting !== undefined ? {
|
|
194
|
+
enableSorting: enableSorting !== null && enableSorting !== void 0 ? enableSorting : Boolean(sorter)
|
|
86
195
|
} : {});
|
|
87
196
|
});
|
|
88
197
|
};
|
|
198
|
+
|
|
199
|
+
// DataTable's SortingState is `[{ id, desc }]`; surface the leading sort to
|
|
200
|
+
// consumers in the friendlier { field, order } shape, or null when cleared.
|
|
201
|
+
var toSortInfo = function toSortInfo(sortingState) {
|
|
202
|
+
var _sortingState = _slicedToArray(sortingState, 1),
|
|
203
|
+
sort = _sortingState[0];
|
|
204
|
+
return sort ? {
|
|
205
|
+
field: sort.id,
|
|
206
|
+
order: sort.desc ? "descend" : "ascend"
|
|
207
|
+
} : null;
|
|
208
|
+
};
|
|
89
209
|
var DndTable = function DndTable(_ref3) {
|
|
90
210
|
var _dragState$active$dat;
|
|
91
211
|
var rowData = _ref3.rowData,
|
|
@@ -102,6 +222,16 @@ var DndTable = function DndTable(_ref3) {
|
|
|
102
222
|
selectedRowKeys = _ref3$selectedRowKeys === void 0 ? [] : _ref3$selectedRowKeys,
|
|
103
223
|
_ref3$onRowSelect = _ref3.onRowSelect,
|
|
104
224
|
onRowSelect = _ref3$onRowSelect === void 0 ? noop : _ref3$onRowSelect,
|
|
225
|
+
_ref3$enableSorting = _ref3.enableSorting,
|
|
226
|
+
enableSorting = _ref3$enableSorting === void 0 ? false : _ref3$enableSorting,
|
|
227
|
+
sorting = _ref3.sorting,
|
|
228
|
+
_ref3$onSort = _ref3.onSort,
|
|
229
|
+
onSort = _ref3$onSort === void 0 ? noop : _ref3$onSort,
|
|
230
|
+
_ref3$enableColumnFre = _ref3.enableColumnFreeze,
|
|
231
|
+
enableColumnFreeze = _ref3$enableColumnFre === void 0 ? false : _ref3$enableColumnFre,
|
|
232
|
+
columnPinning = _ref3.columnPinning,
|
|
233
|
+
_ref3$onColumnPinning = _ref3.onColumnPinningChange,
|
|
234
|
+
onColumnPinningChange = _ref3$onColumnPinning === void 0 ? noop : _ref3$onColumnPinning,
|
|
105
235
|
currentPageNumber = _ref3.currentPageNumber,
|
|
106
236
|
paginationProps = _ref3.paginationProps;
|
|
107
237
|
_ref3.childrenColumnName;
|
|
@@ -112,6 +242,48 @@ var DndTable = function DndTable(_ref3) {
|
|
|
112
242
|
setDragState = _useState2[1];
|
|
113
243
|
var sensors = useSensors(useSensor(PointerSensor, sensorConfig));
|
|
114
244
|
|
|
245
|
+
// Sorting is controlled when a `sorting` prop is supplied, otherwise tracked
|
|
246
|
+
// here so the header arrows stay in sync without consumer wiring.
|
|
247
|
+
var isSortingControlled = sorting !== undefined;
|
|
248
|
+
var _useState3 = useState([]),
|
|
249
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
250
|
+
uncontrolledSorting = _useState4[0],
|
|
251
|
+
setUncontrolledSorting = _useState4[1];
|
|
252
|
+
var sortingState = isSortingControlled ? sorting : uncontrolledSorting;
|
|
253
|
+
var applySorting = function applySorting(updater) {
|
|
254
|
+
var nextSorting = typeof updater === "function" ? updater(sortingState) : updater;
|
|
255
|
+
if (!isSortingControlled) setUncontrolledSorting(nextSorting);
|
|
256
|
+
onSort(toSortInfo(nextSorting));
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
// Freeze pins columns to the left. Controlled when a `columnPinning` prop is
|
|
260
|
+
// supplied, otherwise tracked here so the freeze menu works standalone.
|
|
261
|
+
var isPinningControlled = columnPinning !== undefined;
|
|
262
|
+
var _useState5 = useState({
|
|
263
|
+
left: []
|
|
264
|
+
}),
|
|
265
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
266
|
+
uncontrolledPinning = _useState6[0],
|
|
267
|
+
setUncontrolledPinning = _useState6[1];
|
|
268
|
+
var pinningState = isPinningControlled ? columnPinning : uncontrolledPinning;
|
|
269
|
+
var applyPinning = function applyPinning(updater) {
|
|
270
|
+
var nextPinning = typeof updater === "function" ? updater(pinningState) : updater;
|
|
271
|
+
if (!isPinningControlled) setUncontrolledPinning(nextPinning);
|
|
272
|
+
onColumnPinningChange(nextPinning);
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
// Column sizing is owned here so frozen-cell offsets in the custom body track
|
|
276
|
+
// live column resizes (DataTable would otherwise keep it internal).
|
|
277
|
+
var _useState7 = useState({}),
|
|
278
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
279
|
+
columnSizing = _useState8[0],
|
|
280
|
+
setColumnSizing = _useState8[1];
|
|
281
|
+
var onColumnSizingChange = function onColumnSizingChange(updater) {
|
|
282
|
+
return setColumnSizing(function (prev) {
|
|
283
|
+
return typeof updater === "function" ? updater(prev) : updater;
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
|
|
115
287
|
// getRowId stringifies row ids, but consumers may pass numeric selection
|
|
116
288
|
// keys; normalise so selection state matches in both DataTable and the body.
|
|
117
289
|
var selectedKeys = selectedRowKeys.map(String);
|
|
@@ -121,6 +293,10 @@ var DndTable = function DndTable(_ref3) {
|
|
|
121
293
|
over = _ref4.over;
|
|
122
294
|
setDragState(null);
|
|
123
295
|
if (!active || !over) return;
|
|
296
|
+
|
|
297
|
+
// Last action wins: a manual reorder supersedes any active sort, so clear
|
|
298
|
+
// it before persisting the drop, leaving the table in manual order.
|
|
299
|
+
if (sortingState.length) applySorting([]);
|
|
124
300
|
onDrop(active.data.current, over.data.current);
|
|
125
301
|
};
|
|
126
302
|
var renderOverlay = function renderOverlay(data) {
|
|
@@ -147,6 +323,69 @@ var DndTable = function DndTable(_ref3) {
|
|
|
147
323
|
return nextKeySet.has(getRowKey(row));
|
|
148
324
|
}));
|
|
149
325
|
};
|
|
326
|
+
|
|
327
|
+
// Cell order mirrors DataTable's header: frozen columns reorder to the left,
|
|
328
|
+
// so the body must reorder its cells the same way to stay column-aligned.
|
|
329
|
+
var columnLayout = getBodyColumnLayout({
|
|
330
|
+
columnData: columnData,
|
|
331
|
+
columnPinning: pinningState,
|
|
332
|
+
columnSizing: columnSizing,
|
|
333
|
+
rowSelection: rowSelection,
|
|
334
|
+
enableColumnFreeze: enableColumnFreeze
|
|
335
|
+
});
|
|
336
|
+
var pinnedCellProps = function pinnedCellProps(_ref5) {
|
|
337
|
+
var pinned = _ref5.pinned,
|
|
338
|
+
size = _ref5.size,
|
|
339
|
+
left = _ref5.left,
|
|
340
|
+
isLastPinned = _ref5.isLastPinned;
|
|
341
|
+
var isPinned = pinned === "left";
|
|
342
|
+
return {
|
|
343
|
+
className: classnames(_defineProperty(_defineProperty({}, PINNED_CELL_CLASS, isPinned), LAST_PINNED_SHADOW_CLASS, isPinned && isLastPinned)),
|
|
344
|
+
style: isPinned ? {
|
|
345
|
+
width: size,
|
|
346
|
+
minWidth: size,
|
|
347
|
+
maxWidth: size,
|
|
348
|
+
left: left
|
|
349
|
+
} : undefined
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
var renderSelectionCell = function renderSelectionCell(descriptor, rowItem) {
|
|
353
|
+
var rowKey = getRowKey(rowItem);
|
|
354
|
+
var _pinnedCellProps = pinnedCellProps(descriptor),
|
|
355
|
+
className = _pinnedCellProps.className,
|
|
356
|
+
style = _pinnedCellProps.style;
|
|
357
|
+
return (
|
|
358
|
+
/*#__PURE__*/
|
|
359
|
+
// Match DataTable's selection header cell padding (it forces !pe-2 while
|
|
360
|
+
// TableCell zeroes pe for checkbox cells) so the body checkbox lines up
|
|
361
|
+
// with the header select-all checkbox.
|
|
362
|
+
createElement(TableCell, {
|
|
363
|
+
style: style,
|
|
364
|
+
className: classnames("!pe-2", className),
|
|
365
|
+
key: "_selection",
|
|
366
|
+
onClick: function onClick(e) {
|
|
367
|
+
return e.stopPropagation();
|
|
368
|
+
}
|
|
369
|
+
}, /*#__PURE__*/jsx("div", {
|
|
370
|
+
className: "flex w-full items-center justify-center",
|
|
371
|
+
children: /*#__PURE__*/jsx(Checkbox, {
|
|
372
|
+
checked: selectedKeySet.has(rowKey),
|
|
373
|
+
onCheckedChange: function onCheckedChange() {
|
|
374
|
+
return toggleRowSelection(rowItem);
|
|
375
|
+
}
|
|
376
|
+
})
|
|
377
|
+
}))
|
|
378
|
+
);
|
|
379
|
+
};
|
|
380
|
+
var renderDataCell = function renderDataCell(descriptor, rowItem, index) {
|
|
381
|
+
var col = descriptor.col;
|
|
382
|
+
return /*#__PURE__*/jsx(TableCell, _objectSpread(_objectSpread({}, pinnedCellProps(descriptor)), {}, {
|
|
383
|
+
children: col.render ?
|
|
384
|
+
// Match the antd/v1 render signature (value, record, index); the
|
|
385
|
+
// v1 body rendered through neetoui Table, which passed the row index.
|
|
386
|
+
col.render(rowItem[col.dataIndex], rowItem, index) : rowItem[col.dataIndex]
|
|
387
|
+
}), getColumnId(col));
|
|
388
|
+
};
|
|
150
389
|
var renderBody = function renderBody() {
|
|
151
390
|
return /*#__PURE__*/jsx(TableBody, {
|
|
152
391
|
children: rowData.map(function (rowItem, index) {
|
|
@@ -157,29 +396,8 @@ var DndTable = function DndTable(_ref3) {
|
|
|
157
396
|
"data-row-key": rowKey,
|
|
158
397
|
isDroppable: isRowDroppable(rowItem),
|
|
159
398
|
key: rowKey
|
|
160
|
-
},
|
|
161
|
-
|
|
162
|
-
// Match DataTable's selection header cell padding (it forces
|
|
163
|
-
// !pe-2 while TableCell zeroes pe for checkbox cells) so the
|
|
164
|
-
// body checkbox lines up with the header select-all checkbox.
|
|
165
|
-
jsx(TableCell, {
|
|
166
|
-
className: "!pe-2",
|
|
167
|
-
onClick: function onClick(e) {
|
|
168
|
-
return e.stopPropagation();
|
|
169
|
-
},
|
|
170
|
-
children: /*#__PURE__*/jsx("div", {
|
|
171
|
-
className: "flex w-full items-center justify-center",
|
|
172
|
-
children: /*#__PURE__*/jsx(Checkbox, {
|
|
173
|
-
checked: selectedKeySet.has(rowKey),
|
|
174
|
-
onCheckedChange: function onCheckedChange() {
|
|
175
|
-
return toggleRowSelection(rowItem);
|
|
176
|
-
}
|
|
177
|
-
})
|
|
178
|
-
})
|
|
179
|
-
}), columnData.map(function (col) {
|
|
180
|
-
return /*#__PURE__*/jsx(TableCell, {
|
|
181
|
-
children: col.render ? col.render(rowItem[col.dataIndex], rowItem) : rowItem[col.dataIndex]
|
|
182
|
-
}, col.key || col.dataIndex);
|
|
399
|
+
}, columnLayout.map(function (descriptor) {
|
|
400
|
+
return descriptor.type === "selection" ? renderSelectionCell(descriptor, rowItem) : renderDataCell(descriptor, rowItem, index);
|
|
183
401
|
}));
|
|
184
402
|
})
|
|
185
403
|
});
|
|
@@ -191,12 +409,25 @@ var DndTable = function DndTable(_ref3) {
|
|
|
191
409
|
renderBody: renderBody,
|
|
192
410
|
enableColumnResize: true,
|
|
193
411
|
enableURLPagination: true,
|
|
194
|
-
|
|
195
|
-
//
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
//
|
|
199
|
-
|
|
412
|
+
// The header three-dot menu surfaces the sort and freeze controls, so turn
|
|
413
|
+
// it on when either is enabled. No hide/reorder handlers are passed, so the
|
|
414
|
+
// menu shows only those actions.
|
|
415
|
+
enableHeaderMenu: enableSorting || enableColumnFreeze,
|
|
416
|
+
// Sorting is driven in controlled mode and URL sync is left off: DataTable's
|
|
417
|
+
// URL params (sort_by/order_by) don't match the app's (sortBy/orderBy), so
|
|
418
|
+
// consumers own ordering via onSort (typically a sorted re-fetch of rowData).
|
|
419
|
+
enableSorting: enableSorting,
|
|
420
|
+
enableURLSort: false,
|
|
421
|
+
sorting: sortingState,
|
|
422
|
+
onSortingChange: applySorting,
|
|
423
|
+
// Freeze: DataTable renders the frozen header; the custom body replicates
|
|
424
|
+
// the sticky cell styling via columnLayout. columnSizing is controlled so
|
|
425
|
+
// those body offsets stay correct as columns are resized.
|
|
426
|
+
enableColumnFreeze: enableColumnFreeze,
|
|
427
|
+
columnPinning: pinningState,
|
|
428
|
+
onColumnPinningChange: applyPinning,
|
|
429
|
+
columnSizing: columnSizing,
|
|
430
|
+
onColumnSizingChange: onColumnSizingChange,
|
|
200
431
|
enableRowSelection: rowSelection,
|
|
201
432
|
selectedRowKeys: selectedKeys,
|
|
202
433
|
onRowSelect: onRowSelect,
|
package/dist/v2/DndTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndTable.js","sources":["../../src/v2/components/DndTable/Row.jsx","../../src/v2/components/DndTable/Table.jsx","../../src/v2/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 \"border-border hover:bg-muted/50 data-[state=selected]:bg-row-selected w-full min-w-0 cursor-move border-b transition-colors\": true,\n \"bg-muted opacity-50\": isDragging,\n \"bg-primary/10 shadow-sm\": 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 { DataTable } from \"@bigbinary/neeto-atoms\";\nimport {\n Checkbox,\n TableBody,\n TableCell,\n} from \"@bigbinary/neeto-atoms/primitives\";\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 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 getRowKey = (row, index) => String(row.id ?? row.key ?? index);\n\nconst buildColumns = columnData =>\n columnData.map(({ key, dataIndex, title, width }) => ({\n id: key || dataIndex,\n accessorKey: dataIndex,\n header: title,\n ...(width ? { size: width } : {}),\n }));\n\nconst DndTable = ({\n rowData,\n columnData,\n overlayColumnIndex = 0,\n isRowDroppable = T,\n onDrop = noop,\n rowSelection = false,\n selectedRowKeys = [],\n onRowSelect = noop,\n currentPageNumber,\n paginationProps,\n // antd tree-data prop carried over from v1; DataTable has no tree rows, so\n // pull it out of ...rest instead of forwarding it.\n childrenColumnName: _childrenColumnName,\n ...rest\n}) => {\n const [dragState, setDragState] = useState(null);\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n // getRowId stringifies row ids, but consumers may pass numeric selection\n // keys; normalise so selection state matches in both DataTable and the body.\n const selectedKeys = selectedRowKeys.map(String);\n const selectedKeySet = new Set(selectedKeys);\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 cellValue = data[colData.dataIndex];\n\n return (\n <div className=\"flex px-20\">\n <div className=\"bg-background rounded-lg px-4\">\n {colData.render ? colData.render(cellValue, data) : cellValue}\n </div>\n </div>\n );\n };\n\n const toggleRowSelection = rowItem => {\n const rowKey = getRowKey(rowItem);\n const nextKeys = selectedKeySet.has(rowKey)\n ? selectedKeys.filter(key => key !== rowKey)\n : [...selectedKeys, rowKey];\n const nextKeySet = new Set(nextKeys);\n\n // Pass the rows for the freshly computed selection (nextKeys), matching\n // the keys argument; Set keeps the lookup O(n) over rowData.\n onRowSelect(\n nextKeys,\n rowData.filter(row => nextKeySet.has(getRowKey(row)))\n );\n };\n\n const renderBody = () => (\n <TableBody>\n {rowData.map((rowItem, index) => {\n const rowKey = getRowKey(rowItem, index);\n\n return (\n <Row\n {...{ index }}\n data={rowItem}\n data-row-key={rowKey}\n isDroppable={isRowDroppable(rowItem)}\n key={rowKey}\n >\n {rowSelection && (\n // Match DataTable's selection header cell padding (it forces\n // !pe-2 while TableCell zeroes pe for checkbox cells) so the\n // body checkbox lines up with the header select-all checkbox.\n <TableCell className=\"!pe-2\" onClick={e => e.stopPropagation()}>\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={selectedKeySet.has(rowKey)}\n onCheckedChange={() => toggleRowSelection(rowItem)}\n />\n </div>\n </TableCell>\n )}\n {columnData.map(col => (\n <TableCell key={col.key || col.dataIndex}>\n {col.render\n ? col.render(rowItem[col.dataIndex], rowItem)\n : rowItem[col.dataIndex]}\n </TableCell>\n ))}\n </Row>\n );\n })}\n </TableBody>\n );\n\n const dataTableProps = {\n ...rest,\n columns: buildColumns(columnData),\n data: rowData,\n getRowId: getRowKey,\n renderBody,\n enableColumnResize: true,\n enableURLPagination: true,\n enableHeaderMenu: false,\n // Sorting intentionally left off: DataTable's URL sort params\n // (sort_by/order_by) don't match the app's (sortBy/orderBy), so enabling\n // it would render sort headers that silently do nothing. Tracked as a\n // follow-up once the sort URL convention is wired through.\n enableSorting: false,\n enableRowSelection: rowSelection,\n selectedRowKeys: selectedKeys,\n onRowSelect,\n currentPage: currentPageNumber,\n pageSize: paginationProps?.pageSize,\n };\n\n return (\n <DndContext {...{ onDragEnd, sensors }} onDragStart={setDragState}>\n <DataTable {...dataTableProps} />\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 rowData: PropTypes.arrayOf(PropTypes.object).isRequired,\n columnData: PropTypes.arrayOf(PropTypes.object).isRequired,\n overlayColumnIndex: PropTypes.number,\n isRowDroppable: PropTypes.func,\n onDrop: PropTypes.func.isRequired,\n rowSelection: PropTypes.bool,\n selectedRowKeys: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n onRowSelect: PropTypes.func,\n currentPageNumber: PropTypes.number,\n paginationProps: PropTypes.shape({ pageSize: PropTypes.number }),\n};\n\nexport default DndTable;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport useStateWithDependency from \"neetocommons/v2/react-utils/useStateWithDependency\";\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","getRowKey","row","_row$id","String","key","buildColumns","columnData","map","_ref2","dataIndex","title","width","accessorKey","header","size","DndTable","_ref3","_dragState$active$dat","rowData","_ref3$overlayColumnIn","overlayColumnIndex","_ref3$isRowDroppable","isRowDroppable","T","_ref3$onDrop","onDrop","noop","_ref3$rowSelection","rowSelection","_ref3$selectedRowKeys","selectedRowKeys","_ref3$onRowSelect","onRowSelect","currentPageNumber","paginationProps","childrenColumnName","_useState","useState","_useState2","_slicedToArray","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","selectedKeys","selectedKeySet","Set","onDragEnd","_ref4","active","over","current","renderOverlay","colData","cellValue","render","toggleRowSelection","rowItem","rowKey","nextKeys","has","filter","_toConsumableArray","nextKeySet","renderBody","TableBody","_createElement","TableCell","onClick","e","stopPropagation","Checkbox","checked","onCheckedChange","col","dataTableProps","columns","getRowId","enableColumnResize","enableURLPagination","enableHeaderMenu","enableSorting","enableRowSelection","currentPage","pageSize","_jsxs","DndContext","onDragStart","DataTable","createPortal","DragOverlay","modifiers","restrictToVerticalAxis","document","body","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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"}
|
|
1
|
+
{"version":3,"file":"DndTable.js","sources":["../../src/v2/components/DndTable/constants.js","../../src/v2/components/DndTable/columnLayout.js","../../src/v2/components/DndTable/Row.jsx","../../src/v2/components/DndTable/Table.jsx","../../src/v2/components/DndTable/useDndTable.js"],"sourcesContent":["// @tanstack/react-table's default column size, used when a column declares no\n// width — matches what DataTable falls back to so freeze offsets line up.\nexport const DEFAULT_COLUMN_SIZE = 150;\n\n// Width of DataTable's built-in selection column; the checkbox is frozen ahead\n// of user-frozen columns, so their sticky offset starts after this width.\nexport const SELECTION_COLUMN_SIZE = 56;\n\n// Sticky styling DataTable applies to its own frozen body cells; replicated\n// here because the custom body bypasses DataTable's per-cell rendering.\nexport const PINNED_CELL_CLASS =\n \"sticky z-10 bg-background transition-colors group-hover:bg-muted group-data-[state=selected]:bg-row-selected\";\n\n// Right-edge shadow on the last frozen column, revealed once the scroll\n// container reports horizontal scroll (DataTable owns the scroll group).\nexport const LAST_PINNED_SHADOW_CLASS =\n \"after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6\";\n","import { DEFAULT_COLUMN_SIZE, SELECTION_COLUMN_SIZE } from \"./constants\";\n\nconst getColumnId = col => col.key || col.dataIndex;\n\n// Build the body's left-to-right cell order, mirroring DataTable's\n// row.getVisibleCells(): left-pinned (frozen) columns first in pin order, then\n// the \"center\" group — the selection cell followed by the unpinned columns in\n// their original order. Each pinned descriptor carries the sticky offset and\n// size DataTable applies to its own frozen cells so the custom body stays\n// aligned with the (DataTable-rendered) header.\n//\n// Freeze only ever pins to the left: the header menu's toggle manages\n// columnPinning.left exclusively, so right pinning is intentionally unhandled.\n//\n// When freeze is enabled, DataTable force-pins the selection column ahead of\n// everything (resolvedColumnPinning prepends \"_selection\" to left), so the\n// checkbox stays frozen at the far left and user-frozen columns start after its\n// width. That is replicated here — otherwise header and body drift apart.\nconst getBodyColumnLayout = ({\n columnData,\n columnPinning,\n columnSizing = {},\n rowSelection = false,\n enableColumnFreeze = false,\n}) => {\n const leftIds = columnPinning?.left ?? [];\n const leftSet = new Set(leftIds);\n const sizeOf = col =>\n columnSizing[getColumnId(col)] ?? col.width ?? DEFAULT_COLUMN_SIZE;\n const columnById = id => columnData.find(col => getColumnId(col) === id);\n\n // The selection column is frozen alongside the data columns only while the\n // freeze feature is on; without it the checkbox is an ordinary leading cell.\n const isSelectionPinned = rowSelection && enableColumnFreeze;\n\n const leftPinned = [];\n let offset = 0;\n if (isSelectionPinned) {\n leftPinned.push({\n type: \"selection\",\n pinned: \"left\",\n size: SELECTION_COLUMN_SIZE,\n left: 0,\n });\n offset = SELECTION_COLUMN_SIZE;\n }\n\n leftIds.forEach(id => {\n const col = columnById(id);\n if (!col) return;\n const size = sizeOf(col);\n leftPinned.push({ type: \"data\", col, pinned: \"left\", size, left: offset });\n offset += size;\n });\n if (leftPinned.length) {\n leftPinned[leftPinned.length - 1].isLastPinned = true;\n }\n\n const center = [];\n if (rowSelection && !isSelectionPinned) {\n center.push({ type: \"selection\", pinned: false });\n }\n\n columnData.forEach(col => {\n if (!leftSet.has(getColumnId(col))) {\n center.push({ type: \"data\", col, pinned: false });\n }\n });\n\n return [...leftPinned, ...center];\n};\n\nexport { getBodyColumnLayout, getColumnId };\n","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 \"border-border hover:bg-muted/50 data-[state=selected]:bg-row-selected w-full min-w-0 cursor-move border-b transition-colors\": true,\n \"bg-muted opacity-50\": isDragging,\n \"bg-primary/10 shadow-sm\": 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 { DataTable } from \"@bigbinary/neeto-atoms\";\nimport {\n Checkbox,\n TableBody,\n TableCell,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { T } from \"ramda\";\nimport { createPortal } from \"react-dom\";\n\nimport { getColumnId, getBodyColumnLayout } from \"./columnLayout\";\nimport { PINNED_CELL_CLASS, LAST_PINNED_SHADOW_CLASS } from \"./constants\";\nimport Row from \"./Row\";\n\nconst sensorConfig = { activationConstraint: { distance: 8 } };\n\nconst getRowKey = (row, index) => String(row.id ?? row.key ?? index);\n\nconst buildColumns = columnData =>\n columnData.map(({ key, dataIndex, title, width, sorter, enableSorting }) => ({\n id: key || dataIndex,\n accessorKey: dataIndex,\n header: title,\n ...(width ? { size: width } : {}),\n // antd-style `sorter` flag (or explicit `enableSorting`) toggles the sort\n // affordance per column; leaving both undefined inherits the table default.\n ...(sorter !== undefined || enableSorting !== undefined\n ? { enableSorting: enableSorting ?? Boolean(sorter) }\n : {}),\n }));\n\n// DataTable's SortingState is `[{ id, desc }]`; surface the leading sort to\n// consumers in the friendlier { field, order } shape, or null when cleared.\nconst toSortInfo = sortingState => {\n const [sort] = sortingState;\n\n return sort\n ? { field: sort.id, order: sort.desc ? \"descend\" : \"ascend\" }\n : null;\n};\n\nconst DndTable = ({\n rowData,\n columnData,\n overlayColumnIndex = 0,\n isRowDroppable = T,\n onDrop = noop,\n rowSelection = false,\n selectedRowKeys = [],\n onRowSelect = noop,\n enableSorting = false,\n sorting,\n onSort = noop,\n enableColumnFreeze = false,\n columnPinning,\n onColumnPinningChange = noop,\n currentPageNumber,\n paginationProps,\n // antd tree-data prop carried over from v1; DataTable has no tree rows, so\n // pull it out of ...rest instead of forwarding it.\n childrenColumnName: _childrenColumnName,\n ...rest\n}) => {\n const [dragState, setDragState] = useState(null);\n const sensors = useSensors(useSensor(PointerSensor, sensorConfig));\n\n // Sorting is controlled when a `sorting` prop is supplied, otherwise tracked\n // here so the header arrows stay in sync without consumer wiring.\n const isSortingControlled = sorting !== undefined;\n const [uncontrolledSorting, setUncontrolledSorting] = useState([]);\n const sortingState = isSortingControlled ? sorting : uncontrolledSorting;\n\n const applySorting = updater => {\n const nextSorting =\n typeof updater === \"function\" ? updater(sortingState) : updater;\n if (!isSortingControlled) setUncontrolledSorting(nextSorting);\n onSort(toSortInfo(nextSorting));\n };\n\n // Freeze pins columns to the left. Controlled when a `columnPinning` prop is\n // supplied, otherwise tracked here so the freeze menu works standalone.\n const isPinningControlled = columnPinning !== undefined;\n const [uncontrolledPinning, setUncontrolledPinning] = useState({ left: [] });\n const pinningState = isPinningControlled\n ? columnPinning\n : uncontrolledPinning;\n\n const applyPinning = updater => {\n const nextPinning =\n typeof updater === \"function\" ? updater(pinningState) : updater;\n if (!isPinningControlled) setUncontrolledPinning(nextPinning);\n onColumnPinningChange(nextPinning);\n };\n\n // Column sizing is owned here so frozen-cell offsets in the custom body track\n // live column resizes (DataTable would otherwise keep it internal).\n const [columnSizing, setColumnSizing] = useState({});\n const onColumnSizingChange = updater =>\n setColumnSizing(prev =>\n typeof updater === \"function\" ? updater(prev) : updater\n );\n\n // getRowId stringifies row ids, but consumers may pass numeric selection\n // keys; normalise so selection state matches in both DataTable and the body.\n const selectedKeys = selectedRowKeys.map(String);\n const selectedKeySet = new Set(selectedKeys);\n\n const onDragEnd = ({ active, over }) => {\n setDragState(null);\n if (!active || !over) return;\n\n // Last action wins: a manual reorder supersedes any active sort, so clear\n // it before persisting the drop, leaving the table in manual order.\n if (sortingState.length) applySorting([]);\n onDrop(active.data.current, over.data.current);\n };\n\n const renderOverlay = data => {\n const colData = columnData[overlayColumnIndex];\n const cellValue = data[colData.dataIndex];\n\n return (\n <div className=\"flex px-20\">\n <div className=\"bg-background rounded-lg px-4\">\n {colData.render ? colData.render(cellValue, data) : cellValue}\n </div>\n </div>\n );\n };\n\n const toggleRowSelection = rowItem => {\n const rowKey = getRowKey(rowItem);\n const nextKeys = selectedKeySet.has(rowKey)\n ? selectedKeys.filter(key => key !== rowKey)\n : [...selectedKeys, rowKey];\n const nextKeySet = new Set(nextKeys);\n\n // Pass the rows for the freshly computed selection (nextKeys), matching\n // the keys argument; Set keeps the lookup O(n) over rowData.\n onRowSelect(\n nextKeys,\n rowData.filter(row => nextKeySet.has(getRowKey(row)))\n );\n };\n\n // Cell order mirrors DataTable's header: frozen columns reorder to the left,\n // so the body must reorder its cells the same way to stay column-aligned.\n const columnLayout = getBodyColumnLayout({\n columnData,\n columnPinning: pinningState,\n columnSizing,\n rowSelection,\n enableColumnFreeze,\n });\n\n const pinnedCellProps = ({ pinned, size, left, isLastPinned }) => {\n const isPinned = pinned === \"left\";\n\n return {\n className: classNames({\n [PINNED_CELL_CLASS]: isPinned,\n [LAST_PINNED_SHADOW_CLASS]: isPinned && isLastPinned,\n }),\n style: isPinned\n ? { width: size, minWidth: size, maxWidth: size, left }\n : undefined,\n };\n };\n\n const renderSelectionCell = (descriptor, rowItem) => {\n const rowKey = getRowKey(rowItem);\n const { className, style } = pinnedCellProps(descriptor);\n\n return (\n // Match DataTable's selection header cell padding (it forces !pe-2 while\n // TableCell zeroes pe for checkbox cells) so the body checkbox lines up\n // with the header select-all checkbox.\n <TableCell\n {...{ style }}\n className={classNames(\"!pe-2\", className)}\n key=\"_selection\"\n onClick={e => e.stopPropagation()}\n >\n <div className=\"flex w-full items-center justify-center\">\n <Checkbox\n checked={selectedKeySet.has(rowKey)}\n onCheckedChange={() => toggleRowSelection(rowItem)}\n />\n </div>\n </TableCell>\n );\n };\n\n const renderDataCell = (descriptor, rowItem, index) => {\n const { col } = descriptor;\n\n return (\n <TableCell key={getColumnId(col)} {...pinnedCellProps(descriptor)}>\n {col.render\n ? // Match the antd/v1 render signature (value, record, index); the\n // v1 body rendered through neetoui Table, which passed the row index.\n col.render(rowItem[col.dataIndex], rowItem, index)\n : rowItem[col.dataIndex]}\n </TableCell>\n );\n };\n\n const renderBody = () => (\n <TableBody>\n {rowData.map((rowItem, index) => {\n const rowKey = getRowKey(rowItem, index);\n\n return (\n <Row\n {...{ index }}\n data={rowItem}\n data-row-key={rowKey}\n isDroppable={isRowDroppable(rowItem)}\n key={rowKey}\n >\n {columnLayout.map(descriptor =>\n descriptor.type === \"selection\"\n ? renderSelectionCell(descriptor, rowItem)\n : renderDataCell(descriptor, rowItem, index)\n )}\n </Row>\n );\n })}\n </TableBody>\n );\n\n const dataTableProps = {\n ...rest,\n columns: buildColumns(columnData),\n data: rowData,\n getRowId: getRowKey,\n renderBody,\n enableColumnResize: true,\n enableURLPagination: true,\n // The header three-dot menu surfaces the sort and freeze controls, so turn\n // it on when either is enabled. No hide/reorder handlers are passed, so the\n // menu shows only those actions.\n enableHeaderMenu: enableSorting || enableColumnFreeze,\n // Sorting is driven in controlled mode and URL sync is left off: DataTable's\n // URL params (sort_by/order_by) don't match the app's (sortBy/orderBy), so\n // consumers own ordering via onSort (typically a sorted re-fetch of rowData).\n enableSorting,\n enableURLSort: false,\n sorting: sortingState,\n onSortingChange: applySorting,\n // Freeze: DataTable renders the frozen header; the custom body replicates\n // the sticky cell styling via columnLayout. columnSizing is controlled so\n // those body offsets stay correct as columns are resized.\n enableColumnFreeze,\n columnPinning: pinningState,\n onColumnPinningChange: applyPinning,\n columnSizing,\n onColumnSizingChange,\n enableRowSelection: rowSelection,\n selectedRowKeys: selectedKeys,\n onRowSelect,\n currentPage: currentPageNumber,\n pageSize: paginationProps?.pageSize,\n };\n\n return (\n <DndContext {...{ onDragEnd, sensors }} onDragStart={setDragState}>\n <DataTable {...dataTableProps} />\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 rowData: PropTypes.arrayOf(PropTypes.object).isRequired,\n columnData: PropTypes.arrayOf(PropTypes.object).isRequired,\n overlayColumnIndex: PropTypes.number,\n isRowDroppable: PropTypes.func,\n onDrop: PropTypes.func.isRequired,\n rowSelection: PropTypes.bool,\n selectedRowKeys: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n onRowSelect: PropTypes.func,\n enableSorting: PropTypes.bool,\n sorting: PropTypes.arrayOf(\n PropTypes.shape({ id: PropTypes.string, desc: PropTypes.bool })\n ),\n onSort: PropTypes.func,\n enableColumnFreeze: PropTypes.bool,\n columnPinning: PropTypes.shape({ left: PropTypes.arrayOf(PropTypes.string) }),\n onColumnPinningChange: PropTypes.func,\n currentPageNumber: PropTypes.number,\n paginationProps: PropTypes.shape({ pageSize: PropTypes.number }),\n};\n\nexport default DndTable;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport useStateWithDependency from \"neetocommons/v2/react-utils/useStateWithDependency\";\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":["DEFAULT_COLUMN_SIZE","SELECTION_COLUMN_SIZE","PINNED_CELL_CLASS","LAST_PINNED_SHADOW_CLASS","getColumnId","col","key","dataIndex","getBodyColumnLayout","_ref","_columnPinning$left","columnData","columnPinning","_ref$columnSizing","columnSizing","_ref$rowSelection","rowSelection","_ref$enableColumnFree","enableColumnFreeze","leftIds","left","leftSet","Set","sizeOf","_ref2","_columnSizing$getColu","width","columnById","id","find","isSelectionPinned","leftPinned","offset","push","type","pinned","size","forEach","length","isLastPinned","center","has","concat","Row","children","data","index","className","isDroppable","rest","_objectWithoutProperties","_excluded","_useDraggable","useDraggable","_objectSpread","isDragging","attributes","listeners","setDraggableNodeRef","setNodeRef","_useDroppable","useDroppable","disabled","isOver","setDroppableNodeRef","isIndicatorVisible","_jsx","classNames","ref","node","sensorConfig","activationConstraint","distance","getRowKey","row","_row$id","String","buildColumns","map","title","sorter","enableSorting","accessorKey","header","undefined","Boolean","toSortInfo","sortingState","_sortingState","_slicedToArray","sort","field","order","desc","DndTable","_ref3","_dragState$active$dat","rowData","_ref3$overlayColumnIn","overlayColumnIndex","_ref3$isRowDroppable","isRowDroppable","T","_ref3$onDrop","onDrop","noop","_ref3$rowSelection","_ref3$selectedRowKeys","selectedRowKeys","_ref3$onRowSelect","onRowSelect","_ref3$enableSorting","sorting","_ref3$onSort","onSort","_ref3$enableColumnFre","_ref3$onColumnPinning","onColumnPinningChange","currentPageNumber","paginationProps","childrenColumnName","_useState","useState","_useState2","dragState","setDragState","sensors","useSensors","useSensor","PointerSensor","isSortingControlled","_useState3","_useState4","uncontrolledSorting","setUncontrolledSorting","applySorting","updater","nextSorting","isPinningControlled","_useState5","_useState6","uncontrolledPinning","setUncontrolledPinning","pinningState","applyPinning","nextPinning","_useState7","_useState8","setColumnSizing","onColumnSizingChange","prev","selectedKeys","selectedKeySet","onDragEnd","_ref4","active","over","current","renderOverlay","colData","cellValue","render","toggleRowSelection","rowItem","rowKey","nextKeys","filter","_toConsumableArray","nextKeySet","columnLayout","pinnedCellProps","_ref5","isPinned","_defineProperty","style","minWidth","maxWidth","renderSelectionCell","descriptor","_pinnedCellProps","_createElement","TableCell","onClick","e","stopPropagation","Checkbox","checked","onCheckedChange","renderDataCell","renderBody","TableBody","dataTableProps","columns","getRowId","enableColumnResize","enableURLPagination","enableHeaderMenu","enableURLSort","onSortingChange","enableRowSelection","currentPage","pageSize","_jsxs","DndContext","onDragStart","DataTable","createPortal","DragOverlay","modifiers","restrictToVerticalAxis","document","body","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.4",
|
|
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>",
|
|
@@ -59,17 +59,17 @@
|
|
|
59
59
|
"@bigbinary/babel-preset-neeto": "^1.0.14",
|
|
60
60
|
"@bigbinary/eslint-plugin-neeto": "1.9.0",
|
|
61
61
|
"@bigbinary/neeto-atoms": "1.0.90",
|
|
62
|
-
"@bigbinary/neeto-audit-frontend": "2.
|
|
62
|
+
"@bigbinary/neeto-audit-frontend": "2.5.0",
|
|
63
63
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
64
64
|
"@bigbinary/neeto-commons-frontend": "4.13.138",
|
|
65
65
|
"@bigbinary/neeto-editor": "1.47.120",
|
|
66
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
66
|
+
"@bigbinary/neeto-filters-frontend": "4.3.42",
|
|
67
67
|
"@bigbinary/neeto-hotkeys": "1.0.9",
|
|
68
68
|
"@bigbinary/neeto-icons": "1.20.89",
|
|
69
69
|
"@bigbinary/neeto-image-uploader-frontend": "4.0.12",
|
|
70
|
-
"@bigbinary/neeto-team-members-frontend": "5.0.
|
|
71
|
-
"@bigbinary/neeto-time-zones": "0.8.
|
|
72
|
-
"@bigbinary/neetoui": "8.8.
|
|
70
|
+
"@bigbinary/neeto-team-members-frontend": "5.0.67",
|
|
71
|
+
"@bigbinary/neeto-time-zones": "0.8.26",
|
|
72
|
+
"@bigbinary/neetoui": "8.8.3",
|
|
73
73
|
"@dnd-kit/core": "^6.3.1",
|
|
74
74
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
75
75
|
"@dnd-kit/sortable": "^10.0.0",
|
|
@@ -239,13 +239,13 @@
|
|
|
239
239
|
"@bigbinary/neeto-cist": "1.0.17",
|
|
240
240
|
"@bigbinary/neeto-commons-frontend": "4.13.138",
|
|
241
241
|
"@bigbinary/neeto-editor": "1.47.120",
|
|
242
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
242
|
+
"@bigbinary/neeto-filters-frontend": "4.3.42",
|
|
243
243
|
"@bigbinary/neeto-hotkeys": "1.0.9",
|
|
244
244
|
"@bigbinary/neeto-icons": "1.20.89",
|
|
245
245
|
"@bigbinary/neeto-image-uploader-frontend": "4.0.12",
|
|
246
|
-
"@bigbinary/neeto-team-members-frontend": "5.0.
|
|
247
|
-
"@bigbinary/neeto-time-zones": "0.8.
|
|
248
|
-
"@bigbinary/neetoui": "8.8.
|
|
246
|
+
"@bigbinary/neeto-team-members-frontend": "5.0.67",
|
|
247
|
+
"@bigbinary/neeto-time-zones": "0.8.26",
|
|
248
|
+
"@bigbinary/neetoui": "8.8.3",
|
|
249
249
|
"@dnd-kit/core": "^6.2.0",
|
|
250
250
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
251
251
|
"@dnd-kit/sortable": "^10.0.0",
|
package/src/translations/ar.json
CHANGED
|
@@ -62,7 +62,11 @@
|
|
|
62
62
|
"transparentBackground": "خلفية شفافة",
|
|
63
63
|
"alignContentLeft": "محاذاة المحتوى إلى اليسار",
|
|
64
64
|
"hideTitle": "إخفاء العنوان",
|
|
65
|
-
"dynamicHeightHelpText": "تعديل ارتفاع المضمن تلقائيًا ليتناسب مع المحتوى."
|
|
65
|
+
"dynamicHeightHelpText": "تعديل ارتفاع المضمن تلقائيًا ليتناسب مع المحتوى.",
|
|
66
|
+
"browserSupport": {
|
|
67
|
+
"title": "يحتاج المشاهدون إلى متصفح حديث",
|
|
68
|
+
"description": "الدمج يعمل بشكل موثوق فقط في Chrome 80+ و Edge 80+ و Firefox 90+ و Safari 18+."
|
|
69
|
+
}
|
|
66
70
|
},
|
|
67
71
|
"reactions": {
|
|
68
72
|
"content": "{{groupedNames, anyCase}} تفاعل."
|
package/src/translations/bg.json
CHANGED
|
@@ -56,7 +56,11 @@
|
|
|
56
56
|
"transparentBackground": "Прозрачен фон",
|
|
57
57
|
"alignContentLeft": "Подравняване на съдържанието наляво",
|
|
58
58
|
"hideTitle": "Скриване на заглавието",
|
|
59
|
-
"dynamicHeightHelpText": "Автоматично регулирайте височината на вграждането, за да се съобрази със съдържанието."
|
|
59
|
+
"dynamicHeightHelpText": "Автоматично регулирайте височината на вграждането, за да се съобрази със съдържанието.",
|
|
60
|
+
"browserSupport": {
|
|
61
|
+
"title": "Потребителите трябва да използват актуален браузър",
|
|
62
|
+
"description": "Вграждането се зарежда надеждно само в Chrome 80+, Edge 80+, Firefox 90+ и Safari 18+."
|
|
63
|
+
}
|
|
60
64
|
},
|
|
61
65
|
"reactions": {
|
|
62
66
|
"content": "{{groupedNames, anyCase}} реагира."
|